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: content/maintainers-guide/processes/release/prestashop/_index.md
+10-7Lines changed: 10 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,11 +5,11 @@ aliases:
5
5
- /maintainers-guide/releasing-prestashop/
6
6
---
7
7
8
-
# How to release a new PrestaShop version
8
+
##How to release a new PrestaShop version
9
9
10
10
This section describes the release process, step by step. A PrestaShop version release requires all these steps to be completed.
11
11
12
-
## Prerequisites
12
+
###Prerequisites
13
13
14
14
To perform a build, you will need the following:
15
15
@@ -22,7 +22,7 @@ To perform a build, you will need the following:
22
22
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.
23
23
{{% /notice %}}
24
24
25
-
## Different types of releases
25
+
###Different types of releases
26
26
27
27
We currently have 4 kind of new releases for PrestaShop:
28
28
@@ -33,12 +33,16 @@ We currently have 4 kind of new releases for PrestaShop:
33
33
34
34
Security patch releases contain security fixes for major security issues. Please read [about them][security-releases].
35
35
36
-
## Process overview
36
+
###Process overview
37
37
38
38
1.**[Perform preliminary tasks][preliminary-tasks]**: (click to see the full step)
39
39
40
40
Short summary:
41
41
42
+
-**Communicate and update GitHub milestone**
43
+
44
+
-**Freeze development step and create build branch**
45
+
42
46
-**Update the version number in the Core.**
43
47
44
48
-**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
64
68
-**Update the Changelog and Contributors list.**
65
69
_These files must be included in the build._
66
70
67
-
-**Push your work into a build branch.**
71
+
-**Push your work into the build branch.**
68
72
_Allows the base branch to continue receiving merges while your build is being validated._
69
73
70
74
-**Build and store the zip archive.**
@@ -82,7 +86,7 @@ Security patch releases contain security fixes for major security issues. Please
82
86
-**Merge the updated Changelog and Contributors list on GitHub.**
83
87
84
88
-**Tag the version using Git. Do not push it just yet.**
85
-
89
+
86
90
-**Communicate and push/publish the tag and the release on GitHub.**
87
91
_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_
88
92
@@ -110,7 +114,6 @@ Security patch releases contain security fixes for major security issues. Please
Once preliminary tasks have been completed, the project is ready to be built.
11
11
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).
***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
35
13
36
14
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.
37
15
@@ -44,9 +22,9 @@ If this release includes security PRs:
44
22
If there are security PRs to be merged, they are fixing minor security issues. Otherwise, a security release would have been done instead.
45
23
{{% /notice %}}
46
24
47
-
## 4. Update the Changelog & Contributors list
25
+
### 2. Update the Changelog & Contributors list
48
26
49
-
### Extract list of changes and contributors using the changelog tool
27
+
####Extract list of changes and contributors using the changelog tool
50
28
51
29
{{% notice warning %}}
52
30
**This step requires special rights.**
@@ -59,38 +37,41 @@ After this step, you should obtain two files:
59
37
- the Changelog file – including a list of all the merged Pull Requests. Make sure to keep this file, you'll need it later.
60
38
- the New Contributors file – a list of all the people who contributed code for this version for their first time.
61
39
62
-
### Update the project's files
40
+
####Update the project's files
63
41
64
42
- Add the contents of the changelog at the top of PrestaShop's [Changelog file][changelog-file].
65
43
- Update PrestaShop's [Contributors file][contributors-file] by adding the new contributors. Keep the alphabetical order.
66
44
- Commit your changed files with following message: "// Changelog [version]"
67
45
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 %}}
69
53
70
54
The build branch helps other people verify your work, and allows the base branch to continue receiving merges while your build is being validated.
71
55
72
56
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.
73
57
74
-
### If the branch does not contain security fixes
58
+
####If the branch does not contain security fixes
75
59
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.
79
62
80
63
{{% notice warning %}}
81
-
**Make sure your PR is not merged accidentally!**
64
+
**Make sure your PR is not merged accidentally!**
82
65
83
66
The build must be validated before the PR can be merged.
84
67
{{% /notice %}}
85
68
86
-
87
-
### If the branch contains security fixes
88
-
69
+
#### If the branch contains security fixes
89
70
90
71
- Push your local branch into a private repository, in order to avoid disclosing the security bugs.
91
72
- Share access to your private repository with other maintainers so that they can verify your work.
92
73
93
-
## 6. Build the ZIP archive
74
+
### 4. Build the ZIP archive (OS version)
94
75
95
76
Use the [Release Creator CLI script][release-creator-readme] included with PrestaShop's sources to create the ZIP archive.
96
77
@@ -119,9 +100,9 @@ By default, the release package will create two files in a new subdirectory in `
119
100
120
101
As an optional step, consider downloading the latest stable release package and compare the contents of the zip archives to look for suspicious changes.
121
102
122
-
## 7. Archive your build
103
+
### 5. Archive your OS version
123
104
124
-
### Rename files
105
+
####Rename files
125
106
126
107
Rename both files according to our naming convention:
*`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
146
128
For patch versions, the beta and RC phase can be skipped (example: `prestashop_1.7.4.1+build.1.zip`)
147
129
{{% /callout %}}
148
130
149
-
### Upload files to the archive
131
+
####Upload files to the archive
150
132
151
133
{{% notice warning %}}
152
134
**This step requires special rights.**
153
135
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.
155
147
{{% /notice %}}
156
148
157
-
## 8. Communicate and wait for QA validation
149
+
### 7. Communicate and wait for QA validation
158
150
159
-
At this point, the build process is over.
151
+
At this point, the OS build process is over.
160
152
161
153
- 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]).
163
155
- Wait for QA to validate the build.
164
156
165
-
### If the QA rejects the build
157
+
####If the QA rejects the build
166
158
167
159
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.
168
160
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.
170
162
-**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!)_.
171
163
-**Repeat the build process from the top**. Make sure that you have checked out the head of the updated version branch.
172
164
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.
@@ -18,7 +20,8 @@ _(i.e. if not for betas and RCs)._
18
20
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:
19
21
20
22
- 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.
22
25
If you needed to release a new version of the module Update Assistant, update the `autoupgrade_recommended` property as well.
23
26
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.
24
27
@@ -30,13 +33,30 @@ Once this step is done and your changes have been merged, update the Release Tra
30
33
_Please verify the contents of https://api.prestashop-project.org/autoupgrade. You might need to wait for the cache to be cleared._
31
34
{{% /notice %}}
32
35
36
+
#### 1.2 Legacy API
37
+
33
38
{{% 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.**
35
50
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.
37
53
{{% /notice %}}
38
54
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 %}}
40
60
41
61
* Checkout the [project][docker-repository], install the project and create a new branch
42
62
* 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.
52
72
53
73
You can update the Release Tracker GitHub issue: step "Docker image" is done.
54
74
55
-
## 3. Go through the checklist
75
+
###3. Go through the checklist
56
76
57
77
* Check the PrestaShop localization packs are correct (only needed for major and minor releases):
-[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
+
62
82
* 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
+
68
89
* Check that the release note has been published on the [Build Blog](https://build.prestashop-project.org)
69
90
* Check that the latest release has an available docker image on the [Docker repository][docker-repository]
70
91
* 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):
0 commit comments