Closed straight-shoota closed 1 year ago
crystal:scripts/github-changelog.cr
is:pr is:merged sort:updated-desc no:milestone
is:pr is:merged sort:updated-desc no:label milestone:${VERSION}
CHANGELOG.md
VERSION
crystal_branch
scripts/make-crystal-release.sh
crystallang/crystal@master
<M.m.p>
git tag -s -a -m $VERSION $VERSION
git push --tags
scripts/publish-crystal-packages-on-github.sh
crystal-*-darwin-*.tar.gz
crystal-*-linux-*.tar.gz
crystal-*.pkg
crystal-*-docs.tar.gz
crystal.zip
crystal-$VERSION-windows-x86_64-msvc-unsupported.zip
./packages
export OBS_USER=
export OBS_PASSWORD=
crystal
./obs-release.sh devel:languages:crystal crystal $VERSION
crystallang/osc
osc build xUbuntu_20.04 x86_64
osc build Fedora_Rawhide x86_64
crystal${VERSION%.*}
./obs-release.sh devel:languages:crystal crystal${VERSION%.*} $VERSION
open https://build.opensuse.org/project/show/home:$OBS_USER:branches:devel:langauges:crystal/crystal
OBS_PROJECT=devel:languages:crystal bats test
latest
./docker/apply-latest-tags.sh ${VERSION}
$ snapcraft login
snapcraft status crystal
snapcraft release crystal <revision-number> beta
snapcraft release crystal <revision-number> stable
brew install --build-from-source <source of formula>
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
make -C docs publish_docs CRYSTAL_VERSION=${VERSION}
api/${VERSION}
make -C docs dist-redirect_latest CRYSTAL_VERSION=${VERSION}
api/latest
master
crystal:scripts/release-update.sh
.circleci/config.yml
bin/ci
prepare_build
.github/workflows/*.yml
shell.nix
latestCrystalBinary
nix-prefetch-url --unpack <url>
test-ecosystem:scripts/release-update.sh
Release preparation
crystal:scripts/github-changelog.cr
(https://github.com/crystal-lang/crystal/pull/12995)is:pr is:merged sort:updated-desc no:milestone
).is:pr is:merged sort:updated-desc no:label milestone:${VERSION}
).CHANGELOG.md
andVERSION
.Release process
Source release
crystal_branch
.scripts/make-crystal-release.sh
(run fromcrystallang/crystal@master
work tree). This performs these steps:<M.m.p>
pattern as versiongit tag -s -a -m $VERSION $VERSION
git push --tags
Binary releases
scripts/publish-crystal-packages-on-github.sh
crystal-*-darwin-*.tar.gz
crystal-*-linux-*.tar.gz
crystal-*.pkg
crystal-*-docs.tar.gz
crystal.zip
->crystal-$VERSION-windows-x86_64-msvc-unsupported.zip
./packages
export OBS_USER=
export OBS_PASSWORD=
crystal
package:./obs-release.sh devel:languages:crystal crystal $VERSION
crystallang/osc
to run the CLI client for OBS.osc build xUbuntu_20.04 x86_64
osc build Fedora_Rawhide x86_64
crystal${VERSION%.*}
package:./obs-release.sh devel:languages:crystal crystal${VERSION%.*} $VERSION
open https://build.opensuse.org/project/show/home:$OBS_USER:branches:devel:langauges:crystal/crystal
OBS_PROJECT=devel:languages:crystal bats test
latest
docker imageslatest
tags:./docker/apply-latest-tags.sh ${VERSION}
$ snapcraft login
snapcraft status crystal
snapcraft release crystal <revision-number> beta
snapcraft release crystal <revision-number> stable
brew install --build-from-source <source of formula>
Publish documentation for the release
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
env variables definedmake -C docs publish_docs CRYSTAL_VERSION=${VERSION}
to publish docs toapi/${VERSION}
make -C docs dist-redirect_latest CRYSTAL_VERSION=${VERSION}
to apply redirect fromapi/latest
toapi/${VERSION}
Release announcements
Post-release
master
branch to use released version:crystal:scripts/release-update.sh
.circleci/config.yml
bin/ci
prepare_build
on_osx download package and folder.github/workflows/*.yml
to point to docker imageshell.nix
latestCrystalBinary
usingnix-prefetch-url --unpack <url>
test-ecosystem:scripts/release-update.sh