Fusion-Power-Plant-Framework / bluemira

Bluemira is an integrated inter-disciplinary design tool for future fusion reactors. It incorporates several modules, some of which rely on other codes, to carry out a range of typical conceptual fusion reactor design activities.
https://bluemira.readthedocs.io/
GNU Lesser General Public License v2.1
58 stars 16 forks source link

Dependency management changes and release procedure #1087

Closed je-cook closed 1 year ago

je-cook commented 2 years ago

Description of issue / requirement to address

As we start becoming more stable we should have a release cycle and adjust how we deal with dependencies.

Proposed solution

A release (not necessarily a full release eg 0.0.0a1) will happen every 6 weeks, immediately after which the new dependencies updates will be merged into develop. Dependency updates should be tracked in a separate a branch develop_dependencies that tracks develop. These new dependencies will run on the CI so that breakages are caught and fixed early. New dependencies should be merged in to develop every ~6 weeks creating a more stable environment for new features to be added.

First step is in #1068 separate out dependencies into their minimal areas the full list to first tag:

Near Future:

In a couple of cycles:

The docker containers are just awaiting our conversion to dolfinx

Alternative solutions

Live with unstableness and never release

Additional context

We need a nice workflow in order for everyone to be able to improve the code while not being disrupted too often

hsaunders1904 commented 2 years ago

Seems a good plan to me. I think it will be really good to get into a development cycle.

Excuse the brain dump, but these are a few thoughts I had:

Obviously none of this changes our current plan, but they're things we should think about.

je-cook commented 2 years ago

Good things to think about, here's my initial thoughts

I'm assuming semantic.

I think semantic makes more sense than calendar based probably but not wedded to that.

Do we stick with 0.0.1aX and increment X for the time being?

Yeah I think so. Once we have something we're happy with go straight to 0.1.0 and then point release every 6 weeks makes the most sense to me. We can always go back to alphas if we need to.

Will we backport bugfixes...?

I think bugfix backport releases probably shouldnt be needed until at least 0.2 (or maybe 1.0 onwards) at a minimum before that we should insist on the latest version being used. Maybe more widely thats a decision for after 1.1. I'm inclined to say latest minor version of a major version and then have v1, v2 branches whenever we get that far down the line.

je-cook commented 1 year ago

Fenicsx conversion will be done separately