summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--git/modules1
-rwxr-xr-xpublish2
-rw-r--r--release.txt101
-rwxr-xr-xreview2
-rwxr-xr-xstage15
-rwxr-xr-xversion26
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"
diff --git a/publish b/publish
index 1f3571e..e9f658f 100755
--- a/publish
+++ b/publish
@@ -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
diff --git a/review b/review
index 7ff0caa..0f6c739 100755
--- a/review
+++ b/review
@@ -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=
diff --git a/stage b/stage
index 68b2fde..020234f 100755
--- a/stage
+++ b/stage
@@ -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 \
diff --git a/version b/version
index 8ba94e8..df8a596 100755
--- a/version
+++ b/version
@@ -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"