Skip to content

refactor: separate land workflow from runway merge - #674

Closed
behinddwalls wants to merge 1 commit into
mainfrom
land-terminology
Closed

refactor: separate land workflow from runway merge#674
behinddwalls wants to merge 1 commit into
mainfrom
land-terminology

Conversation

@behinddwalls

@behinddwalls behinddwalls commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Summary

Why?

SubmitQueue owns the user-facing land workflow, while Runway owns the merge execution contract. Renaming the established Runway wire types and topics would blur that boundary and introduce an unnecessary contract migration.

What?

Keep SubmitQueue APIs, lifecycle states, controllers, internal topics, CLI, and documentation in land terminology. Preserve Runway MergeRequest, MergeStep, MergeResult, merge controllers, extensions, configuration, and existing merge topic names, with explicit translation at the validation, land-dispatch, and result-signal boundaries.

Restore the shared mergestrategy contract and preserve every strategy mapping, including PROMOTE. Tighten the dependent-batch E2E fixture so it deterministically exercises wake-up from a Runway merge result rather than complete-coverage bypass.

Remove the unused in-process landchecker extension and its fake, GitHub, and mock implementations. Remove the orphaned LandCheckResult, PushResult, OutcomeStatus, ChangeOutcome, and BatchOutcome entities because Runway is now the sole validation and merge-execution boundary.

Test Plan

  • make proto
  • make mocks
  • make gazelle
  • make fmt
  • make tidy
  • make build
  • make test
  • make lint
  • make check-tidy
  • make check-gazelle
  • ✅ Targeted Runway contract, controller, extension, DLQ, and SubmitQueue boundary tests
  • ✅ Runway E2E suite
  • ✅ SubmitQueue E2E suite

Stack

  1. @ refactor: separate land workflow from runway merge #674
  2. feat(messagequeue): shard MySQL queue tables by tenant #681

@behinddwalls
behinddwalls marked this pull request as ready for review September 4, 2026 03:30
@behinddwalls
behinddwalls requested review from a team and sbalabanov as code owners September 4, 2026 03:30

@sbalabanov sbalabanov left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stopped reviewing here, sending back for a discussion on where the boundary between "land" and "merge" should be

Comment thread api/runway/messagequeue/proto/land.proto Outdated
Comment thread api/runway/messagequeue/proto/land.proto Outdated
Comment thread api/runway/messagequeue/land.go Outdated
@behinddwalls behinddwalls changed the title refactor: migrate merge terminology to land refactor: separate land workflow from runway merge Sep 7, 2026
## Summary

### Why?

SubmitQueue owns the user-facing land workflow, while Runway owns the merge execution contract. Renaming the established Runway wire types and topics would blur that boundary and introduce an unnecessary contract migration.

### What?

Keep SubmitQueue APIs, lifecycle states, controllers, internal topics, CLI, and documentation in land terminology. Preserve Runway `MergeRequest`, `MergeStep`, `MergeResult`, merge controllers, extensions, configuration, and existing merge topic names, with explicit translation at the validation, land-dispatch, and result-signal boundaries.

Restore the shared `mergestrategy` contract and preserve every strategy mapping, including `PROMOTE`. Tighten the dependent-batch E2E fixture so it deterministically exercises wake-up from a Runway merge result rather than complete-coverage bypass.

Remove the unused in-process `landchecker` extension and its fake, GitHub, and mock implementations. Remove the orphaned `LandCheckResult`, `PushResult`, `OutcomeStatus`, `ChangeOutcome`, and `BatchOutcome` entities because Runway is now the sole validation and merge-execution boundary.

## Test Plan

- ✅ `make proto`
- ✅ `make mocks`
- ✅ `make gazelle`
- ✅ `make fmt`
- ✅ `make tidy`
- ✅ `make build`
- ✅ `make test`
- ✅ `make lint`
- ✅ `make check-tidy`
- ✅ `make check-gazelle`
- ✅ Targeted Runway contract, controller, extension, DLQ, and SubmitQueue boundary tests
- ✅ Runway E2E suite
- ✅ SubmitQueue E2E suite
@behinddwalls

Copy link
Copy Markdown
Collaborator Author

Superseded by the smaller review stack: #688 removes the unused mergechecker, then #689 applies the SubmitQueue land terminology rename while preserving Runway's merge contract.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants