Skip to content
This repository was archived by the owner on Mar 3, 2026. It is now read-only.

Commit 840c54d

Browse files
committed
feat: add contribution guidelines, issue templates, and CI/CD workflows
1 parent 092a1da commit 840c54d

10 files changed

Lines changed: 664 additions & 1 deletion

File tree

.github/CONTRIBUTING.md

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
# Contributing to DDEV PHPStan Extension
2+
3+
Thank you for your interest in contributing to the DDEV PHPStan extension! We welcome contributions from the community.
4+
5+
## Ways to Contribute
6+
7+
- **Bug Reports**: Help us identify and fix issues
8+
- **Feature Requests**: Suggest new features and improvements
9+
- **Code Contributions**: Submit pull requests with bug fixes or new features
10+
- **Documentation**: Improve documentation and examples
11+
- **Testing**: Help test new releases and report issues
12+
13+
## Getting Started
14+
15+
### Prerequisites
16+
17+
- Node.js 18+ and npm
18+
- VS Code
19+
- DDEV
20+
- Git
21+
22+
### Development Setup
23+
24+
1. **Fork and Clone**
25+
```bash
26+
git clone https://github.com/YOUR_USERNAME/vscode-ddev-phpstan.git
27+
cd vscode-ddev-phpstan
28+
```
29+
30+
2. **Install Dependencies**
31+
```bash
32+
npm install
33+
```
34+
35+
3. **Build the Extension**
36+
```bash
37+
npm run compile
38+
```
39+
40+
4. **Run Tests**
41+
```bash
42+
npm test
43+
```
44+
45+
5. **Open in VS Code**
46+
```bash
47+
code .
48+
```
49+
50+
6. **Start Debugging**
51+
- Press `F5` to launch Extension Development Host
52+
- Test your changes in the new VS Code window
53+
54+
### Project Structure
55+
56+
```
57+
src/
58+
├── extension.ts # Main extension entry point
59+
├── models/ # Data models and interfaces
60+
├── services/ # Core business logic
61+
├── shared/ # Shared utilities and services
62+
└── test/ # Test files
63+
```
64+
65+
## Development Guidelines
66+
67+
### Code Style
68+
69+
- Use TypeScript with strict type checking
70+
- Follow existing code style and patterns
71+
- Use meaningful variable and function names
72+
- Add JSDoc comments for public APIs
73+
74+
### Testing
75+
76+
- Write tests for new features
77+
- Ensure all tests pass before submitting PR
78+
- Test with different DDEV setups if possible
79+
80+
### Commits
81+
82+
We follow conventional commits:
83+
84+
- `feat:` New features
85+
- `fix:` Bug fixes
86+
- `docs:` Documentation changes
87+
- `test:` Test additions/changes
88+
- `refactor:` Code refactoring
89+
- `chore:` Maintenance tasks
90+
91+
Example: `feat: add auto-detection of PHPStan config files`
92+
93+
## Pull Request Process
94+
95+
1. **Create Feature Branch**
96+
```bash
97+
git checkout -b feature/your-feature-name
98+
```
99+
100+
2. **Make Changes**
101+
- Write code following our guidelines
102+
- Add/update tests as needed
103+
- Update documentation if required
104+
105+
3. **Test Thoroughly**
106+
```bash
107+
npm run compile
108+
npm run lint
109+
npm test
110+
```
111+
112+
4. **Commit Changes**
113+
```bash
114+
git add .
115+
git commit -m "feat: your descriptive commit message"
116+
```
117+
118+
5. **Push and Create PR**
119+
```bash
120+
git push origin feature/your-feature-name
121+
```
122+
123+
Then create a Pull Request on GitHub.
124+
125+
### PR Requirements
126+
127+
- [ ] All tests pass
128+
- [ ] Code follows project style
129+
- [ ] Documentation updated (if needed)
130+
- [ ] CHANGELOG.md updated (for notable changes)
131+
- [ ] PR description explains the change
132+
133+
## Issue Guidelines
134+
135+
### Bug Reports
136+
137+
Please use the bug report template and include:
138+
139+
- Extension version
140+
- VS Code version
141+
- DDEV version
142+
- PHPStan version
143+
- Operating system
144+
- Clear reproduction steps
145+
- Expected vs actual behavior
146+
- Logs/error messages
147+
148+
### Feature Requests
149+
150+
Please use the feature request template and include:
151+
152+
- Clear description of the problem
153+
- Proposed solution
154+
- Use case and examples
155+
- Priority level
156+
157+
## Code of Conduct
158+
159+
### Our Standards
160+
161+
- Be respectful and inclusive
162+
- Focus on constructive feedback
163+
- Help others learn and grow
164+
- Maintain professional communication
165+
166+
### Unacceptable Behavior
167+
168+
- Harassment or discrimination
169+
- Trolling or inflammatory comments
170+
- Personal attacks
171+
- Publishing private information
172+
173+
## Getting Help
174+
175+
- **Questions**: Open a discussion on GitHub
176+
- **Issues**: Use the issue templates
177+
- **Chat**: Contact the maintainers
178+
179+
## License
180+
181+
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License.
182+
183+
## Recognition
184+
185+
Contributors will be recognized in:
186+
- CHANGELOG.md for notable contributions
187+
- GitHub contributors page
188+
- Release notes for significant features
189+
190+
Thank you for contributing to make the DDEV PHPStan extension better! 🚀
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
name: Bug Report
2+
description: Report a bug or issue with the DDEV PHPStan extension
3+
title: "[Bug]: "
4+
labels: ["bug", "triage"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thank you for reporting a bug! Please fill out the information below to help us diagnose and fix the issue.
10+
11+
- type: input
12+
id: extension-version
13+
attributes:
14+
label: Extension Version
15+
description: What version of the DDEV PHPStan extension are you using?
16+
placeholder: "e.g., 0.1.0"
17+
validations:
18+
required: true
19+
20+
- type: input
21+
id: vscode-version
22+
attributes:
23+
label: VS Code Version
24+
description: What version of VS Code are you using?
25+
placeholder: "e.g., 1.85.0"
26+
validations:
27+
required: true
28+
29+
- type: input
30+
id: ddev-version
31+
attributes:
32+
label: DDEV Version
33+
description: What version of DDEV are you using?
34+
placeholder: "e.g., v1.22.0"
35+
validations:
36+
required: true
37+
38+
- type: input
39+
id: phpstan-version
40+
attributes:
41+
label: PHPStan Version
42+
description: What version of PHPStan is installed in your DDEV container?
43+
placeholder: "e.g., 1.10.0"
44+
validations:
45+
required: true
46+
47+
- type: dropdown
48+
id: os
49+
attributes:
50+
label: Operating System
51+
description: What operating system are you using?
52+
options:
53+
- Windows
54+
- macOS
55+
- Linux (Ubuntu)
56+
- Linux (Other)
57+
- Other
58+
validations:
59+
required: true
60+
61+
- type: textarea
62+
id: description
63+
attributes:
64+
label: Bug Description
65+
description: A clear and concise description of what the bug is.
66+
placeholder: "Describe the bug..."
67+
validations:
68+
required: true
69+
70+
- type: textarea
71+
id: steps
72+
attributes:
73+
label: Steps to Reproduce
74+
description: Steps to reproduce the behavior
75+
placeholder: |
76+
1. Go to...
77+
2. Click on...
78+
3. See error...
79+
validations:
80+
required: true
81+
82+
- type: textarea
83+
id: expected
84+
attributes:
85+
label: Expected Behavior
86+
description: A clear and concise description of what you expected to happen.
87+
placeholder: "What should have happened?"
88+
validations:
89+
required: true
90+
91+
- type: textarea
92+
id: actual
93+
attributes:
94+
label: Actual Behavior
95+
description: A clear and concise description of what actually happened.
96+
placeholder: "What actually happened?"
97+
validations:
98+
required: true
99+
100+
- type: textarea
101+
id: logs
102+
attributes:
103+
label: Logs and Error Messages
104+
description: Please include any relevant logs, error messages, or console output.
105+
placeholder: "Paste logs here..."
106+
render: text
107+
108+
- type: textarea
109+
id: config
110+
attributes:
111+
label: Extension Configuration
112+
description: Please share your DDEV PHPStan extension configuration (from VS Code settings).
113+
placeholder: "Paste your ddev-phpstan.* settings here..."
114+
render: json
115+
116+
- type: textarea
117+
id: additional
118+
attributes:
119+
label: Additional Context
120+
description: Add any other context about the problem here.
121+
placeholder: "Any additional information..."
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement for the DDEV PHPStan extension
3+
title: "[Feature]: "
4+
labels: ["enhancement", "feature-request"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thank you for suggesting a new feature! Please fill out the information below to help us understand your request.
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem Description
15+
description: Is your feature request related to a problem? Please describe the problem you're trying to solve.
16+
placeholder: "I'm always frustrated when..."
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: solution
22+
attributes:
23+
label: Proposed Solution
24+
description: Describe the solution you'd like to see implemented.
25+
placeholder: "I would like to see..."
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: alternatives
31+
attributes:
32+
label: Alternative Solutions
33+
description: Describe any alternative solutions or features you've considered.
34+
placeholder: "Alternatively, we could..."
35+
36+
- type: dropdown
37+
id: priority
38+
attributes:
39+
label: Priority
40+
description: How important is this feature to you?
41+
options:
42+
- Low - Nice to have
43+
- Medium - Would improve my workflow
44+
- High - Critical for my use case
45+
- Critical - Blocking my work
46+
validations:
47+
required: true
48+
49+
- type: checkboxes
50+
id: category
51+
attributes:
52+
label: Feature Category
53+
description: What category does this feature fall into? (Select all that apply)
54+
options:
55+
- label: PHPStan Analysis
56+
- label: DDEV Integration
57+
- label: VS Code UI/UX
58+
- label: Configuration
59+
- label: Performance
60+
- label: Debugging
61+
- label: Documentation
62+
- label: Other
63+
64+
- type: textarea
65+
id: use-case
66+
attributes:
67+
label: Use Case
68+
description: Describe your specific use case and how this feature would help.
69+
placeholder: "In my daily workflow, I..."
70+
validations:
71+
required: true
72+
73+
- type: textarea
74+
id: examples
75+
attributes:
76+
label: Examples
77+
description: Provide any examples, mockups, or references that might help illustrate your request.
78+
placeholder: "For example, similar to how..."
79+
80+
- type: textarea
81+
id: additional
82+
attributes:
83+
label: Additional Context
84+
description: Add any other context, screenshots, or information about the feature request.
85+
placeholder: "Any additional information..."

0 commit comments

Comments
 (0)