Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand Down
57 changes: 16 additions & 41 deletions README_RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
```
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
48 changes: 3 additions & 45 deletions build-release.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
6 changes: 3 additions & 3 deletions cliff.toml
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@

group=io.openliberty.yoko
symbolicNamePrefix=org.apache.yoko.
version=1.5.3
version=1.6.0
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down