ContributingΒΆ
Welcoming contributions from the community!
Minimum Supported Rust Version: 1.85.0
Currently Working Rust Version: 1.88.0
Folder StructureΒΆ
feluda/
βββ src/
β βββ main.rs # Entry point
β βββ cli.rs # CLI argument handling
β βββ cache.rs # Caching functionality for license data
β βββ config.rs # Configuration management
β βββ debug.rs # Debug and logging utilities
β βββ parser.rs # Dependency parsing coordination
β βββ licenses.rs # License analysis, compatibility, and OSI integration
β βββ reporter.rs # Output formatting and reporting
β βββ table.rs # TUI components
β βββ generate.rs # License file generation
β βββ utils.rs # Git repository utilities
β βββ languages/ # Language-specific parsers
β βββ mod.rs # Language detection and common traits
β βββ c.rs # C project support
β βββ cpp.rs # C++ project support
β βββ rust.rs # Rust/Cargo support
β βββ node.rs # Node.js/npm support
β βββ go.rs # Go modules support
β βββ python.rs # Python package support
β βββ r.rs # R package support
βββ examples/ # Example projects for testing
βββ config/
β βββ license_compatibility.toml # License compatibility matrix
βββ Cargo.toml # Project metadata
βββ LICENSE # Project license
βββ README.md # Project documentation
βββ justfile # Build automation
βββ CONTRIBUTING.md
GuidelinesΒΆ
Code Style: Follow Rustβs standard coding conventions.
Testing: Ensure your changes are covered by unit tests.
Documentation: Update relevant documentation and comments.
Logging: Add appropriate debug logging for new functionality.
Error Handling: Use the
FeludaErrortype for consistent error reporting.
Submitting ChangesΒΆ
Create a new branch for your feature or bugfix:
git checkout -b feat/my-new-featureCommit your changes with a meaningful commit message:
git commit -m "Add support for XYZ feature"Push the branch to your fork:
git push origin feat/my-new-featureOpen a pull request on GitHub.
Reporting IssuesΒΆ
If you encounter a bug or have a feature request, please open an issue in the repository.