Skip to content

Commit

Permalink
Fixed the release flow (#2896)
Browse files Browse the repository at this point in the history
* Updated release notes (#2882)

* Updated release notes

* Polishing

* Spellsheck fixes

* Modify the release acrtion to call the proper maven target for release, make releasing manually available too (#2885) (#2893)

* Added the nexus staging plugin

* Make version step conditional on the availability of a tag name in the event

* Missed the GPG configuration
  • Loading branch information
tishun authored and zeze1004 committed Jun 23, 2024
1 parent de09281 commit d873986
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 107 deletions.
7 changes: 7 additions & 0 deletions .github/wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,10 @@ github
runtime
transactional
Github
formatter
RedisConnectionCommands
BaseRedisCommands
DnsResolver
dnsResolver
evalReadOnly
gg
27 changes: 14 additions & 13 deletions .github/workflows/version-and-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,11 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: 1. Checkout sources
- name: Checkout sources
uses: actions/checkout@v4

- name: 2. Extract version from tag
id: get_version
run: |
realversion="${GITHUB_REF/refs\/tags\//}"
realversion="${realversion//v/}"
echo "VERSION=$realversion" >> $GITHUB_OUTPUT
- name: Set up Java with Maven cache

- name: 3. Set up Java with Maven cache
uses: actions/setup-java@v4
with:
java-version: '8'
Expand All @@ -30,20 +24,27 @@ jobs:
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD

- name: 4. Update version in Maven configuration
run: mvn versions:set -DnewVersion=${{ steps.get_version.outputs.VERSION }}
- name: Update version in Maven configuration
run: |
mvn --no-transfer-progress \
--batch-mode \
versions:set -DnewVersion=${{ github.event.release.tag_name }}
if: ${{ github.event.release.tag_name }}

- name: Install GPG key

- name: 5. Install GPG key
run: |
cat <(echo -e "${{ secrets.OSSH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- name: 6. Publish to Maven
- name: Publish to Maven

run: |
mvn --no-transfer-progress \
--batch-mode \
-Dgpg.passphrase='${{ secrets.OSSH_GPG_SECRET_KEY_PASSWORD }}' \
release:perform
deploy -P sonatype-oss-release
env:
MAVEN_USERNAME: ${{secrets.OSSH_USERNAME}}
MAVEN_PASSWORD: ${{secrets.OSSH_TOKEN}}
124 changes: 30 additions & 94 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
@@ -1,124 +1,60 @@
Lettuce 6.3.0 RELEASE NOTES
Lettuce 6.4.0 RELEASE NOTES
==============================

The Lettuce team is delighted to announce general availability of Lettuce 6.3.
The Redis team is delighted to announce general availability of Lettuce 6.4.

This release ships with support for Observability through Micrometer Tracing that has been
ported from Spring Data into Lettuce directly. Another infrastructure change is to report
the driver version and driver name to Redis through `CLIENT SETINFO` if the Redis version
is 7.2 or later using RESP3.

This release ships also with refinements around Cluster Topology refresh to suspend
periodic refresh. This is useful for JVM Checkpoint-Restore arrangements (Project CRaC)
to ensure that no background activity opens connections.

This release also upgrades to Kotlin 1.7 as baseline.
This Lettuce driver is now going to be shipped under the MIT licensing scheme. The `CLIENT SETINFO`
is now working in a fire-and-forget mode to allow better compatibility with Redis servers that do
not support this command.

Lettuce 6 supports Redis 2.6+ up to Redis 7.x. In terms of Java runtime, Lettuce requires
at least Java 8 and works with Java 21.

Thanks to all contributors who made Lettuce 6.3.0 possible.
Thanks to all contributors who made Lettuce 6.4.0 possible.

If you need any support, meet Lettuce at

* GitHub Discussions: https://github.com/lettuce-io/lettuce-core/discussions
* Stack Overflow (Questions): https://stackoverflow.com/questions/tagged/lettuce
* Join the chat at https://gitter.im/lettuce-io/Lobby for general discussion
* Join the chat at https://discord.gg/redis for general discussion
* GitHub Issues (Bug reports, feature
requests): https://github.com/lettuce-io/lettuce-core/issues
* Documentation: https://lettuce.io/core/6.3.0.RELEASE/reference/
* Javadoc: https://lettuce.io/core/6.3.0.RELEASE/api/
* Documentation: https://lettuce.io/core/6.4.0.RELEASE/reference/
* Javadoc: https://lettuce.io/core/6.4.0.RELEASE/api/

Commands
--------

* Add `WITHSCORE` option to `ZRANK` and `ZREVRANK` commands #2410
* Add support for `CLIENT SETINFO`, `CLIENT INFO`, and enhanced `CLIENT LIST` #2439
* ZMPOP and BZMPOP commands #2435
* Support 'FCALL' commands to Call Lua-scripts that are loaded as Function in redis #2185
* Add `PUBSUB` shard channel commands `SHARDCHANNELS` #2756, `SHARDNUMSUB` #2776
* Add `PUBSUB` shard channel commands `SPUBLISH` #2757, `SSUBSCRIBE` #2758 and `SUNSUBSCRIBE` #2758
* Add support for `CLIENT KILL [MAXAGE]` #2782
* Hash field expiration commands `HEXPIRE`, `HEXPIREAT`, `HEXPIRETIME` and `HPERSIST` #2836
* Hash field expiration commands `HPEXPIRE`, `HPEXPIREAT`, `HPEXPIRETIME`, `HTTL` and `HPTTL` #2857

Enhancements
------------

* Add support for disconnect on timeout to recover early from no `RST` packet failures
#2082
* Avoid buffer copies in `RedisStateMachine` #2173
* Make SlotHash utility methods public #2199
* Improve `AdaptiveRefreshTriggeredEvent` to provide the cause and contextual details
#2338
* Refine `RedisException` instantiation to avoid exception instances if they are not used
#2353
* Add capability of FailOver with takeOver option #2358
* Add option to disable tracing for individual commands #2373
* ReplicaTopologyProvider can't parse replicas from INFO #2375
* Add support for Micrometer Tracing #2391
* Add Command filter to `MicrometerCommandLatencyRecorder` #2406
* Expose methods to suspend periodic topology refresh and to check whether a topology
refresh is running #2428
* Accept Double and Boolean in `MapOutput` #2429
* Array lists with set capacities in SimpleBatcher #2445
* Add fallback to RESP2 upon `NOPROTO` response #2455
* Introduce generic Object output #2467
* Propagate initialization failures from `ChannelInitializer` #2475
* Register library name and library version on Redis 7.2 or greater #2483
* Add support for cluster-announced hostname #2487
* Add support for `HSCAN NOVALUES` #2763
* Send the `CLIENT SETINFO` command in a fire-and-forget way #2082
* Change the license to more permissive MIT #2173
* Add a evalReadOnly overload that accepts the script as a String #2868
* `XREAD` support for reading last message from stream #2863
* Mark dnsResolver(DnsResolver) as deprecated #2855
* Remove connection-related methods from commands API #2027
* Move connection-related commands from BaseRedisCommands to RedisConnectionCommands #2031

Fixes
-----

* Proper creation of `AttributeKey` #2111
* INFO response parsing throws on encountering '\' on NodeTopologyView #2161
* `PartitionSelectorException` during refresh of `Partitions` #2178
* RedisURI.Builder#withSsl(RedisURI) not working with SslVerifyMode#CA #2182
* SMISMEMBER is not marked a readonly command #2197
* Eval lua script expects return integer but null #2200
* `ZRANGESTORE` does not support by Rank comparison #2202
* zrevrangestorebylex/zrevrangestorebyscore range arguments flipped #2203
* Own `RedisCredentialsProvider` causes issue with protocol handshake on Redis 5 #2234
* NullPointerException if INFO command on redis cluster fails #2243
* XTrimArgs Should Allow Limit = 0 #2250
* The hostname and password cannot parse even if escaping with RedisURI redis-sentinel the
password include '@' and '#' #2254
* Fix password parsing error when redis-sentinel URI contains @ #2255
* Handle unknown endpoints in MOVED response #2290
* Fallback to RESP2 hides potential authentication configuration problems #2313
* Accept slots as String using `CLUSTER SHARDS` #2325
* `RedisURI.applySsl(…)` does not retain `SslVerifyMode` #2328
* Apply `SslVerifyMode` in `RedisURI.applySsl(…)` #2329
* Fix long overflow in `RedisSubscription#potentiallyReadMore` #2383
* Consistently implement CompositeArgument in arg types #2387
* Reactive Cluster `MGET` is not running in parallel #2395
* Polish RedisObservation name & javadoc #2404
* `memory usage` command passes key as `String` instead of using the codec #2424
* Fix NPE when manually flushing a batch #2444
* `flushCommands` leads to random inbound command order when using large argument values
with SSL #2456
* `CommandListener` notified twice on error #2457
* `RoleParser` does not define `none`, `handshake`, and `unknown` replica states #2482
* StatefulRedisClusterPubSubConnectionImpl's activated() method will report exception
after resubscribe() was call. #2534
* None

Other
-----

* Improve Document on pingBeforeActivateConnection #2138
* Improve Document on dynamicRefreshSources #2139
* Fixes typo in ReadFrom #2213
* Fix duplicate word occurrences #2307
* Update netty.version to 4.1.89.Final #2311
* Avoid using port 7443 in Lettuce tests #2326
* Upgrade to Reactor 3.4.27 #2330
* Fix Set unit test sscanMultiple fail in redis7 #2349
* README.md demo has a error #2377
* Upgrade to Kotlin 1.7 #2392
* Upgrade to Netty 4.1.94.Final #2431
* Update SetArgs.java builder method param comment #2441
* Use enum for no-op `PauseDetectorWrapper` #2474
* Upgrade build to Redis 7.2 #2481
* Refine command outputs to capture whether a segment has been received instead of relying
on the deserialized value state #2498
* Upgrade to Reactor 3.6.0 #2517
* Docs on metrics (wiki) are misleading #2538
* Upgrade to Micrometer 1.12.0 #2549
* Upgrade to netty 4.1.101.Final #2550

* Bump `org.apache.commons:commons-pool2` from 2.11.1 to 2.12.0 #2877
* Bump `org.openjdk.jmh:jmh-generator-annprocess` from 1.21 to 1.37 #2876
* Bump `org.apache.maven.plugins:maven-jar-plugin` from 3.3.0 to 3.4.1 #2875
* Bump `org.codehaus.mojo:flatten-maven-plugin from` 1.5.0 to 1.6.0 #2874
* Bump `org.apache.maven.plugins:maven-javadoc-plugin` from 3.6.3 to 3.7.0 #2873
* Applying code formatter each time we run a Maven build #2841
* Bump `setup-java` to v4 #2807
18 changes: 18 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -900,6 +900,18 @@
</configuration>
</plugin>

<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>1.6.13</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>true</autoReleaseAfterClose>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
Expand Down Expand Up @@ -1019,6 +1031,12 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
Expand Down

0 comments on commit d873986

Please sign in to comment.