Skip to content

Latest commit

 

History

History
76 lines (59 loc) · 2.71 KB

File metadata and controls

76 lines (59 loc) · 2.71 KB

Contributing to xfetch

Thank you for your interest in contributing to xfetch!


Code of Conduct

This project is open and welcoming. Be respectful, constructive, and collaborative. Harassment, trolling, and personal attacks are not tolerated.

How to Contribute

  1. Fork the repository on GitHub.
  2. Clone your fork locally.
  3. Create a feature branch (git checkout -b feature/my-change).
  4. Make your changes following the project conventions.
  5. Run cargo build and cargo test to verify everything works.
  6. Commit your changes with a clear message.
  7. Push to your fork.
  8. Open a Pull Request from your branch to the main repository.

Contributing Plugins

Plugins are standalone executables that extend xfetch's functionality, but they now live in the dedicated plugins repository:

https://github.com/xfetch-cli/plugins

Use that repository for plugin source code, plugin-specific docs, and the plugin contribution workflow. The runtime contract used by the core is documented in docs/PLUGINS.md, and the full authoring guide lives in plugins/docs/README.md.

The plugin authoring checklist includes:

  • Create a dedicated plugin directory in the plugins repository.
  • Use the xfetch-plugin-<name> naming convention.
  • Run cargo test --workspace in the plugins repository.
  • Document configuration, dependencies, and example output in the plugin README.

Code Standards

  • Use cargo build and cargo test before submitting.
  • Follow existing code style — no trailing whitespace, consistent indentation.
  • Write all code, comments, and documentation in English.
  • Keep plugins focused on a single responsibility.
  • Minimize dependencies to keep build times fast.
  • Do not add network calls or file I/O to animation plugins — they should be pure transformations.

Reporting Issues

Open an issue on GitHub with a clear description of the problem, steps to reproduce, and your environment (OS, terminal emulator, xfetch version).

License

By contributing, you agree that your contributions will be licensed under the project's LICENSE.