From 733f1f0482ac2b4a4749a5ccf9b1fabb50e141b3 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Wed, 16 Aug 2023 16:50:29 +0200 Subject: [PATCH 1/3] webdoc start developer reference --- hugo/content/dev/_index.md | 8 +++ .../devbuild/_index.md => dev/build.md} | 2 +- hugo/content/dev/release.md | 52 +++++++++++++++++++ .../webdoc.md} | 4 +- hugo/content/installation/building/_index.md | 4 +- 5 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 hugo/content/dev/_index.md rename hugo/content/{installation/devbuild/_index.md => dev/build.md} (97%) create mode 100644 hugo/content/dev/release.md rename hugo/content/{howto/contribute-to-documentation.md => dev/webdoc.md} (97%) diff --git a/hugo/content/dev/_index.md b/hugo/content/dev/_index.md new file mode 100644 index 00000000000..bb384e8e221 --- /dev/null +++ b/hugo/content/dev/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Developers' corner" +weight = 100 ++++ + +## Deverlopers' corner + +{{% children %}} diff --git a/hugo/content/installation/devbuild/_index.md b/hugo/content/dev/build.md similarity index 97% rename from hugo/content/installation/devbuild/_index.md rename to hugo/content/dev/build.md index e1b5c1322f5..45e625fae3f 100644 --- a/hugo/content/installation/devbuild/_index.md +++ b/hugo/content/dev/build.md @@ -1,5 +1,5 @@ +++ -title = "Developer build" +title = "Build" weight = 30 +++ diff --git a/hugo/content/dev/release.md b/hugo/content/dev/release.md new file mode 100644 index 00000000000..ffae622b673 --- /dev/null +++ b/hugo/content/dev/release.md @@ -0,0 +1,52 @@ ++++ +title = "Release" +weight = 90 ++++ + +## Release procedure + +#### Test phase + +- Declare feature freeze +- Release new versions of library dependencies (heinz, ff) if they have changed. +- Start release branch +- Update CHANGELOG +- Build packages, and test them + - installation procedures according to webdocs + - run Python scripts + - run GUI session + - import sample from script to GUI +- Start new branch in ba-www, and write release letter (`content/news/release-*.md`) + + +Finalize bornagain (MRs against release branch): +- Finalize CHANGELOG +- CMakeLists.txt +- In hugo/config.toml, update `baseURL`, `release_number` and `version_name` +- Set git tag v`x.y` - reversible freeze + +Finalize ba-www (in fresh release branch): +- Update content/documentation.md +- Update static/js/version_switch +- In config.toml, update `version_mm` +- Add release letter + +Upload installers and wheels (this makes the release irreversible): +- Build installers and wheels for all Python versions +- Installers to www@scgbuild:www/ext/ba/files/`version`.`patch`/ +- Wheels to PyPI + +Publish: +- Create release in Jugit +- In www@scg3:ba: for hotfix, update versioned repository (in subdirectory repo, checkout release branch and run make, make figures etc, hugo); for major release, create new versioned repository +- In www@scg3:www/ba/public, update `latest` and version link +- Merge release branch to ba-www => Docs will automatically be updated + +Inform users +- Mail to BornAgain mailing list +- For major milestones, mail to external mailing lists (neutron, sa_scat [unsigned mails only!]) +- Update "Latest" section on computing.mlz-garching.de + +Create next release branch +- Create branch `rx.y`, push to Jugit +- In Jugit > Settings > Repository > Protected Branches, protect the branch diff --git a/hugo/content/howto/contribute-to-documentation.md b/hugo/content/dev/webdoc.md similarity index 97% rename from hugo/content/howto/contribute-to-documentation.md rename to hugo/content/dev/webdoc.md index fafb4a480f4..4073d04fd8d 100644 --- a/hugo/content/howto/contribute-to-documentation.md +++ b/hugo/content/dev/webdoc.md @@ -1,6 +1,6 @@ +++ -title = "Contribute to this documentation" -weight = 99 +title = "Webdoc" +weight = 70 +++ ## How to contribute to this documentation diff --git a/hugo/content/installation/building/_index.md b/hugo/content/installation/building/_index.md index e6972036160..1a1731bd83f 100644 --- a/hugo/content/installation/building/_index.md +++ b/hugo/content/installation/building/_index.md @@ -5,6 +5,6 @@ weight = 20 ## Building BornAgain from Source - - {{% children %}} + +Developers see [here](/dev/build) for additional instructions. -- GitLab From abe36e5c6b3787983baef905a99cf48cce945d36 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Wed, 16 Aug 2023 16:51:29 +0200 Subject: [PATCH 2/3] CMake version -> 22.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a5780d25ae..b47239ec918 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ include(commons/PreventInSourceBuilds) ### Project settings project(BornAgain - VERSION 21.0 + VERSION 22.0 DESCRIPTION "BornAgain: simulate and fit reflectometry and grazing-incidence scattering." HOMEPAGE_URL https://www.bornagainproject.org LANGUAGES CXX) -- GitLab From e53e9e1fe16d5d4121f85ea4e48bc3c44d9438d2 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Wed, 16 Aug 2023 18:10:07 +0200 Subject: [PATCH 3/3] webdoc/dev release procedure --- hugo/content/dev/release.md | 64 ++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/hugo/content/dev/release.md b/hugo/content/dev/release.md index ffae622b673..468a6c2f465 100644 --- a/hugo/content/dev/release.md +++ b/hugo/content/dev/release.md @@ -7,8 +7,10 @@ weight = 90 #### Test phase +- Decide whether it's a minor or major increment, and set version number in `CMakeLists.txt` +- Decide and set recommended_python_minor in `hugo/hugo.toml` - Declare feature freeze -- Release new versions of library dependencies (heinz, ff) if they have changed. +- Release new versions of library dependencies (heinz, ff) if they have changed - Start release branch - Update CHANGELOG - Build packages, and test them @@ -18,35 +20,61 @@ weight = 90 - import sample from script to GUI - Start new branch in ba-www, and write release letter (`content/news/release-*.md`) +#### Finalize release -Finalize bornagain (MRs against release branch): -- Finalize CHANGELOG -- CMakeLists.txt -- In hugo/config.toml, update `baseURL`, `release_number` and `version_name` -- Set git tag v`x.y` - reversible freeze +- Finalize bornagain (MRs against release branch): + - Finalize CHANGELOG + - In hugo/hugo.toml, update `baseURL`, `release_number`, `version_name`, `url_blob` +- After merger into release branch, set git tag v`x.y` Finalize ba-www (in fresh release branch): +- Finalize release letter - Update content/documentation.md - Update static/js/version_switch -- In config.toml, update `version_mm` -- Add release letter +- In `hugo.toml`, update `version_mm` +- Hold back MR until everything else is ready Upload installers and wheels (this makes the release irreversible): - Build installers and wheels for all Python versions - Installers to www@scgbuild:www/ext/ba/files/`version`.`patch`/ - Wheels to PyPI -Publish: +#### Publish + - Create release in Jugit -- In www@scg3:ba: for hotfix, update versioned repository (in subdirectory repo, checkout release branch and run make, make figures etc, hugo); for major release, create new versioned repository -- In www@scg3:www/ba/public, update `latest` and version link +- As www on @scg3 + ``` + cd ~/ba + cp -pr <old_version>/repo <new_version>/repo; # for hotfix, use extant directory + git fetch --all --prune + git checkout <release_branch> + git pull --all + cd build + cmake .. + make + ctest + make figures + cd ../hugo + hugo + cd ../.. + ln -si repo/hugo/public hugo-public + cd ~/www/ba/public + ln -si /home/www/ba/VERSION/hugo-public VERSION + rm latest + ln -si VERSION latest + ``` - Merge release branch to ba-www => Docs will automatically be updated -Inform users -- Mail to BornAgain mailing list -- For major milestones, mail to external mailing lists (neutron, sa_scat [unsigned mails only!]) -- Update "Latest" section on computing.mlz-garching.de +- Inform users + - Mail to BornAgain mailing list + - For major milestones, mail to external mailing lists (neutron, sa_scat [unsigned mails only!]) + - Update "Latest" section on computing.mlz-garching.de + +#### Continue development -Create next release branch -- Create branch `rx.y`, push to Jugit -- In Jugit > Settings > Repository > Protected Branches, protect the branch +- Merge changes back into `main` + - fork new feature branch from `main` + - merge release branch + - restore "git-main" in `hugo/hugo.toml` + - update version number in `CMakeLists.txt` + - create MR against `main` -- GitLab