Contributing
Contributions are welcome! If you’d like to improve Workspace Tasks, here’s how to get involved.
Table of Contents
- How to Contribute
- Development Setup
- Guidelines
- Project Structure
- Running Tests
- Contributors
- License
- Code of Conduct
How to Contribute
- Report Issues — Found a bug or have a feature request? Open an issue on GitHub
- Submit Pull Requests — Fork the repository, make your changes, and submit a PR
- Improve Documentation — Help make the docs clearer or add examples
- Share Feedback — Let us know how you use the extension and what could be better
Development Setup
- Fork the repository:
gh repo fork camalot/vscode-workspace-tasks - Open in Visual Studio Code:
code vscode-workspace-tasks - Reopen in Dev Container: When prompted, reopen the project in the recommended dev container for a consistent development environment
- Install dependencies:
npm install - Run the extension: Press
F5to launch a new Extension Development Host instance with the extension loaded - Run tests:
npm testto run unit tests andnpm run test:coveragefor coverage reports
Guidelines
- Follow the existing code style and conventions
- Write clear, descriptive commit messages using Conventional Commits
- Add tests for new features when applicable — new code should have 100% coverage
- Update documentation for any user-facing changes
- Ensure all tests pass before submitting:
npm test
Project Structure
docs/ Documentation (this site)
├── _includes/ Reusable markdown snippets
├── _plugins/ Jekyll plugins for custom functionality
├── _sass/ Stylesheets for custom styling
├── configuration/ Configuration settings documentation
├── contributing/ Contributing guidelines
├── features/ Feature documentation
├── getting-started/ Getting started guides
├── performance/ Performance optimization guides
├── task-types/ Task types documentation
└── troubleshooting/ Troubleshooting guides
src/ TypeScript source code
├── commands/ Command implementations
├── common/ Shared base classes
├── libs/ Utility libraries
├── providers/ Task providers for each task type
├── services/ Shared services (caching, configuration, etc.)
└── test/ Test files
res/ Resources
├── assets/images/ Screenshots and UI images
├── icons/ Task type icons (light & dark)
├── schemas/ JSON schemas
├── syntaxes/ Language grammars
└── webviews/ HTML webviews
docs/ Documentation (this site)
sample/ Sample workspace for testing
Running Tests
# Run all tests
npm test
# Run tests with coverage
npm run vscode:test:coverage
Test reports are generated to:
coverage/lcov.info— Coverage datacoverage/junit.xml— JUnit test results
The goal is 90% code coverage for existing files. New code should achieve 100% coverage.
Contributors
Made with contrib.rocks.
License
This project is licensed under the Apache 2.0 License.
Code of Conduct
Please read the Code of Conduct before contributing.