Sync: update portability page#774
Draft
josephjclark wants to merge 12 commits intomainfrom
Draft
Conversation
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.
This PR adds a v4 Portability spec
This spec is built around a few key ideas:
It assumes that work will be done in Lightning and Kit to guarantee this interopability.
Things I'm thinking about
Still to do:
Notes
project.yaml is the unit of portability. I don't think that's really true now? kinda true. A good goal.
portability and cli should link to a seperate doc which describes the project.yaml structure
include an exampl project yaml
the workflow.yaml spec is not the same
think a little but more about how we link to workflow.yaml
in v2 the project.yaml file is the state
and in v2 the dir structure is the project spec
so the portability spec in v2 isa folder and a zip. that file structure is the spec
in v3 the unit of portability was the project.yaml file
in v4 the unit of portability is the folder. It's git.
portability spec is core to merging sandboxes, deploying projects, storing on git, socialising ans sharing, using the cli. It's core to the definition of a project. github sync uses the portability specification. deploy uses the portability spec. Downloading a project locally to debug uses the portability spec.
target audience is a buyer: openfn is not locked in. Portability is instrumental to design.
link to a page which explains how to run a project with vanilla node.js
Do go off and think about workflow.yaml. It is super uncomfortable thats ints incompatible with lightning, How do we fix it? DO I just give up and use the lightning format? But it's so hard to reason about in yaml...
AI Usage
Please disclose how you've used AI in this work (it's cool, we just want to
know!):
You can read more details in our
Responsible AI Policy