|
|
|
=================
|
|
|
|
Release checklist
|
|
|
|
=================
|
|
|
|
|
|
|
|
* Git maintenance
|
|
|
|
|
|
|
|
- ensure git commits are up-to-date
|
|
|
|
- ensure branches are merged, unused branches deleted (also remotely)
|
|
|
|
- git fsck --full
|
|
|
|
- git gc --aggressive
|
|
|
|
|
|
|
|
* Finalize DUK_VERSION
|
|
|
|
|
|
|
|
- Change previous development version (with patch level 99) to release
|
|
|
|
version
|
|
|
|
|
|
|
|
- Verify by running Duktape cmdline and evaluating ``Duktape.version``
|
|
|
|
|
|
|
|
* Check READMME.txt.dist
|
|
|
|
|
|
|
|
* Ensure LICENSE.txt is up-to-date
|
|
|
|
|
|
|
|
- Check year range
|
|
|
|
|
|
|
|
* Ensure RELEASES.txt is up-to-date (must be done before candidate tar.xz
|
|
|
|
build because dist package contains RELEASES.txt)
|
|
|
|
|
|
|
|
- New release is in place
|
|
|
|
- Release log entries match ditz issues
|
|
|
|
- Release date is in place
|
|
|
|
|
|
|
|
* Build candidate tar.xz files
|
|
|
|
|
|
|
|
- These should remain the same so that their hash values are known
|
|
|
|
|
|
|
|
* Check source dist contents
|
|
|
|
|
|
|
|
- Check file list
|
|
|
|
- Grep for FIXME and XXX
|
|
|
|
- Trivial compile test for combined source
|
|
|
|
- Trivial compile test for separate sources (important because
|
|
|
|
it's easy to forget to add files in make_dist.sh)
|
|
|
|
|
|
|
|
* Compilation tests (clean compile)
|
|
|
|
|
|
|
|
- **FIXME: incomplete list, automate compilation tests**
|
|
|
|
- Linux x86-64 gcc
|
|
|
|
- Linux x86-64 gcc + DUK_OPT_DEBUG
|
|
|
|
- Linux x86-64 gcc + -m32
|
|
|
|
- Linux x86-64 gcc + -m32 + DUK_OPT_DEBUG
|
|
|
|
- Linux x86-64 clang
|
|
|
|
- Linux x86-64 clang + DUK_OPT_DEBUG
|
|
|
|
- Linux x86-64 clang + -m32
|
|
|
|
- Linux x86-64 clang + -m32 + DUK_OPT_DEBUG
|
|
|
|
- FreeBSD clang
|
|
|
|
- FreeBSD clang + DUK_OPT_DEBUG
|
|
|
|
- FreeBSD clang + -m32
|
|
|
|
- FreeBSD clang + -m32 + DUK_OPT_DEBUG
|
|
|
|
- Windows MinGW
|
|
|
|
- Windows MinGW-w64
|
|
|
|
- Windows MSVC (cl) x32
|
|
|
|
- Windows MSVC (cl) x64
|
|
|
|
|
|
|
|
* Ecmascript testcases
|
|
|
|
|
|
|
|
- **FIXME: semiautomate test running for various configurations**
|
|
|
|
|
|
|
|
- On x86-64:
|
|
|
|
|
|
|
|
- make qecmatest # quick test
|
|
|
|
- make vgecmatest # valgrind test
|
|
|
|
|
|
|
|
- Run testcases on all endianness targets
|
|
|
|
|
|
|
|
* API testcases
|
|
|
|
|
|
|
|
- On x86-64:
|
|
|
|
|
|
|
|
- make apitest
|
|
|
|
|
|
|
|
* Regfuzz
|
|
|
|
|
|
|
|
- On x86-64, with DUK_OPT_ASSERTIONS
|
|
|
|
|
|
|
|
- make regfuzztest
|
|
|
|
|
|
|
|
* test262
|
|
|
|
|
|
|
|
- on x86-64
|
|
|
|
|
|
|
|
- make test262test
|
|
|
|
|
|
|
|
* emscripten (run emscripten-generated code with Duktape)
|
|
|
|
|
|
|
|
- on x86-64
|
|
|
|
|
|
|
|
- make emscriptentest
|
|
|
|
|
|
|
|
* emscripten (compile Duktape with emscripten, run with Node)
|
|
|
|
|
|
|
|
- on x86-64
|
|
|
|
|
|
|
|
- make emscriptenduktest
|
|
|
|
|
|
|
|
* JS-Interpreter
|
|
|
|
|
|
|
|
- on x86-64
|
|
|
|
|
|
|
|
- make jsinterpretertest
|
|
|
|
|
|
|
|
* lua.js
|
|
|
|
|
|
|
|
- on x86-64
|
|
|
|
|
|
|
|
- make luajstest
|
|
|
|
|
|
|
|
* Store binaries and update website downloads page
|
|
|
|
|
|
|
|
- Release date
|
|
|
|
- Link
|
|
|
|
- Date
|
|
|
|
- "latest" class
|
|
|
|
|
|
|
|
* Build website
|
|
|
|
|
|
|
|
- Readthrough
|
|
|
|
- Test that the Duktape REPL (Dukweb) works
|
|
|
|
|
|
|
|
* Ditz release
|
|
|
|
|
|
|
|
- ``ditz release vN.N``
|
|
|
|
- git add and commit ditz issues
|
|
|
|
|
|
|
|
* Git release and tag
|
|
|
|
|
|
|
|
- ``git tag -l -n1`` to list current tags
|
|
|
|
- ``git tag -s -m "<one line release description>" vN.N.N``
|
|
|
|
|
|
|
|
* Upload and test
|
|
|
|
|
|
|
|
* Bump Duktape version for next release and testing
|
|
|
|
|
|
|
|
- Set patch level to 99, e.g. after 0.10.0 stable release, set DUK_VERSION
|
|
|
|
from 1000 to 1099. This ensures that any forks off the trunk will have a
|
|
|
|
version number easy to distinguish as an unofficial release.
|
|
|
|
|
|
|
|
- ``duktape.h``
|