Contribution Guidelines
We welcome contributions to ani-cli
! Whether you're fixing a bug, adding a feature, or improving documentation, your help is appreciated.
Getting Started
- Fork the repository: Create your own copy of the
ani-cli
repository on GitHub. -
Clone your fork:
git clone https://github.com/YOUR_USERNAME/ani-cli.git cd ani-cli
-
Create a new branch:
git checkout -b your-feature-name
Code Quality & Testing
Before submitting a pull request, please ensure your changes meet our quality standards.
- Linting: We use
shellcheck
andshfmt
to maintain code quality. Please run these tools on your changes. Our GitHub Actions CI will run these checks automatically.shellcheck -s sh -o all -e 2250 ani-cli
shfmt -i 4 -ci -d ani-cli
- No Extra Dependencies: Avoid adding new dependencies unless absolutely necessary.
- No
awk
: This project has a strict policy against usingawk
to maintain simplicity and portability.
Pull Request Process
When you are ready to submit your changes, open a Pull Request with a clear title and description.
- Use a Semantic Title: Your PR title should follow the Conventional Commits specification (e.g.,
feat: Add new player support
,fix: Correctly parse episode list
). - Reference Issues: If your PR fixes an existing issue, link it in the description (e.g.,
Fixes #123
). - Update Documentation: If you add or change a feature, please update the relevant documentation (README, help text, man page).
- Bump the Version: Increment the
version_number
variable in theani-cli
script according to Semantic Versioning.
PR Checklist
Your pull request should be tested against the checklist found in our pull request template. This includes testing:
- Basic playback
- All major command-line flags (
-c
,-d
,-s
,-q
,-v
, etc.) - Dub and sub modes
- Various edge cases like anime with non-whole episode numbers.
Issues
- Use the provided issue templates (Bug report or Feature request).
- When requesting a feature, check if it has been previously rejected.
- Provide as much detail as possible, including your OS,
ani-cli
version, and screenshots if applicable.