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.
Files changed (118) hide show
  1. dioxide-0.0.4a1/.github/CODEOWNERS +55 -0
  2. dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/bug_report.yml +116 -0
  3. dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/config.yml +8 -0
  4. dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/documentation.yml +90 -0
  5. dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/enhancement.yml +111 -0
  6. dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/feature_request.yml +112 -0
  7. dioxide-0.0.4a1/.github/ISSUE_TEMPLATE/question.yml +90 -0
  8. dioxide-0.0.4a1/.github/PULL_REQUEST_TEMPLATE.md +114 -0
  9. dioxide-0.0.4a1/.github/dependabot.yml +99 -0
  10. dioxide-0.0.4a1/.github/scripts/sync-labels.sh +125 -0
  11. dioxide-0.0.4a1/.github/scripts/update_version.sh +21 -0
  12. dioxide-0.0.4a1/.github/workflows/auto-close-issues.yml +87 -0
  13. dioxide-0.0.4a1/.github/workflows/ci.yml +116 -0
  14. dioxide-0.0.4a1/.github/workflows/issue-metrics.yml +134 -0
  15. dioxide-0.0.4a1/.github/workflows/issue-triage.yml +88 -0
  16. dioxide-0.0.4a1/.github/workflows/release-automated.yml +360 -0
  17. dioxide-0.0.4a1/.github/workflows/stale-issues.yml +117 -0
  18. dioxide-0.0.4a1/.gitignore +63 -0
  19. dioxide-0.0.4a1/.pre-commit-config.yaml +68 -0
  20. dioxide-0.0.4a1/.python-version +1 -0
  21. dioxide-0.0.4a1/CHANGELOG.md +103 -0
  22. dioxide-0.0.4a1/CLAUDE.md +1120 -0
  23. dioxide-0.0.4a1/CONTRIBUTING.md +357 -0
  24. dioxide-0.0.4a1/COVERAGE.md +120 -0
  25. dioxide-0.0.4a1/Cargo.lock +278 -0
  26. dioxide-0.0.4a1/Cargo.toml +25 -0
  27. dioxide-0.0.4a1/DX_EVALUATION.md +755 -0
  28. dioxide-0.0.4a1/LICENSE +21 -0
  29. dioxide-0.0.4a1/MIGRATION.md +278 -0
  30. dioxide-0.0.4a1/PKG-INFO +615 -0
  31. dioxide-0.0.4a1/README.md +578 -0
  32. dioxide-0.0.4a1/ROADMAP.md +710 -0
  33. dioxide-0.0.4a1/ROADMAP_OLD.md +648 -0
  34. dioxide-0.0.4a1/STATUS.md +395 -0
  35. dioxide-0.0.4a1/docs/DEVELOPER_EXPERIENCE.md +366 -0
  36. dioxide-0.0.4a1/docs/DOCUMENT_AUDIT.md +365 -0
  37. dioxide-0.0.4a1/docs/DX_VISION.md +1516 -0
  38. dioxide-0.0.4a1/docs/GITHUB_PROJECT_SETUP.md +438 -0
  39. dioxide-0.0.4a1/docs/MLP_VISION.md +1479 -0
  40. dioxide-0.0.4a1/docs/SPRINT_READY.md +428 -0
  41. dioxide-0.0.4a1/docs/cicd-modernization-plan.md +1333 -0
  42. dioxide-0.0.4a1/docs/design/ADR-001-container-architecture.md +589 -0
  43. dioxide-0.0.4a1/docs/design/ADR-002-pyo3-binding-strategy.md +745 -0
  44. dioxide-0.0.4a1/docs/design/github-actions-ci.md +569 -0
  45. dioxide-0.0.4a1/docs/design/github-actions-release.md +625 -0
  46. dioxide-0.0.4a1/docs/design/singleton-caching-fix.md +435 -0
  47. dioxide-0.0.4a1/docs/issue-lifecycle.md +406 -0
  48. dioxide-0.0.4a1/docs/label-guide.md +637 -0
  49. dioxide-0.0.4a1/examples/README.md +232 -0
  50. dioxide-0.0.4a1/examples/hexagonal_architecture.py +277 -0
  51. dioxide-0.0.4a1/features/basic_container.feature +52 -0
  52. dioxide-0.0.4a1/features/component-decorator.feature +38 -0
  53. dioxide-0.0.4a1/features/container-scan.feature +42 -0
  54. dioxide-0.0.4a1/features/dependency-injection.feature +44 -0
  55. dioxide-0.0.4a1/features/environment.py +54 -0
  56. dioxide-0.0.4a1/features/manual-registration.feature +36 -0
  57. dioxide-0.0.4a1/features/provider_registration.feature +28 -0
  58. dioxide-0.0.4a1/features/singleton-caching.feature +41 -0
  59. dioxide-0.0.4a1/features/steps/container_steps.py +221 -0
  60. dioxide-0.0.4a1/features/steps/provider_steps.py +130 -0
  61. dioxide-0.0.4a1/features/type-safety.feature +41 -0
  62. dioxide-0.0.4a1/pyproject.toml +216 -0
  63. dioxide-0.0.4a1/python/dioxide/__init__.py +72 -0
  64. dioxide-0.0.4a1/python/dioxide/_dioxide_core.pyi +18 -0
  65. dioxide-0.0.4a1/python/dioxide/adapter.py +112 -0
  66. dioxide-0.0.4a1/python/dioxide/container.py +1174 -0
  67. dioxide-0.0.4a1/python/dioxide/decorators.py +314 -0
  68. dioxide-0.0.4a1/python/dioxide/exceptions.py +101 -0
  69. dioxide-0.0.4a1/python/dioxide/lifecycle.py +62 -0
  70. dioxide-0.0.4a1/python/dioxide/lifecycle.pyi +7 -0
  71. dioxide-0.0.4a1/python/dioxide/profile.py +210 -0
  72. dioxide-0.0.4a1/python/dioxide/profile_enum.py +43 -0
  73. dioxide-0.0.4a1/python/dioxide/py.typed +0 -0
  74. dioxide-0.0.4a1/python/dioxide/scope.py +77 -0
  75. dioxide-0.0.4a1/python/dioxide/services.py +76 -0
  76. dioxide-0.0.4a1/rust/src/lib.rs +362 -0
  77. dioxide-0.0.4a1/scripts/sync_version.sh +15 -0
  78. dioxide-0.0.4a1/tests/__init__.py +1 -0
  79. dioxide-0.0.4a1/tests/conftest.py +25 -0
  80. dioxide-0.0.4a1/tests/fixtures/__init__.py +1 -0
  81. dioxide-0.0.4a1/tests/fixtures/test_package_a/__init__.py +12 -0
  82. dioxide-0.0.4a1/tests/fixtures/test_package_b/__init__.py +12 -0
  83. dioxide-0.0.4a1/tests/fixtures/test_package_b/subpkg/__init__.py +12 -0
  84. dioxide-0.0.4a1/tests/fixtures/test_package_c/__init__.py +12 -0
  85. dioxide-0.0.4a1/tests/fixtures/test_package_d/__init__.py +27 -0
  86. dioxide-0.0.4a1/tests/fixtures/test_package_with_errors/__init__.py +10 -0
  87. dioxide-0.0.4a1/tests/fixtures/test_package_with_errors/broken_module.py +12 -0
  88. dioxide-0.0.4a1/tests/smoke_test.py +73 -0
  89. dioxide-0.0.4a1/tests/test_abc_detection.py +84 -0
  90. dioxide-0.0.4a1/tests/test_adapter.py +117 -0
  91. dioxide-0.0.4a1/tests/test_component.py +483 -0
  92. dioxide-0.0.4a1/tests/test_container_lifecycle.py +542 -0
  93. dioxide-0.0.4a1/tests/test_container_scan.py +235 -0
  94. dioxide-0.0.4a1/tests/test_deprecation.py +153 -0
  95. dioxide-0.0.4a1/tests/test_descriptive_errors.py +173 -0
  96. dioxide-0.0.4a1/tests/test_global_container.py +222 -0
  97. dioxide-0.0.4a1/tests/test_integration_hexagonal.py +201 -0
  98. dioxide-0.0.4a1/tests/test_lifecycle_decorator.py +112 -0
  99. dioxide-0.0.4a1/tests/test_manual_registration.py +93 -0
  100. dioxide-0.0.4a1/tests/test_package_scanning.py +264 -0
  101. dioxide-0.0.4a1/tests/test_port_resolution.py +293 -0
  102. dioxide-0.0.4a1/tests/test_profile.py +201 -0
  103. dioxide-0.0.4a1/tests/test_profile_enum.py +62 -0
  104. dioxide-0.0.4a1/tests/test_protocol_implementation.py +347 -0
  105. dioxide-0.0.4a1/tests/test_rust_container_edge_cases.py +369 -0
  106. dioxide-0.0.4a1/tests/test_service.py +108 -0
  107. dioxide-0.0.4a1/tests/test_type_safety.py +120 -0
  108. dioxide-0.0.4a1/tests/type_checking/README.md +30 -0
  109. dioxide-0.0.4a1/tests/type_checking/invalid/invalid_lifecycle_missing_dispose.py +28 -0
  110. dioxide-0.0.4a1/tests/type_checking/invalid/invalid_lifecycle_missing_initialize.py +28 -0
  111. dioxide-0.0.4a1/tests/type_checking/invalid/invalid_lifecycle_sync_methods.py +31 -0
  112. dioxide-0.0.4a1/tests/type_checking/invalid/invalid_resolve_usage.py +46 -0
  113. dioxide-0.0.4a1/tests/type_checking/test_mypy_catches_errors.py +181 -0
  114. dioxide-0.0.4a1/tests/type_checking/valid/__init__.py +1 -0
  115. dioxide-0.0.4a1/tests/type_checking/valid/valid_lifecycle_usage.py +31 -0
  116. dioxide-0.0.4a1/tests/type_checking/valid/valid_lifecycle_with_adapter.py +40 -0
  117. dioxide-0.0.4a1/tox.ini +70 -0
  118. 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
+ -