-
Notifications
You must be signed in to change notification settings - Fork 138
util: testing: manifest: shim: Initial commit #1273
Conversation
e7cf793
to
eece55a
Compare
Codecov Report
@@ Coverage Diff @@
## master #1273 +/- ##
==========================================
- Coverage 84.97% 84.76% -0.22%
==========================================
Files 174 175 +1
Lines 10975 11044 +69
Branches 1821 1829 +8
==========================================
+ Hits 9326 9361 +35
- Misses 1280 1310 +30
- Partials 369 373 +4
Continue to review full report at Codecov.
|
87e8a1e
to
3118ac2
Compare
Call :py:func:`subprocess.Popen` | ||
""" | ||
read_end, write_end = os.pipe() | ||
proc = subprocess.Popen(cmd, stdin=read_end, **kwargs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
doctest and Popen.communicate
were not playing nice together, so when with pipe for now
6568701
to
cb02b31
Compare
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
…e_parsers so shim phase parsers have local variable Signed-off-by: John Andersen <[email protected]>
…ad modules remotely on the fly Signed-off-by: John Andersen <[email protected]>
…ad correct wheel on the fly Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
cb02b31
to
d58590d
Compare
Seriously not one person got the TPS report reference? Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
Signed-off-by: John Andersen <[email protected]>
…ailure Signed-off-by: John Andersen <[email protected]>
This allows for reordering. YAML parser will parse anything that has colons which might not be what the user wants. Signed-off-by: John Andersen <[email protected]>
…mats Signed-off-by: John Andersen <[email protected]>
…n targets Signed-off-by: John Andersen <[email protected]>
…class Signed-off-by: John Andersen <[email protected]>
ad9e2d5
to
e1914f7
Compare
if not args.no_schema_check: | ||
raise NotImplementedError( | ||
f"schema validation not implemented {(schema_url, schema_validation_action, schema_validation_target)!r}" | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
schema validation goes here
probably want to add only_schema_check
here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO validate @context,vocab
etc. see w3c/vc-data-model#953 (comment) as a part of DID related quest line
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
.. code-block:: yaml | ||
|
||
$schema: "https://example.com/my.document.format.0.0.0.schema.json#sha256=dfd781dca25694dd808630ff4f27f290ba394143bdcae02911bcafa4a13b8319" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could treat .
as namespace
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
Related: #1273 Signed-off-by: John Andersen <[email protected]>
This concept of a manifest seems important (see 2ndparty dependency declaration section for background on how this applies to DFFML, it applies to other projects as well.
If we (talking to non-DFFML CI/CD community people here) use a shim layer it sets us up for forward compatibility. We can all work to define manifest formats that work well for our projects. By using the shim we ensure that they share enough properties that we set ourselves up for an easier eventual merging for manifest formats into one common CI/CD manifest format.
From the DFFML side, a manifest can easily be represented as a DataFlow. The manifest is a more user friendly form of a dataflow essentially, something more tailored to a given use case which describes which operations should be preformed, in what order, and what data types are involved. The shim layer allows projects to parse the manifest however they want. It allows them to easily switch what their next phase is at any time. This next phase might be their existing workflow, or it might be a dataflow enabled workflow. If the next phase parser outputs a dataflow when given a manifest we'll ensure auditability and achievability of the subsequent phase processing that will be taken.
The shim layer effectively operates as a trampoline (think UEFI shim, kexec, etc.) bridging the gap between the initial phase of manifest parsing and the next phase (which in DFFML's case is looking like metric collection, ml job execution, and executing our own CI both in the upcoming polyrepo setup as well as enabling local testing).