diff options
-rw-r--r-- | git/modules | 1 | ||||
-rwxr-xr-x | publish | 2 | ||||
-rw-r--r-- | release.txt | 101 | ||||
-rwxr-xr-x | review | 2 | ||||
-rwxr-xr-x | stage | 15 | ||||
-rwxr-xr-x | version | 26 |
6 files changed, 83 insertions, 64 deletions
diff --git a/git/modules b/git/modules index 3c68749..52c52e5 100644 --- a/git/modules +++ b/git/modules @@ -14,6 +14,7 @@ libstd-modules" # During release it is useful to exclude some of these so can do mass # commits (like version updates). # + modules="$modules build2-toolchain" modules="$modules buildos" @@ -69,7 +69,7 @@ function sync () etc/rep-publish cppget.org/repository/1/ cppget.org:/var/bpkg/1/ "${@}" info "brep.cppget.org:" - etc/rep-publish cppget.org/repository/1/ brep.cppget.org:/var/bpkg/1/ \ + etc/rep-publish cppget.org/repository/1/ lists.cppget.org:/var/bpkg/1/ \ "${@}" fi } diff --git a/release.txt b/release.txt index 436ef92..8a84b20 100644 --- a/release.txt +++ b/release.txt @@ -2,13 +2,18 @@ - Add new bot machines/configurations/options from stage to queue to public -- Replace 0.6.0 and 0.6 in this document with the new version. + @@ See paper in Build OS filder. + + @@ Might have to be done at release if things are incompatible. Maybe + better/cleaner to always do this at release. + +- Replace 0.7.0 and 0.7 in this document with the new version. - Remove etc/ and private/ from modules in etc/git/modules to reduce noise during stat. Also, review for any new modules. - Review '@@' items [private/ excluded, update with new modules, at least - look for @@ TMP] + look for @@ TMP; also check the review script for any new modules]: etc/review | less -R @@ -35,7 +40,8 @@ - Make sure all the bot builds are successful (drop build db). - Test bootstrap build2-toolchain using scripts/batch files (bot builds - are using makefile). Need to test build.sh, build-*.bat. + are using makefile). Need to test build.sh, build-*.bat. Now test via + automated install files: see private/install/testing.txt for details. - Update NEWS files in all project that will have non-pre-release version. @@ -46,10 +52,10 @@ - Install guide for (for 1 & 2). - - Introduction for (for 1 & 2). Use intro script to get output but watch - out for stage (grep afterwards): + - Introduction for (for 1 & 2). Use intro script to get output: - etc/intro -s -p https://hello.stage.build2.org/1 + ./intro2-tldr 2>&1 | tee intro2-tldr.out + ./intro2-tour 2>&1 | tee intro2-tour.out - Change to final versions for all packages being released, some by hand, some with version scripts (see etc/stage for list + msvc-linux). @@ -106,6 +112,8 @@ - check /0/ and /1/ for anything stray + @@ Add extra packages (cli, libcutl, mysql/mariadb). + - Make sure bot builds are successful - Upgrade brep on build2.org (hello) using queue @@ -131,6 +139,8 @@ etc/stage -p + @@ Remove *-queue install scripts. + - Move packages (manually for now): - old/replaced/FTB packages either to legacy or delete @@ -141,7 +151,7 @@ cd cppget.org git -C repository add . - git -C repository status + git -C repository status # Review changes. ./update - Disable the queue toolchain on bbots (moved packages from queue/), @@ -158,12 +168,14 @@ - Make sure bot builds are successful, drop hello build database again. + @@ First test automated install scripts. + - Release - Update submodules (style/) in private/. - - Write release notes, use placeholder for announcement URL. Add link from - the doc page. + - Write release notes, use placeholder for announcement URL (or guess). + Add link from the doc page. - Any new FAQ entries or any other updates (main page, etc)? Any new documentation to link from the doc page? @@ -172,6 +184,10 @@ cat `ls -1 *.sha256` + - Update install page. + + cat toolchain.sha256 + - Regenerate documentation (./cli.sh) for all hosts. - Test locally, publish, test production @@ -188,40 +204,48 @@ - Add reply-to: header for users@ announcement. - - Patch the announcement URL in release notes, re-publish. + - Patch/verify the announcement URL in release notes, re-publish. - Announce on reddit and other places (see doc/ann/). - - Commit and tag private/ + - Commit and tag private/ and style/ - git tag -a 0.6.0 -m "Tag version 0.6.0" && git push --tags + git tag -a 0.7.0 -m "Tag version 0.7.0" && git push --follow-tags - Tag & Commit hello - - commit hello/repository/ (see commit history for procedure) - cd hello ./foreach-git stat - ./foreach-git -x libhello-1.0 tag -a build2-0.6.0 -m "Tag for build2 version 0.6.0" - git -C libhello-1.0 tag -a 1.0/build2-0.6.0 -m "Tag for build2 version 0.6.0" - ./foreach-git push --tags + - commit hello/repository/ (see commit history for procedure) + + git tag -a build2-0.7.0 -m "Tag for build2 version 0.7.0" && git push --follow-tags + - Tag & Commit - - commit cppget.org/repository/ (see commit history for procedure) + - commit & push cppget.org/repository/ (see commit history for procedure; + commit big chunks first, then reorder with rebase). - Tag and push all released packages, some by hand, some with tag scripts - (see etc/stage for list). + (see etc/stage for list but also packages added ad hoc with etc/stage-pkg). + + @@ Use vX.Y.Z tag for packages that are bpkg/bdep-ready (i.e., have + suitable repositories.manifest if required). cd <proj> + # X.Y.Z v="$(sed -n -re 's/version: ([^ ]+)/\1/p' manifest)"; echo $v; read; \ - git tag -a $v -m "Tag version $v" && git push --tags + git tag -a $v -m "Tag version $v" && git push --follow-tags + + # vX.Y.Z + v="$(sed -n -re 's/version: ([^ ]+)/\1/p' manifest)"; echo v$v; read; \ + git tag -a v$v -m "Tag version $v" && git push --follow-tags For build2 projects, review tag_modules in etc/git/modules, then: - ./tag.sh 0.6.0 + ./tag.sh 0.7.0 ./push.sh - Increment versions and open master for business @@ -245,36 +269,14 @@ ~ rebuild ODB compiler - b '{clean update}(build2/ libbutl/)' - - cd ../odb/builds/default/ - b update # errors are ok - b update - - b clean libbpkg/ - cd bpkg/bpkg - b clean - b --match-only # errors are ok - ./odb.sh - cd .. - b - - cd brep - b clean - b --match-only # errors are ok - cd libbrep - b hxx{version} - ./odb.sh - cd .. - b - - ~ the rest is like in local test above + @@ bdep sync -fura + @@ b hxx{version} # first lib*, then projects, then odb.sh - Update/test local (see early steps of this list). - Make symlinks for new version in baseutils (for both baseutils and mingw, the idea is that we will start with those and maybe upgrade during - development). Update version file. + development). - Restage @@ -293,8 +295,9 @@ - Commit and tag - git tag -a 0.6.0 -m "Tag version 0.6.0" && git push --tags + git tag -a 0.7.0 -m "Tag version 0.7.0" && git push --follow-tags -- Snapshot buildos-5 subvolume as buildos-5-0.6.0 +- Snapshot buildos subvolumes as buildos-0.7.0 - btrfs subvolume snapshot buildos-5 buildos-5-0.6.0 + btrfs subvolume snapshot buildos-3 buildos-3-0.7.0 + btrfs subvolume snapshot buildos-6 buildos-6-0.7.0 @@ -23,7 +23,7 @@ for m in $modules; do # Exclude submodules in build2-toolchain. # if [ $m = "build2-toolchain" ]; then - exclude="$exclude bpkg build2 libbutl libbpkg" + exclude="$exclude bdep bpkg build2 libbutl libbpkg libodb libodb-sqlite libsqlite3 libpkgconf" fi fo= @@ -186,7 +186,7 @@ case "$mode" in *) o=--stage ;; esac -scripts=($(private/install/prepare "$o" "$dist_src")) +scripts=($(private/install/prepare $o "$dist_src")) for f in "${scripts[@]}"; do info "prepared $f" @@ -216,6 +216,17 @@ fi # Distribute packages, regenerate and sync the repository. # + +# These are just for testing (though libodb-mysql needs libmysqlclient). +# +etc/stage-pkg -c $mode -d mariadb packaging/mariadb/libmariadb +etc/stage-pkg -c $mode -d mysql packaging/mysql/libmysqlclient + +etc/stage-pkg -c $mode -d cutl ../cutl/libcutl +etc/stage-pkg -c $mode -d cli ../cli/cli + +# +# etc/stage-pkg -c $mode -d apr packaging/apr/libapr1 etc/stage-pkg -c $mode -d postgresql packaging/postgresql/libpq @@ -229,7 +240,7 @@ etc/stage-pkg -c $mode -d studxml ../studxml/libstudxml etc/stage-pkg -c $mode -d hello hello/libhello-1.0 -# For now we also stage libodb-mysql since we clean up the odb/ subdirectory. +# For now we also stage libodb-mysql. # etc/stage-pkg -c $mode -d odb \ ../odb/builds/default/libodb \ @@ -10,22 +10,25 @@ usage="usage: etc/version" # # NOTE: also update in 'bdep new'? # -build2_min=0.6.0- -bpkg_min=0.6.0- +build2_min=0.7.0- +bpkg_min=0.7.0- -ver=0.7.0-a.0.z -#ver=0.6.0 +ver=0.8.0-a.0.z +#ver=0.7.0 mods=(libstd-modules libbutl libbpkg libbbot) -odb_ver=2.5.0-b.6.z -#odb_ver=2.5.0-b.5 +odb_ver=2.5.0-b.8.z +#odb_ver=2.5.0-b.7 odb_mods=(libodb libodb-sqlite libodb-pgsql) -xml_ver=1.1.0-b.2.z -#xml_ver=1.1.0-b.2 +xml_ver=1.1.0-b.3.z +#xml_ver=1.1.0-b.3 xml_mods=(libstudxml) -all=(libstd-modules libbutl build2 libbpkg bpkg bdep libbbot brep bbot build2-toolchain msvc-linux buildos) +# @@ NOTE: libpkgconf manually. + +all=(libstd-modules libbutl build2 libbpkg bpkg bdep libbbot bbot brep build2-toolchain msvc-linux buildos) + # In manifests for alpha/beta we use an exact match. For snapshots -- snapshot # range. Otherwise an X.Y.* range. @@ -44,10 +47,11 @@ function constraint () # <ver> if [[ $1 == *.z ]]; then r="[$mj.$mn.$pt-$ab.$pr.1 $mj.$mn.$pt-$ab.$(($pr+1)))" else - r="== $1" + r="^$1" fi else - r="[$mj.$mn.0 $mj.$(($mn+1)).0-); $mj.$mn.X" + #r="[$mj.$mn.0 $mj.$(($mn+1)).0-); $mj.$mn.X" + r="^$mj.$mn.$pt" fi echo "$r" |