r-quantities / units

Measurement units for R
https://r-quantities.github.io/units
175 stars 28 forks source link

Release units 0.7-0 #260

Closed Enchufa2 closed 3 years ago

Enchufa2 commented 3 years ago

I'll run a revdepcheck to see if any packages are still using the stuff dropped in #259, and notify the maintainers accordingly.

Enchufa2 commented 3 years ago

Revdep checks added. Packages affected:

Enchufa2 commented 3 years ago

I would like to address some more issues before submitting a new release to CRAN, so there will be plenty of time for those packages to merge the fixes and submit an update.

Enchufa2 commented 3 years ago

Prepare for release:

Enchufa2 commented 3 years ago

@edzer This is ready for release. Affected downstream maintainers have been notified.

edzer commented 3 years ago

submitted ...

Enchufa2 commented 3 years ago

quantities and constants submitted too.

edzer commented 3 years ago

Revdep checks:

``` Dear maintainer, package units_0.7-0.tar.gz has been auto-processed. The auto-check found problems when checking the first order strong reverse dependencies. Please reply-all and explain: Is this expected or do you need to fix anything in your package? If expected, have all maintainers of affected packages been informed well in advance? Are there false positives in our results? *** Changes to worse in reverse dependencies *** Debian: Log dir: The files will be removed after roughly 7 days. Pretests: Windows: Debian: Last published version on CRAN: CRAN Web: Best regards, CRAN teams' auto-check service Package check result: OK Changes to worse in reverse depends: Package: EmissV Check: examples New result: WARNING Found the following significant warnings: Warning: 'units::install_conversion_constant' is deprecated. Deprecated functions may be defunct as soon as of the next release of R. See ?Deprecated. Package: eplusr Check: tests New result: ERROR Running ‘testthat.R’ [58s/45s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(eplusr) > eplusr_option(verbose_info = FALSE) $verbose_info [1] FALSE > > test_check("eplusr") trying URL 'https://raw.githubusercontent.com/NREL/EnergyPlus/v9.4.0/idd/V8-8-0-Energy%2B.idd' Content type 'text/plain; charset=utf-8' length 4055399 bytes (3.9 MB) ================================================== downloaded 3.9 MB trying URL 'https://raw.githubusercontent.com/NREL/EnergyPlus/v9.4.0/idd/V8-9-0-Energy%2B.idd' Content type 'text/plain; charset=utf-8' length 4390209 bytes (4.2 MB) ================================================== downloaded 4.2 MB ══ Skipped tests ═══════════════════════════════════════════════════════════════ ● On CRAN (72) ● is_windows() is not TRUE (2) ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error (test-units.R:4:5): Units conversion ────────────────────────────────── Error: In 'person', 'person' is not recognized by udunits. See a table of valid unit symbols and names with valid_udunits(). Custom user-defined units can be added with install_unit(). See a table of valid unit prefixes with valid_udunits_prefixes(). Prefixes will automatically work with any user-defined unit. Backtrace: █ 1. ├─testthat::expect_equal(...) test-units.R:4:4 2. │ └─testthat::quasi_label(enquo(object), label, arg = "object") 3. │ └─rlang::eval_bare(expr, quo_get_env(quo)) 4. ├─units::set_units(1, "person") 5. └─units:::set_units.numeric(1, "person") 6. ├─units::as_units(value, ...) 7. └─units:::as_units.character(value, ...) 8. └─units:::as_units.call(expr, check_is_valid = check_is_valid) [ FAIL 1 | WARN 1 | SKIP 74 | PASS 2062 ] Error: Test failures Execution halted Package: hydrolinks Check: dependencies in R code New result: WARNING Missing or unexported object: ‘units::ud_units’ Package: quantities Check: examples New result: ERROR Running examples in ‘quantities-Ex.R’ failed The error most likely occurred in: > base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: Extract.quantities > ### Title: Extract or Replace Parts of an Object > ### Aliases: Extract.quantities [.quantities [[.quantities [<-.quantities > ### [[<-.quantities > > ### ** Examples > > x <- set_quantities(1:3, m/s, 0.1) > y <- set_quantities(4:6, m/s, 0.2) > (z <- rbind(x, y)) Error in data.frame(val = as.numeric(x), from = I(units(x)), to = value, : 'list' object cannot be coerced to type 'double' Calls: rbind -> rbind -> -> data.frame Execution halted Package: quantities Check: Rd cross-references New result: WARNING Missing link or links in documentation object 'units.Rd': ‘[units]{ud_units}’ See section 'Cross-references' in the 'Writing R Extensions' manual. Package: quantities Check: re-building of vignette outputs New result: WARNING Error(s) in re-building vignettes: ... --- re-building ‘introduction.Rmd’ using rmarkdown Quitting from lines 120-121 (introduction.Rmd) Error: processing vignette 'introduction.Rmd' failed with diagnostics: ‘list’ object cannot be coerced to type ‘double’ --- failed re-building ‘introduction.Rmd’ --- re-building ‘parsing.Rmd’ using rmarkdown --- finished re-building ‘parsing.Rmd’ SUMMARY: processing the following file failed: ‘introduction.Rmd’ Error: Vignette re-building failed. Execution halted Package: quantities Check: tests New result: ERROR Running ‘testthat.R’ [3s/3s] Running the tests in ‘tests/testthat.R’ failed. Complete output: > library(testthat) > library(quantities) Loading required package: units udunits database from /usr/share/xml/udunits/udunits2.xml Loading required package: errors > > test_check("quantities") ══ Failed tests ════════════════════════════════════════════════════════════════ ── Error (test-math.R:31:3): math methods work properly ──────────────────────── Error: power operation only allowed with logarithmic unit Backtrace: █ 1. ├─testthat::expect_warning(expect_errors(exp(x), exp(xval), errors(exp(xe)))) test-math.R:31:2 2. │ └─testthat:::quasi_capture(enquo(object), label, capture_warnings) 3. │ ├─testthat:::.capture(...) 4. │ │ └─base::withCallingHandlers(...) 5. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo)) 6. ├─quantities:::expect_errors(exp(x), exp(xval), errors(exp(xe))) 7. │ └─testthat::expect_equal(class(x), "errors") helper-quantities.R:10:2 8. │ └─testthat::quasi_label(enquo(object), label, arg = "object") 9. │ └─rlang::eval_bare(expr, quo_get_env(quo)) 10. ├─quantities:::Math.quantities(x) 11. │ └─quantities:::reclass(NextMethod()) 12. ├─base::NextMethod() 13. └─units:::Math.units(x) 14. ├─quantities:::Ops.quantities(exp(1), x) 15. │ └─quantities:::reclass(NextMethod()) 16. ├─base::NextMethod() 17. └─units:::Ops.units(exp(1), x) ── Error (test-misc.R:66:3): data frame coercion works properly ──────────────── Error: 'list' object cannot be coerced to type 'double' Backtrace: █ 1. ├─base::as.data.frame(cbind(x, y)) test-misc.R:66:2 2. └─base::cbind(x, y) 3. └─quantities:::cbind(deparse.level, ...) 4. └─getS3method("set_units", "mixed_units")(dots, as.character(u)) 5. └─base::data.frame(...) ── Error (test-misc.R:102:3): bind methods work properly ─────────────────────── Error: 'list' object cannot be coerced to type 'double' Backtrace: █ 1. └─base::rbind(x = a, y = a) test-misc.R:102:2 2. └─quantities:::rbind(deparse.level, ...) 3. └─getS3method("set_units", "mixed_units")(dots, as.character(u)) 4. └─base::data.frame(...) ── Error (test-utils.R:30:3): dots are converted to the units of the first argument ── Error: no applicable method for 'units' applied to an object of class "list" Backtrace: █ 1. ├─quantities:::expect_quantities(...) test-utils.R:30:2 2. │ └─testthat::expect_equal(class(x), c("quantities", "units", "errors")) helper-quantities.R:3:2 3. │ └─testthat::quasi_label(enquo(object), label, arg = "object") 4. │ └─rlang::eval_bare(expr, quo_get_env(quo)) 5. └─base::cbind(x, y, x, y) 6. └─quantities:::cbind(deparse.level, ...) 7. └─getS3method("set_units", "mixed_units")(dots, as.character(u)) 8. ├─base::data.frame(...) 9. ├─base::I(units(x)) 10. │ └─base::unique.default(c("AsIs", oldClass(x))) 11. └─base::units(x) [ FAIL 4 | WARN 11 | SKIP 0 | PASS 457 ] Error: Test failures Execution halted Package: traitdataform Check: dependencies in R code New result: WARNING Missing or unexported object: ‘units::parse_unit’ Package: yamlet [Old version: 0.6.9, New version: 0.6.10] Check: examples New result: WARNING Found the following significant warnings: Warning: 'install_symbolic_unit' is deprecated. Deprecated functions may be defunct as soon as of the next release of R. See ?Deprecated. ```
Enchufa2 commented 3 years ago

The warning in hydrolinks was not detected in my revdep checks. Email sent.

hongyuanjia commented 3 years ago

Hi @edzer. I am the maintainer of the {eplusr} package which depends on {units} package. I know that in v0.7-0, install_symbolic_unit() is deprecated. Since install_unit() function is newly introduced in v0.7-0 and v0.7-0 is not on CRAN, how can I use install_unit() in {eplusr}? I updated my code and submitted to CRAN, but got a warning:

* checking dependencies in R code ... WARNING
Missing or unexported object: ‘units::install_unit’

Thanks

edzer commented 3 years ago

Yes, sorry for the delay; it should now reach CRAN soon.

Enchufa2 commented 3 years ago

On CRAN now.

edzer commented 3 years ago

According to BDR, there's more fallout:


> Thanks, on its way to CRAN.
>
> Team, this causes changes to worse in:
> EmissV eplusr hydrolinks quantities traitdataform yamlet
>

And

EML constants magclass sen2r sf

but I am not seeing quantities which was updated recently.

And a different problem in ggforce from the one in R-devel previously.
Enchufa2 commented 3 years ago

All expected except for sen2r and sf. Will take a look.

edzer commented 3 years ago

I couldn't find anything for sf, except a deprecated install_symbolic_unit, that's resolved now.

Enchufa2 commented 3 years ago

sen2r uses ud_units, which was removed for good. A surprise, because revdep checks should have caught this one (unless there are tests that only run on CRAN). Anyway, reported here: https://github.com/ranghetti/sen2r/issues/390

ranghetti commented 3 years ago

A surprise, because revdep checks should have caught this one (unless there are tests that only run on CRAN).

Maybe this was not done because units is a suggested dependency, and ud_units() is called inside if (requireNamespace("units")). By the way, thanks for reporting that.