Thank you for your interest in contributing to zs! We value all contributions, from bug reports to new features.
Be respectful and inclusive. We're all here to make Zed setup easier for everyone.
- Check if the issue already exists
- Create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Your environment (OS, Zed version, shell)
- Check existing issues and discussions
- Open a discussion or issue describing:
- The problem you're trying to solve
- Your proposed solution
- Alternative approaches considered
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Follow the existing code style
- Keep it simple and focused
- Test your changes thoroughly
- Commit with clear messages
git commit -m "Add support for Rust projects" - Push and create a Pull Request
- Simplicity First: zs philosophy is "zero configuration"
- Bash Compatible: Ensure scripts work with bash 3.2+ (macOS default)
- Minimal Dependencies: Avoid adding new requirements
- Smart Defaults: Make intelligent choices so users don't have to
- Clear Output: One line of success output is usually enough
To add support for a new project type:
-
Update detection in
src/zs:detect_project_type() { # Add your detection logic if [[ -f "your-project-file" ]]; then echo "your-type" fi }
-
Add task template in
templates/your-type-tasks.json -
Add debug config in
templates/debug-configs/your-type-debug.json -
Update dependencies installation if needed:
ensure_dependencies() { case "$project_type" in your-type) # Install what's needed for Zed ;; esac }
Before submitting:
- Test installation on a clean system
- Test with various project types
- Verify smart caching works
- Check edge cases (no git, missing dependencies)
- Update README.md if adding features
- Keep examples simple and clear
- Document any new environment variables
- Ensure all tests pass
- Update documentation as needed
- Add yourself to CONTRIBUTORS if it's your first contribution
- PR title should clearly describe the change
- Link any related issues
Maintainers will:
- Review and merge PRs
- Update version in
src/zs - Tag releases following semantic versioning
- Update installation URLs if needed
Open an issue or discussion. We're here to help!
Remember: The best contribution maintains zs's philosophy of simplicity. When in doubt, choose the path that requires less user configuration.