Repository navigation
feat(orchestration)!: orchestration names join the global unique-name check - #1394
Merged
Merged
Conversation
…bal unique-name check Publication now rejects a job, job group, sensor or calendar schedule whose name is already used by any other project resource or orchestration declaration, with the same D007 conflict discovery raises for models, sources and the rest. The narrower duplicate-job and duplicate-trigger checks are removed; the object-identity check stays. build_orchestration_snapshot and compile_snapshot take the discovered project inputs so publication can build the full name set. Fixtures whose jobs reused model names are renamed, and DuckShop gains a name-collision edge case.
A name conflict already names both declarations and their files. It now ends with how to resolve it, and when a job, job group, sensor or calendar schedule is involved, says where that name comes from: a job, group or sensor takes it from its first argument, a calendar schedule from the function it decorates.
…onflicts The name check now gathers every declaration as a named record and then scans them once, instead of threading a mutable map through a helper. The first conflict found is the same.
kvlonge
enabled auto-merge (squash)
November 9, 2026 18:01
kvlonge
disabled auto-merge
November 9, 2026 21:17
kvlonge
enabled auto-merge (squash)
November 10, 2026 00:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Job, job group, sensor and calendar schedule names could collide with models, sources and each other, so selectors and the web UI could not tell them apart. Publication is where the declarations and the project graph both exist, so the check belongs there.
Changes
build_orchestration_snapshotandsqlbuild.orchestration.compile_snapshottake a requireddiscovered_inputskeyword.Upgrade note: a project whose job shares a model's name, or whose calendar functions share a name across targets, is now refused at publish. Rename the declaration.
Verification
On 88ffc9e (merged with main):
make check-cipasses and fensu reports no faults. test_select_by_name.py, the publication integration files, test_orchestration_snapshot.py and the discovery unit tests: 317 passed, 2 skipped. Rust project_validation and discovery tests passed before the main merge.BEGIN_COMMIT_OVERRIDE
feat(orchestration)!: job, job group, sensor and calendar schedule names join the project's global unique-name check
BREAKING CHANGE: publication refuses an orchestration declaration whose name matches a model, source or another declaration with D007. Rename the declaration before upgrading.
END_COMMIT_OVERRIDE