Replies: 5 comments 16 replies
-
How do we make sure that users only install the "blessed" version of PETSc that we claim to support? We can specify the petsc4py version in the I have looked and I am fairly sure that PETSc |
Beta Was this translation helpful? Give feedback.
-
A clarification: will |
Beta Was this translation helpful? Give feedback.
-
One thing which had me concerned for a while was the question of pinning our dependencies. Fairly frequently we encounter issues where an upstream package releases a new version that breaks things for us. I think there are two ways around this:
I think that 1 will lead to a lot of bit-rotting where we unnecessarily pin things and fall behind. 2 makes a lot more sense to me. |
Beta Was this translation helpful? Give feedback.
-
Would there be a single “release” branch that master merged into, or a new branch for each release? |
Beta Was this translation helpful? Give feedback.
-
Would every release also be published on Zenodo? And |
Beta Was this translation helpful? Give feedback.
-
This is a discussion about how we plan to move to having versioned releases of Firedrake. Right now this is a proposal and we need to work through some details.
Rationale
Most users don't need the latest features as soon as they land, but are susceptible to API changes and upstream breakages. Having changes happen at fixed intervals is more friendly to them. By pinning the upstream dependencies in a given release, we can hope to avoid unscheduled downstream breakages.
The risk is that users stick to an old version of Firedrake and then encounter breakages when uncontrolled upstream dependencies change (e.g. compilers and system libraries changing such as to break PETSc). This risk exists already since many users do not run Firedrake-update. We should mitigate the risk by being clear about what versions are supported.
PETSc release cycle
PETSc have a point release at the end of March and September and monthly patch releases between. See the comments to: https://gitlab.com/petsc/petsc/-/merge_requests/8090
Proposed Firedrake release cycle
Main Firedrake releases April and October, fixing where possible on the PETSc release of the previous month. If this introduces a breakage that we can't immediately fix, we can release with the previous PETSc release. This timing means we pick up PETSc changes as soon as we stably can.
Firedrake patch releases between main releases when we deem a change to be sufficiently immediately necessary to downstream users that the work involved in a patch release is justified.
Proposed version numbers
Given that we primarily propose to do calendar (as opposed to semantic) releases, it is proposed that version numbers are also primarily calendar-based. The form would be
year.month.patch
so the biannual releases for 2025 would be2025.4.0
and2025.10.0
. Any patch releases would increase the patch number but not the month number. I.e. if the first patch to2025.4.0
is released in June then it would have number2025.4.1
and not2025.6.0
.Unresolved issues
We need to work out how to be on stable releases of loopy and friends.
Beta Was this translation helpful? Give feedback.
All reactions