summaryrefslogtreecommitdiff
path: root/build2/release.txt
blob: e96ecf8215f39ddd7b7b1c9c9ca681e02599e4b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
1. Finalize xsd and all dependencies (libxerces-c, libcutl, libxsd-frontend).

   * Review @@.
   * Update NEWS files.
   * Update build2 toolchain version constraints.
   * Update copyright.
   * Update bindist configs if necessary (e.g., generic linux config).
   * CI and make sure all good.
   * Publish to queue.stage.build2.org and make sure all good.
   * Do manual Q&A (schemas/{citygml.org/2.0.0/, fpml.org/5.1/}).
   * Push everything.

2. Release and publish to queue.stage.build2.org to build binary packages.

   * Release BUT DON'T PUSH in the dependency order:

     - Update version constraints to previouly released final version.

     bdep release --no-open

   * Test locally (bdep test -a).

   * Publish to queue.stage.build2.org.

   * Confirm all good and binaries are built (libxerces-c, libxsd, and xsd).

   * Update and run `download` script to download and arrange source and
     binary packages.

   * Build Mac OS aarch64 binaries manually (make sure have the same OS
     and Xcode).

     - First install stage toolchain.

     bpkg create -d xerces-cfg cc config.cc.coptions="-Wall -O3" config.cxx.std=c++11
     cd xerces-cfg
     bpkg build --configure-only libxerces-c@https://queue.stage.build2.org/1/alpha
     bpkg update -v libxerces-c
     bpkg test libxerces-c
     bpkg -v bindist --distribution archive --recursive separate --output-root ../xerces-bindist --archive-lang-impl=cc=clang14 --archive-install-root=/usr/local config.install.relocatable=true libxerces-c

     bpkg create -d libxsd-cfg cc config.cc.coptions="-Wall -O3" config.cxx.std=c++11
     cd libxsd-cfg
     bpkg build --configure-only libxsd@https://queue.stage.build2.org/1/alpha
     bpkg update -v libxsd
     bpkg -v bindist --distribution archive --recursive separate --output-root ../libxsd-bindist --archive-lang-impl=cc=clang14 --archive-install-root=/usr/local --archive-build-meta=macos config.install.relocatable=true libxsd

     bpkg create -d xsd-cfg cc config.cc.coptions="-Wall -O3" config.bin.lib=static "config.bin.liba.lib=shared static"
     cd xsd-cfg
     bpkg build --configure-only xsd@https://queue.stage.build2.org/1/alpha
     bpkg update -v xsd
     bpkg test xsd
     bpkg -v bindist --distribution archive --recursive separate --output-root ../xsd-bindist --archive-lang-impl=cc=clang14 --archive-install-root=/usr/local --recursive=auto --archive-lang-impl=cc= config.install.relocatable=true xsd

     - Add to binary packages and generate packages.sha256:

     cd .../aarch64/
     sha256sum -b "$(ls -1 | sort)" >packages.sha256

   * Copy packages over to download directory, make sure there is enough
     disk space on host to publish.

   * Copy over (or add new) README.cli and update.

3. Update web pages

   * Update "Compilers & Platforms" page.

   * Update "Download" page.

   * Copy over updated documentation to projects/xsd/documentation/. Review
     with gitk for any unexpected differences.

   * Generate doxygen (reference and hello):

    cd libxsd/doc/
    b config.libxsd.doxygen=true

    - copy result over to documentation/cxx/tree/reference/
    - check everything looks sensible

    - copy hello example directory to documentation/.../

    xsd cxx-tree --generate-doxygen hello.xsd

    - add hello.doxygen from old documentation

    doxygen hello.doxygen

    - clean source files, etc
    - check everything looks sensible and cross-links to references work

3. Publish and announce

   * bdep-publish all the packages and make sure queued builds are good.

   * Publish binaries and updated web pages.

   * Migrate packages from queue to public. Cleanup any betas.

   * Write release announcements and send to xsd-{users, announcements}.

   * Announce on #build2.

   * Add news entries to web pages.

4. Finish

   * Commit web pages.

   * Commit xsd-etc.

   * Update Homebrew formula.