# Contributing to Open Source Milvus: A Beginner’s Guide

Source: https://zilliz.com/blog/contributing-to-open-source-milvus-beginners-guide
Author: Stefan Webb
Published: 2024-10-04T03:00:00.000Z

Open source software (OSS) is all about collaboration. Many open source projects are started by individual developers or organizations but the real power of OSS comes from its community of contributors. These contributors can be developers, testers, writers or designers who work together to make the project better. But managing contributions from a large and diverse group requires an efficient and transparent process. Let’s see how ongoing community contributions are reviewed and merged into the open source project.


## Core Team and Maintainers

Every open source project has a core group of maintainers or a team of lead developers. These maintainers determine the direction of the project, review contributions, ensure code quality and make key decisions. They are the gatekeepers who decide which contributions are accepted and merged into the main codebase.

Maintainers also manage the community by creating an inclusive and welcoming environment. They set the rules and guidelines for contributing, often documented in a `CONTRIBUTING.md` file or similar in the project’s repository.


## The Open Source Software Development Process: Contribution Review and Integration

In open source projects, community contributions are good for growth, and ensuring quality and alignment with the project’s goals requires a structured review process. Here's how contributions are reviewed and integrated:

1. **Issue Tracking and Discussion**Contributors typically start by identifying bugs or proposing features through platforms like GitHub Issues. Maintainers and other developers discuss the best approach before any code is written.

2. **Submitting Pull Requests (PRs)**Contributors submit a pull request with their code changes, explaining what they’ve done and linking to any relevant issues. PRs are the main channel for introducing changes, whether for bug fixes, new features, or improvements.

3. **Code Review**Maintainers and community members review the PR, checking for functionality, code quality, and adherence to the project’s guidelines. This review ensures the contribution aligns with project standards and doesn’t introduce bugs or security vulnerabilities.

4. **Feedback and Iteration**If changes are needed, reviewers provide feedback, and contributors revise their PR accordingly. This cycle may repeat several times to refine the code.

5. **Automated Testing**Continuous integration (CI) tools automatically run tests on the PR to catch any issues early. Only when the code passes all tests is it considered for merging.

6. **Merging and Release**Once the PR is approved and tests are successful, the maintainer merges the contribution into the main branch. The new code is now part of the project and will be included in the next release.

This review and testing process ensures that community contributions maintain the project's quality and reliability, while also fostering collaboration and improvement.


## How to Submit a Pull Request to an Open Source Repository on GitHub

GitHub is one of the most popular platforms for hosting open source projects. If you’re new to contributing to open source, submitting your first pull request (PR) can be an exciting experience. Here’s a step-by-step guide to help you navigate the process.


### Step 1: Fork the Repository

The first step in contributing to a project is forking the repository. A fork is your own copy of the repository where you can freely make changes without affecting the original project.

1. Go to the project’s GitHub page and click the **Fork** button at the top right of the page.

2. This will create a copy of the repository under your GitHub account, allowing you to make changes without impacting the original codebase.


### Step 2: Clone the Forked Repository

Next, you’ll want to clone your forked repository to your local machine so you can work on it.

1. In your forked repository on GitHub, click the **Code** button and copy the HTTPS or SSH link.

2. Open your terminal and run the following command to clone the repository:

   ```bash

   git clone <repository-url>

   ```

   This will download the project to your local machine.


### Step 3: Create a New Branch

It’s good practice to create a new branch for every feature or bug fix you’re working on. This keeps your changes organized and separated from the main branch (usually `main` or `master`).

1. Navigate to the repository’s folder:

   ```bash

   cd <repository-folder>

   ```

2. Create and switch to a new branch:

   ```bash

   git checkout -b <new-branch-name>

   ```


### Step 4: Make Your Changes

Now, you’re ready to make changes to the code. This could involve fixing bugs, adding new features, or improving documentation.

1. Open the files in your preferred code editor and implement the changes you want to make.

2. After making changes, you can verify your work locally by running tests or checking the application’s functionality.


### Step 5: Commit Your Changes

Once you’ve made and tested your changes, commit them to your local repository.

1. Stage your changes:

   ```bash

   git add .

   ```

2. Commit your changes with a descriptive message:

   ```bash

   git commit -m "Description of the changes made"

   ```


### Step 6: Push the Changes to GitHub

Next, push your changes to your forked repository on GitHub.

1. Push the changes to the new branch you created:

   ```bash

   git push origin <new-branch-name>

   ```


### Step 7: Create a Pull Request

Now that your changes are pushed to your GitHub fork, it’s time to create a pull request (PR) to merge them into the original repository.

1. Go to your forked repository on GitHub and you should see a notification suggesting you create a PR.

2. Click the **Compare & Pull Request** button.

3. In the PR form, provide a clear title and detailed description of the changes you’ve made. You may also need to select the branch of the original repository you want to merge into.

4. Submit the pull request by clicking the **Create Pull Request** button.


### Step 8: Collaborate and Make Revisions

Once you’ve submitted your pull request, the project maintainers will review your changes. They might ask for revisions or suggest improvements. Be prepared to make additional commits to address any feedback.

1. You can update the pull request by pushing new changes to the same branch on your forked repository. The PR will automatically update with your new changes.


### Step 9: Merge and Celebrate!

Once your PR is reviewed and approved, it will be merged into the original project’s codebase. Congratulations—you’ve officially contributed to an open source project!


## Conclusion

Contributing to open source software is a rewarding way to improve your programming skills, collaborate with others, and give back to the development community. Whether you’re fixing bugs or introducing new features, your contributions can have a lasting impact. Understanding the OSS development process and knowing how to submit a pull request on GitHub are essential skills for any developer looking to make their mark in the open source world. So go ahead, find a project you’re passionate about, and start contributing!
