Contributing to Workspace Tasks
Thank you for your interest in contributing to Workspace Tasks! Whether youโre reporting a bug, requesting a feature, improving documentation, or submitting code changes, your contributions help make this extension better for everyone.
This guide will help you get started with contributing to the project.
๐ Table of Contents
- Ways to Contribute
- Creating Good Issues
- Contributing Code
- Contributing Documentation
- Code of Conduct
Ways to Contribute
There are many ways you can contribute to Workspace Tasks:
๐ Report Bugs
Found a bug? Help us fix it by creating a detailed bug report. See Writing Good Bug Reports.
โจ Request Features
Have an idea for a new feature or enhancement? Weโd love to hear it! See Writing Good Feature Requests.
๐ Improve Documentation
Help make the documentation clearer, fix typos, or add examples. Documentation improvements are always welcome!
๐ป Submit Code Changes
Fix bugs, implement features, or improve performance by submitting pull requests. See Contributing Code.
๐ฌ Help Others
Answer questions in GitHub Discussions or help troubleshoot issues.
โญ Spread the Word
- Star the repository on GitHub
- Leave a review on the Visual Studio Code Marketplace
- Share the extension with colleagues and friends
Creating Good Issues
Look for an Existing Issue
Before creating a new issue, please search existing issues to see if the problem or request has already been reported.
- Scan through open issues
- Check the most popular feature requests
If you find an existing issue that matches yours:
- Add a ๐ reaction to show your support
- Add relevant comments with additional context or information
- Avoid โ+1โ commentsโuse reactions instead
Writing Good Bug Reports
When reporting a bug, please include:
Required Information:
- xget Version -
xget version - Command Executed - The exact command you ran, e.g.,
xget zyedidia/micro --tag nightly - Operating System - Windows, macOS, or Linux (including version)
- Reproducible Steps - Clear numbered steps to reproduce the issue
- Open workspace withโฆ
- Click onโฆ
- See errorโฆ
- Expected Behavior - What you expected to happen
- Actual Behavior - What actually happened
Helpful Additions:
- Screenshots or Recordings - Visual evidence of the issue
- Error Messages - Copy and paste any error messages or stack traces
- Configuration - Include relevant configuration files
Writing Good Feature Requests
When requesting a feature, please describe:
- Problem Statement - What problem would this feature solve?
- Proposed Solution - How should this feature work?
- Use Case - How would you use this feature?
- Alternatives Considered - Other solutions youโve tried
- Examples - Screenshots or mockups if applicable
- Impact - Who would benefit from this feature?
Contributing Code
Development Setup
Prerequisites
- Go - Version 1.27.0 or later for building xget
- Git - For cloning the repository
- Visual Studio Code - Latest version recommended
Initial Setup
-
Fork the Repository
Click the โForkโ button on the GitHub repository
-
Clone Your Fork
git clone https://github.com/YOUR-USERNAME/xget.git cd xget -
Add Upstream Remote
git remote add upstream https://github.com/camalot/xget.git -
Open in Visual Studio Code
code .
Git Commit Messages
Use Conventional Commits format:
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, no logic change)refactor:- Code refactoringperf:- Performance improvementstest:- Adding or updating testschore:- Maintenance tasks, dependency updates
Testing Your Changes
Before submitting a pull request, test your changes thoroughly:
-
Run Unit Tests
go test ./... -
Test the Packaging (optional)
To verify the scoop manifest, homebrew cask, and winget manifests without publishing a release:
task release:dry-runThis sets
XGET_DRY_RUN=true, which disables the GitHub release and forcesskip_uploadon every package pipe. The rendered manifests are written todist/scoop/,dist/homebrew/, anddist/winget/. The android build is skipped locally because it needs the Android NDK; run it withtask release:dry-run SKIP_ANDROID=falseif the NDK is installed.The same pipeline can be run in CI with the release dry-run workflow (
workflow_dispatch), which builds every target and uploads the manifests as a workflow artifact.
Submitting a Pull Request
Once your changes are ready:
-
Update from Upstream
git fetch upstream git rebase upstream/develop -
Create a Feature Branch
git checkout -b feature/your-feature-nameOr for bug fixes:
git checkout -b fix/issue-description -
Commit Your Changes
git add . git commit -m "feat: add support for new task type" -
Push to Your Fork
git push origin feature/your-feature-name -
Open a Pull Request
- Go to your fork on GitHub
- Click โCompare & pull requestโ
- Select
camalot/xgetdevelopbranch as the base - Fill out the PR template with details about your changes
Pull Request Guidelines:
- Clear Title - Summarize the change in the PR title
- Description - Explain what you changed and why
- Related Issues - Reference any related issues (e.g., โFixes #123โ)
- Testing - Describe how you tested your changes
- Screenshots - Include screenshots for UI changes
- Documentation - Update README.md or other docs if needed
- Changelog - Add entry to CHANGELOG.md following existing format
Contributing Documentation
Documentation improvements are valuable contributions! You can help by:
- Fixing Typos and Grammar - Submit PRs for corrections
- Clarifying Instructions - Make setup or usage instructions clearer
- Adding Examples - Provide real-world usage examples
- Updating Screenshots - Replace outdated images
- Expanding Sections - Add more detail to existing documentation
- Creating Guides - Write tutorials or how-to guides
Documentation files to consider:
README.md- Main user documentationSUPPORT.md- Support and help resourcesCHANGELOG.md- Release notes and version history- Code comments and Documentation in source files
Code of Conduct
See CODE_OF_CONDUCT.md for details on our code of conduct, which outlines expected behavior and how to report issues.
Reporting Issues
If you experience or witness unacceptable behavior, please report it by:
- Opening a private issue on GitHub
- Contacting the project maintainer directly
All reports will be handled with discretion and confidentiality.
Questions?
If you have questions about contributing:
- ๐ฌ Ask in GitHub Discussions
- ๐ Check existing issues
- ๐ Review the README and SUPPORT documents