Skip to content

Commit 9ab0d5a

Browse files
LukasHirtmmattel
andcommitted
docs: update release process and add oCIS Web update steps
Co-authored-by: Martin <[email protected]>
1 parent 154f2ef commit 9ab0d5a

File tree

1 file changed

+91
-13
lines changed

1 file changed

+91
-13
lines changed

Diff for: docs/releasing.md

+91-13
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ geekdocFilePath: releasing.md
1010

1111
## Releasing ownCloud Web
1212

13-
OwnCloud Web can be hosted standalone for a dedicated oCIS backend or bundled as part of oCIS.
13+
ownCloud Web can be hosted standalone for a dedicated oCIS backend or bundled as part of oCIS.
1414

1515
### Versioning
1616

@@ -20,18 +20,96 @@ The highest type before a new release determines the version update number, so i
2020

2121
### Release Guide
2222

23-
1. Create a branch `release-$version` in <https://github.com/owncloud/web>.
24-
2. Create a folder in `changelog` for the release version and date `mkdir $major.$minor.$patchVersion_YYYY-MM-DD`.
25-
3. Move all changelog items from the `changelog/unreleased/` folder to the `$major.$minor.$patchVersion_YYYY-MM-DD` folder.
26-
4. Run `./dev/scripts/bump_versions.sh $version`. This script will bump the `package.json` files in all relevant packages.
27-
5. Commit and push your changes.
28-
6. 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.
29-
7. After merging, wait for the CI to run on the merge commit.
30-
8. Go to the [Releases section](https://github.com/owncloud/web/releases) and click "Draft a new Release".
31-
9. The release artifacts will be created automatically.
23+
#### Releasing a New Major Version
3224

33-
### Next steps
25+
1. Checkout the latest `stable-$major` branch\
26+
This branch will be used as the base for the new major version branch.\
27+
Replace `$major` with the **last** released major version.
28+
2. Create a new branch `stable-$major`.\
29+
Replace `$major` with the **new** major version.
30+
3. Push the newly created `stable-$major` branch
31+
4. Create and checkout a new branch `chore/bump-version-$major.$minor.$patch` using the branch from previous step as base\
32+
Replace `$major`, `$minor` and `$patch` with the new version.
33+
5. Cherry pick all required changes from `master` into the current branch
34+
6. Create a new sub-folder in the `/changelog/` folder using the release version and current date `mkdir $major.$minor.$patch_$YYYY-MM-DD`\
35+
Replace `$major`, `$minor` and `$patch` with the new version and `$YYYY-MM-DD` with the current date in the format `YYYY-MM-DD`.
36+
7. Move all changelog items from the `/changelog/unreleased/` folder into the `$major.$minor.$patch_$YYYY-MM-DD` folder created in the previous step
37+
8. Run `make l10n-pull` to pull the translations\
38+
This command will pull the latest translations from Transifex into the current branch and saves them in the `/packages/*/l10n/` folders.
39+
9. Run `make l10n-write` to write the translations\
40+
This command will use translations pulled in the previous step and writes them to the `/packages/*/l10n/translations.json` files.
41+
10. Run `./dev/scripts/bump_versions.sh $major.$minor.$patch`.\
42+
This script will bump the `package.json` files in all relevant packages and the sonar cloud project version\
43+
Replace `$major`, `$minor` and `$patch` with the new version.
44+
11. Commit and push your changes.
45+
12. Create a PR with tag `[full-ci]` in the title at the beginning to merge the `chore/bump-version-$major.$minor.$patch` branch into the new `stable-$major` branch
46+
13. After merging, checkout the new `stable-$major` branch again
47+
14. Run `./dev/scripts/create_and_push_tags.sh`\
48+
This script will create and push tags for the main app as well as all packages that need to be released
49+
15. The GitHub release will be created automatically together with the release artifacts
3450

35-
For oCIS the release assets need to be updated.
3651

37-
<!-- TODO: add reference to docs on how to update Web in oCIS -->
52+
#### Releasing a New Minor or Patch Version
53+
54+
1. Checkout the latest `stable-$major` branch\
55+
This branch will be used as the base for the bump version branch.\
56+
Replace the `$major` with the last released major version.
57+
2. Create a new branch `chore/bump-version-$major.$minor.$patch`\
58+
Replace `$major`, `$minor` and `$patch` with the new version.
59+
3. Cherry pick all required changes from `master` into the current branch
60+
4. Create a new sub-folder in the `/changelog/` folder using the release version and current date `mkdir $major.$minor.$patch_$YYYY-MM-DD`\
61+
Replace `$major`, `$minor` and `$patch` with the new version and `$YYYY-MM-DD` with the current date in the format `YYYY-MM-DD`.
62+
5. Move all changelog items from the `/changelog/unreleased/` folder into the `$major.$minor.$patch_$YYYY-MM-DD` folder created in previous step
63+
6. Run `make l10n-pull` to pull the translations\
64+
This command will pull the latest translations from Transifex into the current branch and saves them in the `/packages/*/l10n/` folders.
65+
7. Run `make l10n-write` to write the translations\
66+
This command will use translations pulled in previous step and writes them to the `/packages/*/l10n/translations.json` files.
67+
8. Run `./dev/scripts/bump_versions.sh $major.$minor.$patch`.\
68+
This script will bump the `package.json` files in all relevant packages and the sonar cloud project version\
69+
Replace the `$major`, `$minor` and `$patch` with the new version.
70+
9. Commit and push your changes.
71+
10. Create a PR with tag `[full-ci]` in the title at the beginning to merge the `chore/bump-version-$major.$minor.$patch` branch into the latest `stable-$major` branch
72+
11. After merging, checkout the latest `stable-$major` branch again
73+
12. Run `./dev/scripts/create_and_push_tags.sh`\
74+
This script will create and push tags for the main app as well as all packages that need to be released
75+
13. The GitHub release will be created automatically together with the release artifacts
76+
77+
#### Backporting Bug/Security Fixes Into Older Versions
78+
79+
1. Checkout the target `stable-$major` branch\
80+
This branch will be used as the base for the new minor version branch.\
81+
Replace `$major` with the target released major version.
82+
2. Create a new branch `stable-$major.$minor`.\
83+
Replace the `$major` and `$minor` with the new version.
84+
3. Push the newly created `stable-$major.$minor` branch
85+
4. Create a new branch `chore/bump-version-$major.$minor.$patch` using the branch from previous step as base\
86+
Replace the `$major`, `$minor` and `$patch` with the new version.
87+
5. Cherry pick all required changes from `master` into the current branch
88+
6. Create a new sub-folder in the `/changelog/` folder using the release version and current date `mkdir $major.$minor.$patch_$YYYY-MM-DD`\
89+
Replace the `$major`, `$minor` and `$patch` with the new version and `$YYYY-MM-DD` with the current date in the format `YYYY-MM-DD`.
90+
7. Move all changelog items from the `/changelog/unreleased/` folder into the `$major.$minor.$patch_$YYYY-MM-DD` folder created in previous step
91+
8. Run `make l10n-pull` to pull the translations\
92+
This command will pull the latest translations from Transifex into the current branch and saves them in the `/packages/*/l10n/` folders.
93+
9. Run `make l10n-write` to write the translations\
94+
This command will use translations pulled in previous step and writes them to the `/packages/*/l10n/translations.json` files.
95+
10. Run `./dev/scripts/bump_versions.sh $major.$minor.$patch`.\
96+
This script will bump the `package.json` files in all relevant packages and the sonar cloud project version\
97+
Replace `$major`, `$minor` and `$patch` with the new version.
98+
11. Commit and push your changes.
99+
12. Create a PR with tag `[full-ci]` in the title at the beginning to merge the `chore/bump-version-$major.$minor.$patch` branch into the new `stable-$major.$minor` branch
100+
13. After merging, checkout the new `stable-$major.$minor` branch again
101+
14. Run `./dev/scripts/create_and_push_tags.sh`\
102+
This script will create and push tags for the main app as well as all packages that need to be released
103+
15. The GitHub release will be created automatically together with the release artifacts
104+
105+
### Update Web in oCIS
106+
107+
1. In the [oCIS repository](https://github.com/owncloud/ocis), checkout the `master` branch
108+
2. Create a new branch `chore/bump-web-to-$major.$minor.$patch`\
109+
Replace `$major`, `$minor` and `$patch` with the released Web version.
110+
3. In `.drone.env`, update `WEB_COMMITID` to the commit id of the Web release tag
111+
4. In `.drone.env`, update `WEB_BRANCH` to the Web release stable branch
112+
5. In `services/web/Makefile`, update `WEB_ASSETS_VERSION` to the Web release version
113+
6. Add a new `enhancement` changelog item into the `/changelog/unreleased/` folder with the changelog from the Web release and link to the GitHub release
114+
7. Commit and push your changes
115+
8. Create a PR with tag `[full-ci]` in the title at the beginning to merge the `chore/bump-web-to-$major.$minor.$patch` branch into the master branch

0 commit comments

Comments
 (0)