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- README.md
- performs an evergreen-aware git-bisect to find the 'last passing version' and 'first failing version' of mongo
setup-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
mongodandmongosbinaries compiled in Evergreen, including patch builds, mainline builds, and release/production builds. - Requires authenticating to an internal MongoDB symbol mapping service.
Dependencies
- Python 3.9 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
In case of installation errors, some of them may be related to pipx and could be fixed by re-installing pipx.
Removing pipx completely (WARNING! This will delete everything that is installed and managed by pipx):
python3 -m pip uninstall pipx
rm -rf ~/.local/pipx # in case you're using the default pipx home directory
Now you can try to install again from scratch.
Usage
Print out help message:
db-contrib-tool --help
For more information see description section.
Contributor's Guide (local development)
Install project dependencies
This project uses poetry for dependency management.
poetry install
Run command line tool (local development)
Some subcommands like bisect and symbolize could be tested from the db-contrib-tool repo root:
poetry run db-contrib-tool --help
For setup-repro-env some features can also be tested from the db-contrib-tool repo root,
but full features are available when running from mongo repo root.
See testing changes locally section.
Run linters
poetry run ruff format
poetry run ruff check
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
or across all files (not just those staged):
poetry run pre-commit run --all-files
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 taken to accomplish that.
- Create a patch build with the changes you wish to test, running the
create_pyinstaller_binarytasks. - In the
mongorepository, edit evergreen/download_db_contrib_tool.py to use your patch's Evergreen version, likehttps://mdb-build-public.s3.amazonaws.com/db-contrib-tool-binaries/<your patch's version ID>/"
Testing changes locally
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/repo/root/dir
If the tool is already installed you can force install an updated version using --force flag:
python3 -m pipx install --force /path/to/db-contrib-tool/repo/root/dir
After these steps you can run in-development version of db-contrib-tool from any directory:
db-contrib-tool --help
Versioning
This project uses semver for versioning.
Please include a description what is added for each new version in CHANGELOG.md.
Code Review
This projects uses GitHub PRs for code reviews. You should assign any reviewers you would like to look at the PR to it.
This project uses the GitHub merge queue. Click "Merge when ready" as soon as you'd like.
Deployment
Deployment to pypi is done by deploy
task of db-contrib-tool project in Evergreen.
A new version in Evergreen is created on merges to main branch.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file db_contrib_tool-1.1.0.tar.gz.
File metadata
- Download URL: db_contrib_tool-1.1.0.tar.gz
- Upload date:
- Size: 55.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.9.22 Linux/5.4.0-1009-aws
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5dde2573ee63b6f06ba0f309df714d5b0f5cba7ba3c1a7c1cf72e9fdb13eaf7c
|
|
| MD5 |
a5e6e8d52d172bac664a2e683d15bc9e
|
|
| BLAKE2b-256 |
c3647afbd13fb47b23c64776a94435dca3b0963fdaacbcedfb9c6bab9d074318
|
File details
Details for the file db_contrib_tool-1.1.0-py3-none-any.whl.
File metadata
- Download URL: db_contrib_tool-1.1.0-py3-none-any.whl
- Upload date:
- Size: 69.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.9.22 Linux/5.4.0-1009-aws
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bba6d2b86dd6f3b9d5e55048b80fb89bfa7f31179caab9db53711118351bf39
|
|
| MD5 |
ce4d0bca308d9ce3d259645fa8134f36
|
|
| BLAKE2b-256 |
4fdb6641d13466175fad14e50e36190d0e011ab435efd3eeb69309f46d7df65c
|