The `db-contrib-tool` - MongoDB's tool for contributors.
Project description
db-contrib-tool
The db-contrib-tool
- MongoDB's tools for contributors.
Table of contents
Description
The command line tool with various subcommands:
bisect
- performs an evergreen-aware git-bisect to find the 'last passing version' and 'first failing version' of mongosetup-repro-env
- README.md
- downloads and installs:
- particular MongoDB versions
- debug symbols
- artifacts (including resmoke, python scripts etc)
- python venv for resmoke, python scripts etc
symbolize
- README.md
- Symbolizes stacktraces from recent
mongod
andmongos
binaries compiled in Evergreen, including patch builds, mainline builds, and release/production builds. - Requires authenticating to an internal MongoDB symbol mapping service.
Dependencies
- Python 3.7 or later (python3 from the MongoDB Toolchain is highly recommended)
Installation
Make sure dependencies are installed. Use pipx to install db-contrib-tool that will be available globally on your machine:
$ python3 -m pip install pipx
$ python3 -m pipx ensurepath
Installing db-contrib-tool:
$ python3 -m pipx install db-contrib-tool
Upgrading db-contrib-tool:
$ python3 -m pipx upgrade db-contrib-tool
Usage
Print out help message:
$ db-contrib-tool -h
More information on the usage of setup-repro-env
can be found here.
Contributor's Guide (local development)
Install project dependencies
This project uses poetry for dependency management.
$ poetry install
Run command line tool (local development)
$ ENV=DEV poetry run db-contrib-tool -h
Run linters
$ poetry run isort src tests
$ poetry run black src tests
Run tests
$ poetry run pytest
Pre-commit
This project has pre-commit configured. Pre-commit will run
configured checks at git commit time.
To enable pre-commit on your local repository run:
$ poetry run pre-commit install
To run pre-commit manually:
$ poetry run pre-commit run
Testing changes in mongo
This tool is used to help run tests in the mongodb/mongo repository. On occasion, it may be desirable to run a mongodb-mongo-* patch build with in-flight changes to this repository. The following steps can be take to accomplish that.
-
Create a branch with the changes you wish to test.
-
Push the branch to the origin repository:
git push -u origin <branch_name>
. -
In the "mongo" repository, edit the evergreen/prelude_db_contrib_tool.sh to install from the git repository instead of from pypi:
python -m pip --disable-pip-version-check install "git+ssh://git@github.com/10gen/db-contrib-tool.git@<branch_name>" || exit 1
-
Create a patch build.
The patch build should now pull down the changes from your branch instead of using the published db-contrib-tool.
Note: Since the db-contrib-tool is pulled from your branch, if you need to make additional changes to the tool, you can just push to the branch and then restart the desired tasks. There is no need to create an additional patch build unless you also need to make updates to the mongo repository.
Test pipx package
Pipx installation recommendations can be found in installation section.
The tool can be installed via pipx from your local repo:
$ python3 -m pipx install /path/to/db-contrib-tool
Versioning
This project uses semver for versioning.
Please include a description what is added for each new version in CHANGELOG.md
.
Code Review
Please open a Github Pull Request for code review.
This project uses the Evergreen Commit Queue.
Add a PR comment with evergreen merge
to trigger a merge.
Deployment
Deployment to pypi is automatically triggered on merges to main.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file db-contrib-tool-0.5.2.tar.gz
.
File metadata
- Download URL: db-contrib-tool-0.5.2.tar.gz
- Upload date:
- Size: 47.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.0 CPython/3.9.2 Linux/4.15.0-1044-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a28e5b8abaadad3d7fa9e5ed488defb0e410b41137920a0ab22e15a9a80eb7e |
|
MD5 | c9150f2e59c3b4489115caa289e04e61 |
|
BLAKE2b-256 | 02ff01ef3a3b0aaaafbb4b2ed02122bf05a37cbeb21420acd11a5ebc6c34fb60 |
File details
Details for the file db_contrib_tool-0.5.2-py3-none-any.whl
.
File metadata
- Download URL: db_contrib_tool-0.5.2-py3-none-any.whl
- Upload date:
- Size: 57.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.2.0 CPython/3.9.2 Linux/4.15.0-1044-aws
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b21aa3a8cdfcbd5abfe30b7a23121264aba5001ff4e282f6bd76aadc318ecf1 |
|
MD5 | 64904111806914b8996876b622d60403 |
|
BLAKE2b-256 | 688be61f06ae1c594a3cc9fe39435da56b58fee3f776a87de8fc210d71457c74 |