You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/releasing.md
+91-13
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ geekdocFilePath: releasing.md
10
10
11
11
## Releasing ownCloud Web
12
12
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.
14
14
15
15
### Versioning
16
16
@@ -20,18 +20,96 @@ The highest type before a new release determines the version update number, so i
20
20
21
21
### Release Guide
22
22
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
32
24
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
34
50
35
-
For oCIS the release assets need to be updated.
36
51
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