Publish build artifacts from CircleCI and GitHub Actions to GitHub release. For URL_TO_CIRCLECI_ARTIFACT grab the URL
of any of the build artifacts in circleCI (doesn't matter which).
Run make -C docs publish_docs dist-redirect_latest CRYSTAL_VERSION=1.12.1 to publish docs to api/1.12.1 and apply redirect from api/latest to api/1.12.1
git push (GitHub branch protection rules normally prevent direct pushes to
master. This needs to be deactivated for this purpose, which can be on a
per-user basis.)
Release preparation
distribution-scripts
are up to date (./scripts/update-distribution-scripts.sh
)crystal:scripts/github-changelog.cr
is:pr is:merged sort:updated-desc no:milestone
).is:pr is:merged sort:updated-desc no:label milestone:1.12.1
).CHANGELOG.md
,src/VERSION
andshard.yml
.Release process
Source release
crystal_branch
.../distribution-scripts/processes/scripts/make-crystal-release.sh
(run fromcrystallang/crystal@1.12.1
work tree). This performs these steps:<M.m.p>
pattern as versiongit tag -s -a -m 1.12.1 1.12.1
git push --tags
Binary releases
URL_TO_CIRCLECI_ARTIFACT
grab the URL of any of the build artifacts in circleCI (doesn't matter which).../distribution-scripts/processes/scripts/publish-crystal-packages-on-github.sh $URL_TO_CIRCLECI_ARTIFACT
(run fromcrystallang/crystal@1.12.1
work tree)crystal-*-darwin-*.tar.gz
crystal-*-linux-*.tar.gz
crystal-*.pkg
crystal-*-docs.tar.gz
crystal-release.zip
->crystal-1.12.1-windows-x86_64-msvc-unsupported.zip
crystal-installer.zip
-> unzip ->crystal-1.12.1-windows-x86_64-msvc-unsupported.exe
./packages
export OBS_USER=
export OBS_PASSWORD=
crystal1.12
package:./obs-release.sh devel:languages:crystal crystal1.12 1.12.1
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 1.12.1
snapcore/snapcraft
for running the following commands)docker run --pull=always --rm -it snapcore/snapcraft
snapcraft login
snapcraft status crystal
snapcraft release crystal <revision-number> beta
snapcraft release crystal <revision-number> stable
Publish documentation for the release
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
env variables definedmake -C docs publish_docs dist-redirect_latest CRYSTAL_VERSION=1.12.1
to publish docs toapi/1.12.1
and apply redirect fromapi/latest
toapi/1.12.1
Release announcements
Post-release
master
branch to use released version:crystal:scripts/release-update.sh 1.12.1
.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 1.12.1
(https://github.com/crystal-lang/test-ecosystem/pull/57)release/1.12
branch intomaster
(if the two have diverged)git switch master && git pull && git merge release/1.12; git checkout master src/VERSION && git add src/VERSION && git commit
git push
(GitHub branch protection rules normally prevent direct pushes tomaster
. This needs to be deactivated for this purpose, which can be on a per-user basis.)