Skip to content

Latest commit

 

History

History
140 lines (101 loc) · 2.5 KB

CONTRIBUTING.md

File metadata and controls

140 lines (101 loc) · 2.5 KB

Welcoming contributions from the community!

Folder Structure:

feluda/
├── src/
│   ├── main.rs          # CLI entry point
│   ├── cli.rs           # CLI argument handling
│   ├── parser.rs        # Dependency parsing logic
│   ├── licenses.rs      # License analysis
│   └── reporter.rs      # Output formatting and reporting
├── Cargo.toml           # Project metadata
├── LICENSE              # Project license
└── README.md            # Project documentation

Setting Up for Development

  1. Fork the repository and clone it to your local machine:
git clone https://github.com/yourusername/feluda.git
cd feluda
  1. Install dependencies and tools:
cargo build
  1. Run locally
./target/debug/feluda --help
  1. Run tests to ensure everything is working:
cargo test

Guidelines

  • Code Style: Follow Rust's standard coding conventions.
  • Testing: Ensure your changes are covered by unit tests.
  • Documentation: Update relevant documentation and comments.

Submitting Changes

  1. Create a new branch for your feature or bugfix:
git checkout -b feature/my-new-feature
  1. Commit your changes with a meaningful commit message:
git commit -m "Add support for XYZ feature"
  1. Push the branch to your fork:
git push origin feature/my-new-feature
  1. Open a pull request on GitHub.

Reporting Issues

If you encounter a bug or have a feature request, please open an issue in the repository.

Releasing Feluda 🚀

This is only if you've release permissions. If not, contact the maintainers to get it.

Setup Requirements

  • Install the gh CLI:
brew install gh # macOS
sudo apt install gh # Ubuntu/Debian
  • Authenticate the gh CLI with GitHub:
gh auth login
  • Install jq for JSON parsing:
brew install jq # macOS
sudo apt install jq # Ubuntu/Debian

We'll be using justfile for next steps, so setup just before proceeding...

Build the Release

just release

Test the Release Build

just test-release

Create the Package

Validate the crate before publishing

just package

Publish the Crate

just publish

Automate Everything

Run all steps (build, test, package, and publish) in one command:

just release-publish

Clean Artifacts

To clean up the build artifacts:

just clean

Login to crates.io

just login