|
8 | 8 | * run `make tests`, `opam-rt` [checked by github actions]
|
9 | 9 | * update the CHANGE file: take `master_changes.md` content to fill it
|
10 | 10 |
|
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 |
| - |
48 | 11 | ## Github release
|
49 | 12 |
|
50 | 13 | [ once bump version & changes PRs merged ]
|
51 | 14 | * 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 |
52 | 16 | * /!\ Once the tag pushed, it can be updated [different commit] only in case of severe issue
|
53 | 17 | * 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 |
54 | 30 | * Make sure the repository is in the correct state: `git switch --detach <tag>`
|
55 | 31 | * launch docker using the Docker GUI macOS app
|
56 | 32 | * 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)
|
57 | 33 | * 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 |
61 | 35 |
|
62 | 36 | ## Publish the release
|
63 | 37 |
|
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) |
65 | 40 | * 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) |
67 | 42 | * update versions (and messages, if necessary) in https://github.com/ocaml/opam-repository/blob/master/repo
|
68 | 43 |
|
69 | 44 | ## Announce!
|
70 | 45 |
|
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 |
73 | 49 | * update the link to the discuss post in the blog post
|
| 50 | +* update the link to the blog post in the release note |
74 | 51 | * copy the blog entry from opam.ocaml.org for https://github.com/ocaml/ocaml.org/tree/main/data/changelog/opam
|
75 | 52 | * announce the release on the OCaml Discord server
|
76 | 53 |
|
77 |
| - |
78 | 54 | ## After release
|
79 | 55 |
|
| 56 | +* Remove the milestone that has just been released and create a new milestone for the next version |
80 | 57 | * Bump the version with a `~dev` at the end (e.g. `2.2.0~alpha~dev`)
|
81 | 58 | * Check if reftests needs an update
|
82 | 59 |
|
83 |
| -### On a release candidate |
84 |
| -* create a branch to a `x.y` for rc's and the final release |
85 |
| - |
86 | 60 | ---
|
87 | 61 |
|
88 | 62 | ## Device requirements
|
89 | 63 | * Mac M1 or above with Rosetta2
|
90 | 64 | * >=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 |
92 | 66 | * opam repo with the tag fetched
|
93 | 67 | * Have the secret key available
|
0 commit comments