Skip to content
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

Reduce release frequency #2881

Closed
1 of 2 tasks
brosaplanella opened this issue Apr 17, 2023 · 6 comments · Fixed by #3249
Closed
1 of 2 tasks

Reduce release frequency #2881

brosaplanella opened this issue Apr 17, 2023 · 6 comments · Fixed by #3249
Assignees
Labels
difficulty: easy A good issue for someone new. Can be done in a few hours in-progress Assigned in the core dev monthly meeting priority: high To be resolved as soon as possible

Comments

@brosaplanella
Copy link
Sponsor Member

brosaplanella commented Apr 17, 2023

After today's developer meeting we agreed to move to less frequent releases. The plan is to move to 3 releases a year (Jan, May, Sep) keeping calendar versioning (i.e. 23.1, 23.5 and 23.9). The release schedule from now should be 23.4 (end Apr), 23.5 (end May) and then 23.9 (end Sep).

Tasks:

  • Fix release workflow
  • Announce new release schedule
@agriyakhetarpal
Copy link
Member

That is a good idea. Glad to take it up in multiple PRs or in a single one

@valentinsulzer valentinsulzer added priority: high To be resolved as soon as possible difficulty: easy A good issue for someone new. Can be done in a few hours labels May 15, 2023
agriyakhetarpal added a commit to agriyakhetarpal/PyBaMM that referenced this issue May 18, 2023
Since we are moving to a new release schedule in pybamm-team#2881. Caches once written will get dumped in seven days anyway and therefore get invalidated, so there might be no need for them here.
@brosaplanella
Copy link
Sponsor Member Author

Copying here the main points from the discussion we had in the infrastructure Slack channel about this topic.

  • Automated publication of a release candidate into PyPI one month before the actual release (i.e. end of Dec, Apr and Aug). This should allow packages depending on PyBaMM to test and fix the new release.
  • If there are issues building the wheel or issues are flagged downstream, we will make further release candidates manually.
  • Once we are happy with the release candidate, we merge to main which would trigger the actual release.

@valentinsulzer valentinsulzer added the in-progress Assigned in the core dev monthly meeting label Jun 12, 2023
@brosaplanella
Copy link
Sponsor Member Author

If I understood correctly, the plan is:

  • Release candidate is deployed to a separate branch (we can have a release-candidate branch).
  • We tag it, which triggers publishing the release candidate.
  • The final release is done on main

The only thing not clear to me is how we go from release candidate to release? Do we make changes to release-candidate and then merge in to main? Or do we go develop to main directly?

brosaplanella added a commit that referenced this issue Jun 16, 2023
@brosaplanella
Copy link
Sponsor Member Author

brosaplanella commented Jul 10, 2023

UPDATED PLAN

  • Feature freeze: create branch vXX.XX at the end of the month previous to the release (e.g. Apr, Aug, Dec). Update version to XX.XXrc0 in the version file (CHANGELOG can be XX.XX).
  • Build wheels and publish rc.
  • If needed, fix bugs and increase rc number. We can merge vXX.XX to develop but not the other way around.
  • Once we are happy with the rc, we remove the rcX tag and make the final release by merging into main.

Questions:

  • How/when do we update the version number in develop?
  • Which steps above do we want to automate?
    • Feature freeze branch?
    • Publish to PyPI when release is tagged? (rcs are prereleases)

Answers:

  • We merge main into develop after the release to update version.
  • Automated workflow that we push to PyPI when a Github release is made (convert current workflow into this).

@brosaplanella
Copy link
Sponsor Member Author

I was thinking about the version update of develop. I am a bit worried that merging the release branch back into develop will result into CHANGELOG conflicts to fix every time. Should we update the version to the new one (e.g. v23.9) in develop and then branch out to branch v23.9, where we set the rc0 tag manually and eventually make the release from there?

Then we can also modify the old automatic PR to trigger at the end of the previous month for the feature freeze.

@agriyakhetarpal
Copy link
Member

A note that we have an issue open for using towncrier (#2885) which could potentially resolve the problem of CHANGELOG conflicts

agriyakhetarpal added a commit to agriyakhetarpal/PyBaMM that referenced this issue Sep 4, 2023
js1tr3 pushed a commit to js1tr3/PyBaMM that referenced this issue Aug 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficulty: easy A good issue for someone new. Can be done in a few hours in-progress Assigned in the core dev monthly meeting priority: high To be resolved as soon as possible
Projects
Development

Successfully merging a pull request may close this issue.

4 participants