RELEASE_CHECKLIST.md
63 lines
| 1.8 KiB
| text/x-minidsrc
|
MarkdownLexer
|
|
r60 | # Release Checklist | ||
| This checklist tracks what should be true before publishing outside the local | ||||
| Ivy repository. | ||||
| ## Current Scope | ||||
| For now the project is prepared for local Ivy publication only. | ||||
| ## Required Before External Publication | ||||
| - Add Maven publication (`maven-publish`) if publishing to Maven repositories. | ||||
| - Add signing for Maven Central or any repository that requires signed | ||||
| artifacts. | ||||
| - Add complete POM metadata: project name, description, URL, license, | ||||
| developers, and SCM coordinates. | ||||
| - Keep Java 21 as the public baseline and document it for consumers. | ||||
| - Decide whether `variants` artifact APIs are published as experimental or | ||||
| split into a later module. | ||||
| - Add Gradle plugin marker artifact generation if `plugins { id(...) version(...) }` | ||||
| must work. | ||||
| - Add a published-consumption smoke test that resolves artifacts from a | ||||
| temporary local repository. | ||||
| ## Local Ivy Release Steps | ||||
| 1. Ensure the Mercurial working tree is clean. | ||||
| 2. Run: | ||||
| ```bash | ||||
| ./gradlew clean check javadoc jar sourcesJar javadocJar --rerun-tasks | ||||
| ``` | ||||
| 3. Optionally run: | ||||
| ```bash | ||||
| ./gradlew check --configuration-cache | ||||
| ``` | ||||
| 4. Publish locally: | ||||
| ```bash | ||||
| ./gradlew publish | ||||
| ``` | ||||
| 5. Optionally smoke-publish into `/tmp` first: | ||||
| ```bash | ||||
| ./gradlew -Duser.home=/tmp/gradle-common-ivy-smoke \ | ||||
| :common:publishIvyPublicationToIvyRepository \ | ||||
| :variants:publishIvyPublicationToIvyRepository \ | ||||
| --rerun-tasks | ||||
| ``` | ||||
| 6. Verify `${user.home}/ivy-repo/org.implab.gradle` contains `common` and | ||||
| `variants` for the expected version. | ||||
| ## API Status | ||||
| - `common` is intended to be a shared utility library. | ||||
| - `variants` core and source APIs are pre-1.0 and should be treated as | ||||
| evolving. | ||||
| - `variantArtifacts` is experimental and may change more aggressively. | ||||
