Skip to content

Commit 5a4e4f2

Browse files
authored
Merge pull request #300 from mattgoud/update-release-process-902
docs: update release process
2 parents c928b32 + b7470c4 commit 5a4e4f2

File tree

5 files changed

+150
-98
lines changed

5 files changed

+150
-98
lines changed

content/maintainers-guide/processes/release/prestashop/_index.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ aliases:
55
- /maintainers-guide/releasing-prestashop/
66
---
77

8-
# How to release a new PrestaShop version
8+
## How to release a new PrestaShop version
99

1010
This section describes the release process, step by step. A PrestaShop version release requires all these steps to be completed.
1111

12-
## Prerequisites
12+
### Prerequisites
1313

1414
To perform a build, you will need the following:
1515

@@ -22,7 +22,7 @@ To perform a build, you will need the following:
2222
Some of steps will require special tools or access rights which are currently not accessible for maintainers outside the PrestaShop Company. A notice indicates when this is the case.
2323
{{% /notice %}}
2424

25-
## Different types of releases
25+
### Different types of releases
2626

2727
We currently have 4 kind of new releases for PrestaShop:
2828

@@ -33,12 +33,16 @@ We currently have 4 kind of new releases for PrestaShop:
3333

3434
Security patch releases contain security fixes for major security issues. Please read [about them][security-releases].
3535

36-
## Process overview
36+
### Process overview
3737

3838
1. **[Perform preliminary tasks][preliminary-tasks]**: (click to see the full step)
3939

4040
Short summary:
4141

42+
- **Communicate and update GitHub milestone**
43+
44+
- **Freeze development step and create build branch**
45+
4246
- **Update the version number in the Core.**
4347

4448
- **Make sure the default translation catalogue has been updated and pushed to Crowdin.**
@@ -64,7 +68,7 @@ Security patch releases contain security fixes for major security issues. Please
6468
- **Update the Changelog and Contributors list.**
6569
_These files must be included in the build._
6670

67-
- **Push your work into a build branch.**
71+
- **Push your work into the build branch.**
6872
_Allows the base branch to continue receiving merges while your build is being validated._
6973

7074
- **Build and store the zip archive.**
@@ -82,7 +86,7 @@ Security patch releases contain security fixes for major security issues. Please
8286
- **Merge the updated Changelog and Contributors list on GitHub.**
8387

8488
- **Tag the version using Git. Do not push it just yet.**
85-
89+
8690
- **Communicate and push/publish the tag and the release on GitHub.**
8791
_Make sure to link to the PrestaShop SA versions page from the GitHub release description to ease access to the latest built package of PrestaShop_
8892

@@ -110,7 +114,6 @@ Security patch releases contain security fixes for major security issues. Please
110114
[get-composer]: <https://getcomposer.org/>
111115
[nodejs]: <https://nodejs.org/>
112116
[nodejs-requirements]: {{< devdocs "development/compile-assets.md#requirements" >}}
113-
114117
[preliminary-tasks]: {{< relref "preliminary-tasks.md" >}}
115118
[create-build]: {{< relref "create-build.md" >}}
116119
[release-publicly]: {{< relref "release-publicly.md" >}}

content/maintainers-guide/processes/release/prestashop/create-build.md

Lines changed: 40 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,11 @@ aliases:
55
- /maintainers-guide/releasing-prestashop/create-build/
66
---
77

8-
# Create a build package
8+
## Create a build package
99

1010
Once preliminary tasks have been completed, the project is ready to be built.
1111

12-
## 1. Communicate
13-
14-
Starting this step means that the Development phase of this release is over.
15-
16-
Before you go further, make sure to **tick the "Development" box** in the Release Tracker GitHub issue (there is one per version, see the [1.7.6.6 example][release-tracker-issue]).
17-
18-
## 2. Create a local branch for your build
19-
20-
The following tasks will require you to perform changes and submit them as a Pull Request.
21-
22-
* **Clone the project** on your computer using Git (only if you don't already have a local copy of the repository).
23-
24-
```shell
25-
git clone [email protected]:PrestaShop/PrestaShop.git
26-
```
27-
28-
* **Make sure that you switch to the appropriate branch** regarding the version you'll be building (e.g. you must be on branch 1.7.7.x if you're building a 1.7.7 release).
29-
30-
* **Make sure your branch is up-to-date with upstream.** Especially if you already had a local clone of the repository.
31-
32-
* **Create a local branch for your work.** Keep it! You will need to go back to it later.
33-
34-
## 3. Merge any not-yet merged security fixes into your branch
12+
### 1. Merge any not yet merged security fixes into your branch
3513

3614
To avoid disclosing security issues before the version is released, security Pull Request are merged in GitHub _after_ the build has been validated. In order to include them in your build, you need to retrieve them manually and merge them in your local branch.
3715

@@ -44,9 +22,9 @@ If this release includes security PRs:
4422
If there are security PRs to be merged, they are fixing minor security issues. Otherwise, a security release would have been done instead.
4523
{{% /notice %}}
4624

47-
## 4. Update the Changelog & Contributors list
25+
### 2. Update the Changelog & Contributors list
4826

49-
### Extract list of changes and contributors using the changelog tool
27+
#### Extract list of changes and contributors using the changelog tool
5028

5129
{{% notice warning %}}
5230
**This step requires special rights.**
@@ -59,38 +37,41 @@ After this step, you should obtain two files:
5937
- the Changelog file – including a list of all the merged Pull Requests. Make sure to keep this file, you'll need it later.
6038
- the New Contributors file – a list of all the people who contributed code for this version for their first time.
6139

62-
### Update the project's files
40+
#### Update the project's files
6341

6442
- Add the contents of the changelog at the top of PrestaShop's [Changelog file][changelog-file].
6543
- Update PrestaShop's [Contributors file][contributors-file] by adding the new contributors. Keep the alphabetical order.
6644
- Commit your changed files with following message: "// Changelog [version]"
6745

68-
## 5. Push your work into a build branch
46+
### 3. Push your work into the build branch
47+
48+
{{% notice %}}
49+
**As reminder**
50+
51+
Your branch must follow this scheme: `[version]-build` (for example: "9.0.2-build")
52+
{{% /notice %}}
6953

7054
The build branch helps other people verify your work, and allows the base branch to continue receiving merges while your build is being validated.
7155

7256
If your build is rejected because of a bug, the fixes will have to be merged into your build branch, instead of the base branch.
7357

74-
### If the branch does not contain security fixes
58+
#### If the branch does not contain security fixes
7559

76-
- Push your changes to a new branch in the public repository.
77-
Name your branch following this scheme: `[version]-build` (for example: "1.7.8.1-build")
78-
- Create a new pull request to merge your changes. If you're lost, see [this example](https://github.com/PrestaShop/PrestaShop/pull/20032) from the 1.7.6.6 release.
60+
- Push your changes to the new build branch in the public repository.
61+
- Create a new pull request to merge your changes. If you're lost, see [this example](https://github.com/PrestaShop/PrestaShop/pull/40227) from the 9.0.2 release.
7962

8063
{{% notice warning %}}
81-
**Make sure your PR is not merged accidentally!**
64+
**Make sure your PR is not merged accidentally!**
8265

8366
The build must be validated before the PR can be merged.
8467
{{% /notice %}}
8568

86-
87-
### If the branch contains security fixes
88-
69+
#### If the branch contains security fixes
8970

9071
- Push your local branch into a private repository, in order to avoid disclosing the security bugs.
9172
- Share access to your private repository with other maintainers so that they can verify your work.
9273

93-
## 6. Build the ZIP archive
74+
### 4. Build the ZIP archive (OS version)
9475

9576
Use the [Release Creator CLI script][release-creator-readme] included with PrestaShop's sources to create the ZIP archive.
9677

@@ -119,9 +100,9 @@ By default, the release package will create two files in a new subdirectory in `
119100

120101
As an optional step, consider downloading the latest stable release package and compare the contents of the zip archives to look for suspicious changes.
121102

122-
## 7. Archive your build
103+
### 5. Archive your OS version
123104

124-
### Rename files
105+
#### Rename files
125106

126107
Rename both files according to our naming convention:
127108

@@ -130,6 +111,7 @@ prestashop_<version>-[beta.<beta number>|rc.<rc number>]+build.<build number>.<z
130111
```
131112

132113
{{% callout %}}
114+
133115
##### Examples
134116

135117
* `prestashop_1.7.4.0-beta.1+build.1.zip` – First build of beta 1
@@ -146,34 +128,44 @@ When the beta testing phase is over, we build one Release Candidate (example: `p
146128
For patch versions, the beta and RC phase can be skipped (example: `prestashop_1.7.4.1+build.1.zip`)
147129
{{% /callout %}}
148130

149-
### Upload files to the archive
131+
#### Upload files to the archive
150132

151133
{{% notice warning %}}
152134
**This step requires special rights.**
153135

154-
Send both ZIP and XML files to a maintainer from the PrestaShop Company with access to the Archive Drive to perform this step. If the branch does not contain security fixes, the maintainer must share publicly the ZIP file.
136+
Upload both ZIP and XML files to the Archive Google Drive.
137+
138+
{{% /notice %}}
139+
140+
### 6. Build a Classic Version
141+
142+
{{% notice warning %}}
143+
**This notion documentation requires special rights.**
144+
145+
Go to [Create a Classic Edition](https://www.notion.so/prestashopcorp/Create-a-Classic-Edition-2c45d6cf071f80789babe11c1b379899) page for more information about
146+
the internal tool **smb_edition_builder** and follow the different steps in the "Build Process for PrestaShop Classic Edition" section only.
155147
{{% /notice %}}
156148

157-
## 8. Communicate and wait for QA validation
149+
### 7. Communicate and wait for QA validation
158150

159-
At this point, the build process is over.
151+
At this point, the OS build process is over.
160152

161153
- Make sure the build files have been submitted to the QA team.
162-
- **Update the Release Tracker GitHub issue**. Tick the "Build" box, and add a comment to announce that the build has been submitted to QA ([see example][example-build-comment]).
154+
- **Update the Release Tracker GitHub issue**. Tick the "Build" box, and add a comment to announce that the build has been submitted to QA ([see example][example-build-comment]).
163155
- Wait for QA to validate the build.
164156

165-
### If the QA rejects the build
157+
#### If the QA rejects the build
166158

167159
In case the QA team finds blocking defects in the build, then these issues _must_ be fixed and merged before the branch can be built again.
168160

169-
- **Communicate** that the build validation has failed by updating the Release Tracker GitHub issue.
161+
- **Communicate** that the build validation has failed by updating the Release Tracker GitHub issue.
170162
- **Fix the issues** or wait for them to be fixed and merged in the **build** branch you created above _(and **NOT** in the base branch!)_.
171163
- **Repeat the build process from the top**. Make sure that you have checked out the head of the updated version branch.
172164

173-
Once the QA has greenlighted the build, you can move on to publishing the version.
165+
Once the QA has greenlighted the build, you can move on to [final steps][final-steps] for publishing Classic Editon.
174166

175-
[release-tracker-issue]: https://github.com/PrestaShop/PrestaShop/issues/19959
176167
[changelog-file]: https://github.com/PrestaShop/PrestaShop/blob/develop/docs/CHANGELOG.txt
177168
[contributors-file]: https://github.com/PrestaShop/PrestaShop/blob/develop/CONTRIBUTORS.md
178169
[release-creator-readme]: https://github.com/PrestaShop/PrestaShop/blob/develop/tools/build/README.md
179170
[example-build-comment]: https://github.com/PrestaShop/PrestaShop/issues/19959#issuecomment-651685219
171+
[final-steps]: {{< relref "final-steps.md" >}}

content/maintainers-guide/processes/release/prestashop/create-version-branch.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ aliases:
55
- /maintainers-guide/releasing-prestashop/create-version-branch/
66
---
77

8-
# Create a new branch for a new major/minor version.
8+
## Create a new branch for a new major/minor version.
99

10-
11-
### 1) Create the new branch and push it to the main repo
10+
### 1. Create the new branch and push it to the main repo
1211

1312
Create the branch on you local git and push it to the main repository. You will need to push it to the main repository and not to your fork.
1413

15-
### 2) Open PRs based on the new branch and modify those files:
14+
### 2. Open PRs based on the new branch and modify those files:
1615

1716
To create the new branch, we need to update several repositories to complete the necessary work.
1817

@@ -39,7 +38,6 @@ Below is a list of repositories with modified files for creating the `9.0.x` bra
3938

4039
- src/App/Command/SlackNotifierCommand.php
4140

42-
4341
`PrestaShop/prestashop.github.io`: ( no PR needed this time )
4442

4543
- data/tags.yml (make sure the tag doesn't exists already)
@@ -61,4 +59,3 @@ The QA Automation Team should update the following repositories:
6159
- .github/workflows/test-sanity.yml
6260
- .github/workflows/test-with-prebuilt-shop.yml
6361
- .github/workflows/pr_test_single_campaign.yml
64-

content/maintainers-guide/processes/release/prestashop/final-steps.md

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ aliases:
55
- /maintainers-guide/releasing-prestashop/final-steps/
66
---
77

8-
# Final steps
8+
## Final steps
99

10-
## 1. Update API stream for Update Assistant
10+
### 1. Update API stream for Update Assistant
11+
12+
#### 1.1 Distribution API
1113

1214
{{% notice note %}}
1315
**This should only be done for stable releases.**
@@ -18,7 +20,8 @@ _(i.e. if not for betas and RCs)._
1820
Additional changes must be brought to the [Distribution API repository](https://github.com/PrestaShop/distribution-api) to provide the best experience on the Update Assistant module:
1921

2022
- Add in the file [releaseNotes.json](https://github.com/PrestaShop/distribution-api/blob/main/resources/json/releaseNotes.json) the new version and the link to its release notes,
21-
- Update the file [autoupgrade.json](https://github.com/PrestaShop/distribution-api/blob/main/public/json/autoupgrade.json) to make the new release available for update.
23+
24+
- Verify that the file [autoupgrade.json](https://github.com/PrestaShop/distribution-api/blob/main/public/json/autoupgrade.json) has been updated by the team in charge of autoupgrade to make the new release available for update.
2225
If you needed to release a new version of the module Update Assistant, update the `autoupgrade_recommended` property as well.
2326
You may have to create a new entry if the new Update Assistant is compliant with a range of PrestaShop version that is unrelated to the existing ones.
2427

@@ -30,13 +33,30 @@ Once this step is done and your changes have been merged, update the Release Tra
3033
_Please verify the contents of https://api.prestashop-project.org/autoupgrade. You might need to wait for the cache to be cleared._
3134
{{% /notice %}}
3235

36+
#### 1.2 Legacy API
37+
3338
{{% notice note %}}
34-
**API migration.**
39+
**API migration in progress**
40+
41+
_Update Assistant is using the Distribution API since the version 7.1. But some steps still need to be performed on the old API (only available from people of PrestaShop SA with specific rights)._
42+
{{% /notice %}}
43+
44+
See the internal notion page [Update API stream for 1-click upgrade][stash-api] and follow the different steps.
45+
46+
### 2. Deployment of the Classic edition
47+
48+
{{% notice warning %}}
49+
**This notion documentation requires special rights.**
3550

36-
_Update Assistant is using the Distribution API since the version 7.1. Before that, it was using an API only available from people of PrestaShop SA with specific rights._
51+
Go to [Create a Classic Edition](https://www.notion.so/prestashopcorp/Create-a-Classic-Edition-2c45d6cf071f80789babe11c1b379899) page for more information about
52+
the internal tool **smb_edition_builder** and follow the different steps in the "Deployment" section.
3753
{{% /notice %}}
3854

39-
## 2. Create Docker images for the new version
55+
### 3. Create Docker images for the new version
56+
57+
{{% notice note %}}
58+
**This part is normally no longer necessary and is now automated.**
59+
{{% /notice %}}
4060

4161
* Checkout the [project][docker-repository], install the project and create a new branch
4262
* Modify the file `versions.py` to add the new version and the related php matrix compatibility
@@ -52,44 +72,44 @@ It may take a few hours for the images to be updated.
5272

5373
You can update the Release Tracker GitHub issue: step "Docker image" is done.
5474

55-
## 3. Go through the checklist
75+
### 3. Go through the checklist
5676

5777
* Check the PrestaShop localization packs are correct (only needed for major and minor releases):
5878

59-
- [Repository](https://github.com/PrestaShop/TranslationFiles/tree/master/1.7/translations/)
60-
- [Example download link](https://i18n.prestashop-project.org/translations/8.1.0/es-ES/es-ES.zip) (replace 8.1.1 with the version you just released)
61-
79+
- [Repository](https://github.com/PrestaShop/TranslationFiles/tree/master/1.7/translations/)
80+
- [Example download link](https://i18n.prestashop-project.org/translations/8.1.0/es-ES/es-ES.zip) (replace 8.1.1 with the version you just released)
81+
6282
* Check the Distribution API content for fresh installs is correct:
63-
64-
- https://api.prestashop-project.org/prestashop features the latest release and its details are correct,
65-
- https://api.prestashop-project.org/assets/prestashop/8.1.1/prestashop.xml lists the archive contents with the checksum of each file in it (replace 8.1.1 with the version you just released),
66-
- https://api.prestashop-project.org/modules/8.1.1 features the right modules, and informations are correct (replace 8.1.1 with the version you just released),
67-
- https://api.prestashop-project.org/autoupgrade shows the release among one or several compatibility range of Update Assistant (provided you allow updates to this version).
83+
84+
- https://api.prestashop-project.org/prestashop features the latest release and its details are correct,
85+
- https://api.prestashop-project.org/assets/prestashop/8.1.1/prestashop.xml lists the archive contents with the checksum of each file in it (replace 8.1.1 with the version you just released),
86+
- https://api.prestashop-project.org/modules/8.1.1 features the right modules, and informations are correct (replace 8.1.1 with the version you just released),
87+
- https://api.prestashop-project.org/autoupgrade shows the release among one or several compatibility range of Update Assistant (provided you allow updates to this version).
88+
6889
* Check that the release note has been published on the [Build Blog](https://build.prestashop-project.org)
6990
* Check that the latest release has an available docker image on the [Docker repository][docker-repository]
7091
* For 1.7.x releases, check the Addons API content for fresh installs is correct (replace 1.7.6.0 with the version you just released):
71-
72-
- [Native modules](http://api-addons.prestashop.com?format=json&iso_lang=en&iso_code=FR&version=1.7.6.0&method=listing&action=native)
73-
- [Pushed modules](http://api-addons.prestashop.com?format=json&iso_lang=en&iso_code=FR&version=1.7.6.0&method=listing&action=install-modules)
92+
93+
- [Native modules](http://api-addons.prestashop.com?format=json&iso_lang=en&iso_code=FR&version=1.7.6.0&method=listing&action=native)
94+
- [Pushed modules](http://api-addons.prestashop.com?format=json&iso_lang=en&iso_code=FR&version=1.7.6.0&method=listing&action=install-modules)
7495

7596
* Check that if you try to install PrestaShop 1.7.5 from the archive, the installer suggests you install the latest version instead
7697

77-
## 4. Store the ZIP archive
98+
### 4. Store the ZIP archive
7899

79100
Submit a Pull Request to add the ZIP archive to the [Archives repository](https://github.com/PrestaShop/zip-archives).
80101

81-
## 5. Improve the process
102+
### 5. Improve the process
82103

83104
If during the process you encountered issues or there was some information not 100% clear, please improve this process documentation.
84105

85-
86106
{{% notice tip %}}
87107
**Congratulations!**
88108

89109
The release is now complete, you can close the Release Tracker GitHub issue.
90110
{{% /notice %}}
91111

92112
[docker-repository]: https://github.com/PrestaShop/docker
93-
[docker-hub-prestashop]: https://hub.docker.com/r/prestashop/prestashop/
113+
[stash-api]: https://www.notion.so/prestashopcorp/Update-API-stream-for-1-click-upgrade-d547202bbc814407860c134ae01b3b32
94114
[docker-release-pr-example]: https://github.com/PrestaShop/docker/pull/287
95115
[docker-generate-doc]: https://github.com/PrestaShop/docker/blob/master/HOW-TO-USE.md

0 commit comments

Comments
 (0)