diff --git a/copier.yml b/copier.yml index 475f56a..2365b25 100644 --- a/copier.yml +++ b/copier.yml @@ -70,7 +70,7 @@ github_owner: author_name: type: str help: Package author - default: "philippwallrafen" + default: "Philipp Wallrafen" repository_visibility: type: str diff --git a/template/spec/flows/[[ spec_prefix ]]-FLOW-QUALITY.yaml.jinja b/template/spec/flows/[[ spec_prefix ]]-FLOW-QUALITY.yaml.jinja new file mode 100644 index 0000000..dd7dd04 --- /dev/null +++ b/template/spec/flows/[[ spec_prefix ]]-FLOW-QUALITY.yaml.jinja @@ -0,0 +1,63 @@ +schema_version: 1 +id: [[ spec_prefix ]]-FLOW-QUALITY +scope: development +title: Repository quality validation +status: implemented +entry: format + +steps: + - id: format + kind: action + action: check_format + transitions: + success: lint + failure: failed + + - id: lint + kind: action + action: lint + transitions: + success: typecheck + failure: failed + + - id: typecheck + kind: action + action: typecheck + transitions: + success: specification + failure: failed + + - id: specification + kind: action + action: validate_specification + transitions: + success: tests + failure: failed + + - id: tests + kind: action + action: run_tests + transitions: + success: lock + failure: failed + + - id: lock + kind: action + action: validate_lock + transitions: + success: build + failure: failed + + - id: build + kind: action + action: build_distribution + transitions: + success: completed + failure: failed + +terminal_states: + - id: completed + outcome: success + + - id: failed + outcome: failure diff --git a/template/spec/schema/capability.schema.json.jinja b/template/spec/schema/capability.schema.json.jinja index e1ca244..43ea07d 100644 --- a/template/spec/schema/capability.schema.json.jinja +++ b/template/spec/schema/capability.schema.json.jinja @@ -20,6 +20,7 @@ "id", "title", "description", + "status", "requirements" ], "properties": { @@ -35,6 +36,14 @@ "type": "string", "minLength": 1 }, + "status": { + "type": "string", + "enum": [ + "planned", + "implemented", + "deprecated" + ] + }, "requirements": { "type": "array", "uniqueItems": true, diff --git a/template/spec/schema/flow.schema.json.jinja b/template/spec/schema/flow.schema.json.jinja index 69ba879..fb5c0e6 100644 --- a/template/spec/schema/flow.schema.json.jinja +++ b/template/spec/schema/flow.schema.json.jinja @@ -22,6 +22,7 @@ "pattern": "^[[ spec_prefix ]]-FLOW-[A-Z0-9-]+$" }, "scope": { + "type": "string", "enum": [ "product", "development" @@ -32,6 +33,7 @@ "minLength": 1 }, "status": { + "type": "string", "enum": [ "planned", "implemented", @@ -91,6 +93,9 @@ "transitions": { "type": "object", "minProperties": 1, + "propertyNames": { + "pattern": "^[a-z][a-z0-9_-]*$" + }, "additionalProperties": { "$ref": "#/$defs/nodeId" } @@ -108,6 +113,7 @@ "$ref": "#/$defs/nodeId" }, "kind": { + "type": "string", "enum": [ "action", "decision" @@ -171,6 +177,7 @@ "$ref": "#/$defs/nodeId" }, "outcome": { + "type": "string", "enum": [ "success", "failure", diff --git a/template/spec/schema/requirement.schema.json.jinja b/template/spec/schema/requirement.schema.json.jinja index 2695589..ac56313 100644 --- a/template/spec/schema/requirement.schema.json.jinja +++ b/template/spec/schema/requirement.schema.json.jinja @@ -19,7 +19,8 @@ "required": [ "id", "title", - "statement" + "statement", + "status" ], "properties": { "id": { @@ -38,10 +39,22 @@ "type": "string", "enum": [ "planned", - "active", + "implemented", "deprecated" - ], - "default": "active" + ] + }, + "type": { + "type": "string", + "minLength": 1 + }, + "severity": { + "type": "string", + "enum": [ + "critical", + "high", + "normal", + "low" + ] } } }