Trial: revert breaking changes for 10.2.0 readiness#13189
Conversation
…k logs (apache#13090)" This reverts commit f838078.
…pache#13110)" This reverts commit 07813a3.
This reverts commit 42fb570.
This reverts commit da065fb.
…pache#13031)" This reverts commit a6d60b2.
This reverts commit ffd8d8b.
…)" This reverts commit 7414299.
This reverts commit 3fa4a9c.
This reverts commit cd7e5a8.
This reverts commit 67b029b.
The cmake-format script invokes git ls-tree -r HEAD which lists files present at the previous commit. When a file is staged for deletion (e.g. during a revert), it shows up in the file list but no longer exists on disk, causing cmake-format to fail with FileNotFoundError. Filter the list against git diff --cached --name-only --diff-filter=D so deleted files don't reach cmake-format.
Trial Revert v2 — NotesCompanion log for Setup
RevertsStep 1–4: Config-reload + TLS-cert-compression dependents
Step 5: #13070 plugin.yaml migration
Step 6–7: Storage migration chain
Step 8: #12998 Parallel SSL cert load
Step 9: #12988 + #12997 — surface conflict on ReverseProxy.ccInitially attempted
Aborted, added #12988 ("Publish remap table after initial load") to the Revert order: #12988 → #12997. Both clean after that.
Step 10: 11-Dev merge (#12983)
Conflict resolution:
Step 11: #12913 master-side version bump
Step 12 (added during execution): #12404 cqssrt log fieldAfter 11-Dev revert, the restored
#12404 is in both master and 10.2.x (pre-divergence). Reverting it on Step 13 (incidental): cmake-format.sh fixFormat hook hung because
Build verification
Final state vs upstream/10.2.x
v2 verdict: how painful, with lessons applied?Mechanical effort once dependencies were known: ~90 minutes total. Cost categories that v1 surfaced and v2 confirmed:
Revised effort estimate for production:
Trial branch state at completion
|
CI Linux build hits a CMake configuration error reporting a cycle between the RESCAN link group and configmanager. configmanager links PRIVATE ts::proxy (a member of the group), and ts::logging in the group links PUBLIC ts::configmanager (added by apache#13123, kept on this trial because it was backported to 10.2.x). On master, the 11-Dev merge restructured configmanager to depend on ts::records instead of ts::proxy, breaking the cycle. This trial reverts that restructuring; adding configmanager into the RESCAN group lets the linker resolve the cycle the same way it does for the other libs in the group. macOS doesn't hit this because its linker takes the non-RESCAN codepath.
The 11-Dev merge revert in this trial branch left unresolved conflict markers in this test file (lines 26, 28, 289) which broke yapf in CI. Resolved by taking the pre-11-Dev (parent-of-merge) version, consistent with the rest of the 11-Dev revert.
PR apache#13087 (Fix AuTest with ssl_multicert) updated four tests to use the new ssl_multicert_yaml autest API after apache#12755 migrated the config file. This trial branch reverts apache#12755 (and the apache#13087 update was missed), leaving these tests referencing an attribute the framework no longer exposes.
apache#13033 (tests/gold_tests/headers tests: use ATSReplayTest) deleted these gold files when migrating cachedIMSRange.test.py to ATSReplayTest. This trial branch reverts the cachedIMSRange test back to the pre-apache#13033 form (via the 11-Dev merge revert), which still references the original gold files. Restored verbatim from the parent of 49cb7c8.
Status
Draft / discussion only — not proposed for merge as-is.
This branch is the output of a trial exercise to answer the question:
"How painful would it be to ship 10.2.0 from a master with all
backward-incompatible changes reverted?"
It builds cleanly. It is not a release candidate.
What's in here
13 reverts + 1 build-tooling fix:
_reloaddirectiveconfig/ssl_multicert.h(in 11-Dev #12755)config_result.h(in 11-Dev)m_http_smwhich #13123 renamed tom_dataThe last one is a real upstream improvement worth landing on its own;
the rest are trial exploration.
What this trial proved
v1 of this trial took ~2.5 hours and didn't finish (failed to build); v2
with the dependency chain mapped took ~90 minutes and builds cleanly.
the 1–2 weeks initially feared.
conversations about deferred features (ATS Configuration Reload with observability/tracing - Token model #12892,
plugin.configtoplugin.yamlmigration. #13070, Support remap.yaml #12997, Add support for TLS Certificate Compression (RFC 8879) #13088,Parallell ssl cert load #12998 are all significant work).
What this trial does NOT prove
Incompatible-tagged + un-tagged behavior changesexist on master that may not be captured here.
TLS cert compression, parallel SSL cert load, the new config-reload
framework). Production would need to decide which to defer to 11.0.0
and which to re-implement compat-friendly versions of for 10.2.0.
Detailed notes
See the comment below for the full execution log including conflict
resolution decisions, build verification, and effort breakdown.
🤖 Generated with Claude Code