summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/releng.txt
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 18:01:39 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 18:01:39 +0000
commitb9b415d5c0649bd8caaeb1a7e8634c9049ebf11f (patch)
tree6e2624036a777df5eed7619c631085572c4f2420 /Master/tlpkg/doc/releng.txt
parentf19eeb23cec257a4c2b97f7b2ffc44e4fad99945 (diff)
universal-darwin replaces x86_64-darwin as of tl2021
git-svn-id: svn://tug.org/texlive/trunk@57908 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/doc/releng.txt')
-rw-r--r--Master/tlpkg/doc/releng.txt78
1 files changed, 49 insertions, 29 deletions
diff --git a/Master/tlpkg/doc/releng.txt b/Master/tlpkg/doc/releng.txt
index b73229f534e..19b19949c61 100644
--- a/Master/tlpkg/doc/releng.txt
+++ b/Master/tlpkg/doc/releng.txt
@@ -1,5 +1,5 @@
$Id$
-Public domain.
+Public domain. Release engineering for TeX Live.
Notes on putting together the pretest and yearly release --karl.
See ./packages.txt for info on regular updates, adding/removing platforms, etc.
@@ -16,10 +16,12 @@ Check if pretest mirrors need renewing, talk to mirror admins if so:
To stop updating of certain packages before the general freeze:
tlpkg/dev/tlnet-disabled-packages.txt
-To run test builds without affecting production dirs, see:
+To run test builds (if developing infrastructure changes) without
+affecting production dirs, see:
tlpkg/bin/tltestnet
- Part I. Preparing, can/should be done before pretest starts.
+
+ Part I. Preparation; can/should be done before pretest starts.
1. doc: write updates for pretest.html, but leave commented out until start.
- check NEWS/CHANGES/etc. files for all engines and major programs;
@@ -70,24 +72,25 @@ other changes. Therefore, we set up a branch for release YYYY where we
will continue to commit normal package updates and update tlnet, while
the trunk is updating tlpretest for YYYY+1.
-The best time to create the branch is right before the first
-pretest-specific commit (the next item, in Part II).
-cd /home/texlive/branch
-rm -rf * .svn # clean out completely; trunk should also be clean
-rev=... # svn info in trunk
-tlyear=`date +%Y -d "last year"` # presumably
-svn copy -r $rev \
- -m"branch$tlyear branch based on r$rev" \
- svn://tug.org/texlive/trunk svn://tug.org/texlive/branches/branch$tlyear
+The branch must be created right before the first pretest-specific
+commit (which is the next item, in Part II).
-# If you created the branch earlier for testing or whatever, no problem,
-# just merge from trunk before starting the double commits. Add @REV
-# after trunk if needed. Probably have to M(erge) some not-really-conflicts.
-nice -19 svn merge svn://tug.org/texlive/trunk >&/tmp/merge
+ cd /home/texlive/branch
+ rm -rf * .svn # clean out completely; trunk should also be clean
+ rev=57871 # for 2021 (svn info in trunk)
+ tlyear=`date +%Y -d "last year"` # presumably
+ umask 022 # keep TL files non-group-writable
+ branch=branch$tlyear
+ svn copy -r $rev \
+ -m"$branch branch based on r$rev" \
+ svn://tug.org/texlive/trunk svn://tug.org/texlive/branches/$branch
+ # make working checkout:
+ svn co svn://tug.org/texlive/branches/$branch . >&out # ~30min
-# Alternatively, if you forgot to create the branch at the time, also
-# no problem, just choose the right $rev and run the svn copy above.
-# For TL2021, we made the branch independent at r57871 (created earlier).
+Do not create it earlier and merge from trunk, because then all the
+packages which got updated in the meantime, and have been updated in
+tlnet, will get new revision numbers (from the commit after the merge)
+and get updated again.
Part II. Building pretest from trunk (and tlnet from branch).
@@ -107,7 +110,7 @@ Update /home/ftp/texlive/tlpretest/README.
Empty tlpretest except for that README and 00_TIME.txt (used for mirmon).
2. Prepare for pretest in cron.tl:
-critical= #--critical # only push tlcritical if needed/desired
+critical=--critical # tlcritical needed for new release version
pretest=--pretest # update tlpretest, not tlnet (if not frozen)
catalogue_compare=false # just for the initial test, will set below
net_frozen=true # update tlnet|tlpretest (per $pretest)
@@ -130,6 +133,7 @@ Master/texmf-dist/web2c/texmf.cnf # from Build/.../kpathsea
5. Ensure version numbers in sources are updated; see list above.
Then install new binaries with tl-update-bindir. Ask tlbuild.
Add new executables to appropriate .tlpsrc files (likewise removals).
+ (svn status bin/x86_64-linux | grep '^[^M]')
Add new scripts to linked_scripts if not already handled.
6. Run tex \\end to check that mktexfmt works.
@@ -148,33 +152,49 @@ cd Master/texmf-dist/doc
for p in *conv hbf2gf; do cp /home/ftp/tex-archive/language/chinese/CJK/cjk-X.Y.Z/doc/pdf/$p.pdf $p; done
8. Now, finally, try a first update of tlpretest:
- force_rebuild=true cron.tl
-This will fail because the pretest dir is not completely set up, but
+ force_rebuild=true cron.pretest
+This will fail because the pretest dir is not yet set up, but
that's ok; the idea is to check the output and ensure all is basically ok.
It's likely that .tlpsrc files will need to be adjusted for new binaries.
8a. svn commit all the above.
-9. After that trial build looks ok, set up tlpretest:
+9. After a trial build goes ok, set up tlpretest:
cd /home/ftp/texlive/tlpretest
- cp -ar ../tlnet/[a-u]* . # omit tlnet/README*
- env force_rebuild=true cron.tl
+ cp -ar ../tlnet/[a-u]* . # omit tlnet/README*
+ env force_rebuild=true cron.pretest # update repository
We use cp -a because we want to start with exactly the last tlnet,
and not recreate all packages, so that a file with a given name is never
rewritten. See recreate comments in tl-update-tlpdb and tl-update-containers.
-9a. In 2020, as a special case, after a first successful build, this was run:
+9b. Sanity check: Do an installation as a normal user from the new
+tlpretest, and keep it updated daily.
+
+9c. In 2020, as a special case, after a first successful build, this was run:
tl-fix-container-links
In order to make all the archive/*.tar.xz files into versioned symlinks,
so a given tarball will not be regenerated unless the content changes.
This was a one-time event, but left here as an example for the unknown future.
-10. Web pages: make new pretest.html live; mention pretest has started
- on texlive/index.html and tug's home page (at least).
+10. As of 2021, we want to keep updating tlnet from the new branch, as
+described in I.6. For sanity, it is best to edit cron.tl to use a temp
+destination instead of tlnet for the branch, initialize that repo from
+tlnet (as above with tlpretest), and then do a test build before the
+real one. To do the build:
+ env force_rebuild=true cron.branch
-11. Life and daily updates go on. In cron.tl, set net_frozen=false.
+11. In cron.tl, set net_frozen=false, critical= , and
+ return to regular catalogue_compare updates.
In the crontab, enable the pretest entries.
+
+12. Life and daily updates resume: run c2l to update trunk->tlpretest,
+ c2b to update branch->tlnet. Of course, don't update the branch if a
+ particular package requires the new binaries, e.g., asymptote.
+13. Announce: make new pretest.html live; mention pretest has started
+ on texlive/index.html and tug's home page (at least).
+ Email tex-live@tug.org.
+
A. At some point during the pretest:
Update gpg expiration, see tlpkg/gpg/tl-key-extension.txt;