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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Steps for making a new release
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
* get happy with the code
* choose new version
* update "Changes"
* make test release(s) to CPAN
* update manual.pdf
* make & upload tarball to CPAN
???* update links in install
* rebuild site
* release email
* Notify package maintainers (MacPorts, rpm, deb, Chocalatey,...)
#======================================================================
Get Happy
#======================================================================
* Resolve as many issues as is feasible on
- https://github.com/brucemiller/LaTeXML/issues/
- https://trac.macports.org/search?q=latexml
* Check for upcoming changes to LaTeX
- https://github.com/latex3/latex2e/issues/
* obviously make test should run w/o errors
* re-run dlmf and check it, etc.
#======================================================================
Choose new version
#======================================================================
# Last changes:
# * Adjust VERSION in LaTeXML.pm
# * add an entry to Changes
make
make test
doc/makemanual (pdf)
git commit -m "New release ..."
git push
# And tag the release:
git tag -a vX.X.X -m "Release X.X.X" <commitid>
git push --tags
#----------------------------------------------------------------------
# After preparing whatever tarballs & binaries you want:
doc/makesite
# to regenerate site w/current versions
#======================================================================
# update Changes
#======================================================================
# using the date of the last release:
git log --no-merges --name-status --since=<date>
grep log for lines starting "A" for new bindings
Hopefully have all issues labeled under the Milestone for the release
Scan closed issues under that Milestone
#======================================================================
Make Test relese to CPAN
#======================================================================
* See http://www.cpan.org/modules/04pause.html
* use a version number like: 0.8.1_1
* Log into https://pause.perl.org/
* watch cpantesters
http://www.cpantesters.org/distro/L/LaTeXML.html
#======================================================================
# Make the tarball
#======================================================================
make distclean
perl Makefile.PL
make dist
* check the tarball with clamscans
# We now have LaTeXML-x.x.x.tar.gz
# Copy to <site>/releases
#======================================================================
# Contact Maintainers
#======================================================================
MacPorts: Me!
RedHat/etc rpms: W. Mikail Petullo <mike@flyn.org> (?)
debian: Norbert Preining <preining@logic.at>
Thanks: Peter Ralph <petrel.harp@gmail.com>,
Atsuhito Kohda <kohda@pm.tokushima-u.ac.jp>
Chocolatey: Ronald Tse <tse@ribose.com>
#======================================================================
# Make MacPorts Portfile for MacOS
#======================================================================
# Maintainer: adfernandes@? but appears to have quit?
# Latest was checked in by mojca@...
* Modify ~/Macports/tex/LaTeXML/Portfile
- Change version number
- Set revision to 0
- regen portindex
cd ~/Macports ; portindex
- recompute checksums
(use port -v install and it suggests checksums for you to cut'n'paste!)
(Be careful of cached tarballs: use port clean --all)
- Test Portfile; PR requirements:
sudo port lint --nitpick LaTeXML
sudo port test LaTeXML
sudo port -vst install LaTeXML
test basic functionality
* copy resulting Portfile as <site>/releases/Portfile-<version>
* Create PR
- Use my fork of brucemiller/macports-ports
- sync it to macports/macports-ports
git checkout master
git fetch upstream master
git rebase upstream/master
git push
- create branch,
git branch LaTeXML-X.Y.Z
git checkout LaTeXML-X.Y.Z
cp ~/Macports/tex/LaTeXML/Portfile ~/macports-ports/tex/LaTeXML
git status/git diff/etc
git commit -m "LaTeXML: update to upstream version X.Y.Z" tex/LaTeXML/Portfile
git push origin latexml-X.Y.Z
(sometimes using --force, if you've mangled a previous try :> )
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Random Extra Details
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#======================================================================
About Version Numbers
#======================================================================
There's loads of contradictory advice for Perl version numbers out there!
I insist on "dotted-decimal" version numbers ie. 1.2.3
So then, the seemingly recommended form to use is:
use version; our $VERSION = version->declare("v1.2.3");
However, then "make dist" leads to the UGLY
module-v1.2.3-tar.gz
So, hopefully, I can get away with:
use version; our $VERSION = version->declare("1.2.3");
#======================================================================
# Make RPM's
#======================================================================
# * Possibly make LaTeXML.spec (see below)
# Edit LaTeXML.spec for current version
# * Make the source rpm:
# cp is important, otherwise it will reuse your old one!
cp LaTeXML-x.x.x.tar.gz ~/rpmbuild/SOURCES/
rpmbuild -bs LaTeXML.spec
# this creates ~/rpmbuild/SRPMS/LaTeXML-X.X.X-1.fcXX.src.rpm
# * Use mock to create & test the rpm
# * make sure you're in the mock group
mock --rebuild ~/rpmbuild/SRPMS/LaTeXML-X.X.X-1.fcXX.src.rpm
# Copy the rpms to <site>/releases
#======================================================================
# Scan tarballs, rpms, etc using ClamAV
clamscan --tempdir=/dev/shm --recursive --max-recursion=128 --cross-fs=no --infected --block-encrypted=yes --max-files=123456789 --max-filesize=4000M --max-scansize=4000M sometarball
#======================================================================
|