From 04826aa1cf1146482f744e51b06fe0c56b4dee15 Mon Sep 17 00:00:00 2001 From: James Baldassari Date: Tue, 17 Oct 2023 11:27:09 -0400 Subject: [PATCH] Add changelog, development instructions to readme --- CHANGELOG.md | 15 +++++++++++++++ README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ca6159a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changelog + +All notable changes will be documented in this file. + +# 1.0.1 - 2023-10-17 + +### Added + +- Tooling to automatically release to Maven Central when tagged (no functional changes) + +# 1.0.0 - 2023-10-12 + +### Added + +- Initial implementation/release diff --git a/README.md b/README.md index ada0c65..da5e7be 100644 --- a/README.md +++ b/README.md @@ -305,6 +305,60 @@ Use the `gradlew` script to build locally: ./gradlew build ``` +## Developing + +### Creating `SNAPSHOT` builds + +`SNAPSHOT` builds are automatically created on each push to a branch other than `main` and are published to the +Nexus [snapshot repository](https://s01.oss.sonatype.org/content/repositories/snapshots/com/mabl/pac-interpreter/). +The `SNAPSHOT` version will be of the form `--SNAPSHOT`, e.g. `1.2.3-mybranch-SNAPSHOT`. + +To use one of these snapshot builds, make sure you have the Nexus snapshot repository added to your build configuration. +For example, in Gradle you would need to add: + +``` +repositories { + maven { + url "https://s01.oss.sonatype.org/content/repositories/snapshots/" + } +} +``` + +### Staging a release + +__⚠️ Before merging to `main` make sure to bump `baseVersion` in [build.gradle](build.gradle)__ + +When a change is merged to `main`, a release build will be created and pushed to the +Nexus [staging repository](https://s01.oss.sonatype.org/content/repositories/staging/com/mabl/pac-interpreter/). + +The build is public but not pushed to Maven Central. You can test out the staging build by adding the staging repository +to your build configuration. For example, in Gradle you would need to add: + +``` +repositories { + maven { + url "https://s01.oss.sonatype.org/content/repositories/staging/" + } +} +``` + +### Releasing to Maven Central + +After verifying the staging build, the next step is to trigger the release to Maven Central. This can be done by +executing the `./tag.sh` [script](tag.sh) in the root of the repository. This will initiate the process of releasing to +Maven Central, but it may take some time for the release to be available and searchable there. Releases can be found in +the Nexus [releases repository](https://s01.oss.sonatype.org/content/repositories/releases/com/mabl/pac-interpreter/). + +### Other Sonatype/Nexus links + +In addition to the repositories listed above, +the [public repository](https://s01.oss.sonatype.org/content/repositories/public/com/mabl/pac-interpreter/) +contains all publicly accessible `pac-interpreter` artifacts. + +The [Nexus Repository Manager](https://s01.oss.sonatype.org/) can be used to inspect/manage `pac-interpreter` artifacts +interactively. It should never be necessary to interact with this UI manually as Github Workflows are set up to +automate all common development flows (see above). + ## Contributing Please feel free to file [issues](/issues) and submit [pull requests](/pulls) if you would like to contribute to this