extend Version class so that 2.0 > 1.develop > 1.1 and develop > master > head > trunk > 9999#1983
Conversation
If you define This is the way Python does ordering internally. Python used to define a single behemoth but this was deprecated and completely removed in Python 3 because it was deemed not flexible enough: https://www.python.org/dev/peps/pep-0207/ |
|
You'll notice that the |
|
So you should probably invert my |
|
Almost made it work, just need to figure out 1 failing test... |
b8f10dd to
4caf6c0
Compare
Here is an alternative version which has several infinity-like versions: |
4caf6c0 to
fcaebad
Compare
|
As I said before.... if one magic version number is a problem, then 6 is a bigger problem. I know this is easy to implement, that is not the point. |
how exactly is it a bigger problem? |
fcaebad to
84d43d0
Compare
|
@tgamblin @citibeth @alalazo @adamjstewart : I know that we are still to go back to discusion of version handling in Spack after |
|
In all our discussion on versions, I realized that versions are a pretty trivial problem: only a finite set of version numbers are used for each package, and they are package-specific. That is... one package might have a version 1.3 while another one does not. So we're left with defining a (currently) complete order on a small and finite set of versions. Should be a trivial problem. The insight from this was there is no need to spill so much ink over this issue, to get one "universal" way of numbering versions that will work for every package --- because there will never be such a thing. Versions are package-specific, and that needs to be reflected in the API. I suggested a way to factor out versions that, IMHO, would be not very disruptive; see below from #1997 . I think it is the right first step to do on versions. After that, we can begin defining version schemes beyond the current default; for example, one that uses "develop=infinity" (or make it as a variant on the current scheme). Packages that want to use these new versions schemes can. In short... I'd like to see versions get factored out, then I'd be happy to see this PR merged as an additional version scheme.
|
|
This PR will break the current behavior of Spack; as far as I can tell, One other thing about factoring out versions... there should be a |
there is a unit test which pass 😄 so no, it does not break anything at all!
probably, but it's a different story. |
|
OK, now I see that. But it will also give Please... factor out version schemes, and then submit this as a new scheme. There have been too many unintended consequences due to "easy" changes in |
good point, fixed.
I am sorry, but i do not have time or will to do so. Here I suggest modifications which I find useful, maintainers can always reject the PR if they don't see it fitting the goals of Spack. |
Now that spack#1983 has been merged, master > 0.X.0.
Now that spack#1983 has been merged, master > 0.X.0.
Now that spack#1983 has been merged, master > 0.X.0.
* flux: add `url_for_version` to support their C4 repo model Flux uses a fork of ZeroMQ's Collective Code Construction Contract (https://github.com/flux-framework/rfc/blob/master/spec_1.adoc). This model requires a repository fork for every stable release that has patch releases. For example, 0.8.0 and 0.9.0 are both tags within the main repository, but 0.8.1 and 0.9.5 would be releases on the v0.8 and v0.9 forks, respectively. * flux: add latest versions * flux: remove master from `[email protected]:,master` statements Now that #1983 has been merged, master > 0.X.0. * flux-core: remove extraneous `99` patch version in `when` range Replace `when=@:0.11.99` with `when=@:0.11` since the intention is to include all patch versions of `0.11`. * flux-core: fix `setup_build_environment` after changes in #13411 In #13411, `setup_environment` was split into `setup_build_environment` and `setup_run_environment`, with the `spack_env` and `run_env` arguments being changed to `env`. Somehow the flux package was the only one to not have its `spack_env` references in the function changed to `env`. * flux: add runtime environment variables that Flux checks with older versions of Flux (i.e, 0.0:0.13), FLUX_CONNECTOR_PATH must be set by spack to prevent failures in certain scenarios (flux-framework/flux-core#2456). the flux binary also sets some other environment variables, which can be listed by running `flux -v start`. I added a few of those just to be sure that the Spack-installed paths are used, rather than system-installed ones. * flux: add optional testing dependencies to maximize test coverage Install optional dependencies to ensure that only spack-installed software is detected and that all tests are run when `spack install --test` is used. Flux's test suite will test for the existance of valgrind, jq, and any MPI installation. If it detects them (even if they are system-installed and outside the spack environment), it will run optional tests against them. I noticed on my machine that the valgrind tests were running against the system-install valgrind. * flux-sched: switch to new `setup_run_environment` API
as per @adamjstewart request, an alternative to #1979 which defines a list of infinity-like versions.
@adamjstewart : how do I use that
__gt__operator in places like?
Closes #1975, Closes #8421