Conversation
|
Issue I'm dealing with while doing manual testing. cc: @josephjclark
|
The fix for this bug I was facing was sitting all the base in https://github.com/OpenFn/kit/blob/main/packages/project/src/util/base-merge.ts |
|
Issue: changing the id of a step results in this error: |
|
Issue: removing the |
|
Issue: changes to edges don't seem to manifest in the rich diff (I do see them in JSON) |
josephjclark
left a comment
There was a problem hiding this comment.
Looks really cool!
I've tested around a bit and found some issues. But before we go too much further I'm not sure the architecture is right, and I'd like to dig into that a bit with you later
|
Suggestion: When a user hits divergence because the project on remote changed but the locally pulled project has zero changes since last pulled. |
This has been resolved. It happens when you change the id of a job but then didn't do same for all edges referencing it. The error has been updated to print out a bit more meaningful message. |
|
I've done several manual testing on this and it works fine. |
|
Struggling with the review because I'm hitting type issues. I've raised out #1381 I think I'll continue to test and validate this and then still aim to get this PR released today, even if it has type issues |
| ): StepChange[] => { | ||
| if (!localWf || !remoteWf) return []; | ||
|
|
||
| const localSteps = localWf.steps as any[]; |
There was a problem hiding this comment.
Struggling here with:
a) the typing as any - this tells me that types are broken and I need to go off and fix that
b) we're not using provisioner state to do our diffing here- that was a core tenant of the issue
Now I'm going to relax on the provisioner state thing. The problem there is that in provisioner state we call it a body. but in your workflow.yam it's called expression. We have to relate the diff back in local terms.
It just opens up a gap between what we report on for the diff, and what diff factually materialises when we post to the server. Makes me nervous.
The JSON diff resolves this by doing a pure diff on the two JSON structures... but it'll report the diff with keys that may not be familiar. And of course the JSON diff might not necessarily be the same as the database diff (like you can add a key to the JSON that the provisioner will ignore, so it's not really a diff)
| }; | ||
| }; | ||
|
|
||
| const TRACKED_FIELDS: Array<{ key: 'name' | 'adaptor' }> = [ |
There was a problem hiding this comment.
This makes me a little nervous. Why not just diff on all keys? If we add a new key tomorrow then we'll have to patch the CLI to report a diff on it.
I get that we have special handling for some keys, like expression, but I sort of thing we should have a fallback of just reporting anything.
|
Ok here's what I've done:
I think we're good to launch |
b1afe0d to
1972861
Compare


Short Description
Add a rich diff and JSON diff readout to
openfn project deployFixes #1182
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