Skip to content

Commit

Permalink
Update CONTRIBUTING.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Anush008 authored Oct 1, 2024
1 parent 8e551c7 commit fd51189
Showing 1 changed file with 8 additions and 56 deletions.
64 changes: 8 additions & 56 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,54 +52,6 @@ If you are modifying code, make sure it has no warnings when building.

By contributing, you agree that your contributions will be licensed under its Apache License 2.0.

# Contributing to Java client for Qdrant

We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:

- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features

## We Develop with GitHub

We use github to host code, to track issues and feature requests, as well as accept pull requests.

We Use [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow), so all code changes
happen through Pull Requests. Pull requests are the best way to propose changes to the codebase.

It's usually best to open an issue first to discuss a feature or bug before opening a pull request.
Doing so can save time and help further ascertain the crux of an issue.

1. See if there is an existing issue
2. Fork the repo and create your branch from `master`.
3. If you've added code that should be tested, add tests.
4. Ensure the test suite passes.
5. Issue that pull request!

## Report bugs using GitHub's [issues](https://github.com/qdrant/java-client/issues)

We use GitHub issues to track public bugs. Report a bug by
[opening a new issue](https://github.com/qdrant/java-client/issues/new); it's that easy!

**Great Bug Reports** tend to have:

- A quick summary and background
- Steps to reproduce
- Be specific!
- Give a sample code if you can.
- What you expected would happen
- What happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)

## Coding Styleguide

If you are modifying code, make sure it has no warnings when building.

## License

By contributing, you agree that your contributions will be licensed under its Apache License 2.0.

## Preparing for a New Release

The client uses generated stubs from upstream Qdrant proto definitions, which are downloaded from [qdrant/qdrant](https://github.com/qdrant/qdrant/tree/master/lib/api/src/grpc/proto).
Expand All @@ -117,13 +69,13 @@ Ensure the following are installed and available in the `PATH`.

### Steps

1 - Update the values in [gradle.properties](https://github.com/qdrant/java-client/blob/master/gradle.properties) as follows:
1. Update the values in [gradle.properties](https://github.com/qdrant/java-client/blob/master/gradle.properties) as follows:

- `packageVersion` - Bump it to the next minor version to be released.
- `qdrantVersion` - Set it to `dev` to use the `dev` Docker image for testing.
- `qdrantProtosVersion` - Set it to `dev` to use the `dev` branch for fetching the proto files.

2 - Download and generate the latest client stubs by running the following command from the project root:
2. Download and generate the latest client stubs by running the following command from the project root:

For Windows

Expand All @@ -143,23 +95,23 @@ This will
- Run the default build task.
- Run the integration tests. Make sure to have Docker running.

3 - Implement new Qdrant methods in [`QdrantClient.java`](https://github.com/qdrant/java-client/blob/master/src/main/java/io/qdrant/client/QdrantClient.java) with associated tests in [src/test](https://github.com/qdrant/java-client/tree/master/src/test/java/io/qdrant/client).
3. Implement new Qdrant methods in [`QdrantClient.java`](https://github.com/qdrant/java-client/blob/master/src/main/java/io/qdrant/client/QdrantClient.java) with associated tests in [src/test](https://github.com/qdrant/java-client/tree/master/src/test/java/io/qdrant/client).

Since the API reference is published at <https://qdrant.github.io/java-client>, the docstrings have to be appropriate.

4 - If there are any new complex/frequently used properties in the proto definitions, add factory classes in [`src/main`](https://github.com/qdrant/java-client/tree/master/src/main/java/io/qdrant/client) following the existing patterns.
4. If there are any new complex/frequently used properties in the proto definitions, add factory classes in [`src/main`](https://github.com/qdrant/java-client/tree/master/src/main/java/io/qdrant/client) following the existing patterns.

4 - Submit your pull request and get those approvals.
5. Submit your pull request and get those approvals.

### Releasing a New Version

Once the new Qdrant version is live:

1 - Update the values in [gradle.properties](https://github.com/qdrant/java-client/blob/master/gradle.properties) as follows and build as mentioned above:
1. Update the values in [gradle.properties](https://github.com/qdrant/java-client/blob/master/gradle.properties) as follows and build as mentioned above:

- `qdrantVersion` - Set it to the released Docker image version for testing.
- `qdrantProtosVersion` - Set it to the released version of the Qdrant source for fetching the proto files.

2 - Merge the pull request.
2. Merge the pull request.

3 - Publish a new release at <https://github.com/qdrant/java-client/releases>. The CI will then publish the library to [mvnrepository.com/artifact/io.qdrant/client](https://mvnrepository.com/artifact/io.qdrant/client) and the docs to <https://qdrant.github.io/java-client>.
3. Publish a new release at <https://github.com/qdrant/java-client/releases>. The CI will then publish the library to [mvnrepository.com/artifact/io.qdrant/client](https://mvnrepository.com/artifact/io.qdrant/client) and the docs to <https://qdrant.github.io/java-client>.

0 comments on commit fd51189

Please sign in to comment.