-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Matthew Ballance <[email protected]>
- Loading branch information
Showing
16 changed files
with
402 additions
and
63 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
|
||
# Flow Specification | ||
The Flow Specification is comprised of the Flow YAML Schema and the | ||
semantic definition of how task graphs defined using the flow specification | ||
are evaluated. | ||
|
||
## 1.0.0 | ||
- Package definition | ||
- Package import | ||
- Task definition | ||
- "with" variable usage | ||
- Operations on input and output data | ||
- Operations on task parameters | ||
- Package fragments | ||
|
||
## 2.0.0 | ||
- Parameterized package definition and use | ||
- Package "uses" (type/inheritance) | ||
- Task "with"-data definition (tasks can add their own parameters) | ||
- Task Groups / Sub-DAG | ||
|
||
## 3.0.0 | ||
- JQ-based data extraction | ||
- YAML task templates / expansions | ||
- Support for annotating job requirements | ||
|
||
# Library | ||
|
||
## 1.0.0 | ||
- Std | ||
- Null (combine dependencies, set variables). Implements tasks that do not specify 'uses' | ||
- Exec | ||
- FileSet | ||
- PyClass - implement a task as a Python class (load from a module) | ||
|
||
- HdlSim | ||
- Library - creates a reusable simulator-specific library | ||
- IP - create a reusable single-module IP library | ||
- SimImage - creates a simulation image | ||
- SimRun | ||
|
||
|
||
## 2.0.0 | ||
- Std | ||
- DefineData (Declares a data structure to pass) | ||
- Export - Captures the result of some task in a dedicated directory | ||
|
||
## 3.0.0 | ||
- Std | ||
- | ||
|
||
# DV Flow Manager | ||
|
||
## 1.0.0 | ||
- Simple 'max-jobs' process scheduler | ||
|
||
## 2.0.0 | ||
- Progress meter and status line to monitor builds (non-verbose) | ||
- Multi-level mechanism for monitoring jobs | ||
- High-level with a progress bar | ||
- | ||
- Log-creation feature that assembles a total log from per-task logs | ||
|
||
## 3.0.0 | ||
- Provide link to source for error messages | ||
- Improve debug logging | ||
|
||
## 4.0.0 | ||
- Improve status display by allowing actions to signal count-like information (+pass, +fail) | ||
- OpenTelemetry support | ||
|
||
|
||
## 5.0.0 | ||
- Need some form of site settings | ||
|
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
|
||
import pydantic.dataclasses as dc | ||
import json | ||
from typing import Dict, Any | ||
|
||
@dc.dataclass | ||
class PackageSpec(object): | ||
name : str | ||
params : Dict[str,Any] = dc.Field(default_factory=dict) | ||
_fullname : str = None | ||
|
||
def get_fullname(self) -> str: | ||
if self._fullname is None: | ||
if len(self.params) != 0: | ||
self._fullname = "%s%s}" % ( | ||
self.name, | ||
json.dumps(self.params, separators=(',', ':'))) | ||
else: | ||
self._fullname = self.name | ||
return self._fullname | ||
|
||
def __hash__(self): | ||
return hash(self.get_fullname()) | ||
|
||
def __eq__(self, value): | ||
return isinstance(value, PackageSpec) and value.get_fullname() == self.get_fullname() | ||
|
||
@dc.dataclass | ||
class PackageImportSpec(PackageSpec): | ||
path : str = dc.Field(default=None, alias="from") | ||
alias : str = dc.Field(default=None, alias="as") |
Oops, something went wrong.