-
Notifications
You must be signed in to change notification settings - Fork 3
Contributing
Bug fixes, provider compatibility updates, tests, documentation, and focused feature proposals are welcome.
- Search existing issues and pull requests.
- Reproduce on the latest release or
masterwhere safe. - Keep one change focused on one problem.
- Open an issue before a large CLI redesign, public API break, new provider, or plugin architecture change.
git clone https://github.com/vorlie/ani-cli-rs.git
cd ani-cli-rs
cargo buildCreate a descriptive branch:
git switch -c fix/provider-response-shape
git switch -c feat/interactive-download-selectioncargo fmt --check
cargo check --all-targets
cargo clippy --all-targets -- -D warnings
cargo testDo not make normal tests depend on live providers. Use fixtures or Wiremock.
Prefer commits that are independently understandable and testable:
refactor(cli): separate resolution from media actions
feat(download): preflight episodes before transfers
docs(download): explain interactive selection
chore(release): bump version to 0.6.0
Avoid mixing formatting, unrelated cleanup, generated artifacts, and the actual fix.
Read Provider Architecture and the relevant source-adjacent provider document first.
- Include sanitized response fixtures.
- Preserve partial-provider success.
- Carry provider headers in
StreamLink. - Explain whether behavior matches Bash ani-cli, AniPlay, or a newly observed upstream change.
- Never log complete signed URLs or active authentication values.
- Preserve
ani-cli [options] [query] [options]compatibility where practical. - Keep the scriptable subcommands non-interactive.
- Pass process arguments separately.
- Add parser/integration tests for flags and environment variables.
- Document intentional differences among Windows, Linux, and macOS.
Describe:
- the user-visible problem;
- the chosen behavior;
- tests run;
- manual platform/provider checks;
- known limitations;
- linked issues.
All contributions are accepted under GPL-3.0-only.
The repository's plugin roadmap proposes versioned external executable plugins rather than Rust dynamic libraries. Do not begin provider-plugin integration before the protocol, history/provider identity, process limits, and trust model are settled.