-
Notifications
You must be signed in to change notification settings - Fork 576
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
Streamline the release process #2950
Comments
"Automatically grabbing the three most recent posts should be doable, right?" -> note that you don't want the most recent, but the most important. |
Could that rule be formalized as major and/or minor releases, but not patches, or does it need to be more of judgment call? |
I must admit that for the highlights of the latest releases I picked some of the whatsnew entries (not necessarily three...) in a purely arbitrary way.
Most of the steps in the workflow you describe are easy and fast (with the exception of the documentation build which is pretty slow...), and you end up doing these only once every 3 months (our release cycle atm). So I never felt like it was a huge burden but I agree that you can mess things up and that automation could be helpful as long as the maintenance cost of the automated pipeline is not greater than the one of making releases "manually". |
Most packages I regularly contribute to use most of the same tools. In both The two big differences between those packages' release processes and the one I propose above are (1) the documentation building issue and (2) we don't have whats_new files, although we're looking into ways to automate that in |
maybe you are referring to the discussion that started here ? I continue thinking that as pushing to pypi is only 2 commands once every 3 months, I would rather do it manually and avoid having the pypi password on github |
With apologies for commenting from the peanut gallery: If the concern is about access to resources on pypi, you can limit that quite substantially by using an API token: https://pypi.org/help/#apitoken. But I would understand if that's not sufficient security in your opinion. If the API token is compromised, someone could potentially hack the nilearn pypi page and distro. |
You are right, if we decide to push to pypi from the ci we will use an api token. but that still requires making the token available to the github action, and as that token allows deciding what runs when someone does pip install nilearn, it would raise a little bit the level of attention we have to pay to security notifications from ci platforms, and how careful we have to be not to mess up the ci config. I completely agree it is not a very big deal, but as the benefit would be saving 10 seconds every 3 months I lean a bit more towards keeping the manual deployment. but if most people prefer automating it then it's ok! |
note that's just one of the points in the issue description, I don't have a strong opinion re. the other ones. If there was a way to avoid having to build the new doc locally that would certainly be useful because it takes a long time |
We use this config to build documentation for pyAFQ on Github actions: https://github.com/yeatmanlab/pyAFQ/blob/master/.github/workflows/docbuild.yml. It's nice because it also uploads a package with the built docs on every PR push, so we can download and inspect these as part of the review, without having to fetch that branch. |
I think we could use integrations and Actions to simplify the release process, with most of the work happening on GitHub instead of on the release maker's local machine.
We've discussed this elsewhere (perhaps in a dev call?), but I can't find any notes on it. Elizabeth pointed out that the main blocker was that the documentation needs to be built locally, so I know the workflow I'm most familiar with won't work on its own, but I'm sure there are some elements that can be adopted. In particular, I think versioneer and a PyPi deployment Action would be most useful.
Benefits to the change
It would reduce the work necessary by maintainers to make a new release.
The current release process
whats_new.rst
by cleaning up existing notes and adding a highlights section.nilearn/version.py
.nilearn/version.py
andwhats_new.rst
.A pie-in-the-sky release process
nilearn
's purposes, but I could be wrong.whats_new.rst
and update the documentation News section in a single PR.The text was updated successfully, but these errors were encountered: