From ed64ad8d9cbf82af3b730f9e919c5ce3deeacf15 Mon Sep 17 00:00:00 2001 From: Akash Date: Mon, 16 Dec 2024 23:49:59 +0530 Subject: [PATCH] feat: add contributing guide and license file --- CONTRIBUTING.MD | 133 ++++++++++++++++++++++++++++++++++++++++++++++++ LICENSE.MD | 21 ++++++++ Readme.MD | 6 ++- 3 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 CONTRIBUTING.MD create mode 100644 LICENSE.MD diff --git a/CONTRIBUTING.MD b/CONTRIBUTING.MD new file mode 100644 index 0000000..17dee40 --- /dev/null +++ b/CONTRIBUTING.MD @@ -0,0 +1,133 @@ +# Contributing to Fractal + +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. + +## Table of Contents + +1. [Code of Conduct](#code-of-conduct) +2. [Getting Started](#getting-started) +3. [How to Contribute](#how-to-contribute) + - [Bug Reports](#bug-reports) + - [Feature Requests](#feature-requests) + - [Code Contributions](#code-contributions) +4. [Development Guidelines](#development-guidelines) +5. [Pull Request Process](#pull-request-process) +6. [Contact](#contact) + +--- + +## Code of Conduct + +This project adheres to the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html). By participating, you are expected to uphold this code. Please report unacceptable behavior to `maintainers@fractal.dev`. + +--- + +## Getting Started + +To start contributing: +1. Fork the repository. +2. Clone your forked repository locally: + ```bash + git clone https://github.com/SkySingh04/fractal.git + ``` +3. Set up the project by installing dependencies: + ```bash + cd fractal + go mod tidy + ``` +4. Create a new branch for your work: + ```bash + git checkout -b feature/ + ``` + +--- + +## How to Contribute + +### Bug Reports +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.). + +### Feature Requests +If you have an idea for a new feature: +- **Open a feature request** on the [Issues page](https://github.com/SkySingh04/fractal/issues). +- Clearly describe: + - The problem the feature solves. + - The proposed solution. + +### Code Contributions +1. Find an issue labeled `help wanted` or `good first issue` to start. +2. Comment on the issue to let maintainers know you are working on it. +3. Follow the development guidelines below to implement the changes. + +--- + +## Development Guidelines + +### Code Style +- Follow the Go community’s [style guide](https://golang.org/doc/effective_go). +- Use `go fmt` to format your code. + +### Project Structure +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. + +### Running Tests +Run the test suite before submitting a pull request: +```bash +go test ./... +``` + +If adding new functionality, include unit tests to verify your changes. + +### Adding Integrations +To add a new integration (input/output): +1. Follow the [Integration Guide](#integration-guide) in the main documentation. +2. Add test cases in the `integrations` directory. + +--- + +## Pull Request Process + +1. **Sync your fork**: Ensure your fork is up-to-date with the main repository: + ```bash + git fetch upstream + git merge upstream/main + ``` +2. **Commit changes**: Follow commit message conventions: + - Use clear and descriptive messages (e.g., `fix: resolve data validation issue`). + - Use multiple commits for distinct changes. + ```bash + git add . + git commit -m "feat: add RabbitMQ integration" + ``` +3. **Push changes**: + ```bash + git push origin feature/ + ``` +4. **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. + +5. **Respond to Feedback**: + - Be prepared to revise your code based on maintainers' feedback. + +--- + +## Contact + +For any questions, feel free to reach out: +- Open an issue for general queries or bug reports. + +Thank you for contributing to **Fractal**! Together, we can build a powerful and flexible data processing tool. 🎉 +--- + diff --git a/LICENSE.MD b/LICENSE.MD new file mode 100644 index 0000000..b291129 --- /dev/null +++ b/LICENSE.MD @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) [2024] [FRACTAL] + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Readme.MD b/Readme.MD index bf1f6ac..b47eca5 100644 --- a/Readme.MD +++ b/Readme.MD @@ -306,8 +306,10 @@ go run main.go -config=config.yaml - **Content Syndication**: Ingest and format content from RSS feeds or APIs, and distribute it across platforms. - **Data Quality Checker**: Validate incoming data streams to ensure data quality before storing. -## Contributing -Contributions are welcome! Feel free to submit pull requests for new features, bug fixes, or documentation improvements. +## Contributing +Contributions are welcome! Feel free to submit pull requests for new features, bug fixes, or documentation improvements. + +For detailed guidelines on how to contribute, please refer to the [Contributing Guide](./CONTRIBUTING.md). ## License This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.