From 0482ebb7f3a19d0dfda7c5faede7b9b121746f80 Mon Sep 17 00:00:00 2001 From: Jon Parker Date: Wed, 21 May 2025 13:12:04 -0400 Subject: [PATCH] release: Releasing 0.0.59 --- README.md | 13 ++++++------- build.gradle.kts | 2 +- docs/publish-to-maven-central.md | 32 +++++++++++++++++++++++--------- docs/release-notes.md | 11 ++++++++++- 4 files changed, 40 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index fd09030..bdb5ec2 100644 --- a/README.md +++ b/README.md @@ -41,23 +41,22 @@ general purpose Java utilities from the Aviation Risk Identification and Assessm ### Early Open Sourcing checklist - [ ] Add "CONTRIBUTION.md" rules -- [ ] Add Roadmap - - [ ] Then pivoting to Java 17 - - [ ] Removing pair and triple (only in Java 17+) - [ ] (Re)Add code coverage --- ## Adopting! -All official releases are available at [Maven Central](https://central.sonatype.com/artifact/org.mitre/commons). -The latest official release is version: `0.0.58` +- Adopting this Java library requires your project to be on Java 17 or later. +- The latest official release is version: `0.0.59` +- All official releases are available at [Maven Central](https://central.sonatype.com/artifact/org.mitre/commons). + #### Gradle ``` dependencies { - implementation("org.mitre:commons:0.0.58") + implementation("org.mitre:commons:0.0.59") } ``` @@ -67,7 +66,7 @@ dependencies { org.mitre commons - 0.058 + 0.059 ``` diff --git a/build.gradle.kts b/build.gradle.kts index 3053032..84eb0b3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "org.mitre" -version = "0.0.59-SNAPSHOT" +version = "0.0.59" repositories { mavenCentral() diff --git a/docs/publish-to-maven-central.md b/docs/publish-to-maven-central.md index 858c2ba..59836ef 100644 --- a/docs/publish-to-maven-central.md +++ b/docs/publish-to-maven-central.md @@ -16,24 +16,38 @@ intentionally un-automated to ensure releases are always highly intentional acti **The Goal: Manually create an "asset bundle" we can upload to maven central** -- Official "how-to" documentation is [here](https://central.sonatype.org/publish/publish-manual/) -- The final `bundle.jar` must be suitable for `maven central` (Developer list, SCM Urls, Project Description, etc.) +- Official "how-to" documentation is [here](https://central.sonatype.org/publish/publish-portal-upload/) + - Older, partially out-dated (but still useful) "how-to" documentation is [here](https://central.sonatype.org/publish/publish-manual/) +- The final `.pom` must be suitable for `maven central` (Developer list, SCM Urls, Project Description, etc.) - Make build must create these resource: - `software-libary.jar` - `software-libary.pom` - `software-libary-source.jar` - `software-libary-javadoc.jar` -- **Action:** Sign all artifacts with gpg +- **Action:** Sign all 4 artifacts with gpg - **Run:** `gpg -ab commons-X.Y.Z.jar` - **Run:** `gpg -ab commons-X.Y.Z.pom` - **Run:** `gpg -ab commons-X.Y.Z-sources.jar` - **Run:** `gpg -ab commons-X.Y.Z-javadoc.jar` -- **Action:** Bundle all the artifacts into one jar. +- **Action:** Generate the MD5 checksum of all 4 artifacts + - **Run:** `md5sum commons-X.Y.Z.jar | cut -d " " -f 1 > commons-X.Y.Z.jar.md5` + - **Run:** `md5sum commons-X.Y.Z.pom | cut -d " " -f 1 > commons-X.Y.Z.jar.md5` + - **Run:** `md5sum commons-X.Y.Z-sources.jar | cut -d " " -f 1 > commons-X.Y.Z-sources.jar.md5` + - **Run:** `md5sum commons-X.Y.Z-javadoc.jar | cut -d " " -f 1 > commons-X.Y.Z-javadoc.jar.md5` +- **Action:** Generate the SHA1 checksum of all 4 artifacts + - **Run:** `sha1sum commons-X.Y.Z.jar | cut -d " " -f 1 > commons-X.Y.Z.jar.sha1` + - **Run:** `sha1sum commons-X.Y.Z.pom | cut -d " " -f 1 > commons-X.Y.Z.jar.sha1` + - **Run:** `sha1sum commons-X.Y.Z-sources.jar | cut -d " " -f 1 > commons-X.Y.Z-sources.jar.sha1` + - **Run:** `sha1sum commons-X.Y.Z-javadoc.jar | cut -d " " -f 1 > commons-X.Y.Z-javadoc.jar.sha1` +- **Action:** Bundle all the artifacts into one .zip file. + - `mkdir -p org/mitre/commons/X.Y.Z` + - `cp commons-X.Y.Z* org/mitre/commons/X.Y.Z` + - create the `.zip` file + - Name the `.zip` whatever you like. This is the file that gets uploaded to the portal - **Run:** `jar -cvf bundle.jar commons-X.Y.Z-javadoc.jar commons-X.Y.Z-javadoc.jar.asc commons-X.Y.Z-sources.jar commons-X.Y.Z-sources.jar.asc commons-X.Y.Z.jar commons-X.Y.Z.jar.asc commons-X.Y.Z.pom commons-X.Y.Z.pom.asc` - This creates the artifact bundle: `bundle.jar` -- Log into `oss.sonatype.org` - - Select `Staging Upload` and provide your `bundle.jar` - - **ALERT:** Sometimes this upload produces an "upload failed" dialog even when the upload was successful - - Select `Staging Repositories` and find the bundle you just uploaded. The artifact repo should list all the checks - the bundle went through. +- Log into `https://central.sonatype.com/` + - Select `Publish` + - Upload your .zip + - Wait for system to verify your upload. It will require jar, pom, sources, docs, md5 checksums, sha1 checksums, pgp signatures. diff --git a/docs/release-notes.md b/docs/release-notes.md index 372f5b4..cb858fd 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -1,12 +1,21 @@ # Release Notes +### Version 0.0.59 (Released 2025-05-21) + +- **Migrated to Java 17** +- Added `AltitudePath`, `VehiclePath`, and `PathPair`. + - These classes are designed to be `Key` types used in [DistanceTrees](https://github.com/mitre-public/dist-tree) +- `YyyyMmDd` added `plus` and `minus` methods +- Added `CheckedRunnable` and `CheckedCallable` to automatically demote checked exceptions and allow using methods that + throw Checked Exceptions to be used in standard java lambda places ### Version 0.0.58 (Released 2025-04-05) + - Added LeftMerger utility class - Added `Time.enclosingTimeWindow(Collection times)` - `MapBuilder` has new convenience functions for certain `MapFeatures` - Multi-line Strings - - draw circles (Supports `Collection`, `LatLongPath`, and `LatLong64Path`) + - draw circles (Supports `Collection`, `LatLongPath`, and `LatLong64Path`) - draw paths (Supports `Collection`, `LatLongPath`, and `LatLong64Path`) - `ReservoirSampler` now implements the `Consumer` interface - Patched a flawed constructor in `LatLong64Path`