Skip to content

Commit 6133983

Browse files
Improve instructions for Crystal release (#254)
1 parent 1f7dcc8 commit 6133983

File tree

2 files changed

+16
-18
lines changed

2 files changed

+16
-18
lines changed

processes/crystal-release.md

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
2828

2929
### Source release
3030

31-
3231
1. [ ] Finalize the release PR
3332
* Make sure all changes are mentioned in the changelog
3433
* Check release date
@@ -38,7 +37,7 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
3837
4. [ ] Smoke test with [test-ecosystem](https://github.com/crystal-lang/test-ecosystem)
3938
* Run [*Test Crystal & Shards Workflow*](https://github.com/crystal-lang/test-ecosystem/actions/workflows/test-crystal-shards.yml) with the release branch as `crystal_branch`.
4039
5. [ ] Merge the release PR
41-
6. Make the release and publish it on GitHub: [`scripts/make-crystal-release.sh`](https://github.com/crystal-lang/distribution-scripts/blob/master/processes/scripts/make-crystal-release.sh) (run from `crystallang/crystal@master` work tree). This performs these steps:
40+
6. [ ] Make the release and publish it on GitHub: [`../distribution-scripts/processes/scripts/make-crystal-release.sh`](https://github.com/crystal-lang/distribution-scripts/blob/master/processes/scripts/make-crystal-release.sh) (run from `crystallang/crystal@$VERSION` work tree). This performs these steps:
4241
1. Tag & annotate the commit with the changelog using `<M.m.p>` pattern as version
4342
* `git tag -s -a -m $VERSION $VERSION`
4443
* `git push --tags`
@@ -50,14 +49,16 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
5049

5150
### Binary releases
5251

53-
3. Publish build artifacts from CircleCI and GitHub Actions to GitHub release
54-
* [ ] Upload build artifacts from CircleCI: [`scripts/publish-crystal-packages-on-github.sh`](https://github.com/crystal-lang/distribution-scripts/blob/master/processes/scripts/publish-crystal-packages-on-github.sh)
52+
3. Publish build artifacts from CircleCI and GitHub Actions to GitHub release. For `URL_TO_CIRCLECI_ARTIFACT` grab the URL
53+
of any of the build artifacts in circleCI (doesn't matter which).
54+
* [ ] Upload build artifacts from CircleCI: [`../distribution-scripts/processes/scripts/publish-crystal-packages-on-github.sh $URL_TO_CIRCLECI_ARTIFACT`](https://github.com/crystal-lang/distribution-scripts/blob/master/processes/scripts/publish-crystal-packages-on-github.sh) (run from `crystallang/crystal@$VERSION` work tree)
5555
* `crystal-*-darwin-*.tar.gz`
5656
* `crystal-*-linux-*.tar.gz`
5757
* `crystal-*.pkg`
5858
* `crystal-*-docs.tar.gz`
5959
* [ ] Upload build artifacts from GHA (Windows):
60-
* `crystal.zip` -> `crystal-$VERSION-windows-x86_64-msvc-unsupported.zip`
60+
* `crystal-release.zip` -> `crystal-$VERSION-windows-x86_64-msvc-unsupported.zip`
61+
* `crystal-installer.zip` -> unzip -> `crystal-$VERSION-windows-x86_64-msvc-unsupported.exe`
6162
4. [ ] Push changes to OBS for building linux packages
6263
1. Checkout https://github.com/crystal-lang/distribution-scripts and go to [`./packages`](../packages)
6364
2. Configure build.opensuse.org credentials in environment variables:
@@ -81,8 +82,8 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
8182
* Versioned docker images have been pushed to dockerhub.
8283
* Now just assign the `latest` tags:
8384
* `./docker/apply-latest-tags.sh ${VERSION}`
84-
6. [ ] Publish snap package
85-
1. You need to logged in via `$ snapcraft login`
85+
6. [ ] Publish snap package (you can use the docker image `snapcore/snapcraft` for running the following commands)
86+
1. You need to logged in via `snapcraft login`
8687
1. Recent tagged release is published directly to edge channel. The CI logs the snap revision number. Otherwise the .snap file is in the artifacts.
8788
1. Check the current status to find the revision of the tagged release otherwise:
8889
1. `snapcraft status crystal`
@@ -97,18 +98,15 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
9798
1. [ ] Publish API docs
9899
1. Have `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` env variables defined
99100
* Keys can be generated at https://console.aws.amazon.com/iam/home#/security_credentials (contact a Manas admin if you don't have access).
100-
2. Run `make -C docs publish_docs CRYSTAL_VERSION=${VERSION}` to publish docs to `api/${VERSION}`
101-
3. Run `make -C docs dist-redirect_latest CRYSTAL_VERSION=${VERSION}` to apply redirect from `api/latest` to `api/${VERSION}`
101+
2. Run `make -C docs publish_docs dist-redirect_latest CRYSTAL_VERSION=${VERSION}` to publish docs to `api/${VERSION}` and apply redirect from `api/latest` to `api/${VERSION}`
102102
2. [ ] (minor) Publish Crystal book
103-
1. (minor) Create `release/${VERSION%.*}` branch (deployment happens automatically in GHA)
104-
2. (minor) Change default branch to `release/${VERSION%.*}`
103+
1. (minor) Create `release/${VERSION%.*}` branch and push it to `crystal-lang/crystal-book` (deployment happens automatically in GHA)
105104
3. (minor) Verify that deployment was successfull
106105

107106
### Release announcements
108107
1. [ ] Publish release notes on the website
109108
2. [ ] Post announcement in https://forum.crystal-lang.org/c/news/official
110-
3. [ ] Tweet about the release (and pin it)
111-
4. [ ] Post in Reddit
109+
3. [ ] Announce on social media accounts (via Buffer; credentials are in Passbolt)
112110
5. [ ] Update https://github.com/crystal-lang/crystal-book/blob/master/crystal-version.txt
113111
6. [ ] (minor) Post the release in https://opencollective.com/crystal-lang
114112

processes/scripts/functions.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ step(){
77
command="$*"
88

99
echo
10-
echo "\033[33m===============================================================================\033[0m"
11-
echo "\033[33m$step_number. $message\033[0m"
10+
echo -e "\033[33m===============================================================================\033[0m"
11+
echo -e "\033[33m$step_number. $message\033[0m"
1212
echo
13-
echo -n "$ $command"
13+
echo -en "$ $command"
1414
step_number=$(expr $step_number + 1)
1515
if [ $step_number -lt $START_STEP ]; then
16-
echo " \033[33m(skipped)\033[0m"
16+
echo -e " \033[33m(skipped)\033[0m"
1717
return
1818
fi
1919

@@ -22,6 +22,6 @@ step(){
2222
if [ "$REPLY" != "skip" ]; then
2323
eval "$command"
2424
else
25-
echo "\033[33m(skipped)\033[0m"
25+
echo -e "\033[33m(skipped)\033[0m"
2626
fi
2727
}

0 commit comments

Comments
 (0)