Thank you for your interest in contributing to updep! We welcome contributions from the community.
- Go 1.25 or higher
- Git
- A JavaScript package manager (npm, yarn, pnpm, or bun) for testing
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/updep.git cd updep -
Install dependencies:
go mod tidy
-
Create a new branch for your feature or bug fix:
git switch -c feature/your-feature-name
-
Make your changes and test them:
make run # or make dev-install -
Format your code:
make format
-
Build the project:
make build
Before submitting your changes, ensure:
- Code is formatted: Run
go fmt ./... - No linting errors: Our CI runs
golangci-lintwith 19+ linters - Code compiles: Run
make buildsuccessfully - Tests pass: Run
go test ./...(when tests are added)
Write clear, concise commit messages:
- Use present tense ("Add feature" not "Added feature")
- Use imperative mood ("Move cursor to..." not "Moves cursor to...")
- Reference issues and pull requests when relevant
Good examples:
Add yarn support for package manager detection
Fix cursor navigation bug in package list
Update documentation for keybindings
-
Push your changes to your fork:
git push origin feature/your-feature-name
-
Open a pull request on GitHub
-
Fill out the pull request template with:
- Description of changes
- Related issues
- Testing performed
- Screenshots (if applicable)
-
Wait for CI checks to pass
-
Address any review feedback
Look for issues labeled good first issue - these are great starting points for new contributors.
Found a bug? Please open an issue with:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Your environment (OS, Go version, package manager)
- Follow standard Go conventions
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and small
- Use the Bubble Tea framework patterns for UI components
updep/
├── cmd/updep/ # Main application entry point
├── pkg/
│ ├── components/ # Reusable UI components
│ ├── config/ # Configuration and themes
├── .github/ # GitHub Actions workflows
└── Makefile # Build commands
Currently, the project doesn't have extensive tests. Adding tests is a great way to contribute! We welcome:
- Unit tests for models and utilities
- Integration tests for package manager interactions
- UI component tests
- Open a Discussion for questions
- Check existing issues and pull requests
- Reach out to maintainers in your pull request
Be respectful and inclusive. We're all here to build something great together.
By contributing, you agree that your contributions will be licensed under the MIT License.