Skip to content

Introducing lading MVP scenario - #1921

Open
blt wants to merge 1 commit into
blt/introduce_lading_antithesis_from
blt/introducing_lading_mvp_scenario
Open

Introducing lading MVP scenario#1921
blt wants to merge 1 commit into
blt/introduce_lading_antithesis_from
blt/introducing_lading_mvp_scenario

Conversation

@blt

@blt blt commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

This commit introduces a 'general' scenario for lading which is intended
to be very simple: start lading up with a static config, confirm that it
alive. We have demonstrated via Antithesis launch that this rigs up
correctly.

blt commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

This commit introduces a 'general' scenario for lading which is intended
to be very simple: start lading up with a static config, confirm that it
alive. We have demonstrated via Antithesis launch that this rigs up
correctly.
@blt
blt force-pushed the blt/introducing_lading_mvp_scenario branch from 8f90f69 to d4214e0 Compare July 27, 2026 19:28
@blt
blt marked this pull request as ready for review July 27, 2026 22:58
@blt
blt requested a review from a team as a code owner July 27, 2026 22:58

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d4214e0a14

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +57 to +59
depends_on:
sink:
condition: service_healthy

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Wait for lading before declaring setup complete

In the checked general compose scenario, both lading and workload depend only on the sink becoming healthy, so they can start concurrently and the workload can emit setup_complete before lading has parsed its config, initialized its generator, or sent any load. Antithesis may therefore begin fault injection against an uninitialized or already-failed SUT, producing misleading experiment failures; add a lading readiness check and make the workload wait for it.

Useful? React with 👍 / 👎.

@@ -0,0 +1,2 @@
# Rendered compose files produced by bin/launch.sh at submit time.
scenarios/*/.launch/

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Remove the already tracked launch output

The parent tree already tracks test/antithesis/scenarios/general/.launch/docker-compose.yaml, so this ignore rule does not prevent launch.sh from modifying it. After the first render, the next invocation sees a dirty worktree at git status --porcelain and uses the shared <sha>-dirty tag, defeating the launcher's immutable image traceability and allowing distinct local builds to reuse one tag; remove the tracked generated file as part of this change.

Useful? React with 👍 / 👎.

- **Config hard-wired for the MVP.** Config variation and test commands are
deferred to the workload seam.

## Alternatives Considered

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Add the required ADR consequences section

ADR-009 jumps directly from the decision to alternatives and omits the required Consequences section, including its positive, negative, and neutral subsections. This leaves the implemented harness decision without the repository-required record of its tradeoffs; add the missing section before accepting this ADR.

AGENTS.md reference: AGENTS.md:L40-L44

Useful? React with 👍 / 👎.

Comment thread test/antithesis/CLAUDE.md
Comment on lines +26 to +27
The `SOURCE` (antithesis.source) defaults to `lading`; confirm the exact string
this tenant expects before relying on tracked runs.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Document the actual source default

This says the launcher defaults SOURCE to lading, but test/antithesis/bin/launch.sh actually defaults it to datadog_agent. Because the launcher itself says this value selects the property-history bucket and tenant customizations, an operator following this documentation can submit a run under an unexpected source and then look for its findings in the wrong history; document the real default or align the script with this promise.

Useful? React with 👍 / 👎.

Comment on lines +103 to +107
for v in ANTITHESIS_TENANT ANTITHESIS_REPOSITORY; do
if [[ -z "${!v:-}" ]]; then
echo "error: $v is not set (required to build and submit the run)" >&2
exit 1
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Let dry runs bypass submission credential checks

When DRY_RUN=1 is used without ANTITHESIS_TENANT or ANTITHESIS_REPOSITORY, this validation exits before reaching the dry-run branch at line 135, even though no build or submission will occur. This contradicts the advertised ability to print the command and exit and prevents users from previewing a launch before configuring credentials; skip these checks for dry runs or move them after the dry-run return.

Useful? React with 👍 / 👎.

Comment on lines +109 to +112
proptest! {
#[test]
fn total_equals_saturating_sum(
increments in proptest::collection::vec(any::<u64>(), 0..64)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Document the property test invariant formally

The newly added property test has no invariant documentation, so it does not state the quantified relationship between the generated increments and the counter total that the test establishes. Add a formal invariant comment above the property test as required for tests and proofs in this repository.

AGENTS.md reference: AGENTS.md:L132-L140

Useful? React with 👍 / 👎.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant