Commit 559c84a
Extraction of Python installer into a separate package (#995)
## **Note: This PR needs to be merged after
[xmippCore-223](I2PC/xmippCore#223) and
[xmippViz-73](I2PC/xmippViz#73
The new installer is located in [this
repository](https://github.com/I2PC/xmipp3-installer).
## Changes
This greadtly simplifies the code complexity of the installer in this
repository, and allows it to evolve at different rates, being able to
fix issues or extend the installer capabilities without relying on
making releases of Xmipp.
With that change, comes a new paradigm on how source dependencies are
handled in xmipp (xmippViz/xmippCore/scipion-em-xmipp):
- scipion-em-xmipp will no longer be automatically installed by xmipp.
This is because the plugin depends on xmipp, not the other way around,
so the plugin must be the one installing xmipp (in production only).
- xmippCore & xmippViz are still installed by the installer of xmipp,
but now, instead of cloning specific fixed versions (for example,
`v3.24.0`), it will do so with a dynamically updated tag pointing to the
latest major release of such dependency (for example, `v3`, which match
the content of the latest `v3.X.Y` release).
## New release paradigm
This change enables skipping the release process in sources that don't
actually need it, and that it was happening until now because of a
simple update in the dependency number. Now that release cascade will
only be needed if a major release happens.
### Example of how it was until now (with any kind of release):
- `xmippCore`, `xmippViz`, `xmipp` and `scipion-em-xmipp` are all in
version `v3.24.0` initially.
- `xmippCore` creates release `v3.25.0`.
- `xmipp` needs to create release `v3.25.0` to update the version to be
downloaded of `xmippCore`, from `v3.24.0` to `v3.25.0`.
- `scipion-em-xmipp` needs to do the same thing to retrieve the latest
release of `xmipp`.
### With the new process (minor or patch release):
- `xmippCore`, `xmippViz`, `xmipp` and `scipion-em-xmipp` are all in
version `v3.24.0` initially.
- `xmippCore` creates release `v3.25.0`.
- Tag `v3` of `xmippCore` is updated to match the content of tag
`v3.25.0`.
- `xmipp` is pointing to release `v3`, so, whenever a new install is
triggered, it will already automatically download the newest version of
`xmippCore`, so no changes are required in `xmipp`'s side.
- `scipion-em-xmipp` also does not need to create a new release.
### With the new process (major release):
- `xmippCore`, `xmippViz`, `xmipp` and `scipion-em-xmipp` are all in
version `v3.24.0` initially.
- `xmippCore` creates release `v4.0.0`.
- Tag `v4 of `xmippCore` is created. It matches the content of tag
`v4.0.0`.
- `xmipp v3.24.0` is currently pointing at `xmippCore v3`, so, this
version will not be affected by the breaking changes introduced in the
`v4.0.0` release of `xmippCore`. To point to that new major release,
version `v3.24.1` can be created. This new version does not need to be a
new major (`v4.0.0`) since `xmipp` itself is not breaking any
compatibility towards its programs (in other words, `scipion-em-xmipp`
can still use the same `xmipp` programs without any code changes).
- When the new `v3.24.1` release is created, tag `v3` in `xmipp` will be
updated to match its content.
- `scipion-em-xmipp` does not need to implement any code changes, and,
therefore, no new release is needed.
## Conclusion
The improvements described above allow to generate more frequent
releases, with new functionality and bug fixes. As the pipeline process
of a release only takes ~5-10 minutes combined (adding up release times
of all xmipp sources & the plugin), the releases can be as frequent as
the development team wants, allowing users to experience almost
inmediately the newest develpments and patches, instead of needing to
wait ~6 months for each release.
---------
Co-authored-by: alberto <[email protected]>1 parent 3bdc457 commit 559c84a
File tree
23 files changed
+61
-4440
lines changed- .github/workflows
- installer
- constants
23 files changed
+61
-4440
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
28 | 33 | | |
29 | 34 | | |
30 | 35 | | |
| |||
38 | 43 | | |
39 | 44 | | |
40 | 45 | | |
41 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
42 | 49 | | |
43 | | - | |
| 50 | + | |
44 | 51 | | |
45 | 52 | | |
46 | 53 | | |
| |||
53 | 60 | | |
54 | 61 | | |
55 | 62 | | |
56 | | - | |
| 63 | + | |
57 | 64 | | |
58 | | - | |
| 65 | + | |
| 66 | + | |
59 | 67 | | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
| 68 | + | |
| 69 | + | |
64 | 70 | | |
65 | 71 | | |
66 | 72 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
15 | 21 | | |
16 | 22 | | |
17 | 23 | | |
| |||
28 | 34 | | |
29 | 35 | | |
30 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
31 | 46 | | |
32 | 47 | | |
33 | | - | |
| 48 | + | |
34 | 49 | | |
35 | 50 | | |
36 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
This file was deleted.
This file was deleted.
0 commit comments