Skip to content

Commit 947035a

Browse files
fballianorhoerr
andauthored
Added documentation on how to build a new MageOS release (#197)
* Start * work * Update README.md * Update README.md * Update README.md * Added announcement section; corrected brand name --------- Co-authored-by: Ryan Hoerr <rhoerr@users.noreply.github.com>
1 parent bdd9d68 commit 947035a

File tree

1 file changed

+73
-3
lines changed

1 file changed

+73
-3
lines changed

README.md

Lines changed: 73 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ docker build -t magece/mirror-repo-js .
125125

126126
## Process of building a new mirror release
127127

128-
A new mirror release gets created when Magento releases a new version.
128+
A new mirror release gets created when Magento releases a new version.
129129
The process is composed of a series of steps across 3 repositories of the mage-os organization.
130130

131131
### 0. Preliminary check
@@ -166,7 +166,7 @@ For a practical example [check this PR](https://github.com/mage-os/magento2-base
166166
(it only happens when a new "non patch" release is published, like 2.4.8).
167167
- Now "build" the project with
168168
- In the root of the project: `npm install`
169-
- In the supported-version folder: `npm run build
169+
- In the supported-version folder: `npm run build`
170170
- Edit `src/kind/get-currently-supported.spec.ts`
171171
- Run `npm run test` and make sure that all tests are green.
172172
- Commit, push and open a PR on mage-os/github-actions.
@@ -199,10 +199,80 @@ Then go to the _actions_ for this repo: and run the
199199
selecting the new dev branch and the rest of the parameters as shown in this image:
200200
<img width="323" src="https://github.com/user-attachments/assets/31eb1eaf-5c2a-4d0b-8475-9e9f7c9239a8" />
201201

202-
203202
For a practical example [check this PR](https://github.com/mage-os/generate-mirror-repo-js/pull/191)
204203
and [this second one to merge the temporary dev branch into `main`](https://github.com/mage-os/generate-mirror-repo-js/pull/194).
205204

205+
## Process of building a new Mage-OS release
206+
207+
### 1. github-actions
208+
209+
- Fork and clone https://github.com/mage-os/github-actions,
210+
then create a new branch that you'll use to create a pull request.
211+
- Update the supported versions matrix editing
212+
[src/versions/mage-os/individual.json](https://github.com/mage-os/github-actions/blob/main/supported-version/src/versions/mage-os/individual.json).
213+
Remember that, when inserting a new version like 1.0.6, you´ll have to change the _end of life_
214+
date of the previous version (1.0.5) to _one day earlier_ of the release date of the next version.
215+
[Check this example commit](https://github.com/mage-os/github-actions/pull/263/commits/79c0bf654462288ccff7aae572b3a24e89e3256b)
216+
- Check if `mage-os/composite.json` needs updating.
217+
- Now "build" the project with
218+
- In the root of the project: `npm install`
219+
- In the supported-version folder: `npm run build`
220+
- Edit `src/kind/get-currently-supported.spec.ts`
221+
- Run `npm run test` and make sure that all tests are green.
222+
- Commit, push and open a PR on mage-os/github-actions.
223+
224+
For a practical example [check this PR](https://github.com/mage-os/github-actions/pull/263).
225+
226+
### 2. Generate a test release
227+
228+
Execute the [Build, deploy & check Release](https://github.com/mage-os/generate-mirror-repo-js/actions/workflows/build-mageos-release.yml)
229+
on the [generate-mirror-repo-js](https://github.com/mage-os/generate-mirror-repo-js), use these parameters as reference:
230+
231+
<img width="309" src="https://github.com/user-attachments/assets/34e2d5cf-175b-4f7a-98c4-26d2fc460e9e" />
232+
233+
**Important**:
234+
- select the "preview" URL/folder in the first two combobox
235+
- fill the version numbers and **do not** check the "push new release tag to repos"
236+
237+
After the workflow has finished, you can go https://preview-repo.mage-os.org and check that everything is ok, you should also
238+
install the newly generated version with `composer create-project --repository-url=https://preview-repo.mage-os.org/ mage-os/project-community-edition`
239+
and check that everything is ok before tagging the official release.
240+
241+
242+
### 3. Generate the official release
243+
244+
Execute the [Build, deploy & check Release](https://github.com/mage-os/generate-mirror-repo-js/actions/workflows/build-mageos-release.yml)
245+
on the [generate-mirror-repo-js](https://github.com/mage-os/generate-mirror-repo-js), use these parameters as reference:
246+
247+
<img width="310" src="https://github.com/user-attachments/assets/e6ae22f7-ad77-4017-a9ac-74224e14b82b" />
248+
249+
**Important**:
250+
- select the production URL/folder in the first two combobox (the ones without the "preview" prefix)
251+
- fill the version numbers and check the "push new release tag to repos"
252+
253+
After the workflow has finished, you can go https://repo.mage-os.org and check that everything is ok, you should also
254+
install the newly generated version with `composer create-project --repository-url=https://repo.mage-os.org/ mage-os/project-community-edition`
255+
before announcing the release.
256+
257+
### 3. Update generate-mirror-repo-js
258+
259+
- Fork and clone https://github.com/mage-os/generate-mirror-repo-js,
260+
then create a new branch that you'll use to create a pull request.
261+
- Create `resource/history/mage-os/product-community-edition/VERSIONNUMBER.js` and `resource/history/mage-os/project-community-edition/VERSIONNUMBER.js`
262+
simply copying the previous ones and updating the numbering inside.
263+
- Install the newly released version with `composer create-project --repository-url=https://repo.mage-os.org/ mage-os/project-community-edition`
264+
- Create `resource/history/mage-os/magento2-base/VERSIONNUMBER.js` copying the base composer.json file
265+
(from `project-community-edition/vendor/mage-os/magento2-base/composer.json` folder).
266+
- Create a PR with only the thre json files [like this one](https://github.com/mage-os/generate-mirror-repo-js/pull/196).
267+
268+
### 4. Announce the release
269+
270+
- Go to https://github.com/mage-os/mageos-magento2/tags and open the new tag
271+
- Click 'Create release from tag' to create a GitHub release
272+
- Update the release info based on the Mage-OS pull requests and contributors ([see an example](https://github.com/mage-os/mageos-magento2/releases/tag/1.0.5))
273+
- Create a Wordpress update post on mage-os.org, based on [an existing release post](https://mage-os.org/releases/release-mage-os-distribution-1-0-5/), with the new release info incorporated.
274+
- Share the new release info on Discord #announcements and LinkedIn.
275+
206276
## Copyright 2022 Vinai Kopp, Mage-OS
207277

208278
Distributed under the terms of the 3-Clause BSD Licence.

0 commit comments

Comments
 (0)