modwire 4.0.0__tar.gz → 5.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {modwire-4.0.0 → modwire-5.0.0}/.github/ISSUE_TEMPLATE/bug_report.yml +3 -2
- modwire-5.0.0/.github/ISSUE_TEMPLATE/decision.yml +48 -0
- modwire-5.0.0/.github/ISSUE_TEMPLATE/epic.yml +51 -0
- {modwire-4.0.0 → modwire-5.0.0}/.github/ISSUE_TEMPLATE/feature_request.yml +3 -2
- modwire-5.0.0/.github/ISSUE_TEMPLATE/task.yml +56 -0
- {modwire-4.0.0 → modwire-5.0.0}/.github/modwire-ecosystem.yml +84 -26
- {modwire-4.0.0 → modwire-5.0.0}/.github/scripts/reconcile_ecosystem.py +245 -9
- modwire-5.0.0/.github/workflows/human-approval.yml +133 -0
- modwire-5.0.0/.github/workflows/issue-metadata-check.yml +17 -0
- modwire-5.0.0/.github/workflows/issue-metadata.yml +87 -0
- modwire-4.0.0/.github/workflows/python-github-release.yml → modwire-5.0.0/.github/workflows/python-release-assets.yml +7 -5
- {modwire-4.0.0 → modwire-5.0.0}/.github/workflows/release.yml +17 -16
- {modwire-4.0.0 → modwire-5.0.0}/CHANGELOG.md +32 -0
- modwire-5.0.0/MANIFEST.in +2 -0
- {modwire-4.0.0/src/modwire.egg-info → modwire-5.0.0}/PKG-INFO +35 -29
- {modwire-4.0.0 → modwire-5.0.0}/README.md +30 -24
- modwire-5.0.0/docs/decisions/0001-canonical-modwire-repository-shape.md +106 -0
- {modwire-4.0.0 → modwire-5.0.0}/docs/governance/github-ecosystem.md +93 -26
- {modwire-4.0.0 → modwire-5.0.0}/docs/governance/python-workflows.md +28 -24
- modwire-5.0.0/docs/migration-5.md +53 -0
- modwire-5.0.0/docs/scaffolding/golden/cli.yaml +44 -0
- modwire-5.0.0/docs/scaffolding/golden/library.yaml +40 -0
- modwire-5.0.0/docs/scaffolding/repository-contract-v1.yaml +147 -0
- modwire-5.0.0/docs/wiki/Home.md +28 -0
- {modwire-4.0.0 → modwire-5.0.0}/docs/wiki/Reporting-bugs.md +1 -1
- {modwire-4.0.0 → modwire-5.0.0}/docs/wiki/Requesting-features.md +1 -1
- {modwire-4.0.0 → modwire-5.0.0}/pyproject.toml +4 -4
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/__init__.py +2 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/_version.py +3 -3
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/__init__.py +0 -3
- modwire-5.0.0/src/modwire/architecture/app.py +67 -0
- modwire-5.0.0/src/modwire/architecture/boundaries/__init__.py +4 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/analyzer.py +6 -2
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/analyzers/backward.py +2 -0
- modwire-5.0.0/src/modwire/architecture/boundaries/analyzers/module_boundaries.py +146 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/analyzers/no_cycles.py +2 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/analyzers/no_reentry.py +2 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/base.py +4 -0
- modwire-5.0.0/src/modwire/architecture/boundaries/composition.py +22 -0
- modwire-5.0.0/src/modwire/architecture/composition.py +21 -0
- modwire-5.0.0/src/modwire/architecture/insights/__init__.py +4 -0
- modwire-5.0.0/src/modwire/architecture/insights/composition.py +18 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/reporters/coherence.py +2 -7
- modwire-5.0.0/src/modwire/architecture/map/__init__.py +4 -0
- modwire-5.0.0/src/modwire/architecture/map/composition.py +8 -0
- modwire-5.0.0/src/modwire/architecture/shape/__init__.py +4 -0
- modwire-5.0.0/src/modwire/architecture/shape/composition.py +27 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/import_resolver.py +5 -1
- modwire-5.0.0/src/modwire/code/__init__.py +6 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/facade.py +1 -8
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/projects/__init__.py +10 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/projects/ecosystem.py +73 -10
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/base.py +0 -15
- modwire-5.0.0/src/modwire/shared/config/modwire.py +14 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/config/shape.py +2 -2
- {modwire-4.0.0 → modwire-5.0.0/src/modwire.egg-info}/PKG-INFO +35 -29
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire.egg-info/SOURCES.txt +22 -4
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire.egg-info/requires.txt +1 -1
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire.egg-info/scm_file_list.json +22 -4
- modwire-5.0.0/src/modwire.egg-info/scm_version.json +8 -0
- {modwire-4.0.0 → modwire-5.0.0}/tests/test_architecture.py +2 -2
- modwire-5.0.0/tests/test_boundaries.py +192 -0
- {modwire-4.0.0 → modwire-5.0.0}/tests/test_ecosystem_contract.py +40 -13
- modwire-5.0.0/tests/test_import_shape.py +57 -0
- {modwire-4.0.0 → modwire-5.0.0}/tests/test_models.py +9 -12
- modwire-5.0.0/tests/test_repository_shape_contract.py +44 -0
- {modwire-4.0.0 → modwire-5.0.0}/uv.lock +4 -4
- modwire-4.0.0/MANIFEST.in +0 -1
- modwire-4.0.0/docs/wiki/Home.md +0 -27
- modwire-4.0.0/src/modwire/architecture/app.py +0 -137
- modwire-4.0.0/src/modwire/architecture/boundaries/__init__.py +0 -8
- modwire-4.0.0/src/modwire/architecture/insights/__init__.py +0 -8
- modwire-4.0.0/src/modwire/architecture/map/__init__.py +0 -11
- modwire-4.0.0/src/modwire/architecture/shape/__init__.py +0 -8
- modwire-4.0.0/src/modwire/code/__init__.py +0 -10
- modwire-4.0.0/src/modwire/code/reader.py +0 -9
- modwire-4.0.0/src/modwire/code/writer.py +0 -27
- modwire-4.0.0/src/modwire/shared/config/modwire.py +0 -54
- modwire-4.0.0/src/modwire.egg-info/scm_version.json +0 -8
- {modwire-4.0.0 → modwire-5.0.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/.github/workflows/ci.yml +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/.github/workflows/python-package.yml +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/.github/workflows/python-release-build.yml +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/.gitignore +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/.modwire/boundaries.yaml +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/.modwire/shape.yaml +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/CONTRIBUTING.md +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/LICENSE +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/Makefile +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/docs/wiki/Development-checks.md +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/setup.cfg +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/analyzers/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/analyzers/analyzer_base.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/collector.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/tags/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/tags/matcher.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/boundaries/tags/tag_map.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/base.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/collector.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/reporters/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/reporters/base.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/reporters/callables.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/reporters/clusters.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/reporters/exports.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/insights/reporters/hotspots.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/map/base.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/map/collector.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/map/loader.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/base.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/collector.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/abstract_class_resolver.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/callable_resolver.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/class_resolver.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/file_resolver.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/property_resolver.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/signature_resolver.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/architecture/shape/resolvers/symbol_resolver.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/code/package.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/layers/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/layers/app.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/modules/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/modules/app.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/projects/app.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/py.typed +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/config/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/config/architecture.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/config/layers.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/config/modules.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/config/projects.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/report/__init__.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire/shared/report/base.py +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire.egg-info/dependency_links.txt +0 -0
- {modwire-4.0.0 → modwire-5.0.0}/src/modwire.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Architecture or governance decision
|
|
2
|
+
description: Record a decision that changes contracts, compatibility, architecture, or governance.
|
|
3
|
+
title: "Decision: "
|
|
4
|
+
type: Decision
|
|
5
|
+
labels:
|
|
6
|
+
- contract
|
|
7
|
+
projects:
|
|
8
|
+
- modwire/1
|
|
9
|
+
body:
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: context
|
|
12
|
+
attributes:
|
|
13
|
+
label: Context
|
|
14
|
+
description: Explain the forces, constraints, and decision deadline.
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
|
|
18
|
+
- type: textarea
|
|
19
|
+
id: options
|
|
20
|
+
attributes:
|
|
21
|
+
label: Options considered
|
|
22
|
+
description: Describe credible alternatives and their tradeoffs.
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: decision
|
|
28
|
+
attributes:
|
|
29
|
+
label: Proposed decision
|
|
30
|
+
description: State the proposed choice and why it best fits the constraints.
|
|
31
|
+
validations:
|
|
32
|
+
required: true
|
|
33
|
+
|
|
34
|
+
- type: textarea
|
|
35
|
+
id: consequences
|
|
36
|
+
attributes:
|
|
37
|
+
label: Consequences and acceptance criteria
|
|
38
|
+
description: Describe positive and negative consequences plus the evidence needed to consider the decision implemented.
|
|
39
|
+
validations:
|
|
40
|
+
required: true
|
|
41
|
+
|
|
42
|
+
- type: input
|
|
43
|
+
id: relationships
|
|
44
|
+
attributes:
|
|
45
|
+
label: Related issues and decisions
|
|
46
|
+
description: Link superseded, blocking, blocked, parent, or implementation issues.
|
|
47
|
+
validations:
|
|
48
|
+
required: false
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Ecosystem epic
|
|
2
|
+
description: Coordinate an outcome delivered by multiple repository-owned sub-issues.
|
|
3
|
+
title: "Epic: "
|
|
4
|
+
type: Epic
|
|
5
|
+
labels:
|
|
6
|
+
- ecosystem
|
|
7
|
+
projects:
|
|
8
|
+
- modwire/1
|
|
9
|
+
body:
|
|
10
|
+
- type: textarea
|
|
11
|
+
id: outcome
|
|
12
|
+
attributes:
|
|
13
|
+
label: Ecosystem outcome
|
|
14
|
+
description: Describe the user-visible or compatibility result across packages.
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
|
|
18
|
+
- type: textarea
|
|
19
|
+
id: repositories
|
|
20
|
+
attributes:
|
|
21
|
+
label: Affected repositories
|
|
22
|
+
description: List every repository expected to own a sub-issue.
|
|
23
|
+
placeholder: |
|
|
24
|
+
- modwire/modwire
|
|
25
|
+
- modwire/modwire-cli
|
|
26
|
+
validations:
|
|
27
|
+
required: true
|
|
28
|
+
|
|
29
|
+
- type: textarea
|
|
30
|
+
id: acceptance
|
|
31
|
+
attributes:
|
|
32
|
+
label: Acceptance criteria
|
|
33
|
+
description: Include integration verification and release-readiness conditions.
|
|
34
|
+
validations:
|
|
35
|
+
required: true
|
|
36
|
+
|
|
37
|
+
- type: textarea
|
|
38
|
+
id: rollout
|
|
39
|
+
attributes:
|
|
40
|
+
label: Rollout and rollback
|
|
41
|
+
description: Define compatibility promises, rollout order, and rollback strategy.
|
|
42
|
+
validations:
|
|
43
|
+
required: true
|
|
44
|
+
|
|
45
|
+
- type: input
|
|
46
|
+
id: relationships
|
|
47
|
+
attributes:
|
|
48
|
+
label: Initial sub-issues and dependencies
|
|
49
|
+
description: Link existing issues. Create native sub-issue and dependency relationships after submission.
|
|
50
|
+
validations:
|
|
51
|
+
required: false
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
name: Task
|
|
2
|
+
description: Propose concrete implementation, maintenance, documentation, or release work.
|
|
3
|
+
title: "Task: "
|
|
4
|
+
type: Task
|
|
5
|
+
projects:
|
|
6
|
+
- modwire/1
|
|
7
|
+
body:
|
|
8
|
+
- type: markdown
|
|
9
|
+
attributes:
|
|
10
|
+
value: |
|
|
11
|
+
Select every pinned issue field before submission. Use native dependencies and sub-issues for relationships; do not encode them only in prose.
|
|
12
|
+
|
|
13
|
+
- type: textarea
|
|
14
|
+
id: outcome
|
|
15
|
+
attributes:
|
|
16
|
+
label: Outcome
|
|
17
|
+
description: State the observable result, not only the activity.
|
|
18
|
+
placeholder: After this work...
|
|
19
|
+
validations:
|
|
20
|
+
required: true
|
|
21
|
+
|
|
22
|
+
- type: textarea
|
|
23
|
+
id: scope
|
|
24
|
+
attributes:
|
|
25
|
+
label: Scope
|
|
26
|
+
description: Describe the intended implementation boundary and important exclusions.
|
|
27
|
+
validations:
|
|
28
|
+
required: true
|
|
29
|
+
|
|
30
|
+
- type: textarea
|
|
31
|
+
id: acceptance
|
|
32
|
+
attributes:
|
|
33
|
+
label: Acceptance criteria
|
|
34
|
+
description: List objective conditions that prove the outcome is complete.
|
|
35
|
+
placeholder: |
|
|
36
|
+
- [ ] Observable behavior is implemented.
|
|
37
|
+
- [ ] Relevant tests and documentation are updated.
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: rollout
|
|
43
|
+
attributes:
|
|
44
|
+
label: Rollout and rollback
|
|
45
|
+
description: Explain compatibility, migration, rollout, or rollback considerations; write "Not applicable" when none exist.
|
|
46
|
+
validations:
|
|
47
|
+
required: true
|
|
48
|
+
|
|
49
|
+
- type: input
|
|
50
|
+
id: relationships
|
|
51
|
+
attributes:
|
|
52
|
+
label: Related issues
|
|
53
|
+
description: Link candidate parents, sub-issues, blockers, or blocked work. A maintainer will create the native relationships.
|
|
54
|
+
placeholder: https://github.com/modwire/...
|
|
55
|
+
validations:
|
|
56
|
+
required: false
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
version:
|
|
1
|
+
version: 3
|
|
2
2
|
|
|
3
3
|
packages:
|
|
4
4
|
core:
|
|
5
|
-
repository:
|
|
5
|
+
repository: modwire/modwire
|
|
6
6
|
distribution: modwire
|
|
7
7
|
component: Core
|
|
8
8
|
role: coordinator
|
|
@@ -10,7 +10,7 @@ packages:
|
|
|
10
10
|
summary: Typed coordination library and ecosystem integration gate.
|
|
11
11
|
depends_on: [extraction, mermaid, siren]
|
|
12
12
|
cli:
|
|
13
|
-
repository:
|
|
13
|
+
repository: modwire/modwire-cli
|
|
14
14
|
distribution: modwire-cli
|
|
15
15
|
component: CLI
|
|
16
16
|
role: runtime
|
|
@@ -18,43 +18,43 @@ packages:
|
|
|
18
18
|
summary: Command-line runtime and user-facing workflows.
|
|
19
19
|
depends_on: [core]
|
|
20
20
|
extraction:
|
|
21
|
-
repository:
|
|
21
|
+
repository: modwire/modwire-extraction
|
|
22
22
|
distribution: modwire-extraction
|
|
23
23
|
component: Extraction
|
|
24
24
|
role: building_block
|
|
25
25
|
lifecycle: active
|
|
26
26
|
summary: Canonical source extraction and normalization.
|
|
27
27
|
mermaid:
|
|
28
|
-
repository:
|
|
28
|
+
repository: modwire/modwire-mermaid
|
|
29
29
|
distribution: modwire-mermaid
|
|
30
30
|
component: Mermaid
|
|
31
31
|
role: building_block
|
|
32
32
|
lifecycle: active
|
|
33
33
|
summary: Typed, deterministic Mermaid source generation.
|
|
34
34
|
siren:
|
|
35
|
-
repository:
|
|
35
|
+
repository: modwire/modwire-siren
|
|
36
36
|
distribution: modwire-siren
|
|
37
37
|
component: Siren
|
|
38
38
|
role: building_block
|
|
39
39
|
lifecycle: active
|
|
40
40
|
summary: Typed Siren hypermedia and OpenAPI integration.
|
|
41
41
|
mcp:
|
|
42
|
-
repository:
|
|
42
|
+
repository: modwire/modwire-mcp
|
|
43
43
|
distribution: modwire-mcp
|
|
44
44
|
component: MCP
|
|
45
45
|
role: integration
|
|
46
46
|
lifecycle: incubating
|
|
47
|
-
summary: MCP
|
|
48
|
-
depends_on: [
|
|
47
|
+
summary: Planned MCP integration, activated after CLI exposes filesystem, project, and execution capabilities.
|
|
48
|
+
depends_on: [cli]
|
|
49
49
|
|
|
50
50
|
project:
|
|
51
|
-
owner:
|
|
51
|
+
owner: modwire
|
|
52
52
|
title: Modwire Ecosystem
|
|
53
|
-
number:
|
|
53
|
+
number: 1
|
|
54
54
|
visibility: public
|
|
55
55
|
default_package: core
|
|
56
56
|
description: Cross-repository roadmap and release coordination for the Modwire ecosystem.
|
|
57
|
-
governance_url: https://github.com/
|
|
57
|
+
governance_url: https://github.com/modwire/modwire/blob/main/docs/governance/github-ecosystem.md
|
|
58
58
|
|
|
59
59
|
workflows:
|
|
60
60
|
contract_ref: workflows-v1
|
|
@@ -62,7 +62,9 @@ workflows:
|
|
|
62
62
|
release_entrypoint: .github/workflows/release.yml
|
|
63
63
|
verify_reusable: .github/workflows/python-package.yml
|
|
64
64
|
release_build_reusable: .github/workflows/python-release-build.yml
|
|
65
|
-
|
|
65
|
+
release_assets_reusable: .github/workflows/python-release-assets.yml
|
|
66
|
+
release_driver: github_release
|
|
67
|
+
release_event: published
|
|
66
68
|
release_tag_pattern: ^v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$
|
|
67
69
|
artifact_name: python-package-distributions
|
|
68
70
|
pypi_environment: pypi
|
|
@@ -73,26 +75,85 @@ workflows:
|
|
|
73
75
|
download_artifact: actions/download-artifact@v8
|
|
74
76
|
publish_pypi: pypa/gh-action-pypi-publish@release/v1
|
|
75
77
|
|
|
78
|
+
issue_types:
|
|
79
|
+
Task:
|
|
80
|
+
description: A concrete unit of implementation, maintenance, or documentation work.
|
|
81
|
+
color: yellow
|
|
82
|
+
Bug:
|
|
83
|
+
description: Incorrect or unexpected existing behavior.
|
|
84
|
+
color: red
|
|
85
|
+
Feature:
|
|
86
|
+
description: A new user-facing capability or behavior.
|
|
87
|
+
color: blue
|
|
88
|
+
Epic:
|
|
89
|
+
description: A coordinated outcome delivered through multiple sub-issues.
|
|
90
|
+
color: purple
|
|
91
|
+
Decision:
|
|
92
|
+
description: An architecture, compatibility, or governance decision.
|
|
93
|
+
color: green
|
|
94
|
+
|
|
76
95
|
fields:
|
|
77
96
|
Status:
|
|
97
|
+
owner: project
|
|
78
98
|
type: single_select
|
|
79
99
|
options: [Inbox, Ready, In progress, Blocked, Review, Done]
|
|
80
100
|
Horizon:
|
|
101
|
+
owner: issue
|
|
81
102
|
type: single_select
|
|
82
|
-
|
|
103
|
+
description: Planning horizon; Unscheduled means accepted but not placed on the roadmap.
|
|
104
|
+
visibility: public
|
|
105
|
+
options: [Now, Next, Later, Unscheduled]
|
|
83
106
|
Priority:
|
|
107
|
+
owner: issue
|
|
84
108
|
type: single_select
|
|
109
|
+
description: Relative delivery priority, from critical P0 to opportunistic P3.
|
|
110
|
+
visibility: public
|
|
85
111
|
options: [P0, P1, P2, P3]
|
|
86
112
|
Component:
|
|
113
|
+
owner: issue
|
|
87
114
|
type: single_select
|
|
115
|
+
description: Modwire package primarily responsible for delivery.
|
|
116
|
+
visibility: public
|
|
88
117
|
source: packages
|
|
89
118
|
Release train:
|
|
119
|
+
owner: issue
|
|
90
120
|
type: text
|
|
121
|
+
description: Coordinated delivery train, or Unscheduled when none applies.
|
|
122
|
+
visibility: public
|
|
91
123
|
Target date:
|
|
124
|
+
owner: issue
|
|
92
125
|
type: date
|
|
126
|
+
description: Expected completion date for committed work.
|
|
127
|
+
visibility: public
|
|
128
|
+
Start date:
|
|
129
|
+
owner: issue
|
|
130
|
+
type: date
|
|
131
|
+
description: Date on which active implementation begins.
|
|
132
|
+
visibility: public
|
|
93
133
|
Risk:
|
|
134
|
+
owner: issue
|
|
94
135
|
type: single_select
|
|
136
|
+
description: Delivery, compatibility, or operational risk if the issue changes or slips.
|
|
137
|
+
visibility: public
|
|
95
138
|
options: [Low, Medium, High]
|
|
139
|
+
Effort:
|
|
140
|
+
owner: issue
|
|
141
|
+
type: single_select
|
|
142
|
+
description: Relative implementation effort using T-shirt sizing.
|
|
143
|
+
visibility: public
|
|
144
|
+
options: [XS, S, M, L, XL]
|
|
145
|
+
|
|
146
|
+
issue_intake:
|
|
147
|
+
project: modwire/1
|
|
148
|
+
required_fields: [Horizon, Priority, Risk, Component, Release train, Effort]
|
|
149
|
+
ready_requires: [assignee, acceptance_criteria]
|
|
150
|
+
incomplete_label: needs-metadata
|
|
151
|
+
agent_must_not_guess: true
|
|
152
|
+
|
|
153
|
+
relationships:
|
|
154
|
+
dependencies: native
|
|
155
|
+
hierarchy: native_sub_issues
|
|
156
|
+
cross_repository_parent: modwire/modwire
|
|
96
157
|
|
|
97
158
|
views:
|
|
98
159
|
- name: Roadmap
|
|
@@ -120,16 +181,10 @@ views:
|
|
|
120
181
|
filter: "Status:Inbox"
|
|
121
182
|
|
|
122
183
|
labels:
|
|
123
|
-
|
|
124
|
-
color: "d73a4a"
|
|
125
|
-
description: Incorrect existing behavior
|
|
126
|
-
"type:feature":
|
|
127
|
-
color: "0e8a16"
|
|
128
|
-
description: New user-facing capability
|
|
129
|
-
"type:maintenance":
|
|
184
|
+
maintenance:
|
|
130
185
|
color: "c5def5"
|
|
131
186
|
description: Internal maintenance
|
|
132
|
-
|
|
187
|
+
documentation:
|
|
133
188
|
color: "0075ca"
|
|
134
189
|
description: Documentation
|
|
135
190
|
ecosystem:
|
|
@@ -141,19 +196,22 @@ labels:
|
|
|
141
196
|
breaking:
|
|
142
197
|
color: "b60205"
|
|
143
198
|
description: Backward-incompatible change
|
|
144
|
-
blocked:
|
|
145
|
-
color: "e99695"
|
|
146
|
-
description: Blocked by another decision or delivery
|
|
147
199
|
release-gate:
|
|
148
200
|
color: "fbca04"
|
|
149
201
|
description: Must complete before a release
|
|
202
|
+
needs-metadata:
|
|
203
|
+
color: "b60205"
|
|
204
|
+
description: Missing required issue intake metadata
|
|
205
|
+
requires-human-approval:
|
|
206
|
+
color: "d93f0b"
|
|
207
|
+
description: Explicitly require a human to approve the pull request
|
|
150
208
|
|
|
151
209
|
automation:
|
|
152
210
|
auto_add_filter: "is:open"
|
|
153
211
|
added_status: Inbox
|
|
154
212
|
closed_status: Done
|
|
155
213
|
merged_status: Done
|
|
156
|
-
archive_filter: "
|
|
214
|
+
archive_filter: "is:closed updated:<@today-30d"
|
|
157
215
|
|
|
158
216
|
milestones:
|
|
159
217
|
scope: repository
|