...

Text file src/github.com/redis/go-redis/v9/CONTRIBUTING.md

Documentation: github.com/redis/go-redis/v9

     1# Contributing
     2
     3## Introduction
     4
     5We appreciate your interest in considering contributing to go-redis.
     6Community contributions mean a lot to us.
     7
     8## Contributions we need
     9
    10You may already know how you'd like to contribute, whether it's a fix for a bug you
    11encountered, or a new feature your team wants to use.
    12
    13If you don't know where to start, consider improving
    14documentation, bug triaging, and writing tutorials are all examples of
    15helpful contributions that mean less work for you.
    16
    17## Your First Contribution
    18
    19Unsure where to begin contributing? You can start by looking through
    20[help-wanted
    21issues](https://github.com/redis/go-redis/issues?q=is%3Aopen+is%3Aissue+label%3ahelp-wanted).
    22
    23Never contributed to open source before? Here are a couple of friendly
    24tutorials:
    25
    26-   <http://makeapullrequest.com/>
    27-   <http://www.firsttimersonly.com/>
    28
    29## Getting Started
    30
    31Here's how to get started with your code contribution:
    32
    331.  Create your own fork of go-redis
    342.  Do the changes in your fork
    353.  If you need a development environment, run `make docker.start`.
    36 
    37> Note: this clones and builds the docker containers specified in `docker-compose.yml`, to understand more about
    38> the infrastructure that will be started you can check the `docker-compose.yml`. You also have the possiblity
    39> to specify the redis image that will be pulled with the env variable `CLIENT_LIBS_TEST_IMAGE`.
    40> By default the docker image that will be pulled and started is `redislabs/client-libs-test:8.2.1-pre`.
    41> If you want to test with newer Redis version, using a newer version of `redislabs/client-libs-test` should work out of the box.
    42
    434.  While developing, make sure the tests pass by running `make test` (if you have the docker containers running, `make test.ci` may be sufficient).
    44> Note: `make test` will try to start all containers, run the tests with `make test.ci` and then stop all containers.
    455.  If you like the change and think the project could use it, send a
    46    pull request
    47
    48To see what else is part of the automation, run `invoke -l`
    49
    50
    51## Testing
    52
    53### Setting up Docker
    54To run the tests, you need to have Docker installed and running. If you are using a host OS that does not support
    55docker host networks out of the box (e.g. Windows, OSX), you need to set up a docker desktop and enable docker host networks.
    56
    57### Running tests
    58Call `make test` to run all tests.
    59
    60Continuous Integration uses these same wrappers to run all of these
    61tests against multiple versions of redis. Feel free to test your
    62changes against all the go versions supported, as declared by the
    63[build.yml](./.github/workflows/build.yml) file.
    64
    65### Troubleshooting
    66
    67If you get any errors when running `make test`, make sure
    68that you are using supported versions of Docker and go.
    69
    70## How to Report a Bug
    71
    72### Security Vulnerabilities
    73
    74**NOTE**: If you find a security vulnerability, do NOT open an issue.
    75Email [Redis Open Source (<oss@redis.com>)](mailto:oss@redis.com) instead.
    76
    77In order to determine whether you are dealing with a security issue, ask
    78yourself these two questions:
    79
    80-   Can I access something that's not mine, or something I shouldn't
    81    have access to?
    82-   Can I disable something for other people?
    83
    84If the answer to either of those two questions are *yes*, then you're
    85probably dealing with a security issue. Note that even if you answer
    86*no*  to both questions, you may still be dealing with a security
    87issue, so if you're unsure, just email [us](mailto:oss@redis.com).
    88
    89### Everything Else
    90
    91When filing an issue, make sure to answer these five questions:
    92
    931.  What version of go-redis are you using?
    942.  What version of redis are you using?
    953.  What did you do?
    964.  What did you expect to see?
    975.  What did you see instead?
    98
    99## Suggest a feature or enhancement
   100
   101If you'd like to contribute a new feature, make sure you check our
   102issue list to see if someone has already proposed it. Work may already
   103be underway on the feature you want or we may have rejected a
   104feature like it already.
   105
   106If you don't see anything, open a new issue that describes the feature
   107you would like and how it should work.
   108
   109## Code review process
   110
   111The core team regularly looks at pull requests. We will provide
   112feedback as soon as possible. After receiving our feedback, please respond
   113within two weeks. After that time, we may close your PR if it isn't
   114showing any activity.
   115
   116## Support
   117
   118Maintainers can provide limited support to contributors on discord: https://discord.gg/W4txy5AeKM

View as plain text