dioxide 0.0.4a1__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.
- dioxide-0.0.4a1/.github/CODEOWNERS +55 -0
- dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/bug_report.yml +116 -0
- dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/config.yml +8 -0
- dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/documentation.yml +90 -0
- dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/enhancement.yml +111 -0
- dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/feature_request.yml +112 -0
- dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/question.yml +90 -0
- dioxide-0.0.4a1/.github/PULL_REQUEST_TEMPLATE.md +114 -0
- dioxide-0.0.4a1/.github/dependabot.yml +99 -0
- dioxide-0.0.4a1/.github/scripts/sync-labels.sh +125 -0
- dioxide-0.0.4a1/.github/scripts/update_version.sh +21 -0
- dioxide-0.0.4a1/.github/workflows/auto-close-issues.yml +87 -0
- dioxide-0.0.4a1/.github/workflows/ci.yml +116 -0
- dioxide-0.0.4a1/.github/workflows/issue-metrics.yml +134 -0
- dioxide-0.0.4a1/.github/workflows/issue-triage.yml +88 -0
- dioxide-0.0.4a1/.github/workflows/release-automated.yml +360 -0
- dioxide-0.0.4a1/.github/workflows/stale-issues.yml +117 -0
- dioxide-0.0.4a1/.gitignore +63 -0
- dioxide-0.0.4a1/.pre-commit-config.yaml +68 -0
- dioxide-0.0.4a1/.python-version +1 -0
- dioxide-0.0.4a1/CHANGELOG.md +103 -0
- dioxide-0.0.4a1/CLAUDE.md +1120 -0
- dioxide-0.0.4a1/CONTRIBUTING.md +357 -0
- dioxide-0.0.4a1/COVERAGE.md +120 -0
- dioxide-0.0.4a1/Cargo.lock +278 -0
- dioxide-0.0.4a1/Cargo.toml +25 -0
- dioxide-0.0.4a1/DX_EVALUATION.md +755 -0
- dioxide-0.0.4a1/LICENSE +21 -0
- dioxide-0.0.4a1/MIGRATION.md +278 -0
- dioxide-0.0.4a1/PKG-INFO +615 -0
- dioxide-0.0.4a1/README.md +578 -0
- dioxide-0.0.4a1/ROADMAP.md +710 -0
- dioxide-0.0.4a1/ROADMAP_OLD.md +648 -0
- dioxide-0.0.4a1/STATUS.md +395 -0
- dioxide-0.0.4a1/docs/DEVELOPER_EXPERIENCE.md +366 -0
- dioxide-0.0.4a1/docs/DOCUMENT_AUDIT.md +365 -0
- dioxide-0.0.4a1/docs/DX_VISION.md +1516 -0
- dioxide-0.0.4a1/docs/GITHUB_PROJECT_SETUP.md +438 -0
- dioxide-0.0.4a1/docs/MLP_VISION.md +1479 -0
- dioxide-0.0.4a1/docs/SPRINT_READY.md +428 -0
- dioxide-0.0.4a1/docs/cicd-modernization-plan.md +1333 -0
- dioxide-0.0.4a1/docs/design/ADR-001-container-architecture.md +589 -0
- dioxide-0.0.4a1/docs/design/ADR-002-pyo3-binding-strategy.md +745 -0
- dioxide-0.0.4a1/docs/design/github-actions-ci.md +569 -0
- dioxide-0.0.4a1/docs/design/github-actions-release.md +625 -0
- dioxide-0.0.4a1/docs/design/singleton-caching-fix.md +435 -0
- dioxide-0.0.4a1/docs/issue-lifecycle.md +406 -0
- dioxide-0.0.4a1/docs/label-guide.md +637 -0
- dioxide-0.0.4a1/examples/README.md +232 -0
- dioxide-0.0.4a1/examples/hexagonal_architecture.py +277 -0
- dioxide-0.0.4a1/features/basic_container.feature +52 -0
- dioxide-0.0.4a1/features/component-decorator.feature +38 -0
- dioxide-0.0.4a1/features/container-scan.feature +42 -0
- dioxide-0.0.4a1/features/dependency-injection.feature +44 -0
- dioxide-0.0.4a1/features/environment.py +54 -0
- dioxide-0.0.4a1/features/manual-registration.feature +36 -0
- dioxide-0.0.4a1/features/provider_registration.feature +28 -0
- dioxide-0.0.4a1/features/singleton-caching.feature +41 -0
- dioxide-0.0.4a1/features/steps/container_steps.py +221 -0
- dioxide-0.0.4a1/features/steps/provider_steps.py +130 -0
- dioxide-0.0.4a1/features/type-safety.feature +41 -0
- dioxide-0.0.4a1/pyproject.toml +216 -0
- dioxide-0.0.4a1/python/dioxide/__init__.py +72 -0
- dioxide-0.0.4a1/python/dioxide/_dioxide_core.pyi +18 -0
- dioxide-0.0.4a1/python/dioxide/adapter.py +112 -0
- dioxide-0.0.4a1/python/dioxide/container.py +1174 -0
- dioxide-0.0.4a1/python/dioxide/decorators.py +314 -0
- dioxide-0.0.4a1/python/dioxide/exceptions.py +101 -0
- dioxide-0.0.4a1/python/dioxide/lifecycle.py +62 -0
- dioxide-0.0.4a1/python/dioxide/lifecycle.pyi +7 -0
- dioxide-0.0.4a1/python/dioxide/profile.py +210 -0
- dioxide-0.0.4a1/python/dioxide/profile_enum.py +43 -0
- dioxide-0.0.4a1/python/dioxide/py.typed +0 -0
- dioxide-0.0.4a1/python/dioxide/scope.py +77 -0
- dioxide-0.0.4a1/python/dioxide/services.py +76 -0
- dioxide-0.0.4a1/rust/src/lib.rs +362 -0
- dioxide-0.0.4a1/scripts/sync_version.sh +15 -0
- dioxide-0.0.4a1/tests/__init__.py +1 -0
- dioxide-0.0.4a1/tests/conftest.py +25 -0
- dioxide-0.0.4a1/tests/fixtures/__init__.py +1 -0
- dioxide-0.0.4a1/tests/fixtures/test_package_a/__init__.py +12 -0
- dioxide-0.0.4a1/tests/fixtures/test_package_b/__init__.py +12 -0
- dioxide-0.0.4a1/tests/fixtures/test_package_b/subpkg/__init__.py +12 -0
- dioxide-0.0.4a1/tests/fixtures/test_package_c/__init__.py +12 -0
- dioxide-0.0.4a1/tests/fixtures/test_package_d/__init__.py +27 -0
- dioxide-0.0.4a1/tests/fixtures/test_package_with_errors/__init__.py +10 -0
- dioxide-0.0.4a1/tests/fixtures/test_package_with_errors/broken_module.py +12 -0
- dioxide-0.0.4a1/tests/smoke_test.py +73 -0
- dioxide-0.0.4a1/tests/test_abc_detection.py +84 -0
- dioxide-0.0.4a1/tests/test_adapter.py +117 -0
- dioxide-0.0.4a1/tests/test_component.py +483 -0
- dioxide-0.0.4a1/tests/test_container_lifecycle.py +542 -0
- dioxide-0.0.4a1/tests/test_container_scan.py +235 -0
- dioxide-0.0.4a1/tests/test_deprecation.py +153 -0
- dioxide-0.0.4a1/tests/test_descriptive_errors.py +173 -0
- dioxide-0.0.4a1/tests/test_global_container.py +222 -0
- dioxide-0.0.4a1/tests/test_integration_hexagonal.py +201 -0
- dioxide-0.0.4a1/tests/test_lifecycle_decorator.py +112 -0
- dioxide-0.0.4a1/tests/test_manual_registration.py +93 -0
- dioxide-0.0.4a1/tests/test_package_scanning.py +264 -0
- dioxide-0.0.4a1/tests/test_port_resolution.py +293 -0
- dioxide-0.0.4a1/tests/test_profile.py +201 -0
- dioxide-0.0.4a1/tests/test_profile_enum.py +62 -0
- dioxide-0.0.4a1/tests/test_protocol_implementation.py +347 -0
- dioxide-0.0.4a1/tests/test_rust_container_edge_cases.py +369 -0
- dioxide-0.0.4a1/tests/test_service.py +108 -0
- dioxide-0.0.4a1/tests/test_type_safety.py +120 -0
- dioxide-0.0.4a1/tests/type_checking/README.md +30 -0
- dioxide-0.0.4a1/tests/type_checking/invalid/invalid_lifecycle_missing_dispose.py +28 -0
- dioxide-0.0.4a1/tests/type_checking/invalid/invalid_lifecycle_missing_initialize.py +28 -0
- dioxide-0.0.4a1/tests/type_checking/invalid/invalid_lifecycle_sync_methods.py +31 -0
- dioxide-0.0.4a1/tests/type_checking/invalid/invalid_resolve_usage.py +46 -0
- dioxide-0.0.4a1/tests/type_checking/test_mypy_catches_errors.py +181 -0
- dioxide-0.0.4a1/tests/type_checking/valid/__init__.py +1 -0
- dioxide-0.0.4a1/tests/type_checking/valid/valid_lifecycle_usage.py +31 -0
- dioxide-0.0.4a1/tests/type_checking/valid/valid_lifecycle_with_adapter.py +40 -0
- dioxide-0.0.4a1/tox.ini +70 -0
- dioxide-0.0.4a1/uv.lock +1844 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# CODEOWNERS - Defines individuals or teams responsible for code in the repository
|
|
2
|
+
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
|
|
3
|
+
|
|
4
|
+
# Default owners for everything in the repo (fallback)
|
|
5
|
+
# These owners will be requested for review when someone opens a PR unless a later match takes precedence
|
|
6
|
+
* @mikelane
|
|
7
|
+
|
|
8
|
+
# Core container and graph implementation
|
|
9
|
+
/src/core/ @mikelane
|
|
10
|
+
/dioxide-core/ @mikelane
|
|
11
|
+
|
|
12
|
+
# Rust implementation
|
|
13
|
+
*.rs @mikelane
|
|
14
|
+
/Cargo.toml @mikelane
|
|
15
|
+
/Cargo.lock @mikelane
|
|
16
|
+
/rust/ @mikelane
|
|
17
|
+
|
|
18
|
+
# Python bindings and API
|
|
19
|
+
*.py @mikelane
|
|
20
|
+
/python/ @mikelane
|
|
21
|
+
/pyproject.toml @mikelane
|
|
22
|
+
/setup.py @mikelane
|
|
23
|
+
|
|
24
|
+
# Documentation
|
|
25
|
+
/docs/ @mikelane
|
|
26
|
+
*.md @mikelane
|
|
27
|
+
/README.md @mikelane
|
|
28
|
+
/CONTRIBUTING.md @mikelane
|
|
29
|
+
|
|
30
|
+
# CI/CD and infrastructure
|
|
31
|
+
/.github/ @mikelane
|
|
32
|
+
/.github/workflows/ @mikelane
|
|
33
|
+
/Dockerfile @mikelane
|
|
34
|
+
/docker-compose.yml @mikelane
|
|
35
|
+
|
|
36
|
+
# Tests
|
|
37
|
+
/tests/ @mikelane
|
|
38
|
+
/**/tests/ @mikelane
|
|
39
|
+
|
|
40
|
+
# Configuration files
|
|
41
|
+
*.toml @mikelane
|
|
42
|
+
*.yml @mikelane
|
|
43
|
+
*.yaml @mikelane
|
|
44
|
+
*.json @mikelane
|
|
45
|
+
|
|
46
|
+
# Dependency files
|
|
47
|
+
/requirements.txt @mikelane
|
|
48
|
+
/poetry.lock @mikelane
|
|
49
|
+
/package.json @mikelane
|
|
50
|
+
/package-lock.json @mikelane
|
|
51
|
+
/uv.lock @mikelane
|
|
52
|
+
|
|
53
|
+
# Security-sensitive files
|
|
54
|
+
/SECURITY.md @mikelane
|
|
55
|
+
/.github/workflows/security-*.yml @mikelane
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: Report a bug or unexpected behavior in dioxide
|
|
3
|
+
title: '[BUG] '
|
|
4
|
+
labels: ['type: bug', 'status: triage']
|
|
5
|
+
assignees: []
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for taking the time to report a bug! Please fill out the form below with as much detail as possible.
|
|
11
|
+
|
|
12
|
+
Before submitting, please search existing issues to avoid duplicates.
|
|
13
|
+
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: description
|
|
16
|
+
attributes:
|
|
17
|
+
label: Bug Description
|
|
18
|
+
description: A clear and concise description of what the bug is.
|
|
19
|
+
placeholder: What went wrong?
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: steps-to-reproduce
|
|
25
|
+
attributes:
|
|
26
|
+
label: Steps to Reproduce
|
|
27
|
+
description: Steps to reproduce the behavior
|
|
28
|
+
placeholder: |
|
|
29
|
+
1. Initialize container with '...'
|
|
30
|
+
2. Add node with '...'
|
|
31
|
+
3. Call method '...'
|
|
32
|
+
4. See error
|
|
33
|
+
validations:
|
|
34
|
+
required: true
|
|
35
|
+
|
|
36
|
+
- type: textarea
|
|
37
|
+
id: expected-behavior
|
|
38
|
+
attributes:
|
|
39
|
+
label: Expected Behavior
|
|
40
|
+
description: What did you expect to happen?
|
|
41
|
+
placeholder: Describe the expected outcome
|
|
42
|
+
validations:
|
|
43
|
+
required: true
|
|
44
|
+
|
|
45
|
+
- type: textarea
|
|
46
|
+
id: actual-behavior
|
|
47
|
+
attributes:
|
|
48
|
+
label: Actual Behavior
|
|
49
|
+
description: What actually happened?
|
|
50
|
+
placeholder: Describe what actually occurred
|
|
51
|
+
validations:
|
|
52
|
+
required: true
|
|
53
|
+
|
|
54
|
+
- type: textarea
|
|
55
|
+
id: minimal-reproducible-example
|
|
56
|
+
attributes:
|
|
57
|
+
label: Minimal Reproducible Example
|
|
58
|
+
description: Provide a minimal code example that reproduces the issue
|
|
59
|
+
placeholder: |
|
|
60
|
+
```python
|
|
61
|
+
from dioxide import Container
|
|
62
|
+
|
|
63
|
+
# Your reproducible example here
|
|
64
|
+
container = Container()
|
|
65
|
+
# ...
|
|
66
|
+
```
|
|
67
|
+
render: python
|
|
68
|
+
validations:
|
|
69
|
+
required: true
|
|
70
|
+
|
|
71
|
+
- type: textarea
|
|
72
|
+
id: environment
|
|
73
|
+
attributes:
|
|
74
|
+
label: Environment Information
|
|
75
|
+
description: Please provide details about your environment
|
|
76
|
+
value: |
|
|
77
|
+
- **dioxide version**: (e.g., 0.1.0)
|
|
78
|
+
- **Python version**: (e.g., 3.11.5)
|
|
79
|
+
- **Operating System**: (e.g., macOS 14.1, Ubuntu 22.04, Windows 11)
|
|
80
|
+
- **Installation method**: (pip, uv, poetry, conda)
|
|
81
|
+
render: markdown
|
|
82
|
+
validations:
|
|
83
|
+
required: true
|
|
84
|
+
|
|
85
|
+
- type: dropdown
|
|
86
|
+
id: severity
|
|
87
|
+
attributes:
|
|
88
|
+
label: Severity
|
|
89
|
+
description: How severe is this bug?
|
|
90
|
+
options:
|
|
91
|
+
- Critical (System crash, data loss, security vulnerability)
|
|
92
|
+
- High (Major functionality broken, no workaround)
|
|
93
|
+
- Medium (Feature broken, workaround available)
|
|
94
|
+
- Low (Minor inconvenience, cosmetic issue)
|
|
95
|
+
validations:
|
|
96
|
+
required: true
|
|
97
|
+
|
|
98
|
+
- type: textarea
|
|
99
|
+
id: additional-context
|
|
100
|
+
attributes:
|
|
101
|
+
label: Additional Context
|
|
102
|
+
description: Add any other context about the problem here (logs, screenshots, stack traces, etc.)
|
|
103
|
+
placeholder: Stack traces, error messages, screenshots, related issues, etc.
|
|
104
|
+
|
|
105
|
+
- type: checkboxes
|
|
106
|
+
id: checklist
|
|
107
|
+
attributes:
|
|
108
|
+
label: Checklist
|
|
109
|
+
description: Please confirm the following
|
|
110
|
+
options:
|
|
111
|
+
- label: I have searched existing issues to avoid duplicates
|
|
112
|
+
required: true
|
|
113
|
+
- label: I have provided a minimal reproducible example
|
|
114
|
+
required: true
|
|
115
|
+
- label: I have included all relevant environment information
|
|
116
|
+
required: true
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: GitHub Discussions
|
|
4
|
+
url: https://github.com/mikelane/dioxide/discussions
|
|
5
|
+
about: For questions, ideas, and general discussions
|
|
6
|
+
- name: Security Vulnerability
|
|
7
|
+
url: https://github.com/mikelane/dioxide/security/advisories/new
|
|
8
|
+
about: Report security vulnerabilities privately
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
description: Report missing, incorrect, or unclear documentation
|
|
3
|
+
title: '[DOCS] '
|
|
4
|
+
labels: ['type: docs', 'status: triage']
|
|
5
|
+
assignees: []
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for helping improve dioxide's documentation!
|
|
11
|
+
|
|
12
|
+
- type: dropdown
|
|
13
|
+
id: doc-type
|
|
14
|
+
attributes:
|
|
15
|
+
label: Documentation Type
|
|
16
|
+
description: What kind of documentation issue is this?
|
|
17
|
+
options:
|
|
18
|
+
- Missing documentation
|
|
19
|
+
- Incorrect documentation
|
|
20
|
+
- Unclear/confusing documentation
|
|
21
|
+
- Outdated documentation
|
|
22
|
+
- Typo or formatting issue
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: location
|
|
28
|
+
attributes:
|
|
29
|
+
label: Documentation Location
|
|
30
|
+
description: Where should this documentation be? (Provide URL or file path)
|
|
31
|
+
placeholder: |
|
|
32
|
+
e.g., https://dioxide.readthedocs.io/en/latest/api/container.html
|
|
33
|
+
or docs/user-guide/getting-started.md
|
|
34
|
+
validations:
|
|
35
|
+
required: true
|
|
36
|
+
|
|
37
|
+
- type: textarea
|
|
38
|
+
id: issue-description
|
|
39
|
+
attributes:
|
|
40
|
+
label: Issue Description
|
|
41
|
+
description: What's wrong with the current documentation, or what's missing?
|
|
42
|
+
placeholder: Describe the documentation issue in detail
|
|
43
|
+
validations:
|
|
44
|
+
required: true
|
|
45
|
+
|
|
46
|
+
- type: textarea
|
|
47
|
+
id: proposed-content
|
|
48
|
+
attributes:
|
|
49
|
+
label: Proposed Content
|
|
50
|
+
description: What should the documentation say instead? (Optional for bug reports, required for missing docs)
|
|
51
|
+
placeholder: |
|
|
52
|
+
Provide the corrected text or outline what should be documented
|
|
53
|
+
|
|
54
|
+
For API docs, include:
|
|
55
|
+
- Function/class signature
|
|
56
|
+
- Parameters and types
|
|
57
|
+
- Return value
|
|
58
|
+
- Examples
|
|
59
|
+
render: markdown
|
|
60
|
+
|
|
61
|
+
- type: dropdown
|
|
62
|
+
id: audience
|
|
63
|
+
attributes:
|
|
64
|
+
label: Target Audience
|
|
65
|
+
description: Who is this documentation primarily for?
|
|
66
|
+
options:
|
|
67
|
+
- End users (using dioxide in their projects)
|
|
68
|
+
- API reference (developers using specific functions)
|
|
69
|
+
- Contributors (contributing to dioxide)
|
|
70
|
+
- Tutorial/guide (learning dioxide concepts)
|
|
71
|
+
validations:
|
|
72
|
+
required: true
|
|
73
|
+
|
|
74
|
+
- type: textarea
|
|
75
|
+
id: context
|
|
76
|
+
attributes:
|
|
77
|
+
label: Additional Context
|
|
78
|
+
description: Any other context, screenshots, or examples
|
|
79
|
+
placeholder: Screenshots of confusing documentation, links to good examples from other projects, etc.
|
|
80
|
+
|
|
81
|
+
- type: checkboxes
|
|
82
|
+
id: checklist
|
|
83
|
+
attributes:
|
|
84
|
+
label: Checklist
|
|
85
|
+
description: Please confirm the following
|
|
86
|
+
options:
|
|
87
|
+
- label: I have searched existing documentation issues to avoid duplicates
|
|
88
|
+
required: true
|
|
89
|
+
- label: I have identified the specific location that needs updating
|
|
90
|
+
required: true
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
name: Enhancement
|
|
2
|
+
description: Suggest an improvement to an existing feature
|
|
3
|
+
title: '[ENHANCEMENT] '
|
|
4
|
+
labels: ['type: enhancement', 'status: triage']
|
|
5
|
+
assignees: []
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for suggesting an enhancement! Use this template for improvements to **existing** features.
|
|
11
|
+
|
|
12
|
+
For **new** features, please use the Feature Request template instead.
|
|
13
|
+
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: feature-to-enhance
|
|
16
|
+
attributes:
|
|
17
|
+
label: Feature to Enhance
|
|
18
|
+
description: Which existing feature should be improved?
|
|
19
|
+
placeholder: Describe the current feature that needs enhancement
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: current-behavior
|
|
25
|
+
attributes:
|
|
26
|
+
label: Current Behavior
|
|
27
|
+
description: How does the feature currently work?
|
|
28
|
+
placeholder: Describe the current implementation and behavior
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: desired-behavior
|
|
34
|
+
attributes:
|
|
35
|
+
label: Desired Behavior
|
|
36
|
+
description: How should the feature work after this enhancement?
|
|
37
|
+
placeholder: Describe the improved behavior you'd like to see
|
|
38
|
+
validations:
|
|
39
|
+
required: true
|
|
40
|
+
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: motivation
|
|
43
|
+
attributes:
|
|
44
|
+
label: Motivation
|
|
45
|
+
description: Why is this enhancement needed? What value does it provide?
|
|
46
|
+
placeholder: Explain the benefits and use cases for this improvement
|
|
47
|
+
validations:
|
|
48
|
+
required: true
|
|
49
|
+
|
|
50
|
+
- type: textarea
|
|
51
|
+
id: example-comparison
|
|
52
|
+
attributes:
|
|
53
|
+
label: Before/After Example
|
|
54
|
+
description: Show how code would change with this enhancement
|
|
55
|
+
placeholder: |
|
|
56
|
+
**Before (current):**
|
|
57
|
+
```python
|
|
58
|
+
# Current usage
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**After (enhanced):**
|
|
62
|
+
```python
|
|
63
|
+
# Improved usage
|
|
64
|
+
```
|
|
65
|
+
render: markdown
|
|
66
|
+
validations:
|
|
67
|
+
required: true
|
|
68
|
+
|
|
69
|
+
- type: dropdown
|
|
70
|
+
id: impact
|
|
71
|
+
attributes:
|
|
72
|
+
label: Impact
|
|
73
|
+
description: What is the impact of this enhancement?
|
|
74
|
+
options:
|
|
75
|
+
- High (Significantly improves usability or performance)
|
|
76
|
+
- Medium (Noticeable improvement, affects common use cases)
|
|
77
|
+
- Low (Minor improvement, nice to have)
|
|
78
|
+
validations:
|
|
79
|
+
required: true
|
|
80
|
+
|
|
81
|
+
- type: dropdown
|
|
82
|
+
id: breaking-change
|
|
83
|
+
attributes:
|
|
84
|
+
label: Breaking Change?
|
|
85
|
+
description: Would this enhancement break existing code?
|
|
86
|
+
options:
|
|
87
|
+
- No (Backward compatible)
|
|
88
|
+
- Yes (Would require code changes)
|
|
89
|
+
- Maybe (Depends on implementation)
|
|
90
|
+
validations:
|
|
91
|
+
required: true
|
|
92
|
+
|
|
93
|
+
- type: textarea
|
|
94
|
+
id: additional-context
|
|
95
|
+
attributes:
|
|
96
|
+
label: Additional Context
|
|
97
|
+
description: Add any other context, benchmarks, or references here
|
|
98
|
+
placeholder: Performance benchmarks, similar implementations in other projects, etc.
|
|
99
|
+
|
|
100
|
+
- type: checkboxes
|
|
101
|
+
id: checklist
|
|
102
|
+
attributes:
|
|
103
|
+
label: Checklist
|
|
104
|
+
description: Please confirm the following
|
|
105
|
+
options:
|
|
106
|
+
- label: I have searched existing issues to avoid duplicates
|
|
107
|
+
required: true
|
|
108
|
+
- label: This is an enhancement to an existing feature (not a new feature)
|
|
109
|
+
required: true
|
|
110
|
+
- label: I have provided clear before/after examples
|
|
111
|
+
required: true
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: Propose a new feature for dioxide
|
|
3
|
+
title: '[FEATURE] '
|
|
4
|
+
labels: ['type: feature', 'status: triage']
|
|
5
|
+
assignees: []
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for proposing a new feature! Please provide as much detail as possible.
|
|
11
|
+
|
|
12
|
+
Before submitting, please search existing issues and discussions to see if this has been proposed before.
|
|
13
|
+
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: user-story
|
|
16
|
+
attributes:
|
|
17
|
+
label: User Story
|
|
18
|
+
description: Describe this feature as a user story
|
|
19
|
+
placeholder: |
|
|
20
|
+
As a [type of user],
|
|
21
|
+
I want [goal/desire],
|
|
22
|
+
So that [benefit/value].
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
|
|
26
|
+
- type: textarea
|
|
27
|
+
id: problem-statement
|
|
28
|
+
attributes:
|
|
29
|
+
label: Problem Statement
|
|
30
|
+
description: What problem does this feature solve? Why is it needed?
|
|
31
|
+
placeholder: Describe the problem or pain point this feature addresses
|
|
32
|
+
validations:
|
|
33
|
+
required: true
|
|
34
|
+
|
|
35
|
+
- type: textarea
|
|
36
|
+
id: proposed-solution
|
|
37
|
+
attributes:
|
|
38
|
+
label: Proposed Solution
|
|
39
|
+
description: How should this feature work? Describe the desired behavior.
|
|
40
|
+
placeholder: Describe your ideal solution in detail
|
|
41
|
+
validations:
|
|
42
|
+
required: true
|
|
43
|
+
|
|
44
|
+
- type: textarea
|
|
45
|
+
id: example-usage
|
|
46
|
+
attributes:
|
|
47
|
+
label: Example Usage
|
|
48
|
+
description: Provide a code example showing how you envision using this feature
|
|
49
|
+
placeholder: |
|
|
50
|
+
```python
|
|
51
|
+
from dioxide import Container
|
|
52
|
+
|
|
53
|
+
# Example of how this feature would be used
|
|
54
|
+
container = Container()
|
|
55
|
+
# ...
|
|
56
|
+
```
|
|
57
|
+
render: python
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
|
|
61
|
+
- type: textarea
|
|
62
|
+
id: alternatives-considered
|
|
63
|
+
attributes:
|
|
64
|
+
label: Alternatives Considered
|
|
65
|
+
description: What alternative solutions or features have you considered?
|
|
66
|
+
placeholder: Describe alternative approaches and why they are less suitable
|
|
67
|
+
|
|
68
|
+
- type: dropdown
|
|
69
|
+
id: priority
|
|
70
|
+
attributes:
|
|
71
|
+
label: Priority
|
|
72
|
+
description: How important is this feature to you?
|
|
73
|
+
options:
|
|
74
|
+
- Critical (Blocking current work, no workaround)
|
|
75
|
+
- High (Very important, would significantly improve workflow)
|
|
76
|
+
- Medium (Nice to have, would improve experience)
|
|
77
|
+
- Low (Minor improvement, not urgent)
|
|
78
|
+
validations:
|
|
79
|
+
required: true
|
|
80
|
+
|
|
81
|
+
- type: textarea
|
|
82
|
+
id: acceptance-criteria
|
|
83
|
+
attributes:
|
|
84
|
+
label: Acceptance Criteria
|
|
85
|
+
description: What must be true for this feature to be considered complete?
|
|
86
|
+
value: |
|
|
87
|
+
- [ ] Criterion 1
|
|
88
|
+
- [ ] Criterion 2
|
|
89
|
+
- [ ] Criterion 3
|
|
90
|
+
render: markdown
|
|
91
|
+
validations:
|
|
92
|
+
required: true
|
|
93
|
+
|
|
94
|
+
- type: textarea
|
|
95
|
+
id: additional-context
|
|
96
|
+
attributes:
|
|
97
|
+
label: Additional Context
|
|
98
|
+
description: Add any other context, mockups, references, or examples here
|
|
99
|
+
placeholder: Links to similar features in other projects, mockups, diagrams, etc.
|
|
100
|
+
|
|
101
|
+
- type: checkboxes
|
|
102
|
+
id: checklist
|
|
103
|
+
attributes:
|
|
104
|
+
label: Checklist
|
|
105
|
+
description: Please confirm the following
|
|
106
|
+
options:
|
|
107
|
+
- label: I have searched existing issues and discussions to avoid duplicates
|
|
108
|
+
required: true
|
|
109
|
+
- label: I have clearly described the problem this feature solves
|
|
110
|
+
required: true
|
|
111
|
+
- label: I have provided a concrete example of how this feature would be used
|
|
112
|
+
required: true
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
name: Question / Support
|
|
2
|
+
description: Ask a question or get help using dioxide
|
|
3
|
+
title: '[QUESTION] '
|
|
4
|
+
labels: ['type: question', 'status: triage']
|
|
5
|
+
assignees: []
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Thanks for reaching out! We're here to help.
|
|
11
|
+
|
|
12
|
+
**Note:** For in-depth discussions, consider using [GitHub Discussions](https://github.com/mikelane/dioxide/discussions) instead of opening an issue.
|
|
13
|
+
|
|
14
|
+
- type: textarea
|
|
15
|
+
id: question
|
|
16
|
+
attributes:
|
|
17
|
+
label: Your Question
|
|
18
|
+
description: What would you like to know?
|
|
19
|
+
placeholder: Ask your question here in as much detail as possible
|
|
20
|
+
validations:
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: goal
|
|
25
|
+
attributes:
|
|
26
|
+
label: What Are You Trying to Accomplish?
|
|
27
|
+
description: Provide context about what you're trying to achieve
|
|
28
|
+
placeholder: Describe your use case and end goal
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: attempted-solutions
|
|
34
|
+
attributes:
|
|
35
|
+
label: What Have You Tried?
|
|
36
|
+
description: What approaches have you already attempted?
|
|
37
|
+
placeholder: |
|
|
38
|
+
List what you've tried so far:
|
|
39
|
+
1. Attempted approach 1
|
|
40
|
+
2. Attempted approach 2
|
|
41
|
+
3. Read documentation page X
|
|
42
|
+
validations:
|
|
43
|
+
required: true
|
|
44
|
+
|
|
45
|
+
- type: textarea
|
|
46
|
+
id: code-example
|
|
47
|
+
attributes:
|
|
48
|
+
label: Relevant Code
|
|
49
|
+
description: Share any relevant code that demonstrates what you're working on
|
|
50
|
+
placeholder: |
|
|
51
|
+
```python
|
|
52
|
+
# Your code here
|
|
53
|
+
from dioxide import Container
|
|
54
|
+
|
|
55
|
+
# ...
|
|
56
|
+
```
|
|
57
|
+
render: python
|
|
58
|
+
|
|
59
|
+
- type: textarea
|
|
60
|
+
id: error-output
|
|
61
|
+
attributes:
|
|
62
|
+
label: Error Messages or Output
|
|
63
|
+
description: If you're encountering errors, paste them here
|
|
64
|
+
placeholder: |
|
|
65
|
+
Any error messages, stack traces, or unexpected output
|
|
66
|
+
render: shell
|
|
67
|
+
|
|
68
|
+
- type: textarea
|
|
69
|
+
id: environment
|
|
70
|
+
attributes:
|
|
71
|
+
label: Environment
|
|
72
|
+
description: Provide relevant environment details
|
|
73
|
+
value: |
|
|
74
|
+
- **dioxide version**:
|
|
75
|
+
- **Python version**:
|
|
76
|
+
- **Operating System**:
|
|
77
|
+
render: markdown
|
|
78
|
+
|
|
79
|
+
- type: checkboxes
|
|
80
|
+
id: checklist
|
|
81
|
+
attributes:
|
|
82
|
+
label: Checklist
|
|
83
|
+
description: Please confirm the following
|
|
84
|
+
options:
|
|
85
|
+
- label: I have searched existing issues and discussions for similar questions
|
|
86
|
+
required: true
|
|
87
|
+
- label: I have checked the documentation
|
|
88
|
+
required: true
|
|
89
|
+
- label: I have provided sufficient context about what I'm trying to accomplish
|
|
90
|
+
required: true
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Pull Request
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
<!-- Provide a clear and concise description of what this PR does -->
|
|
6
|
+
|
|
7
|
+
## Related Issues
|
|
8
|
+
|
|
9
|
+
<!-- Link to related issues using keywords: Closes #123, Fixes #456, Resolves #789 -->
|
|
10
|
+
|
|
11
|
+
Closes #
|
|
12
|
+
|
|
13
|
+
## Type of Change
|
|
14
|
+
|
|
15
|
+
<!-- Mark the relevant option with an 'x' -->
|
|
16
|
+
|
|
17
|
+
- [ ] Bug fix (non-breaking change which fixes an issue)
|
|
18
|
+
- [ ] New feature (non-breaking change which adds functionality)
|
|
19
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
20
|
+
- [ ] Documentation update
|
|
21
|
+
- [ ] Refactoring (no functional changes)
|
|
22
|
+
- [ ] Performance improvement
|
|
23
|
+
- [ ] Security fix
|
|
24
|
+
- [ ] Other (please describe):
|
|
25
|
+
|
|
26
|
+
## Changes Made
|
|
27
|
+
|
|
28
|
+
<!-- Provide a bulleted list of specific changes -->
|
|
29
|
+
|
|
30
|
+
-
|
|
31
|
+
-
|
|
32
|
+
-
|
|
33
|
+
|
|
34
|
+
## Testing
|
|
35
|
+
|
|
36
|
+
<!-- Describe the tests you ran to verify your changes -->
|
|
37
|
+
|
|
38
|
+
### Test Coverage
|
|
39
|
+
|
|
40
|
+
- [ ] All new code is covered by tests
|
|
41
|
+
- [ ] All existing tests pass
|
|
42
|
+
- [ ] Integration tests added/updated (if applicable)
|
|
43
|
+
- [ ] Manual testing performed
|
|
44
|
+
|
|
45
|
+
### Test Commands Run
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Example:
|
|
49
|
+
# uv run pytest tests/
|
|
50
|
+
# uv run tox -e lint
|
|
51
|
+
# uv run mypy dioxide/
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Test Results:**
|
|
55
|
+
|
|
56
|
+
<!-- Paste relevant test output or describe manual testing results -->
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Breaking Changes
|
|
62
|
+
|
|
63
|
+
<!-- If this is a breaking change, describe the impact and migration path -->
|
|
64
|
+
|
|
65
|
+
**Impact:**
|
|
66
|
+
|
|
67
|
+
**Migration Guide:**
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
# Before:
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# After:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Documentation
|
|
78
|
+
|
|
79
|
+
- [ ] Documentation updated (if needed)
|
|
80
|
+
- [ ] Docstrings added/updated for new/modified functions
|
|
81
|
+
- [ ] `CHANGELOG.md` will be updated automatically (via semantic-release)
|
|
82
|
+
- [ ] API changes documented in relevant docs
|
|
83
|
+
|
|
84
|
+
## Checklist
|
|
85
|
+
|
|
86
|
+
<!-- Ensure all items are checked before requesting review -->
|
|
87
|
+
|
|
88
|
+
- [ ] My code follows the project's code style (ruff, isort, mypy)
|
|
89
|
+
- [ ] I have performed a self-review of my own code
|
|
90
|
+
- [ ] I have commented my code, particularly in hard-to-understand areas
|
|
91
|
+
- [ ] I have made corresponding changes to the documentation
|
|
92
|
+
- [ ] My changes generate no new warnings
|
|
93
|
+
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
94
|
+
- [ ] New and existing unit tests pass locally with my changes
|
|
95
|
+
- [ ] Any dependent changes have been merged and published
|
|
96
|
+
|
|
97
|
+
## Additional Context
|
|
98
|
+
|
|
99
|
+
<!-- Add any other context, screenshots, or information about the PR here -->
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
**For Reviewers:**
|
|
104
|
+
|
|
105
|
+
<!-- Guidance for reviewers -->
|
|
106
|
+
|
|
107
|
+
**Focus Areas:**
|
|
108
|
+
|
|
109
|
+
-
|
|
110
|
+
-
|
|
111
|
+
|
|
112
|
+
**Known Issues/TODOs:**
|
|
113
|
+
|
|
114
|
+
-
|