# 🚀 How to Contribute to **cognee**

Thank you for investing time in contributing to our project! Here's a guide to get you started.

## 1. 🚀 Getting Started

### 🍴 Fork the Repository

To start your journey, you'll need your very own copy of **cognee**. Think of it as your own innovation lab. 🧪

1. Navigate to the [**cognee**](https://github.com/topoteretes/cognee) repository on GitHub.
2. In the upper-right corner, click the **'Fork'** button.

### 🚀 Clone the Repository

Next, let's bring your newly forked repository to your local machine.

```shell
git clone https://github.com/<your-github-username>/cognee.git
```

## 2. 🛠️ Making Changes

### 🌟 Create a Branch

Get ready to channel your creativity. Begin by creating a new branch for your incredible features. 🧞‍♂️

```shell
git checkout -b feature/your-feature-name
```

### ✏️ Make Your Changes

Now's your chance to shine! Dive in and make your contributions. 🌠

## 3. 🚀 Submitting Changes

After making your changes, follow these steps:

### ✅ Run the Tests

Ensure your changes do not break the existing codebase:

```shell
python cognee/cognee/tests/test_library.py
```

### 🚢 Push Your Feature Branch

```shell
# Add your changes to the staging area:
git add .

# Commit changes with an adequate description:
git commit -m "Describe your changes here"

# Push your feature branch to your forked repository:
git push origin feature/your-feature-name
```

### 🚀 Create a Pull Request

You're on the verge of completion! It's time to showcase your hard work. 🌐

1. Go to [**cognee**](https://github.com/topoteretes/cognee) on GitHub.
2. Hit the **"Compare & Pull Request"** button.
3. Select the base branch (main) and the compare branch (the one with your features).
4. Craft a **compelling title** and provide a **detailed description** of your contributions. 🎩

## 4. 🔍 Review and Approval

The project maintainers will review your work, possibly suggest improvements, or request further details. Once you receive approval, your contributions will become part of **cognee**!


## 5. Developer Certificate of Origin
All contributions to the topoteretes codebase must be signed-off to indicate you have read and agreed to the Developer Certificate of Origin (DCO), which is in the root directory under name DCO. To sign the DCO, simply add -s after all commits that you make, to do this easily you can make a git alias from the command line, for example:

$ git config alias.cos "commit -s"

Will allow you to write git cos which will automatically sign-off your commit. By signing a commit you are agreeing to the DCO and agree that you will be banned from the topoteretes GitHub organisation and Discord server if you violate the DCO.

"When a commit is ready to be merged please use the following template to agree to our developer certificate of origin:
  'I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin'

We consider the following as violations to the DCO:

Signing the DCO with a fake name or pseudonym, if you are registered on GitHub or another platform with a fake name then you will not be able to contribute to topoteretes before updating your name;
Submitting a contribution that you did not have the right to submit whether due to licensing, copyright, or any other restrictions.

## 6. 📜 Code of Conduct
Ensure you adhere to the project's [Code of Conduct](https://github.com/topoteretes/cognee/blob/main/CODE_OF_CONDUCT.md) throughout your participation.

## 7. 📫 Contact

If you need assistance or simply wish to connect, we're here for you. Contact us by filing an issue on the GitHub repository or by messaging us on our Discord server.

Thanks for helping to evolve **cognee**!
