File: CONTRIBUTING.md

package info (click to toggle)
python-motor 3.7.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,572 kB
  • sloc: python: 12,252; javascript: 137; makefile: 74; sh: 8
file content (68 lines) | stat: -rw-r--r-- 2,000 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Contributing to Motor

Contributions are encouraged. Please read these guidelines before
sending a pull request.

## Bugfixes and New Features

Before starting to write code, look for existing tickets or create one
in [Jira](https://jira.mongodb.org/browse/MOTOR) for your specific issue
or feature request.

## Running Tests

Install a recent version of MongoDB and run it on the default port from
a clean data directory. Pass "--setParameter enableTestCommands=1" to
mongod to enable testing MotorCursor's `max_time_ms` method.

Control how the tests connect to MongoDB with these environment
variables:

- `DB_IP`: Defaults to "localhost", can be a domain name or IP
- `DB_PORT`: Defaults to 27017
- `DB_USER`, `DB_PASSWORD`: To test with authentication, create an
  admin user and set these environment variables to the username and
  password
- `CERT_DIR`: Path with alternate client.pem and ca.pem for testing.
  Otherwise the suite uses those in test/certificates/.

Install [tox](https://testrun.org/tox/) and run it from the command line
in the repository directory. You will need a variety of Python
interpreters installed. For a minimal test, ensure you have your desired
Python version on your path, and run:

```bash
tox -m test
```

The doctests pass with Python 3.9+ and a MongoDB 5.0 instance running on
port 27017:

```bash
tox -m doctest
```

## Running Linters

Motor uses [pre-commit](https://pypi.org/project/pre-commit/) for
managing linting of the codebase. `pre-commit` performs various checks
on all files in Motor and uses tools that help follow a consistent code
style within the codebase.

To set up `pre-commit` locally, run:

```bash
pip install pre-commit  # or brew install pre-commit for global install.
pre-commit install
```
To run `pre-commit` manually, run:

```bash
tox -m lint
```

## General Guidelines

- Avoid backward breaking changes if at all possible.
- Write inline documentation for new classes and methods.
- Add yourself to doc/contributors.rst :)