Releasing
Releasing ownCloud Web
ownCloud Web can be hosted standalone for a dedicated oCIS backend or bundled as part of oCIS.
Versioning
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.
Release Guide
Releasing a New Major 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
Releasing a New Minor or Patch Version
-
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
Backporting Bug/Security Fixes Into Older Versions
-
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