This procedure makes release of software and documentation (published on https://fedbiomed.org
).
Both are contained in this repository.
Release principle: follow the gitflow release workflow. Can use git
commands (see example below) or git-flow
commands
-
it is recommended to use a fresh clone of the repository to avoid any side effect
-
checkout to
develop
branch, sync your local clone with remote
git checkout develop
git pull --prune
- check that the CI for
develop
builds correctly (github checks) - set the release version tag for the release (or use this tag directly in commands)
export RELEASE_TAG=v4.4.0
- fork a
release/$RELEASE_TAG
branch fromdevelop
, and checkout therelease/$RELEASE_TAG
branch
git checkout -b release/$RELEASE_TAG
- in the
release/$RELEASE_TAG
branch, do the release time updates:CHANGELOG.md
fedbiomed/common/constants.py
: change__version__
- add new version news in documentation
- in the
release
branch, commit the release time updates
git commit -a
- push the updated
release/$RELEASE_TAG
git push origin release/$RELEASE_TAG
-
in github create a pull request for
release/$RELEASE_TAG
tomaster
- one can auto-assign the PR, and doesn't need a review for this PR
-
after checks successfully complete, please review the checks logs
-
create a version tag for the release
git tag -a $RELEASE_TAG
-
push the tag to the remote
git push origin $RELEASE_TAG
-
do the merge
- pushing to master triggers the build action for documentation main pages such as
pages
,support
,news
. - check carefully the logs of the build pipeline in
Publish MASTER fedbiomed/fedbiomed.github.io
https://github.com/fedbiomed/fedbiomed/actions/workflows/doc-github-io-main-build.yml
- pushing to master triggers the build action for documentation main pages such as
-
if merge conflicts occur, solve them
-
check that the documentation pipeline completes successfully
- new version of documentation is published after a new version tag is pushed. This action builds documentation related contents which are located in
docs/getting-started
,docs/user-guide
,docs/developer
,docs/tutorials
. Publish NEW TAG in fedbiomed/fedbiomed.github.io
https://github.com/fedbiomed/fedbiomed/actions/workflows/doc-github-io-version-build.yml builds correctly- review carefully the log details for the build
- new version of documentation is published after a new version tag is pushed. This action builds documentation related contents which are located in
-
browse a few pages in the new documentation on
https://fedbiomed.org
to verify it works as expected -
optionally sync your local clone of
master
with new version of remote
git checkout master
git pull -p
- since the release branch was merged into
master
, it was deleted on remote. There are two options for restoring the branch:- either in github, go to the closed PR (the one opened for
master
) and click on "Restore branch." - or checkout the
release/$RELEASE_TAG
branch and push it again to re-create on the remotegit checkout release/$RELEASE_TAG git push origin release/$RELEASE_TAG
- either in github, go to the closed PR (the one opened for
- in github create a pull request for
release/$RELEASE_TAG
todevelop
- one can auto-assign the PR, and doesn't need a review for this PR
- after checks complete, please review the checks logs
- do the merge
- if merge conflicts occur, solve them
- delete the (local) release branch
git checkout develop
git branch -d release/$RELEASE_TAG
A hotfix is a patch that is added as a new version patch without changing the API or adding new features, when it can't wait for the next release to be corrected. To apply a hotfix, follow these steps:
This procedure makes hotfix of software and documentation (published on https://fedbiomed.org
).
Both are contained in this repository.
Release principle: follow the gitflow hotfix workflow. Can use git
commands (see example below) or git-flow
commands
-
it is recommended to use a fresh clone of the repository to avoid any side effect
-
checkout to
master
branch (Warning: hotfix are not created fromdevelop
!), sync your local clone with remotegit checkout master git pull --prune
-
check that the CI for
master
builds correctly (github checks) -
choose a name (eg
521-short-description
) for the issue and assign it to$HOTFIX_NAME
export HOTFIX_NAME=521-short-description
-
set the hotfix version tag for the release (or use this tag directly in commands).For example, if the previous version was
v4.4.0
, it becomesv4.4.1
.export HOTFIX_TAG=v4.4.1
-
fork a
hotfix/$HOTFIX_NAME
branch frommaster
, and checkout thehotfix/$HOTFIX_NAME
branchgit checkout -b hotfix/$HOTFIX_NAME
-
apply the changes for the hotfix
-
in the
hotfix/$HOTFIX_NAME
branch, do the hotfix time updates:CHANGELOG.md
fedbiomed/common/constants.py
: change__version__
-
in the
hotfix
branch, commit the hotfix time updatesgit commit -a
-
push the updated
hotfix/$HOTFIX_NAME
git push origin hotfix/$HOTFIX_NAME
-
in github create a pull request for
hotfix/$HOTFIX_NAME
tomaster
- one can auto-assign the PR, but a reviewer should approve it before merging (different from a release where the code in the PR was already reviewed !)
-
after checks successfully complete, please review the checks logs
-
create a version tag for the hotfix
git tag -a $HOTFIX_TAG
-
push the tag to the remote
git push origin $HOTFIX_TAG
-
do the merge
- pushing to master triggers the build action for documentation main pages such as
pages
,support
,news
. - check carefully the logs of the build pipeline in
Publish MASTER fedbiomed/fedbiomed.github.io
https://github.com/fedbiomed/fedbiomed/actions/workflows/doc-github-io-main-build.yml
- pushing to master triggers the build action for documentation main pages such as
-
if merge conflicts occur, solve them
-
check that the documentation pipeline completes successfully
- new version of documentation is published after a new version tag is pushed. This action builds documentation related contents which are located in
docs/getting-started
,docs/user-guide
,docs/developer
,docs/tutorials
. Publish NEW TAG in fedbiomed/fedbiomed.github.io
https://github.com/fedbiomed/fedbiomed/actions/workflows/doc-github-io-version-build.yml builds correctly- review carefully the log details for the build
- new version of documentation is published after a new version tag is pushed. This action builds documentation related contents which are located in
-
browse a few pages in the new documentation on
https://fedbiomed.org
to verify it works as expected -
optionally sync your local clone of
master
with new version of remotegit checkout master git pull -p
-
since the hotfix branch was merged into
master
, it was deleted on remote. There are two options for restoring the branch:-
either in github, go to the closed PR (the one opened for
master
) and click on "Restore branch." -
or checkout the
hotfix/$HOTFIX_NAME
branch and push it again to re-create on the remotegit checkout hotfix/$HOTFIX_NAME git push origin hotfix/$HOTFIX_NAME
-
-
in github create a pull request for
hotfix/$HOTFIX_NAME
todevelop
- one can auto-assign the PR, and doesn't need a review for this PR
-
after checks complete, please review the checks logs
-
do the merge
-
if merge conflicts occur, solve them
- delete the (local) release branch
git checkout develop git branch -d hotfix/$HOTFIX_NAME
The changes in website that do not affect User documentation
part are also considered as hotfix. These modifications involve:
- Adding news or updating their content
- Adding new items to front page (button, boxes, description, new section)
- Adding new pages (These are pages NOT related to user documentation such as
About Us
,Roadmap
etc.) - Adding new items for footer area
- Changing contents of static pages About us, Contributors etc.
- Front-End issues broken layout etc.
However, since these modifications don't contain any changes in the Fed-BioMed source code, it is not considered as code patch. It means after applying the changes new version tag SHOULD NOT BE pushed. The process flow is the same as hotfix
except that one doesn't push a new tag.
Also, for publishing a news or a doc fix, a review by a third party is not mandatory.
- Create a new branch
hotfix/$HOTFIX_NAME
from themaster
branch. - Apply your web-site related changes (please make sure that you change files only in
docs
directory). - Create a pull request (PR) to merge the hotfix branch into the
master
branch and wait for all the checks to pass. - Merge
hotfix
branch also intodevelop
branch. You can follow the instructions that are explained in hotfix section