-
Notifications
You must be signed in to change notification settings - Fork 991
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
revdeps corporaexplorer/polle fail after forder re-use key #6349
Comments
Generally setindex creates more attributes than it used to be, so if tests are checking exactness then there will be breaking change. I do not anticipate any other breaking change from this PR. |
I get a slightly different error log on dev version of {polle}:
PS @tdhock WDYT about setting If you're worried about the file size of the logs, maybe |
Filed AndreasNordland/polle#3 |
great thanks for investigating. I set that env var on the revdep check system, tdhock/data.table-revdeps@8e20b4f so we should be able to see what that looks like in the next check: https://rcdata.nau.edu/genomic-ml/data.table-revdeps/analyze/2024-08-06/ |
ok here are the new results from
below abridged with ... for because too many similar errors.
|
Maybe we just change the default for check.attributes to FALSS in all.equal method? |
that would be fine with me |
I think that's a bad idea because it will silently break users expecting DT1 = data.table(a = 1:10)
DT2 = copy(DT1)
setkey(DT1, a)
all.equal(DT1, DT2)
# [1] "Datasets have different keys. 'target': [a]. 'current': has no key."
all.equal(DT1, DT2, check.attributes=FALSE)
# [1] TRUE Three other alternatives:
|
I like option 3 with a message maybe? Can turn off the message by using an argument (possibly like in option 1). That way it's still clear while being more useful. |
@MichaelChirico Agree, that could end up to be more serious breaking change. I don't like 2 as makes us unable compare indexes. 3 sounds smart but may ended up to be very confusing by introducing some inconsistency. So I would say 1. Or 4: asking revdeps for check.attributes=F, which is not terrible idea, as it will teach revdep devs some extra care when writing tests. @TysonStanley all.equal returns a character vector when not equal, it serves as a message already. |
Jan is right, the revdeps should not be writing tests for exact equality with previously stored data tables, that is just asking for trouble (false positive test failures when there is nothing wrong). |
to clarify, for 2, I don't mean we skip checking indices(current) vs indices(target), I only mean checking these new metadata attributes of indices (any_isna, any_nonutf8, etc). I'm not sure it matters if two tables only differ in whether those have been computed, I guess it can have some performance implication just like for rows matching but indices() not. |
With both {polle} and {corporaexplorer} now fixed (in their dev versions), I'm OK to close here. I think we can consider a new |
there are two revdeps which are affected by #4386 authored by @jangorecki and @MichaelChirico
https://rcdata.nau.edu/genomic-ml/data.table-revdeps/analyze/2024-08-02/
library(corporaexplorer) below looks like a test which is checking for computed result equal to some stored/saved result from a previous version of data table:
and not sure for library(polle) below
The text was updated successfully, but these errors were encountered: