Skip to content

Commit ecc9e73

Browse files
authored
Merge pull request #6266 from kit-ty-kate/2.3-improve-release
[2.3 backport] Reorder the release steps
2 parents 2578cba + a39a559 commit ecc9e73

File tree

2 files changed

+57
-49
lines changed

2 files changed

+57
-49
lines changed

release/readme.md

+23-49
Original file line numberDiff line numberDiff line change
@@ -8,86 +8,60 @@
88
* run `make tests`, `opam-rt` [checked by github actions]
99
* update the CHANGE file: take `master_changes.md` content to fill it
1010

11-
## Windows setup
12-
13-
* From the "release" directory (where this here readme.md file should be)...
14-
* Download Windows 10 English International 64bit from https://www.microsoft.com/en-gb/software-download/windows10ISO
15-
* Run qemu-img create -f qcow2 Windows-10-x86_64.qcow2 32G
16-
* Run qemu-system-x86_64 -cdrom Win10_22H2_EnglishInternational_x64v1.iso -drive file=Windows-10-x86_64.qcow2 -smp 8 -m 6G -net nic -net user,restrict=on -machine q35
17-
* Install Windows. Everything stays as default except:
18-
* Click "I don’t have a product key"
19-
* Choose "Windows 10 Pro"
20-
* Click "Custom: ..." not "Upgrade: ..."
21-
* This will take an hour or so
22-
* Select the default keyboard then wait some more
23-
* Upon restart:
24-
* no online account
25-
* yes, i want the limited experience
26-
* username: opam
27-
* password: password
28-
* 3 hints: just random or something
29-
* no location
30-
* no find my device
31-
* no improve inking & typing
32-
* send required diagnostic data
33-
* no advertising ID
34-
* no cortana
35-
* Open gpedit.msc and right-click on "Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update -> Configure Automatic Updates", click Edit and in the new window click on Enabled and then select "2. Notify for download and auto install", click Apply and then Ok.
36-
* Start -> Power off
37-
* Run qemu-system-x86_64 -drive file=Windows-10-x86_64.qcow2 -smp 8 -m 6G -machine q35
38-
* Answer yes to the "would you like to be discoverable on the network" prompt
39-
* Open the Settings app
40-
* "System -> Power & Sleep" and select "Never" on the "When plugged in, turn off after" drop-down menu
41-
* Put the slider on "Best performance"
42-
* search for "Add an optional feature", then search for "OpenSSH" and install "OpenSSH Server"
43-
* Run services.msc
44-
* Double-click OpenSSH SSH Server then select Automatic from the Startup drop-down menu
45-
* Click Ok
46-
* Shutdown the computer using the startmenu button
47-
4811
## Github release
4912

5013
[ once bump version & changes PRs merged ]
5114
* tag the release (git tag -am 2.2.0 2.2.0; git push origin 2.2.0)
15+
* on an alpha1, create a branch `x.y` and push it
5216
* /!\ Once the tag pushed, it can be updated [different commit] only in case of severe issue
5317
* create a release (or prerelease if intermediate release) draft on github based on your tag (https://github.com/ocaml/opam/releases/new)
18+
* add releases notes (content of `master_changes.md`) in the release draft
19+
20+
## Prepare blog posts
21+
22+
* propose the release draft for review
23+
* prepare the blog entry in opam.ocaml.org and propose it for review
24+
* prepare the announcement on discuss.ocaml.org and propose it for review
25+
26+
## Pre-built binaries creation
27+
28+
* If you do not have `Windows-10-x86_64.qcow2` already, read the instruction in the `windows.md` file
29+
* Make sure your macOS system, Docker installation and brew packages are up-to-date
5430
* Make sure the repository is in the correct state: `git switch --detach <tag>`
5531
* launch docker using the Docker GUI macOS app
5632
* generate opam artifacts, using `release/release.sh <tag>` from a macOS/arm64 machine, it requires to have Docker and QEMU installed (see below device requirements)
5733
* generate the signatures using `release/sign.sh <tag>`
58-
* add releases notes (content of `master_changes.md`) in the release draft
59-
* upload everything from `release/out/<tag>`
60-
* finalise the release (publish)
34+
* upload everything from `release/out/<tag>` in the release draft
6135

6236
## Publish the release
6337

64-
* add hashes in `install.sh` (and check signatures)
38+
* finalise the release (publish)
39+
* add hashes in `install.sh` and `install.ps1` (and check signatures)
6540
* bring the changes to the changelog (CHANGES) from the branch of the release to the `master` branch
66-
* publish opam packages in opam-repository (and add `flags: avoid-version` and `available: opam-version >= "2.1.0"` to each packages if this is not a stable version)
41+
* publish opam packages in opam-repository (use `opam publish --pre-release` if this is not a stable version)
6742
* update versions (and messages, if necessary) in https://github.com/ocaml/opam-repository/blob/master/repo
6843

6944
## Announce!
7045

71-
* a blog entry in opam.ocaml.org
72-
* a announcement in discuss.ocaml.org
46+
* publish the blog entry in opam.ocaml.org
47+
* wait until the blog post is online
48+
* publish the announcement in discuss.ocaml.org
7349
* update the link to the discuss post in the blog post
50+
* update the link to the blog post in the release note
7451
* copy the blog entry from opam.ocaml.org for https://github.com/ocaml/ocaml.org/tree/main/data/changelog/opam
7552
* announce the release on the OCaml Discord server
7653

77-
7854
## After release
7955

56+
* Remove the milestone that has just been released and create a new milestone for the next version
8057
* Bump the version with a `~dev` at the end (e.g. `2.2.0~alpha~dev`)
8158
* Check if reftests needs an update
8259

83-
### On a release candidate
84-
* create a branch to a `x.y` for rc's and the final release
85-
8660
---
8761

8862
## Device requirements
8963
* Mac M1 or above with Rosetta2
9064
* >=70GB of disk space free
91-
* brew dependencies: git, gpg, qemu>=8.1.0 (avoid qemu 9.1.0, see https://gitlab.com/qemu-project/qemu/-/issues/2581), docker>=24.0.0, sshpass
65+
* brew dependencies: git, git-lfs, gpg, qemu>=8.1.0 (avoid qemu 9.1.x, see https://gitlab.com/qemu-project/qemu/-/issues/2581), docker>=24.0.0, sshpass
9266
* opam repo with the tag fetched
9367
* Have the secret key available

release/windows.md

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
* From the "release" directory (where this here readme.md file should be)...
2+
* Download Windows 10 English International 64bit from https://www.microsoft.com/en-gb/software-download/windows10ISO
3+
* Run qemu-img create -f qcow2 Windows-10-x86_64.qcow2 32G
4+
* Run qemu-system-x86_64 -cdrom Win10_22H2_EnglishInternational_x64v1.iso -drive file=Windows-10-x86_64.qcow2 -smp 8 -m 6G -net nic -net user,restrict=on -machine q35
5+
* Install Windows. Everything stays as default except:
6+
* Click "I don’t have a product key"
7+
* Choose "Windows 10 Pro"
8+
* Click "Custom: ..." not "Upgrade: ..."
9+
* This will take an hour or so
10+
* Select the default keyboard then wait some more
11+
* Upon restart:
12+
* no online account
13+
* yes, i want the limited experience
14+
* username: opam
15+
* password: password
16+
* 3 hints: just random or something
17+
* no location
18+
* no find my device
19+
* no improve inking & typing
20+
* send required diagnostic data
21+
* no advertising ID
22+
* no cortana
23+
* Open gpedit.msc and right-click on "Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update -> Configure Automatic Updates", click Edit and in the new window click on Enabled and then select "2. Notify for download and auto install", click Apply and then Ok.
24+
* Start -> Power off
25+
* Run qemu-system-x86_64 -drive file=Windows-10-x86_64.qcow2 -smp 8 -m 6G -machine q35
26+
* Answer yes to the "would you like to be discoverable on the network" prompt
27+
* Open the Settings app
28+
* "System -> Power & Sleep" and select "Never" on the "When plugged in, turn off after" drop-down menu
29+
* Put the slider on "Best performance"
30+
* search for "Add an optional feature", then search for "OpenSSH" and install "OpenSSH Server"
31+
* Run services.msc
32+
* Double-click OpenSSH SSH Server then select Automatic from the Startup drop-down menu
33+
* Click Ok
34+
* Shutdown the computer using the startmenu button

0 commit comments

Comments
 (0)