Repository navigation
Track workflow renames - #1596
Merged
Merged
Conversation
josephjclark
marked this pull request as ready for review
October 22, 2026 15:44
josephjclark
added a commit
that referenced
this pull request
Oct 23, 2026
* Explicit --checkout/--no-checkout beats OPENFN_NO_CHECKOUT_AFTER_DEPLOY (#1589) * fix(cli): explicit --checkout/--no-checkout beats OPENFN_NO_CHECKOUT_AFTER_DEPLOY * update tests --------- Co-authored-by: Joe Clark <[email protected]> * Fix flaky tests maybe (#1591) * run worker integratio n tests wuth clean new instances each time * worker: add immediate destroy for unit tests * Track workflow renames (#1596) * deprecate the id field being written to workflow.yaml * track workflow uuid in checkout.yaml * track workflow UUIDs when loading from fs * add helper to match workflows on merge * hookup workflow tracking to deploy * impove diff for users upon a workflow rename * clarifying comments on test files * couple of tests * add more basic sync tests * new tests * restructure sync integration tests * add step rename tests * cli: use env var to skip no confirm * refactor tests for cleaner commands# * enable workflow tracking on rename * new test * Fix cross-project deploy: make the target match the local project (#1588) * Fix cross-project deploy and add --remove-unmapped to project deploy Deploying a workspace to a different project now treats every local workflow as a merge candidate, instead of only those changed since the workspace's own last sync. --remove-unmapped sends delete entries for target workflows that don't exist locally. * Mirror the local project when deploying to a different project Drop --remove-unmapped: target-only workflows are removed by default when the target UUID differs, and need --force when there is no confirmation prompt. * variable rename * new suite of cross-project deploy tests --------- Co-authored-by: Joe Clark <[email protected]> * fix(project): preserve workflows in bracketed paths (#1592) * simplify test * versions --------- Co-authored-by: Midigo Frank <[email protected]> Co-authored-by: Ky Jahn Smith <[email protected]>
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.
Difficult branch to resolve issue #1594 and replace PR #1587
The basic problem we have is this:
Locally, the CLI uses an
id, derived on checkout from a workflow'sname, to identify workglows. This id is used as a key in various bits of tracking.When a workflow name changes in the app, or if a user renames a workflow on the file system, the id changes and a lot of the tracking against that workflow breaks.
Now this can be resolved simply with a fresh checkout, which is what #1587 does. But a deploy shouldn't do a full checkout, and it encourages workflow folders to be deleted, rather than renamed.
What I want is better tracking of workflow identity so that a rename isn't totally distructive.
Here's how we're achieving that.
What this PR basically does is track the UUIDs of each workflow in the checkout.yaml file, and uses UUIDs to match local to remote workflows. When a workflow name changes locally, the id and local paths arent updated - they basically are used as aliases. Users can fix the local paths if they want, or maybe we'll add CLI utils for this. But for now, paths stay the same.
Here's a bit more detail on the changes:
Testing & QA
I've added a whole bunch of integration tests to try and harden testing in this area. I've also restructured the sync tests to try and make them clearer, splitting up by edit verb (rename, edit, remove) rather than command (pull, fetch, deploy)
Here are some suggested manual tests for QA:
--force. Local workflow name is updated, but folder and file names are unchanged.AI Usage
Please disclose whether you've used AI anywhere in this PR (it's cool, we just
want to know!):
You can read more details in our
Responsible AI Policy