-
-
Notifications
You must be signed in to change notification settings - Fork 147
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
Question/recommendation about versioning #918
Comments
Ah, I've been down this road before (on other projects). The problem with this is when a newly-released version of (in this case) JAX really is compatible, that this new version is needed for some other reason... and that many people's build systems are not sufficiently flexible to allow for manually overriding a too-strict constraint. Conversely:
Happy to hear a rebuttal otherwise, but I'm afraid I'm inclined against this one for the reasons above. :) |
With respect to this point, couldn't this also be solved with daily tests? I have it setup to run all tests every day, so any time something breaks (even if things are not being actively developed) it immediately is alerted. Seems like equinox/diffrax/etc. could also have that and catch things (in case the libraries that build on them miss it). Additionally this could be useful because sometimes there are issues that only come up in tests/typing/things that aren't caught in other builds (e.g. this commit patrick-kidger/diffrax@a5820a2 fixed an issue that wasn't a breaking change in any downstream libraries, but was breaking for anyone running adding on to diffrax since it now failed the diffrax testing). |
Haha, I mean specifically in issues that only occur downstream -- from some intersection of cases not covered by existing tests. This is the same relationship Diffrax etc have with JAX itself, for example: when a new release comes out we're often the ones testing some unusual intersection of JAX features, and I go upstream to report what's happened :) (But separately yes, it would be totally fine to run the Diffrax etc tests on a cronjob, although as a practical matter I think the one you've highlighted is maybe the only case I can think of where this really would have been useful; most breaking changes come through specifically version bumps to JAX, and I'm already aware of them anyway.) |
I noticed that equinox doesn't pin a maximum version of JAX. On the one hand I get why, since both are nominally alpha/eta/v0.x so compatibility is always kind of a crapshoot, but on the other hand both are widely used in the sci-comp/ML community and so I've run into issues in downstream packages of the form:
I'd like to propose starting to add maximum tested versions to equinox's dependencies (and ideally also to lineax/optimistix/diffrax etc) to avoid these issues. This is a more conservative approach but would make packages that rely on the equinox ecosystem a lot more stable. People who always want the cutting edge can still of course manually install the latest version of everything, but for things we want to "just work" this lets the package manager figure things out appropriately.
The text was updated successfully, but these errors were encountered: