Skip to main content

Evergreen Module Manager

Manage Evergreen modules in your local environment.

PyPI - Python Version PyPI Documentation

Table of contents

  1. Description
  2. Getting Help
  3. Documentation
  4. Dependencies
  5. Installation
  6. Usage
  7. Contributor's Guide
  8. Resources

Description

The evg-module-manager is a tool to help improve the local workflows of working with modules in your evergreen projects. It will help you keep any modules defined in your local project in sync. It supports the following functionality:

  • List what modules are defined in the local project.
  • List what modules are currently active in your local repo.
  • Clone a module repository.
  • Enable/disable modules in your local repo.
  • Create an evergreen patch build that includes changes from the local patch build and all enabled modules.
  • Submit a changes to the commit-queue that includes changes from the local patch build and all enabled modules.

Getting Help

What's the right channel to ask my question?

If you have a question about evg-module-manager, please mention @dag-on-call in the slack channel #evergreen-users or email us at dev-prod-dag@mongodb.com.

How can I request a change/report a bug in evg-module-manager?

Create a DAG ticket.

What should I include in my ticket or #evergreen-users question?

Since #evergreen-users questions are interrupts, please include as much information as possible. This can help avoid long information-gathering threads.

Please include the following in any created tickets:

  • Motivation for Request
    • Provide us the motivation for this change.
  • Context
    • Provide some background context for this issue.
  • Description
    • Provide some description on how this issue happened.

Documentation

Read the documentation here.

Dependencies

See Usage Prerequisites for more details.

Installation

We strongly recommend using a tool like pipx to install this tool. This will isolate the dependencies and ensure they don't conflict with other tools.

$ pipx install evg-module-manager

Debugging installation issues

A common issue that arises during installation is pipx failing to install emm and printing out the following error:

$ pipx install evg-module-manager
Fatal error from pip prevented installation. Full pip output in file:
    /home/ubuntu/.local/pipx/logs/cmd_2022-03-31_13.24.42_pip_errors.log
 
Some possibly relevant errors from pip install:
    ERROR: Could not find a version that satisfies the requirement evg-module-manager (from versions: none)
    ERROR: No matching distribution found for evg-module-manager
 
Error installing evg-module-manager.

This error indicates that pipx could not find a version of emm that was built to support the version of Python installed on your machine. Make sure to check that your version of Python matches the requirements called out in the Dependencies section. You can check the version of Python that is on your computer by running

$ python --version

If you are running into the issue above but are sure that the correct version of Python is installed on your computer, you can explicitly specify a path to the correct Python version during installation.

$ which python3.9
/usr/bin/python3.9
$ pipx install evg-module-manager --python /usr/bin/python3.9

Usage

See the documentation for details about using this tool.

Usage: evg-module-manager [OPTIONS] COMMAND [ARGS]...

  Evergreen Module Manager is a tool help simplify the local workflows of evergreen modules.

Options:
  --modules-dir PATH      Directory to store module repositories [default='..']
  --evg-config-file PATH  Path to file with evergreen auth configuration
                          [default='/Users/dbradf/.evergreen.yml']
  --evg-project TEXT      Name of Evergreen project [default='mongodb-mongo-master']
  --help                  Show this message and exit.

Commands:
  disable       Disable the specified module in the current repo.
  enable        Enable the specified module in the current repo.
  evg           Perform evergreen actions against the base repo and enabled modules.
  git           Perform git actions against the base repo and enabled modules.
  list-modules  List the modules available for the current repo.
  pull-request  Create a Github pull request for changes in the base repository and any...

Contributor's Guide

Setting up a local development environment

This project uses poetry for setting up a local environment.

git clone ...
cd evg-module-manager
poetry install

linting/formatting

This project uses black and isort for formatting.

poetry run black src tests
poetry run isort src tests

Running tests

This project uses pytest for testing.

poetry run pytest

Automatically running checks on 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

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.

Deployment

Deployment to pypi is automatically triggered on merges to main.

Resources

Metadata

Release files for evg-module-manager 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evg-module-manager 1.3.2
File Size Uploaded
evg_module_manager-1.3.2.tar.gz 27.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for evg-module-manager 1.3.2
File Interpreter ABI Platform
evg_module_manager-1.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 61.4 kB

Release files / evg_module_manager-1.3.2.tar.gz

Download URL evg_module_manager-1.3.2.tar.gz
Size 27.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2b156c3211fdd15fae1a11e112d2c01e2ce7c7cba87d42a377949286e9d5bdb1
BLAKE2b-256 checksum
How to use checksums
e313dfef22ce7de8fb743cd932bb46bc032b19298bcbeab7f1b22f2d0c0f8646
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.6.1 CPython/3.9.18 Linux/6.2.0-1015-azure

Release files / evg_module_manager-1.3.2-py3-none-any.whl

Download URL evg_module_manager-1.3.2-py3-none-any.whl
Size 33.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
06d36eefb48dccf2694256e3e6b271323f5618b881793dbac555ed96243a205c
BLAKE2b-256 checksum
How to use checksums
5623e28f3130b37536c4fca52e50b1b853c5415391d5a426e3b6bec26c6cbfb2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.6.1 CPython/3.9.18 Linux/6.2.0-1015-azure

Release history Release notifications | RSS feed

This release

1.3.2 This release

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page