From cec3dfcdbb3ada27ecd9eefdb186782c1dd0a012 Mon Sep 17 00:00:00 2001 From: Thibaut Lunet Date: Sat, 21 Sep 2024 09:53:00 +0200 Subject: [PATCH 1/8] TL: added release guide --- docs/contrib/06_new_project.md | 2 +- docs/contrib/07_release_guide.md | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 docs/contrib/07_release_guide.md diff --git a/docs/contrib/06_new_project.md b/docs/contrib/06_new_project.md index 2da72b0cf6..5cb83dd29a 100644 --- a/docs/contrib/06_new_project.md +++ b/docs/contrib/06_new_project.md @@ -57,4 +57,4 @@ We strongly encourage to describe and cite the current version of pySDC already :arrow_left: [Back to Documenting Code](./05_documenting_code.md) --- :arrow_up: [Contributing Summary](./../../CONTRIBUTING.md) --- -:arrow_right: [Next to a cute picture of cat](https://www.vecteezy.com/photo/2098203-silver-tabby-cat-sitting-on-green-background) \ No newline at end of file +:arrow_right: [Next to publishing a new release](./07_release_guide.md) \ No newline at end of file diff --git a/docs/contrib/07_release_guide.md b/docs/contrib/07_release_guide.md new file mode 100644 index 0000000000..164d0fd896 --- /dev/null +++ b/docs/contrib/07_release_guide.md @@ -0,0 +1,30 @@ +# Publishing a new release + +## Base conventions + +For each version update (a.k.a **releases**), we use the following denomination : + +- **patch** (from `*.*.{i}` to `*.*.{i+1}`) : minor modifications, bugfixes, code reformating, small new features, new projects or playgrounds, new tests +- **minor** (from `*.{i}.*` to `*.{i+1}.0`) : addition of new major features, minor code structure changes without too much impact on the API (backward compatible) +- **major** (from `{i}.*.*` to `{i+1}.0.0`) : major changes in code structure, design, and API, with changes potentially breaking backward compatibility + +## Release Pipeline + +First, create a `new-release` branch, either on your fork or on the main `pySDC` repo. Then, in on commit : + +1. modify the project version number in `pyproject.toml` +2. modify the documentation release number in `docs/source/conf.py`, and the version number for minor and major release +3. modify the version number and release date in `CITATION.cff` +4. (for minor and major release **only**) add the release description in the `CHANGELOG.md` file + +Commit with the message : `bump version to x.x.x` where `x.x.x` is the new version. +Then create a pull request, and once all tests passed, you can `Merge and Squash`, +possibly adding your initials as prefix of the final commit message. + +Finally, [draft a new release](https://github.com/Parallel-in-Time/pySDC/releases/new) associated to a new tag +`v*.*.*` (with `*.*.*` the new version, and the ` + Create new tag: ... on publish` button). +Add a comprehensive summary of the main changes, with appropriate thanks to all the contributors (cf previous releases), and publish it. This will trigger automatically a release update on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.594191) and [PyPI](https://pypi.org/project/pySDC/). + +:arrow_left: [Back to adding Project](./06_new_project.md) --- +:arrow_up: [Contributing Summary](./../../CONTRIBUTING.md) --- +:arrow_right: [Next to a cute picture of cat](https://www.vecteezy.com/photo/2098203-silver-tabby-cat-sitting-on-green-background) \ No newline at end of file From 6c6d54028044748b22271ed52bc7bfb40e42c248 Mon Sep 17 00:00:00 2001 From: Thibaut Lunet Date: Sat, 21 Sep 2024 09:58:15 +0200 Subject: [PATCH 2/8] TL: additional detail --- docs/contrib/07_release_guide.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/contrib/07_release_guide.md b/docs/contrib/07_release_guide.md index 164d0fd896..ced529516b 100644 --- a/docs/contrib/07_release_guide.md +++ b/docs/contrib/07_release_guide.md @@ -21,6 +21,13 @@ Commit with the message : `bump version to x.x.x` where `x.x.x` is the new versi Then create a pull request, and once all tests passed, you can `Merge and Squash`, possibly adding your initials as prefix of the final commit message. +> 🔔 Don't forget to delete the `new-release` branch both locally and on your fork (or the main repo) : + +```bash +git push -d origin new-release # delete on remote +git branch -D new-release # delete locally +``` + Finally, [draft a new release](https://github.com/Parallel-in-Time/pySDC/releases/new) associated to a new tag `v*.*.*` (with `*.*.*` the new version, and the ` + Create new tag: ... on publish` button). Add a comprehensive summary of the main changes, with appropriate thanks to all the contributors (cf previous releases), and publish it. This will trigger automatically a release update on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.594191) and [PyPI](https://pypi.org/project/pySDC/). From 6df08c4da4912ddbd54921a1abcfb67a7825cf15 Mon Sep 17 00:00:00 2001 From: Robert Speck Date: Sat, 21 Sep 2024 10:25:51 +0200 Subject: [PATCH 3/8] Update 07_release_guide.md --- docs/contrib/07_release_guide.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/docs/contrib/07_release_guide.md b/docs/contrib/07_release_guide.md index ced529516b..bf60b80e68 100644 --- a/docs/contrib/07_release_guide.md +++ b/docs/contrib/07_release_guide.md @@ -1,27 +1,27 @@ -# Publishing a new release +# Publishing a new release (for maintainers only!) ## Base conventions -For each version update (a.k.a **releases**), we use the following denomination : +For each version update (a.k.a **releases**), we use [semantic versioning](https://semver.org/): -- **patch** (from `*.*.{i}` to `*.*.{i+1}`) : minor modifications, bugfixes, code reformating, small new features, new projects or playgrounds, new tests -- **minor** (from `*.{i}.*` to `*.{i+1}.0`) : addition of new major features, minor code structure changes without too much impact on the API (backward compatible) -- **major** (from `{i}.*.*` to `{i+1}.0.0`) : major changes in code structure, design, and API, with changes potentially breaking backward compatibility +- **patch** (from `*.*.{i}` to `*.*.{i+1}`): minor modifications, bugfixes, code reformating, small new features, new projects or playgrounds, new tests +- **minor** (from `*.{i}.*` to `*.{i+1}.0`): addition of new major features, minor code structure changes without too much impact on the API (backward compatible) +- **major** (from `{i}.*.*` to `{i+1}.0.0`): major changes in code structure, design, and API, with changes potentially breaking backward compatibility ## Release Pipeline -First, create a `new-release` branch, either on your fork or on the main `pySDC` repo. Then, in on commit : +First, create a `new-release` branch (or choose a similar name), either on your fork or on the main `pySDC` repo. Then, on commit: -1. modify the project version number in `pyproject.toml` -2. modify the documentation release number in `docs/source/conf.py`, and the version number for minor and major release -3. modify the version number and release date in `CITATION.cff` -4. (for minor and major release **only**) add the release description in the `CHANGELOG.md` file +1. modify the project version number and, if necessary, the list of authors in `pyproject.toml` +2. modify the documentation release number in `docs/source/conf.py`, and the version number for minor and major release. Also, if necessary, adapt the list of authors. +3. modify the version number, release date and, if necessary, the list of authors in `CITATION.cff` +4. (for minor and major release **only**) add the release description in the `CHANGELOG.md` file, following the level of details you can find there -Commit with the message : `bump version to x.x.x` where `x.x.x` is the new version. +Commit with the message: `bump version to x.x.x` where `x.x.x` is the new version. Then create a pull request, and once all tests passed, you can `Merge and Squash`, possibly adding your initials as prefix of the final commit message. -> 🔔 Don't forget to delete the `new-release` branch both locally and on your fork (or the main repo) : +> 🔔 Don't forget to delete the `new-release` branch both locally and on your fork (or the main repo): ```bash git push -d origin new-release # delete on remote @@ -31,7 +31,8 @@ git branch -D new-release # delete locally Finally, [draft a new release](https://github.com/Parallel-in-Time/pySDC/releases/new) associated to a new tag `v*.*.*` (with `*.*.*` the new version, and the ` + Create new tag: ... on publish` button). Add a comprehensive summary of the main changes, with appropriate thanks to all the contributors (cf previous releases), and publish it. This will trigger automatically a release update on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.594191) and [PyPI](https://pypi.org/project/pySDC/). +Uploading to [pyPI](https://pypi.org/project/pySDC/) is done manually, ask Robert for support. :arrow_left: [Back to adding Project](./06_new_project.md) --- :arrow_up: [Contributing Summary](./../../CONTRIBUTING.md) --- -:arrow_right: [Next to a cute picture of cat](https://www.vecteezy.com/photo/2098203-silver-tabby-cat-sitting-on-green-background) \ No newline at end of file +:arrow_right: [Next to a cute picture of cat](https://www.vecteezy.com/photo/2098203-silver-tabby-cat-sitting-on-green-background) From d4a8760c3784844dae6b461aad1e6689f9ce43b9 Mon Sep 17 00:00:00 2001 From: Thibaut Lunet Date: Mon, 23 Sep 2024 09:51:50 +0200 Subject: [PATCH 4/8] TL: minor correction on release guide --- docs/contrib/07_release_guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/contrib/07_release_guide.md b/docs/contrib/07_release_guide.md index bf60b80e68..5905e06c70 100644 --- a/docs/contrib/07_release_guide.md +++ b/docs/contrib/07_release_guide.md @@ -30,8 +30,8 @@ git branch -D new-release # delete locally Finally, [draft a new release](https://github.com/Parallel-in-Time/pySDC/releases/new) associated to a new tag `v*.*.*` (with `*.*.*` the new version, and the ` + Create new tag: ... on publish` button). -Add a comprehensive summary of the main changes, with appropriate thanks to all the contributors (cf previous releases), and publish it. This will trigger automatically a release update on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.594191) and [PyPI](https://pypi.org/project/pySDC/). -Uploading to [pyPI](https://pypi.org/project/pySDC/) is done manually, ask Robert for support. +Add a comprehensive summary of the main changes, with appropriate thanks to all the contributors (cf previous releases), and publish it. This will trigger automatically a release update on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.594191). +For uploading the new release on [PyPI](https://pypi.org/project/pySDC/), this is done manually so you'll have to ask [Robert Speck (@pancetta)](https://github.com/pancetta) for support (eventually send him a quick email). :arrow_left: [Back to adding Project](./06_new_project.md) --- :arrow_up: [Contributing Summary](./../../CONTRIBUTING.md) --- From 7236ed00df6ccfa69552490e09221facf19177ae Mon Sep 17 00:00:00 2001 From: Thibaut Lunet Date: Mon, 23 Sep 2024 10:02:25 +0200 Subject: [PATCH 5/8] TL: typo --- docs/contrib/07_release_guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contrib/07_release_guide.md b/docs/contrib/07_release_guide.md index 5905e06c70..3d8ea07a8a 100644 --- a/docs/contrib/07_release_guide.md +++ b/docs/contrib/07_release_guide.md @@ -31,7 +31,7 @@ git branch -D new-release # delete locally Finally, [draft a new release](https://github.com/Parallel-in-Time/pySDC/releases/new) associated to a new tag `v*.*.*` (with `*.*.*` the new version, and the ` + Create new tag: ... on publish` button). Add a comprehensive summary of the main changes, with appropriate thanks to all the contributors (cf previous releases), and publish it. This will trigger automatically a release update on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.594191). -For uploading the new release on [PyPI](https://pypi.org/project/pySDC/), this is done manually so you'll have to ask [Robert Speck (@pancetta)](https://github.com/pancetta) for support (eventually send him a quick email). +For uploading the new release on [PyPI](https://pypi.org/project/pySDC/), this is done manually so you'll have to ask [Robert Speck (@pancetta)](https://github.com/pancetta) for support (ideally send him a quick email). :arrow_left: [Back to adding Project](./06_new_project.md) --- :arrow_up: [Contributing Summary](./../../CONTRIBUTING.md) --- From 8be6bf25bab31e2db7aa2e708c60fc11bc25a7e2 Mon Sep 17 00:00:00 2001 From: Thibaut Lunet Date: Mon, 23 Sep 2024 10:10:45 +0200 Subject: [PATCH 6/8] TL: lighter testing --- .github/workflows/ci_pipeline.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci_pipeline.yml b/.github/workflows/ci_pipeline.yml index dee29be4f4..73f5c1e9b2 100644 --- a/.github/workflows/ci_pipeline.yml +++ b/.github/workflows/ci_pipeline.yml @@ -4,6 +4,9 @@ name: CI pipeline for pySDC on: push: + branches: + - '**' + - '!new-release' pull_request: schedule: - cron: '1 5 * * 1' From 15ebe6d5d6fa3d420826bdf874c1cfc8c9e357d6 Mon Sep 17 00:00:00 2001 From: Thibaut Lunet Date: Mon, 23 Sep 2024 10:17:16 +0200 Subject: [PATCH 7/8] TL: bump version to 5.5.2 --- CITATION.cff | 4 ++-- docs/source/conf.py | 2 +- pyproject.toml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index a10cd41071..b87274cd41 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -30,9 +30,9 @@ authors: affiliation: "Jülich Supercomputing Centre, Forschungszentrum Jülich GmbH, 52425 Jülich, Germany" -version: 5.5.1 +version: 5.5.2 doi: 10.5281/zenodo.594191 -date-released: 2024-09-03 +date-released: 2024-09-23 keywords: - "parallel-in-time" - "spectral deferred corrections" diff --git a/docs/source/conf.py b/docs/source/conf.py index bd401cf16d..9a3eb65f0d 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -72,7 +72,7 @@ # The short X.Y version. version = '5.5' # The full version, including alpha/beta/rc tags. -release = '5.5.1' +release = '5.5.2' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/pyproject.toml b/pyproject.toml index 036464a9ee..3e6e776af1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi" [project] name = 'pySDC' -version = '5.5.1' +version = '5.5.2' description = 'A Python implementation of spectral deferred correction methods and the likes' license = {text = "BSD-2-Clause"} readme = 'README.md' From 645cdc6d62db557bd038bec53f4fc0ee5a673a09 Mon Sep 17 00:00:00 2001 From: Thibaut Lunet Date: Mon, 23 Sep 2024 10:36:57 +0200 Subject: [PATCH 8/8] TL: let's not care --- .github/workflows/ci_pipeline.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci_pipeline.yml b/.github/workflows/ci_pipeline.yml index 73f5c1e9b2..dee29be4f4 100644 --- a/.github/workflows/ci_pipeline.yml +++ b/.github/workflows/ci_pipeline.yml @@ -4,9 +4,6 @@ name: CI pipeline for pySDC on: push: - branches: - - '**' - - '!new-release' pull_request: schedule: - cron: '1 5 * * 1'