Releasing
ownCloud Web can be hosted standalone for a dedicated oCIS backend or bundled as part of oCIS.
We follow the Semantic Versioning scheme. Therefore, each change is of one of the possible types: Bugfix, Change, Enhancement, Security.
The highest type before a new release determines the version update number, so if it’s only Bugfix and Security changes the next release will be a PATCH version bump, if there’s at least one Enhancement within the changes this leads to a MINOR version bump, while Change type changes make for a new MAJOR release version.
- Checkout the latest
stable-$majorbranch
This branch will be used as the base for the new major version branch.
Replace$majorwith the last released major version. - Create a new branch
stable-$major.
Replace$majorwith the new major version. - Push the newly created
stable-$majorbranch - Create and checkout a new branch
chore/bump-version-$major.$minor.$patchusing the branch from previous step as base
Replace$major,$minorand$patchwith the new version. - Cherry pick all required changes from
masterinto the current branch - Create a new sub-folder in the
/changelog/folder using the release version and current datemkdir $major.$minor.$patch_$YYYY-MM-DD
Replace$major,$minorand$patchwith the new version and$YYYY-MM-DDwith the current date in the formatYYYY-MM-DD. - Move all changelog items from the
/changelog/unreleased/folder into the$major.$minor.$patch_$YYYY-MM-DDfolder created in the previous step - Run
make l10n-pullto pull the translations
This command will pull the latest translations from Transifex into the current branch and saves them in the/packages/*/l10n/folders. - Run
make l10n-writeto write the translations
This command will use translations pulled in the previous step and writes them to the/packages/*/l10n/translations.jsonfiles. - Run
./dev/scripts/bump_versions.sh $major.$minor.$patch.
This script will bump thepackage.jsonfiles in all relevant packages and the sonar cloud project version
Replace$major,$minorand$patchwith the new version. - Commit and push your changes.
- Create a PR with tag
[full-ci]in the title at the beginning to merge thechore/bump-version-$major.$minor.$patchbranch into the newstable-$majorbranch - After merging, checkout the new
stable-$majorbranch again - Run
./dev/scripts/create_and_push_tags.sh
This script will create and push tags for the main app as well as all packages that need to be released - The GitHub release will be created automatically together with the release artifacts
- Checkout the latest
stable-$majorbranch
This branch will be used as the base for the bump version branch.
Replace the$majorwith the last released major version. - Create a new branch
chore/bump-version-$major.$minor.$patch
Replace$major,$minorand$patchwith the new version. - Cherry pick all required changes from
masterinto the current branch - Create a new sub-folder in the
/changelog/folder using the release version and current datemkdir $major.$minor.$patch_$YYYY-MM-DD
Replace$major,$minorand$patchwith the new version and$YYYY-MM-DDwith the current date in the formatYYYY-MM-DD. - Move all changelog items from the
/changelog/unreleased/folder into the$major.$minor.$patch_$YYYY-MM-DDfolder created in previous step - Run
make l10n-pullto pull the translations
This command will pull the latest translations from Transifex into the current branch and saves them in the/packages/*/l10n/folders. - Run
make l10n-writeto write the translations
This command will use translations pulled in previous step and writes them to the/packages/*/l10n/translations.jsonfiles. - Run
./dev/scripts/bump_versions.sh $major.$minor.$patch.
This script will bump thepackage.jsonfiles in all relevant packages and the sonar cloud project version
Replace the$major,$minorand$patchwith the new version. - Commit and push your changes.
- Create a PR with tag
[full-ci]in the title at the beginning to merge thechore/bump-version-$major.$minor.$patchbranch into the lateststable-$majorbranch - After merging, checkout the latest
stable-$majorbranch again - Run
./dev/scripts/create_and_push_tags.sh
This script will create and push tags for the main app as well as all packages that need to be released - The GitHub release will be created automatically together with the release artifacts
- Checkout the target
stable-$majorbranch
This branch will be used as the base for the new minor version branch.
Replace$majorwith the target released major version. - Create a new branch
stable-$major.$minor.
Replace the$majorand$minorwith the new version. - Push the newly created
stable-$major.$minorbranch - Create a new branch
chore/bump-version-$major.$minor.$patchusing the branch from previous step as base
Replace the$major,$minorand$patchwith the new version. - Cherry pick all required changes from
masterinto the current branch - Create a new sub-folder in the
/changelog/folder using the release version and current datemkdir $major.$minor.$patch_$YYYY-MM-DD
Replace the$major,$minorand$patchwith the new version and$YYYY-MM-DDwith the current date in the formatYYYY-MM-DD. - Move all changelog items from the
/changelog/unreleased/folder into the$major.$minor.$patch_$YYYY-MM-DDfolder created in previous step - Run
make l10n-pullto pull the translations
This command will pull the latest translations from Transifex into the current branch and saves them in the/packages/*/l10n/folders. - Run
make l10n-writeto write the translations
This command will use translations pulled in previous step and writes them to the/packages/*/l10n/translations.jsonfiles. - Run
./dev/scripts/bump_versions.sh $major.$minor.$patch.
This script will bump thepackage.jsonfiles in all relevant packages and the sonar cloud project version
Replace$major,$minorand$patchwith the new version. - Commit and push your changes.
- Create a PR with tag
[full-ci]in the title at the beginning to merge thechore/bump-version-$major.$minor.$patchbranch into the newstable-$major.$minorbranch - After merging, checkout the new
stable-$major.$minorbranch again - Run
./dev/scripts/create_and_push_tags.sh
This script will create and push tags for the main app as well as all packages that need to be released - The GitHub release will be created automatically together with the release artifacts
- In the oCIS repository, checkout the
masterbranch - Create a new branch
chore/bump-web-to-$major.$minor.$patch
Replace$major,$minorand$patchwith the released Web version. - In
.drone.env, updateWEB_COMMITIDto the commit id of the Web release tag - In
.drone.env, updateWEB_BRANCHto the Web release stable branch - In
services/web/Makefile, updateWEB_ASSETS_VERSIONto the Web release version - Add a new
enhancementchangelog item into the/changelog/unreleased/folder with the changelog from the Web release and link to the GitHub release - Commit and push your changes
- Create a PR with tag
[full-ci]in the title at the beginning to merge thechore/bump-web-to-$major.$minor.$patchbranch into the master branch