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/contributing/core/release.md
+48-44Lines changed: 48 additions & 44 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,24 +25,25 @@ This command includes the following requirements.
25
25
All files mentioned in this list may be written in Markdown or reStructuredText and have the appropriate file name suffix.
26
26
```
27
27
28
-
- All releases must be hosted on PyPI.
29
-
- All versions must be tagged in version control.
30
-
- Each package must have a {file}`README` file with links to the version control repository and issue tracker.
31
-
- {file}`CHANGES` ({file}`docs/HISTORY`) must be always up-to-date and must contain list of functional changes which may affect package users.
32
-
- {file}`CHANGES` must contain release dates.
33
-
- {file}`README` and {file}`CHANGES` must be visible on PyPI.
34
-
- Released eggs must contain generated gettext `.mo` files, but these files must not be committed to the repository.
28
+
-All releases must be hosted on PyPI.
29
+
-All versions must be tagged in version control.
30
+
-Each package must have a {file}`README` file with links to the version control repository and issue tracker.
31
+
-{file}`CHANGES` (or {file}`docs/HISTORY`) must be always up-to-date and must contain list of functional changes which may affect package users.
32
+
-{file}`CHANGES` must contain release dates.
33
+
-{file}`README` and {file}`CHANGES` must be visible on PyPI.
34
+
-Released eggs must contain generated gettext `.mo` files, but these files must not be committed to the repository.
35
35
The `.mo` files can be created with the `zest.pocompile` add-on, which should be installed together with `zest.releaser`.
36
-
-`.gitignore` and `MANIFEST.in` must reflect the files going in to the egg (must include page template, po files).
36
+
-`.gitignore` and `MANIFEST.in` must reflect the files going in to the egg (must include page template and `.po` files).
37
37
38
38
```{seealso}
39
39
[High quality automated package releases for Python with `zest.releaser`](https://opensourcehacker.com/2012/08/14/high-quality-automated-package-releases-for-python-with-zest-releaser/).
40
40
```
41
41
42
+
42
43
## Special packages
43
44
44
45
The Plone Release Team releases the core Plone packages.
45
-
Several others also have the rights to release individual packages on [PyPI](https://pypi.org/).
46
+
Several other people also have the rights to release individual packages on [PyPI](https://pypi.org).
46
47
If you have those rights on your account, you should feel free to make releases.
47
48
48
49
Some packages need special care, or should be done only by specific people, as they know what they are doing.
@@ -54,13 +55,14 @@ These are:
54
55
`plone.app.locales`
55
56
: Please leave this to the i18n team lead, Vincent Fretin.
56
57
58
+
57
59
## Plone core release process checklist
58
60
59
-
1. Check Jenkins status.
60
-
Check the latest Plone coredev job on [Jenkins](https://jenkins.plone.org/).
61
+
1.Check Jenkins status.
62
+
Check the latest Plone coredev job on [Jenkins](https://jenkins.plone.org).
61
63
It should be green, but if it is not, fix the problem first.
62
64
63
-
2. Check out`buildout.coredev`.
65
+
1. Clone`buildout.coredev`, then check out and build the version to be released.
Check all packages for updates, add to or remove from `checkouts.cfg` accordingly.
75
+
1. Check packages for updates.
76
+
Add to or remove from `checkouts.cfg` accordingly.
75
77
This script may help:
76
78
77
79
```shell
@@ -80,48 +82,50 @@ These are:
80
82
81
83
This step should not be needed, because we do the check for every single commit, but people may still have forgotten to add a package to the `checkouts.cfg` file.
82
84
83
-
4. Check packages individually.
85
+
1. Check packages individually.
84
86
85
87
Use the `bin/fullrelease` script from the core development buildout.
86
88
This includes extra checks that we have added in`plone.releaser`.
87
89
It guides you through all the next steps.
88
90
89
-
1. Check changelog.
91
+
1. Check changelog.
90
92
Check if`CHANGES` is up-to-date.
91
93
All changes since the last release should be included.
92
94
A "Fixes" or "New" header should be included, with the relevant changes under it.
93
95
Upgrade notes are best placed here as well.
94
96
Compare `git log HEAD...<LAST_RELEASE_TAG>` with `CHANGES`, or from `zest.releaser` use the command`lasttaglog <optional tag if not latest>`.
95
-
2. Run [pyroma](https://pypi.org/project/pyroma/).
96
-
3. Run [check-manifest](https://pypi.org/project/check-manifest/).
5. Check if the version in`setup.py` is correct and follows our versioning best practice.
99
-
6. Make a release (zest.releaser: `bin/fullrelease`)
100
-
7. Remove packages from auto-checkout section in`checkouts.cfg` and update `versions.cfg`.
101
-
102
-
5. Make sure `plone.app.upgrade` contains an upgrade step for the future Plone release.
103
-
6. Update CMFPlone version in`profiles/default/metadata.xml`.
104
-
7. Create an issue in<https://github.com/collective/plone.app.locales/issues> to ask the i18n team lead @vincentfretin to do a `plone.app.locales` release.
105
-
8. Create a pending release (directory) on [dist.plone.org](https://dist.plone.org/).
106
-
107
-
1. Copy all core packages there.
108
-
2. Possibly make an alpha or beta release of CMFPlone.
109
-
3. Copy the `versions.cfg` file from coredev to there.
110
-
111
-
9. Write an email to the Plone developers list announcing a pending release.
112
-
10. Update `plone.app.locales` version.
113
-
11. Create a unified changelog.
97
+
1. Run [pyroma](https://pypi.org/project/pyroma/).
98
+
1. Run [check-manifest](https://pypi.org/project/check-manifest/).
1. Check if the version in`setup.py` is correct and follows our versioning best practice.
101
+
1. Make a release with `zest.releaser`: `bin/fullrelease`.
102
+
1. Remove packages from the `auto-checkout` section in`checkouts.cfg`, and update `versions.cfg`.
103
+
104
+
1. Make sure `plone.app.upgrade` contains an upgrade step for the future Plone release.
105
+
1. Update CMFPlone version in`profiles/default/metadata.xml`.
106
+
1. Create an issue in https://github.com/collective/plone.app.locales/issues to ask the i18n team lead `@vincentfretin` to do a `plone.app.locales` release.
107
+
1. Create a pending release (directory) on [dist.plone.org](https://dist.plone.org/).
108
+
109
+
1. Copy all core packages there.
110
+
1. Possibly make an alpha or beta release of CMFPlone.
111
+
1. Copy the `versions.cfg` file from coredev to there.
112
+
113
+
1. Write an email to the Plone developers list announcing a pending release.
114
+
1. Create a post on the Plone Community Forum announcing a pending release.
115
+
1. Update `plone.app.locales` version.
116
+
1. Create a unified changelog.
114
117
115
118
```shell
116
119
bin/manage changelog
117
120
```
118
121
119
-
12. Make the final release on [dist.plone.org](https://dist.plone.org/) (remove "-pending")
120
-
13. Update the "-latest" link on [dist.plone.org](https://dist.plone.org/).
121
-
14. For Plone 5.x versions only, create the new release on [Launchpad](https://launchpad.net/plone/).
122
-
15. Create a release page on [plone.org](https://plone.org/download/releases)
123
-
16. Wait for installers to be uploaded to Launchpad, with a link to the [plone.org](https://plone.org/download/releases) release page.
124
-
17. Publish release page on [plone.org](https://plone.org/).
125
-
18. Update [plone.org](https://plone.org/) homepage links to point to the new release.
126
-
19. Send out announcement to the plone-announce email distribution list.
127
-
20. Ask the security team to update the [Hotfixes](https://plone.org/security/hotfixes/) page in the configuration control panel.
122
+
1. Make the final release on [dist.plone.org](https://dist.plone.org/) (remove "-pending")
123
+
1. Update the "-latest" link on [dist.plone.org](https://dist.plone.org/).
124
+
1. For Plone 5.x versions only, create the new release on [Launchpad](https://launchpad.net/plone/).
125
+
1. Create a release page on [plone.org](https://plone.org/download/releases)
126
+
1. Wait for installers to be uploaded to Launchpad, with a link to the [plone.org](https://plone.org/download/releases) release page.
127
+
1. Publish release page on [plone.org](https://plone.org/).
128
+
1. Update [plone.org](https://plone.org/) homepage links to point to the new release.
129
+
1. Send out announcement to the plone-announce email distribution list for the final release.
130
+
1. Create a post on the Plone Community Forum announcing the final release.
131
+
1. Ask the security team to update the [Hotfixes](https://plone.org/security/hotfixes/) page in the configuration control panel.
0 commit comments