First off, thank you for considering contributing to Clean Architecture Code Generator! It's people like you who make this tool better for everyone.
By participating in this project, you are expected to uphold our Code of Conduct.
Before creating bug reports, please check the existing issues to see if the problem has already been reported. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title for the issue.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Describe the behavior you observed after following the steps and explain precisely what is wrong with that behavior.
- Explain which behavior you expected to see instead and why.
- Include code snippets or a link to a repository that reproduces the issue.
- Provide details about your environment, such as Flutter/Dart version, OS, and the generator version.
If you have an idea for a new feature or an improvement to an existing one, please open an issue with the following information:
- Use a clear and descriptive title.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Explain why this enhancement would be useful to most users.
- List some other libraries or tools where this feature exists, if applicable.
- Fork the repo and create your branch from
main. - If you've added code that should be tested, add tests.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
The project is structured as a monorepo with the following packages:
annotations/: Contains the annotations used to mark classes for generation.generators/: Contains the logic for the source-to-source generation.cli/: Command-line interface for the tool.
- Clone the repository.
- Install dependencies for all packages:
cd annotations && dart pub get && cd .. cd generators && dart pub get && cd .. cd cli && dart pub get && cd ..
- To run the generator in the example project:
cd example dart run build_runner build --delete-conflicting-outputs
- We follow the official Dart Style Guide.
- Use
dart formatto format your code. - Ensure all public APIs have documentation comments.
- Commit messages should be clear and descriptive.
If you have any questions, feel free to open an issue or reach out to the maintainers.
Happy coding!