Thank you for considering contributing to Fractal! Contributions are what make the open-source community a wonderful place to learn, inspire, and create. Whether it's fixing a bug, implementing a new feature, improving documentation, or suggesting an enhancement, your help is highly appreciated.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Guidelines
- Pull Request Process
- Contact
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected]
.
To start contributing:
- Fork the repository.
- Clone your forked repository locally:
git clone https://github.com/SkySingh04/fractal.git
- Set up the project by installing dependencies:
cd fractal go mod tidy
- Create a new branch for your work:
git checkout -b feature/<feature-name>
If you find a bug:
- Check existing issues to ensure it hasn't already been reported.
- Submit a detailed issue, including:
- Steps to reproduce the bug.
- Expected vs. actual behavior.
- Environment details (OS, Go version, etc.).
If you have an idea for a new feature:
- Open a feature request on the Issues page.
- Clearly describe:
- The problem the feature solves.
- The proposed solution.
- Find an issue labeled
help wanted
orgood first issue
to start. - Comment on the issue to let maintainers know you are working on it.
- Follow the development guidelines below to implement the changes.
- Follow the Go community’s style guide.
- Use
go fmt
to format your code.
The project uses a modular structure:
cmd/
: Main entry points for CLI and server modes.integrations/
: Data source and destination integrations.internal/
: Core functionalities like transformations, validations, etc.pkg/
: Shared utilities and libraries.config/
: YAML-based configuration handling.
Run the test suite before submitting a pull request:
go test ./...
If adding new functionality, include unit tests to verify your changes.
To add a new integration (input/output):
- Follow the Integration Guide in the main documentation.
- Add test cases in the
integrations
directory.
-
Sync your fork: Ensure your fork is up-to-date with the main repository:
git fetch upstream git merge upstream/main
-
Commit changes: Follow commit message conventions:
- Use clear and descriptive messages (e.g.,
fix: resolve data validation issue
). - Use multiple commits for distinct changes.
git add . git commit -m "feat: add RabbitMQ integration"
- Use clear and descriptive messages (e.g.,
-
Push changes:
git push origin feature/<feature-name>
-
Create a pull request:
- Go to the main repository.
- Navigate to the Pull Requests tab and click "New Pull Request."
- Select your branch and explain your changes in detail.
-
Respond to Feedback:
- Be prepared to revise your code based on maintainers' feedback.
For any questions, feel free to reach out:
- Open an issue for general queries or bug reports.