Repository navigation
Merge upstream apache/cassandra-java-driver 4.19.3 and 4.19.4 #1255
Description
Summary
Merge apache/cassandra-java-driver tags 4.19.3 and 4.19.4 into scylla-4.x, then bump the ScyllaDB driver version to 4.19.4.0.
The previous upstream merge brought in Apache tag 4.19.2 (#895). It was squashed, so the upstream ancestry is missing. Of the upstream tags, only 4.18.1 is an ancestor of scylla-4.x. git merge-base 4.19.3 scylla-4.x resolves to db4c8075e, and 102 upstream commits cannot be reached by SHA, although most of their content has already landed.
Upstream changes (4.19.2 → 4.19.4)
4.19.2 → 4.19.3
- LZ4 and Netty bumps for a CVE. This conflicts with our pin; keep our Netty
4.1.138.Final. - Fix a race condition in
ClockSeqAndNodeContainer CASSJAVA-3: fix the ordering of theLIMITandPER PARTITION LIMITclauses- Move ordering-clause support behind a single
OrderingClauseabstraction CASSJAVA-108: update ESRI and droporg.json; Jackson 2.20.1; Logback to the newest release that supports Java 8CASSJAVA-122: fix the OSGi LZ4 test;CASSJAVA-104: fix flaky testsCASSJAVA-109,CASSJAVA-117,CASSJAVA-30: docs and CONTRIBUTING updates after the donation
4.19.3 → 4.19.4
CASSJAVA-136: fix equality forGeometrysubclassesCASSJAVA-137: Netty 4.1.138. The fork already pins this version.CASSJAVA-131: Jenkinsfile retention; add a pointer from AGENTS.md to SECURITY; changelog and pom ninja-fixes
Conflict resolution rules
- Keep the
com.scylladbgroupId, since upstream now usesorg.apache.cassandra. - Where our dependency pin is higher than upstream's, keep ours.
changelog/README.mdtakes upstream's entries only.
Preserving tag continuity
A ruleset on scylla-4.x enforces required_linear_history. Squash and rebase merges both drop the upstream ancestry, so every later sync works from the 4.18.1 base and hits conflicts that are not real.
- Build the branch from
scylla-4.xwithout rebasing:Make the version bump a separate commit. Thegit merge -s ours 4.19.2 -m "Record upstream 4.19.2 ancestry (content landed squashed in #895)" git merge --no-ff 4.19.3 # resolve with the rules above git merge --no-ff 4.19.4-s oursmerge changes no files. It only records the missing parent for 4.19.0 through 4.19.2, which moves the merge-base so the conflicts that remain are real ones. - Never rebase or squash the PR branch. To pick up new
scylla-4.xcommits, mergescylla-4.xinto the branch. - Merge the PR with Create a merge commit. Beforehand, a repo admin has to bypass
required_linear_historyfor this PR, and restore it afterwards. Name the admin here before the sprint starts. - After the merge, each of these must exit 0:
git merge-base --is-ancestor 4.19.2 origin/scylla-4.x git merge-base --is-ancestor 4.19.3 origin/scylla-4.x git merge-base --is-ancestor 4.19.4 origin/scylla-4.xgit describe --tags --match '4.19.[0-9]' --abbrev=0 origin/scylla-4.xshould print4.19.4(the fork's own4.19.x.ytags match4.19.*, so the wider glob never does).
Fallback if the bypass is not possible: perform the same merges locally, then squash. The ancestry is lost again, but this merge stays cheap.
Tasks
- Arrange the admin bypass of
required_linear_history -
superseded by chore: record upstream 4.19.2 ancestry #1281, which restored the 4.19.2 ancestrygit merge -s ours 4.19.2 - Merge
4.19.3(--no-ff) — chore: merge upstream apache 4.19.4 #1291 - Merge
4.19.4(--no-ff) — chore: merge upstream apache 4.19.4 #1291 - Bump version to
4.19.4.0-SNAPSHOT— chore: merge upstream apache 4.19.4 #1291 - Open PR against
scylla-4.x; the full build plus the unit and integration lanes pass — chore: merge upstream apache 4.19.4 #1291 - Merge with "Create a merge commit"; the
--is-ancestorchecks pass
Refs: DRIVER-1126
Activity