Repository navigation
Releases
To make a new release, see the process detailed here.
Since release is supposed to be stable w.r.t. API, only fixes and documentation changes should be merged into it. Any new features or API changes should be merged into main.
Exceptions can be made for new features provided that they either:
-
Provably do not modify the code paths for existing users (e.g. by adding a branch with a condition that will always evaluate to
Falsefor existing users). - Are modifications to brand new (only made available in the latest release) features. In such a case it is acceptable to merge things into
releaseso users can use the new functionality faster and there is no way that established codes will break.
If you want your code to be available in both release and main then you should merge your code first into release and then:
- Create a branch off
main. - Merge
releaseinto your new branch. - Resolve any conflicts.
- Create a PR to merge your new branch into
main.
Major Firedrake releases are made roughly every 6 months. The releases are (ideally) timed to happen shortly after PETSc makes a minor release (e.g. 3.22.5 -> 3.23.0) such that any breaking API changes in the release may be fixed.
Patch releases are made in an ad hoc fashion when they are deemed necessary. This is usually the case if there is an upstream breakage that we have to adapt to.