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

Release 1.9.0 Checklist #1738

Open
27 of 31 tasks
MarcelKoch opened this issue Dec 4, 2024 · 9 comments
Open
27 of 31 tasks

Release 1.9.0 Checklist #1738

MarcelKoch opened this issue Dec 4, 2024 · 9 comments
Assignees
Labels
is:todo This issue describes a concrete task to be done

Comments

@MarcelKoch
Copy link
Member

MarcelKoch commented Dec 4, 2024

Pre Release / Prerequisites

  • Create release project and milestone
  • Manage open bugs
  • Check CUDA/HIP/SYCL versions
    • Remove code for unsupported versions

Step-by-Step

  • Update develop branch
  • Manually check building with newest compiler versions
    • see the CI for the branch check-latest Build status
  • Manually check packaging CI (until automated)
    • see the CI for the branch spack-ci Build status
  • Manually check threadsanitizer CI (until automated again)
  • Merge develop into main, with merge commit (i.e. --no--ff)
  • Create github release with new tag vX.Y.Z on main

Post Release

@MarcelKoch MarcelKoch added the is:todo This issue describes a concrete task to be done label Dec 4, 2024
@MarcelKoch MarcelKoch self-assigned this Dec 4, 2024
@MarcelKoch
Copy link
Member Author

This issue is also meant to become a new template which we will use for following releases.

@MarcelKoch
Copy link
Member Author

This release approach contains some changes to the previous releases, especially how master is handled.

I think in earlier releases all commits after the last release where cherry-picked onto master with an additional merge commit. Although I'm not entirely sure about that. The point is however that the develop branch was not merged into master.

I think this should change, and the release PR should just be a normal merge from develop into master. This is not really possible, since master and develop don't have a common history (or at least after the 1.0 release). Thus I'm introducing the main branch which will have the future releases. This branch will have a shared history with develop in the form of the release merge commits. Here is a diagram how I think the main, and develop branch should be connected (feature stands for our normal development workflow, but that can be realized without a bunch of extra branches):

gitGraph TB:
	commit
	branch develop
	checkout develop
	commit
	branch feature
	checkout feature
	commit
	commit
	checkout develop
	merge feature
	checkout feature
	commit
	commit
	checkout develop
	merge feature
	checkout main
	merge develop tag: "vX.Y.Z"
	checkout feature
	commit
	commit
	checkout develop
	merge feature
	checkout feature
	commit
	commit
	checkout develop
	merge feature
	checkout main
	merge develop tag: "vX'.Y'.Z'"
Loading

@upsj
Copy link
Member

upsj commented Dec 4, 2024

We should also add Conan to the package managers, even though we don't really do much work there.

On the release workflow, I want to propose a slight change:

If we introduce the "Change version tag in CMakeLists.txt to main" change into develop as well, we can separate this into a PR (PR1) on develop that changes the tag (few lines) and a PR (PR2) on main that is purely fast-forwarding main onto develop, and then a PR (PR3) that reverts the first PR on develop. That means that PR1 and PR3 are easy to review, and PR2 doesn't include any new changes, so it doesn't need any actual reviews.

@MarcelKoch
Copy link
Member Author

I guess the question is if we want to have an extra merge commit on main to denote the release. I think we can use your approach either way, and I would also prefer it.

@yhmtsai
Copy link
Member

yhmtsai commented Dec 5, 2024

are the vcpkg and conan contributed by us?
the update version in post release should be X.Y.Z -> X.(Y+1).0 for minor update

@yhmtsai
Copy link
Member

yhmtsai commented Dec 9, 2024

For merging to master, I assume you will not change the version tag as master from the beginning.
should we just squash all commit to the master?

@MarcelKoch
Copy link
Member Author

For master, I initially thought I would just cherry pick all commits from develop into master. But squashing all the commits might be the better choice. I don't really care how the history of master will look like in the future, I just want to have the latest changes in it.
I will also leave the tags as they already are.

@MarcelKoch
Copy link
Member Author

BTW you can see how the history of the main branch should look like at: https://github.com/MarcelKoch/ginkgo/tree/main-with-merges. This example has two merges from develop into the main branch to "simulate" our release process.
@upsj I would actually prefer to have explicit merge commits instead of fast-forwarding. I don't think you can FF merge through the github PR interface anyway. The explicit merge commits also have the effect that using the --first-parent option when looking at the history, will directly give you the release commits.

@yhmtsai
Copy link
Member

yhmtsai commented Dec 9, 2024

It will also be great if you can link the step to the pr such that we might be able to see more detail on that.
Some of them sometimes are not obvious like link name from develop to main in ReadME.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is:todo This issue describes a concrete task to be done
Projects
None yet
Development

No branches or pull requests

3 participants