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