From 6be4574f6ad251a24763209c5d9319cb6780c543 Mon Sep 17 00:00:00 2001 From: Dennis Hendriks Date: Sun, 17 Apr 2022 14:42:37 +0200 Subject: [PATCH 1/3] #356 Updated development/release process documentation. --- .../development/development-process.asciidoc | 7 +- .../development/release-process.asciidoc | 71 +++++++++++++++---- 2 files changed, 63 insertions(+), 15 deletions(-) diff --git a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/development-process.asciidoc b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/development-process.asciidoc index b20c383f5..1906e3320 100644 --- a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/development-process.asciidoc +++ b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/development-process.asciidoc @@ -232,7 +232,12 @@ This may also be necessary if Jenkins seems stuck while _Checking pipeline statu ** Ensure the last commit to the merge request is built, to allow merging the merge request. -* The branch is merged and removed. +* Merge the branch: + +** Make sure the _Delete source branch_ option is selected. + +** Wait for the builds on Jenkins to successfully complete and press _Merge_. +Alternatively, press _Merge when pipeline succeeds_ to automatically merge the merge request once the build succeeds. * If the branch fully addressed the associated issue or issues, it/they should be closed. diff --git a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc index 292d3d173..282419e95 100644 --- a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc +++ b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc @@ -73,7 +73,7 @@ Replace `vN.N` by the version, e.g. `v0.1`, `v0.1.1` or `v1.0`. ** For _Title_ enter the version, e.g. `v0.1`, `v0.1.1` or `v1.0`. ** For _Description_ enter `See also https://projects.eclipse.org/projects/technology.escet/releases/N.N.`. -Replace `N.N` by the actual release record version, `0.1`, `0.1.1` or `1.0`. +Replace `N.N` by the actual release record version, e.g. `0.1`, `0.1.1` or `1.0`. ** For _Start date_ select the first day after the _Due date_ of the previous version. @@ -81,6 +81,27 @@ Replace `N.N` by the actual release record version, `0.1`, `0.1.1` or `1.0`. ** Click _Create milestone_. +* Create release issues: + +** Go to https://gitlab.eclipse.org/eclipse/escet/escet/-/milestones. + +** Sign in with your Eclipse Foundation account using the link at the top-right of the page. + +** Click _New issue_. + +** For _Title_ enter `Release vN.N-M1`. +Replace `N.N` by the actual release record version, e.g. `0.1`, `0.1.1` or `1.0`. + +** For _Milestone_ select the just created GitLab milestone. + +** For _Labels_ select _RelEng_ and _Type::Enhancement_. + +** Click _Create issue_. + +** Repeat these steps to create issues for the release candidate (`Release vN.N-RC1`) and final release (`Release vN.N`). + +** If a <>, create an issue for that as well (`Release review for vN.N`). + [[development-release-process-prepare-git-repo-for-next-version]] === Preparing Git repository for a next version @@ -190,13 +211,27 @@ See e.g. https://www.eclipse.org/lists/escet-dev/msg00091.html (mail also sent t To perform a release (milestone, release candidate, or final release), i.e. actually release it, follow these steps: -* Create a GitLab merge request from `develop` to `master`, and name it after the release. -Since `master` is a protected branch for the Eclipse ESCET GitLab, a GitLab merge request is the only way to update it. +* Merge `develop` to `master`: -* Ensure the merge request is successfully <>. -Then merge the merge request. +** Since `master` is a protected branch for the Eclipse ESCET GitLab, a GitLab merge request is the only way to update it. -* Check that the build on `master` succeeds in Jenkins. +** Create a GitLab merge request from `develop` to `master`. + +** For _Title_ enter `#NNN develop to master for vN.N`. +Replace `#NNN` by the relevant issue number. +Replace `N.N` by the release version, e.g. `1.0-M1`, `1.0-RC1` or `1.0`. + +** Replace the automatically generated but incomplete _Description_ by `Addresses #NNN`. +Replace `#NNN` by the relevant issue number. + +** For _Milestone_ select the relevant milestone. + +** For _Labels_ select _RelEng_ and _Type::Enhancement_. + +** Click _Create merge request_. + +** Wait for the <> to successfully complete and press _Merge_. +Alternatively, press _Merge when pipeline succeeds_ to automatically merge the merge request once the build succeeds. * Add a tag on the commit in `master` that is to be released. Only version tags with a specific syntax will be picked up by Jenkins to be released. @@ -220,16 +255,17 @@ Jenkins will then automatically build and release a new version from that tag. * All releases are available at https://download.eclipse.org/escet/. For a version `v0.1`, the downloads will be located at `\https://download.eclipse.org/escet/v0.1`. -+ -Note that according to the Eclipse Foundation Wiki page link:https://wiki.eclipse.org/IT_Infrastructure_Doc[IT Infrastructure Doc], "Once your files are on the `download.eclipse.org` server, they are immediately available to the general public. + +** End users should however be referred to https://eclipse.org/escet/download.html instead of to `download.eclipse.org`. +The buttons on this web page serve downloads via a mirror script. +This ensures that a nearby mirror is selected, for faster downloads. +It also ensures that downloads are counted in the download statistics. +Furthermore, it transparently handles files moved from `download.eclipse.org` to `archive.eclipse.org`. + +** According to the Eclipse Foundation Wiki page link:https://wiki.eclipse.org/IT_Infrastructure_Doc[IT Infrastructure Doc], "Once your files are on the `download.eclipse.org` server, they are immediately available to the general public. However, for release builds, we ask that you wait at least four hours for our mirror sites to fetch the new files before linking to them. It typically takes a day or two for all the mirror sites to synchronize with us and get new files." -+ -That same wiki page also notes that "Although you can link directly to `download.eclipse.org/yourfile.zip`, you can also use the _Find a Mirror_ script [...]. -Using this script allows you to view download statistics and allows users to pick a nearby mirror site for their download." -It further indicates that "P2 repositories are not normally accessed via the mirror selection script." -The _Find a Mirror_ script also transparently handles files moved from `download.eclipse.org` to `archive.eclipse.org`. -End users should thus be referred to https://eclipse.org/escet/download.html instead of to `download.eclipse.org`, to ensure the mirror script is used for faster downloads and to ensure downloads count in the download statistics. +Immediately after the downloads being available, downloading them may thus be slower, even if the mirror script is used. * Jenkins will automatically push the website for the new release to the website Git repository, in a directory for the specific release. For a version `v0.1`, the website can be accessed at `\https://eclipse.org/escet/v0.1`. @@ -276,6 +312,13 @@ Depending on browser cache settings and other factors, it may be necessary to fo * Remove/archive old releases: +** For every release (including milestones and release candidates), remove the builds for all previously built tags. +In Jenkins, while logged in, go to link:https://ci.eclipse.org/escet/job/ESCET%20build/view/tags/[]. +Select the tag name in the _Name_ column to go the tags page. +There, on the left, the various builds are indicated by `#n`, with `n` some number. +In the drop down menu of a build, select `Delete build #n` to remove it. +When asked to confirm, click _Yes_. + ** For every release (not a milestone or release candidate), remove all milestones and release candidates of the previous version and older. E.g. for `v0.2`, remove `v0.1-M1`, `v0.1-M2`, `v0.1-RC1`, etc. Also archive all releases older than the current and previous release. -- GitLab From d877e9cd36a188909f1f3e78c3e992114cdff613 Mon Sep 17 00:00:00 2001 From: Dennis Hendriks Date: Sun, 17 Apr 2022 14:55:36 +0200 Subject: [PATCH 2/3] #356 Some further additions to the release process documentation. --- .../development/release-process.asciidoc | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc index 282419e95..1f19e37a4 100644 --- a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc +++ b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc @@ -310,6 +310,50 @@ If successful you should see the changes at the Git server's web view, at https: The standard visible website can be accessed at `https://eclipse.org/escet`. Depending on browser cache settings and other factors, it may be necessary to force refresh your browser for it to pick up the changes on the server. +* Inform others about the new release: + +** In the relevant GitLab issue, for final releases, post the following comment, where `N.N` is to be replaced by the actual release version, e.g. `0.1` or `1.0`: ++ +[source] +---- +I just released vN.N: + +- https://eclipse.org/escet/ +- https://eclipse.org/escet/download.html +- https://eclipse.org/escet/release-notes.html + +And here are the permalinks: + +- https://eclipse.org/escet/vN.N +- https://eclipse.org/escet/vN.N/download.html +- https://eclipse.org/escet/vN.N/release-notes.html + +Note that mirrors may still need to sync, so downloads may be a bit slower until then. +---- + +** In the relevant GitLab issue, for milestones and release candidates, post the following comment, where `N.N-NNN` is to be replaced by the actual release version, e.g. `0.1-M1` or `1.0-RC1`: ++ +[source] +---- +I just released vN.N-NNN: + +- https://eclipse.org/escet/vN.N-NNN +- https://eclipse.org/escet/vN.N-NNN/download.html +- https://eclipse.org/escet/vN.N-NNN/release-notes.html + +Note that mirrors may still need to sync, so downloads may be a bit slower until then. +---- + +** Also send an email to the <> with similar content. + +* Clean up after the release: + +** Close the GitLab issue for the release. + +** For a final release, ensure all issues in the GitLab milestone are closed. + +** For a final release, close the GitLab milestone. + * Remove/archive old releases: ** For every release (including milestones and release candidates), remove the builds for all previously built tags. -- GitLab From f85e9d1d2af3494741d0b8576a7cdfebadc68513 Mon Sep 17 00:00:00 2001 From: Dennis Hendriks Date: Thu, 21 Apr 2022 21:37:08 +0200 Subject: [PATCH 3/3] #356 Release process documentation: addressed review comments. --- .../asciidoc/development/release-process.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc index 1f19e37a4..45a775133 100644 --- a/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc +++ b/releng/org.eclipse.escet.releng.dev.documentation/asciidoc/development/release-process.asciidoc @@ -83,7 +83,7 @@ Replace `N.N` by the actual release record version, e.g. `0.1`, `0.1.1` or `1.0` * Create release issues: -** Go to https://gitlab.eclipse.org/eclipse/escet/escet/-/milestones. +** Go to https://gitlab.eclipse.org/eclipse/escet/escet/-/issues. ** Sign in with your Eclipse Foundation account using the link at the top-right of the page. @@ -256,7 +256,7 @@ Jenkins will then automatically build and release a new version from that tag. * All releases are available at https://download.eclipse.org/escet/. For a version `v0.1`, the downloads will be located at `\https://download.eclipse.org/escet/v0.1`. -** End users should however be referred to https://eclipse.org/escet/download.html instead of to `download.eclipse.org`. +** End users should however be referred to https://eclipse.org/escet/download.html instead of `download.eclipse.org`. The buttons on this web page serve downloads via a mirror script. This ensures that a nearby mirror is selected, for faster downloads. It also ensures that downloads are counted in the download statistics. -- GitLab