Reorganize release info

master
Florian Angeletti 2020-07-07 17:52:05 +02:00
parent d374d7d230
commit c99cbd1101
7 changed files with 165 additions and 120 deletions

6
.gitattributes vendored
View File

@ -57,7 +57,7 @@ tools/mantis2gh_stripped.csv typo.missing-header
/.mailmap typo.long-line typo.missing-header typo.non-ascii
/.merlin typo.missing-header
/Changes typo.utf8 typo.missing-header
/News typo.utf8 typo.missing-header
/release-info/News typo.utf8 typo.missing-header
/INSTALL typo.missing-header
/LICENSE typo.very-long-line typo.missing-header
# tools/ci/appveyor/appveyor_build.cmd only has missing-header because
@ -65,8 +65,8 @@ tools/mantis2gh_stripped.csv typo.missing-header
/tools/ci/appveyor/appveyor_build.cmd typo.very-long-line typo.missing-header typo.non-ascii
/tools/ci/appveyor/appveyor_build.sh typo.non-ascii
/tools/ci/inria/remove-sinh-primitive.patch typo.white-at-eol typo.missing-header typo.long-line
/tools/release-checklist typo.missing-header typo.very-long-line
/release-info/howto.md typo.missing-header typo.long-line
/release-info/templates/*.md typo.missing-header typo.very-long-line=may
# ignore auto-generated .depend files
.depend typo.prune
/.depend.menhir typo.prune

View File

@ -23,19 +23,25 @@ OCamlLabs folks (for OPAM testing).
```
rm -f /tmp/env-$USER.sh
cat >/tmp/env-$USER.sh <<EOF
# Update the data below
export MAJOR=4
export MINOR=08
export BUGFIX=0
export PLUSEXT=
# names for the release announce
export HUMAN=
# do we need to use tar or gtar?
export TAR=tar
export WORKTREE=~/o/\$MAJOR.\$MINOR
# must be the git worktree for the branch you are releasing
export BRANCH=\$MAJOR.\$MINOR
export VERSION=\$MAJOR.\$MINOR.\$BUGFIX\$PLUSEXT
export REPO=http://github.com/ocaml/ocaml
export REPO=https://github.com/ocaml/ocaml
# these values are specific to caml.inria's host setup
# they are defined in the release manager's .bashrc file
@ -45,6 +51,9 @@ export WEB_HOST="$OCAML_RELEASE_WEB_HOST"
export WEB_PATH="$OCAML_RELEASE_WEB_PATH"
export DIST="\$ARCHIVE_PATH/ocaml/ocaml-\$MAJOR.\$MINOR"
export INSTDIR="/tmp/ocaml-\$VERSION"
EOF
source /tmp/env-$USER.sh
echo $VERSION
@ -55,6 +64,7 @@ echo $VERSION
```
cd $WORKTREE
git checkout $MAJOR.$MINOR
git status # check that the local repo is in a clean state
git pull
```
@ -66,7 +76,7 @@ magic numbers have been updated since the last major release. It is
preferable to do this just before the first testing release for this
major version, typically the first beta.
See the HACKING file of `utils/` for documentation on how to bump the
See the `utils/HACKING.adoc` file for documentation on how to bump the
magic numbers.
## 3: build, refresh dependencies, sanity checks
@ -75,17 +85,25 @@ magic numbers.
make distclean
git clean -n -d -f -x # Check that "make distclean" removed everything
INSTDIR=/tmp/ocaml-${VERSION}
rm -rf ${INSTDIR}
./configure -prefix ${INSTDIR}
./configure --prefix=${INSTDIR}
make -j5
# Check that dependencies are up-to-date
make alldepend
git diff
# should have empty output
# check that .depend files have no absolute path in them
find . -name .depend | xargs grep ' /'
# must have empty output
# Run the check-typo script
./tools/check-typo
make install
./tools/check-symbol-names runtime/*.a
# must have empty output and return 0
@ -114,8 +132,8 @@ git commit -a -m "last commit before tagging $VERSION"
# 4.07.0+dev9-2018-06-26 => 4.07.0+rc2
# Update ocaml-variants.opam with new version.
# Update \year in manual/manual/macros.hva
rm -r autom4te.cache
make -B configure
# For a production release
make coreboot -j5
make coreboot -j5 # must say "Fixpoint reached, bootstrap succeeded."
git commit -m "release $VERSION" -a
@ -126,7 +144,6 @@ git tag -m "release $VERSION" $VERSION
# for testing candidates, use N+dev(D+2) instead; for example,
# 4.07.0+rc2 => 4.07.0+dev10-2018-06-26
# Revert ocaml-variants.opam to its "trunk" version.
rm -r autom4te.cache
make -B configure
git commit -m "increment version number after tagging $VERSION" VERSION configure ocaml-variants.opam
git push
@ -191,6 +208,16 @@ Remove any badge that tracks a version older than Debian stable.
## 6: create OPAM packages
Clone the opam-repository
```
git clone https://github.com/ocaml/opam-repository
```
Create a branch for the new release
```
git checkout -b OCaml_$VERSION
```
Create ocaml-variants packages for the new version, copying the particular
switch configuration choices from the previous version.
@ -198,6 +225,15 @@ Do not forget to add/update the checksum field for the tarballs in the
"url" section of the opam files. Use opam-lint before sending the pull
request.
You can test the new opam package before sending a PR to the
main opam-repository by using the local repository:
```
opam repo add local /path/to/your/opam-repository
opam switch create --repo=local,beta=git+https://github.com/ocaml/ocaml-beta-repository.git ocaml-variants.$VERSION
```
The switch should build.
## 6.1 Update OPAM dev packages after branching
Create a new ocaml/ocaml.$NEXT/opam file.
@ -210,6 +246,7 @@ The "src" field should point to
src: "https://github.com/ocaml/ocaml/archive/$VERSION.tar.gz"
The synopsis should be "latest $VERSION development(,...)".
## 7: build the release archives
```
@ -218,12 +255,11 @@ TMPDIR=/tmp/ocaml-release
git checkout $VERSION
git checkout-index -a -f --prefix=$TMPDIR/ocaml-$VERSION/
cd $TMPDIR
gtar -c --owner 0 --group 0 -f ocaml-$VERSION.tar ocaml-$VERSION
$TAR -c --owner 0 --group 0 -f ocaml-$VERSION.tar ocaml-$VERSION
gzip -9 <ocaml-$VERSION.tar >ocaml-$VERSION.tar.gz
xz <ocaml-$VERSION.tar >ocaml-$VERSION.tar.xz
```
## 8: upload the archives and compute checksums
For the first beta of a major version, create the distribution directory on
@ -341,112 +377,22 @@ organize the webpage for the new release. See
<https://github.com/ocaml/ocaml.org/issues/819>
## 13: announce the release on caml-list and caml-announce
## 13: announce the release on caml-list, caml-announce, and discuss.ocaml.org
See the email announce templates at the end of this file.
See the email announce templates in the `templates/` directory.
# Appendix
## Announcing a production release:
## Announce templates
```
Dear OCaml users,
See
We have the pleasure of celebrating <event> by announcing the release of
OCaml version $VERSION.
This is mainly a bug-fix release, see the list of changes below.
- templates/beta.md for alpha and beta releases
- templates/rc.md for release candidate
- templates/production.md for the production release
It is (or soon will be) available as a set of OPAM switches,
and as a source download here:
https://caml.inria.fr/pub/distrib/ocaml-$BRANCH/
Happy hacking,
-- Damien Doligez for the OCaml team.
<< insert the relevant Changes section >>
```
## Announcing a release candidate:
```
Dear OCaml users,
The release of OCaml version $MAJOR.$MINOR.$BUGFIX is imminent. We have
created a release candidate that you can test.
The source code is available at these addresses:
https://github.com/ocaml/ocaml/archive/$VERSION.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-$BRANCH/ocaml-$VERSION.tar.gz
The compiler can also be installed as an OPAM switch with one of the
following commands.
opam switch create ocaml-variants.$VERSION --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
or
opam switch create ocaml-variants.$VERSION+<VARIANT> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
where you replace <VARIANT> with one of these:
afl
default-unsafe-string
force-safe-string
flambda
fp
fp+flambda
We want to know about all bugs. Please report them here:
https://github.com/ocaml/ocaml/issues
Happy hacking,
-- Damien Doligez for the OCaml team.
<< insert the relevant Changes section >>
```
## Announcing a beta version:
```
Dear OCaml users,
The release of OCaml $MAJOR.$MINOR.$BUGFIX is approaching. We have created
a beta version to help you adapt your software to the new features
ahead of the release.
The source code is available at these addresses:
https://github.com/ocaml/ocaml/archive/$VERSION.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-$BRANCH/$VERSION.tar.gz
The compiler can also be installed as an OPAM switch with one of the
following commands.
opam switch create ocaml-variants.$VERSION --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
or
opam switch create ocaml-variants.$VERSION+<VARIANT> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
where you replace <VARIANT> with one of these:
afl
default-unsafe-string
force-safe-string
flambda
fp
fp+flambda
We want to know about all bugs. Please report them here:
https://github.com/ocaml/ocaml/issues
Happy hacking,
-- Damien Doligez for the OCaml team.
```
## Changelog template for a new version
@ -508,7 +454,7 @@ Here are typical forms of divergence and their usual solutions:
Fix: ensure that the entry is in the same section on all branches,
by putting it in the "smallest" version -- assuming that all bigger
versions also contain this cange.
versions also contain this change.
- A change entry is present in a given section, but the change is not
present in the corresponding release branch.
@ -592,3 +538,8 @@ release don't. Usually "Language features" is among the first, and
If some entries feel very anecdotal, consider moving them to the Bug
Fixes section.
### Extract release highlights to News
From time to time, synchronize the `News` file with the release highlights
of each version.

View File

@ -15,20 +15,16 @@
#* *
#**************************************************************************
# This script performs a series of transformation on standard input to
# This script performs a series of transformation on its argument to
# turn ASCII references into Markdown-format links:
# - GPR#NNNN links to Github
# - MPR#NNNN and PR#NNNN link to Mantis
# - #NNNN links to Github
# - (Changes#VERSION) link to the Changes file
# Breaking change list bullet are converted into annotations
# It was only tested with GNU sed. Sorry!
GITHUB=https://github.com/ocaml/ocaml
MANTIS=https://caml.inria.fr/mantis
cat \
| sed "s,GPR#\\([0-9]*\\),[GPR~#~\\1]($GITHUB/pull/\\1),g"\
| sed "s,MPR#\\([0-9]*\\),[PR~#~\\1]($MANTIS/view.php?id=\\1),g"\
| sed "s,PR#\\([0-9]*\\),[PR~#~\\1]($MANTIS/view.php?id=\\1),g"\
| sed "s,(Changes#\\(.*\\)),[Changes file for \\1]($GITHUB/blob/\\1/Changes),g"\
| sed "s,PR~#~,PR#,g" \
sed "s,(Changes#\(.*\)),[Changes file for \\1]($GITHUB/blob/\\1/Changes),g" $1 \
| sed "s,#\([0-9]\+\),[#\\1]($GITHUB/issues/\\1),g" \
| sed "s/^*/* [*breaking change*]/g"

View File

@ -0,0 +1,39 @@
## Announcing a beta version:
```
Dear OCaml users,
The release of OCaml $MAJOR.$MINOR.$BUGFIX is approaching. We have created
a beta version to help you adapt your software to the new features
ahead of the release.
The source code is available at these addresses:
https://github.com/ocaml/ocaml/archive/$VERSION.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-$BRANCH/ocaml-$VERSION.tar.gz
The compiler can also be installed as an OPAM switch with one of the
following commands:
opam update
opam switch create ocaml-variants.$VERSION --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
or
opam update
opam switch create ocaml-variants.$VERSION+<VARIANT> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
where you replace <VARIANT> with one of these:
afl
flambda
fp
fp+flambda
We want to know about all bugs. Please report them here:
https://github.com/ocaml/ocaml/issues
Happy hacking,
-- $HUMAN for the OCaml team.
```

View File

@ -0,0 +1,19 @@
## Announcing a production release:
```
Dear OCaml users,
We have the pleasure of celebrating <event> by announcing the release of
OCaml version $VERSION.
This is mainly a bug-fix release, see the list of changes below.
It is (or soon will be) available as a set of OPAM switches,
and as a source download here:
https://caml.inria.fr/pub/distrib/ocaml-$BRANCH/
Happy hacking,
-- $HUMAN for the OCaml team.
<< insert the relevant Changes section >>
```

View File

@ -0,0 +1,40 @@
## Announcing a release candidate:
```
Dear OCaml users,
The release of OCaml version $MAJOR.$MINOR.$BUGFIX is imminent. We have
created a release candidate that you can test.
The source code is available at these addresses:
https://github.com/ocaml/ocaml/archive/$VERSION.tar.gz
https://caml.inria.fr/pub/distrib/ocaml-$BRANCH/ocaml-$VERSION.tar.gz
The compiler can also be installed as an OPAM switch with one of the
following commands:
opam update
opam switch create ocaml-variants.$VERSION --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
or
opam update
opam switch create ocaml-variants.$VERSION+<VARIANT> --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git
where you replace <VARIANT> with one of these:
afl
flambda
fp
fp+flambda
We want to know about all bugs. Please report them here:
https://github.com/ocaml/ocaml/issues
Happy hacking,
-- $HUMAN for the OCaml team.
<< insert the relevant Changes section >>
```