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: CONTRIBUTING.md
+17-86Lines changed: 17 additions & 86 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,8 @@ The Apollo team welcomes contributions of all kinds, including bug reports, docu
4
4
features.
5
5
6
6
If you want to discuss the project or just say hi, stop
7
-
by [the kotlinlang Slack channel](https://app.slack.com/client/T09229ZC6/C01A6KM1SBZ)(get your
8
-
invite [here](https://slack.kotl.in/))
7
+
by [the kotlinlang Slack channel](https://app.slack.com/client/T09229ZC6/C01A6KM1SBZ)(get your
8
+
invite [here](https://slack.kotl.in/)).
9
9
10
10
## Project Setup
11
11
@@ -198,53 +198,31 @@ features of Kotlin/Coroutines/etc. and therefore may break in certain situations
198
198
199
199
## Releasing
200
200
201
-
Releasing is done using Github Actions. The CI contains credentials to upload artifacts to Sonatype and the Gradle
202
-
Plugin Portal.
203
-
204
-
Snapshots are published automatically.
205
-
Releases are published when a tag is pushed.
206
-
207
-
Here are the steps to do a new release:
208
-
209
-
*`git checkout main && git pull`
210
-
*`scripts/release.main.kts <version-name>`
211
-
* while it compiles, prepare the changelog, open a PR to `CHANGELOG.md` (see below)
212
-
* wait for the CI to finish compiling
213
-
* go to https://s01.oss.sonatype.org/, and release the artifacts manually. This step is called "close, release and drop"
214
-
in the Sonatype ecosystem.
215
-
* wait for it to be visible on [Maven Central](https://repo1.maven.org/maven2/com/apollographql/apollo/) (this usually
216
-
takes a few minutes). If you're on MacOS, you can
217
-
use [dependency-watch](https://github.com/JakeWharton/dependency-watch): `dependency-watch await 'com.apollographql.apollo:apollo-runtime:$version' && osascript -e 'display notification "Release is ready 🚀"'`
218
-
* merge pending documentation/tutorial updates. Make sure the tutorial compiles and runs well.
219
-
* paste the changelog in a new release on [GitHub](https://github.com/apollographql/apollo-kotlin/releases)
201
+
Releasing is done using Github Actions.
202
+
The CI contains credentials to upload artifacts to Maven Central, snapshots and Google Cloud preview repos.
203
+
204
+
The version in source control always ends with `-SNAPSHOT`. When a tag is built, the `-SNAPSHOT` suffix is dropped.
205
+
206
+
To create a version:
207
+
* Go to https://github.com/apollographql/apollo-kotlin/releases/new
208
+
* Enter the new tag name in the "Choose a tag" dropdown. That tag name must match the current version without `-SNAPSHOT` and be prefixed by `v`: `vX.Y.Z`.
209
+
* Enter the changelog.
210
+
* Hit "publish release".
211
+
* The release job will be triggered and the artifacts will be uploaded to Maven Central when done (might take several minutes to a couple of hours).
212
+
* Update docs and prepare next release by calling `./scripts/update-repo --prepare-next-version`
220
213
* if it's a significant release, tweet about it 🐦
221
214
* relax 🍹
222
215
216
+
If you need to bump the version more than one minor:
217
+
* call `./scripts/update-repo --set-version x.y.z-SNAPSHOT`. This makes sure that the version is updated everywhere it needs be but doesn't change the docs. The version must always end with `-SNAPSHOT`.
218
+
223
219
### Changelog file
224
220
* Add a section with the version, date, and a quick summary of what the release contains.
225
221
* Optionally add a few sections to zoom in on changes you want to highlight.
226
222
* No need to highlight deprecations, as warnings in the code are enough.
227
223
* Mention and thank external contributors if any.
228
224
* Add an "All changes" section that should list all commits since last release (can use `git log --pretty=oneline <previous-tag>..main`). Commits on the documentation can be omitted.
229
225
230
-
## Debugging minimized Gradle Plugin stacktraces
231
-
232
-
Because the Gradle plugin uses [R8](https://r8.googlesource.com/r8) to relocate dependencies, the stacktraces do not
233
-
match the source code by default. It is possible to retrace them using the mapping file and R8.
0 commit comments