-
Notifications
You must be signed in to change notification settings - Fork 16
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
Extraction of Python installer into a separate package #995
base: devel
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do not merge yet. I want to have a look to the rest of the PRs
Sure, next week I plan to handle all it. |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really nice! Before merging I want to have a look into https://github.com/I2PC/xmipp3-installer
Note: This PR needs to be merged after xmippCore-223 and xmippViz-73.
The new installer is located in this repository.
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):
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 latestv3.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
andscipion-em-xmipp
are all in versionv3.24.0
initially.xmippCore
creates releasev3.25.0
.xmipp
needs to create releasev3.25.0
to update the version to be downloaded ofxmippCore
, fromv3.24.0
tov3.25.0
.scipion-em-xmipp
needs to do the same thing to retrieve the latest release ofxmipp
.With the new process (minor or patch release):
xmippCore
,xmippViz
,xmipp
andscipion-em-xmipp
are all in versionv3.24.0
initially.xmippCore
creates releasev3.25.0
.v3
ofxmippCore
is updated to match the content of tagv3.25.0
.xmipp
is pointing to releasev3
, so, whenever a new install is triggered, it will already automatically download the newest version ofxmippCore
, so no changes are required inxmipp
's side.scipion-em-xmipp
also does not need to create a new release.With the new process (major release):
xmippCore
,xmippViz
,xmipp
andscipion-em-xmipp
are all in versionv3.24.0
initially.xmippCore
creates releasev4.0.0
.v4 of
xmippCoreis created. It matches the content of tag
v4.0.0`.xmipp v3.24.0
is currently pointing atxmippCore v3
, so, this version will not be affected by the breaking changes introduced in thev4.0.0
release ofxmippCore
. To point to that new major release, versionv3.24.1
can be created. This new version does not need to be a new major (v4.0.0
) sincexmipp
itself is not breaking any compatibility towards its programs (in other words,scipion-em-xmipp
can still use the samexmipp
programs without any code changes).v3.24.1
release is created, tagv3
inxmipp
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.