|
| 1 | +# Contributing to FastEmbed! |
| 2 | + |
| 3 | +:+1::tada: First off, thanks for taking the time to contribute! :tada::+1: |
| 4 | + |
| 5 | +The following is a set of guidelines for contributing to FastEmbed. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. |
| 6 | + |
| 7 | +## Table Of Contents |
| 8 | + |
| 9 | +[I don't want to read this whole thing, I just have a question!!!](#i-dont-want-to-read-this-whole-thing-i-just-have-a-question) |
| 10 | + |
| 11 | +[How Can I Contribute?](#how-can-i-contribute) |
| 12 | + * [Your First Code Contribution](#your-first-code-contribution) |
| 13 | + * [Adding New Models](#adding-new-models) |
| 14 | + |
| 15 | +[Styleguides](#styleguides) |
| 16 | + * [Code Lint](#code-lint) |
| 17 | + |
| 18 | +## I don't want to read this whole thing I just have a question!!! |
| 19 | + |
| 20 | +> **Note:** Please don't file an issue to ask a question. You'll get faster results by using the resources below: |
| 21 | +
|
| 22 | +* [FastEmbed Docs](https://qdrant.github.io/fastembed/) |
| 23 | +* [Qdrant Discord](https://discord.gg/Qy6HCJK9Dc) |
| 24 | + |
| 25 | +## How Can I Contribute? |
| 26 | + |
| 27 | +## How Do I Submit A (Good) Bug Report? |
| 28 | + |
| 29 | +Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). |
| 30 | + |
| 31 | +Explain the problem and include additional details to help maintainers reproduce the problem: |
| 32 | + |
| 33 | +* **Use a clear and descriptive title** for the issue to identify the problem. |
| 34 | +* **Describe the exact steps which reproduce the problem** in as many details as possible. For example, start by explaining how you are using FastEmbed, e.g. with Langchain, Qdrant Client, Llama Index and which command exactly you used. When listing steps, **don't just say what you did, but explain how you did it**. |
| 35 | +* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines). |
| 36 | +* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior. |
| 37 | +* **Explain which behavior you expected to see instead and why.** |
| 38 | +* **If the problem is related to performance or memory**, include a [call stack profile capture](https://github.com/joerick/pyinstrument) and your observations. |
| 39 | + |
| 40 | +Include details about your configuration and environment: |
| 41 | + |
| 42 | +* **Which version of FastEmbed are you using?** You can get the exact version by running `python -c "import fastembed; print(fastembed.__version__)"`. |
| 43 | +* **What's the name and version of the OS you're using**? |
| 44 | +* **Which packages do you have installed?** You can get that list by running `pip freeze` |
| 45 | + |
| 46 | +### Your First Code Contribution |
| 47 | + |
| 48 | +Unsure where to begin contributing to FastEmbed? You can start by looking through these `good-first-issue`issues: |
| 49 | + |
| 50 | +* [Good First Issue](https://github.com/qdrant/fastembed/labels/good%20first%20issue) - issues which should only require a few lines of code, and a test or two. These are a great way to get started with FastEmbed. This includes adding new models which are already tested and ready on Huggingface Hub. |
| 51 | + |
| 52 | +## Pull Requests |
| 53 | + |
| 54 | +The best way to learn about the mechanics of FastEmbed is to start working on it. |
| 55 | + |
| 56 | +### Beginners |
| 57 | +You can start by adding new models to the FastEmbed. There are quite a few pull requests that were merged for this purpose and you can use them as a reference. You can find all the model requests [here](https://github.com/qdrant/fastembed/labels/model%20request). |
0 commit comments