diff --git a/CHANGELOG.md b/CHANGELOG.md index b1770bac7..d21c5c361 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## [v1.6.0] - 2026-02-25 + +### 🚀 Features + +- Use new UTF8-compatible (w)char codecs +- Use UTF-8 and UTF-16 codeset defaults + +### 🐛 Bug Fixes + +- Set input stream codecs in preUnmarshal() +- Use CESU-8 encoding with older Yoko +- Use Latin-1 charset to encode op name + ## [v1.5.3] - 2026-01-09 ### 🚀 Features @@ -11,11 +24,13 @@ - Garbled GIOP message logging - Skip bounds check for UTF-8/UTF-16/UCS-2 - Correctly identify UTF-8 2-byte and 3-byte sequences + ## [v1.5.2] - 2025-11-18 ### 🐛 Bug Fixes - Handle SystemException from createLocateRequestDowncall + ## [v1.5.1] ### Bug Fixes diff --git a/README_RELEASE.md b/README_RELEASE.md index d7dec77e7..690cb1a37 100644 --- a/README_RELEASE.md +++ b/README_RELEASE.md @@ -27,7 +27,20 @@ The Yoko project now has a comprehensive, automated release process similar to G ## 🚀 Quick Start -### Create a Release (4 Simple Steps) +### Create a Release via GitHub (Recommended) + - Go to Actions → Release workflow + - Click "Run workflow" + - Enter version: e.g. `1.5.3` (without v prefix) + + This will automatically: + - Create a release branch + - Update CHANGELOG.md (if needed) + - Build and test + - Create an annotated tag `v1.5.3` + - Create the GitHub release with all artifacts + - Merge to main and cleanup + +### Create a Release Locally (4 Simple Steps) 1. **Bump the version (if needed)** ```bash @@ -44,34 +57,16 @@ The Yoko project now has a comprehensive, automated release process similar to G ```bash # Update for all commits since last tag ./gradlew updateChangelog - - # Or update for specific tag - ./gradlew updateChangelogForTag -PreleaseTag=v1.5.3 ``` 3. **Commit and Push** ```bash - git add CHANGELOG.md + git add -p CHANGELOG.md git commit -m "chore: prepare release v1.5.3" git push origin main ``` 4. **Create Release** (choose one method): - - **Method A: Automated via GitHub UI (Recommended)** - - Go to Actions → Release workflow - - Click "Run workflow" - - Enter version: `1.5.3` (without v prefix) - - This will automatically: - - Create a release branch - - Update CHANGELOG.md (if needed) - - Build and test - - Create an annotated tag `v1.5.3` - - Create the GitHub release with all artifacts - - Merge to main and cleanup - - **Method B: Manual via Gradle** ```bash ./gradlew release ``` @@ -96,7 +91,6 @@ All release tasks are accessible from Gradle: # Update CHANGELOG with git-cliff (manual) ./gradlew updateChangelog -./gradlew updateChangelogForTag -PreleaseTag=v1.5.3 # Verify prerequisites ./gradlew verifyReleasePrerequisites @@ -119,7 +113,7 @@ All release tasks are accessible from Gradle: The project version is managed in `gradle.properties`: ```properties -version=1.5.2 +version=1.5.3 ``` ### Bumping the Version @@ -307,25 +301,6 @@ This dry-run: - ✅ Tests the build - ✅ **Makes NO changes** to git or remote repositories -### Local Testing - -Test locally without pushing to origin: - -```bash -# Create test branch locally -git checkout -b release/1.5.3-test - -# Test CHANGELOG generation -./gradlew updateChangelogForTag -PreleaseTag=v1.5.3-test - -# Test build -./gradlew clean build test - -# Clean up -git checkout main -git branch -D release/1.5.3-test -``` - ## 🔄 Rolling Back Releases ### Automated Rollback diff --git a/build-release.gradle b/build-release.gradle index 962d113ea..b4cd1134f 100644 --- a/build-release.gradle +++ b/build-release.gradle @@ -93,61 +93,19 @@ task updateChangelog { } catch (Exception e) { throw new GradleException("git-cliff not found. Install from: https://git-cliff.org/docs/installation") } - - println "Updating CHANGELOG.md using git-cliff..." + + println "Updating CHANGELOG.md using git-cliff for v${version}..." // Run git-cliff to update only unreleased changes, preserving existing entries // Use --unreleased to only add new changes since the last tag exec { - commandLine 'git-cliff', '--config', cliffConfig.absolutePath, '--unreleased', '--prepend', changelogFile.absolutePath + commandLine 'git-cliff', '--config', cliffConfig.absolutePath, '--tag', "v${version}", '--unreleased', '--prepend', changelogFile.absolutePath } println "✅ CHANGELOG.md updated successfully" } } -// Task to update CHANGELOG for a specific version tag -task updateChangelogForTag { - group = 'release' - description = 'Updates CHANGELOG.md for a specific version tag using git-cliff' - - def changelogFile = file('CHANGELOG.md') - def cliffConfig = file('cliff.toml') - - inputs.file cliffConfig - outputs.file changelogFile - - doLast { - // Check if git-cliff is available - try { - exec { - commandLine 'git-cliff', '--version' - standardOutput = new ByteArrayOutputStream() - } - } catch (Exception e) { - throw new GradleException("git-cliff not found. Install from: https://git-cliff.org/docs/installation") - } - - // Get the version tag from project or system property - def versionTag = project.hasProperty('releaseTag') ? - project.property('releaseTag') : - "v${version}" - - println "Updating CHANGELOG.md for tag: ${versionTag}" - - // Run git-cliff with tag, using --unreleased and --prepend to preserve existing entries - exec { - commandLine 'git-cliff', - '--config', cliffConfig.absolutePath, - '--tag', versionTag, - '--unreleased', - '--prepend', changelogFile.absolutePath - } - - println "✅ CHANGELOG.md updated for ${versionTag}" - } -} - // Task to interactively bump the semantic version task bumpVersion { group = 'release' diff --git a/cliff.toml b/cliff.toml index b842058b6..64194d29c 100644 --- a/cliff.toml +++ b/cliff.toml @@ -1,4 +1,4 @@ -# Copyright 2025 IBM Corporation and others. +# Copyright 2026 IBM Corporation and others. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -29,11 +29,11 @@ body = """ {% for group, commits in commits | group_by(attribute="group") %} ### {{ group | striptags | trim | upper_first }} {% for commit in commits %} - - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ - {% if commit.breaking %}[**breaking**] {% endif %}\ + - {% if commit.breaking %}[**breaking**] {% endif %}\ {{ commit.message | upper_first }}\ {% endfor %} {% endfor %} + """ # Remove leading and trailing whitespaces from the changelog's body. trim = true diff --git a/gradle.properties b/gradle.properties index 90e456f97..019c38eff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,4 +16,4 @@ group=io.openliberty.yoko symbolicNamePrefix=org.apache.yoko. -version=1.5.3 +version=1.6.0 diff --git a/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPOutgoingMessage.java b/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPOutgoingMessage.java index f5f39a109..92fd3472c 100644 --- a/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPOutgoingMessage.java +++ b/yoko-core/src/main/java/org/apache/yoko/orb/OB/GIOPOutgoingMessage.java @@ -34,9 +34,6 @@ import org.omg.IOP.ServiceContext; import org.omg.IOP.TaggedProfile; import org.omg.IOP.TaggedProfileHelper; -import sun.nio.cs.ISO_8859_1; - -import java.nio.charset.StandardCharsets; import static java.nio.charset.StandardCharsets.ISO_8859_1;