You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: processes/crystal-release.md
+11-13Lines changed: 11 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,6 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
28
28
29
29
### Source release
30
30
31
-
32
31
1.[ ] Finalize the release PR
33
32
* Make sure all changes are mentioned in the changelog
34
33
* Check release date
@@ -38,7 +37,7 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
38
37
4.[ ] Smoke test with [test-ecosystem](https://github.com/crystal-lang/test-ecosystem)
39
38
* 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`.
40
39
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:
42
41
1. Tag & annotate the commit with the changelog using `<M.m.p>` pattern as version
43
42
*`git tag -s -a -m $VERSION $VERSION`
44
43
*`git push --tags`
@@ -50,14 +49,16 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
50
49
51
50
### Binary releases
52
51
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)
4.[ ] Push changes to OBS for building linux packages
62
63
1. Checkout https://github.com/crystal-lang/distribution-scripts and go to [`./packages`](../packages)
63
64
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
81
82
* Versioned docker images have been pushed to dockerhub.
82
83
* Now just assign the `latest` tags:
83
84
*`./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`
86
87
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.
87
88
1. Check the current status to find the revision of the tagged release otherwise:
88
89
1.`snapcraft status crystal`
@@ -97,18 +98,15 @@ Add an issue `Crystal release X.Y.Z` in https://github.com/crystal-lang/distribu
97
98
1.[ ] Publish API docs
98
99
1. Have `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` env variables defined
99
100
* 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}`
102
102
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)
105
104
3. (minor) Verify that deployment was successfull
106
105
107
106
### Release announcements
108
107
1.[ ] Publish release notes on the website
109
108
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)
0 commit comments