Package: evg-module-manager
Evergreen Module ManagerManage Evergreen modules in your local environment.Table of contentsDescriptionGetting HelpDocumentationDependenciesInstallationUsageContributor's GuideSetting up a local development environmentlinting/formattingRunning testsAutomatically running checks on commitVersioningCode ReviewDeploymentResourcesDescriptionThe 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 HelpWhat'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-usersor email us atdev-prod-dag@mongodb.com.How can I request a change/report a bug in evg-module-manager?Create aDAG 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 RequestProvide us the motivation for this change.ContextProvide some background context for this issue.DescriptionProvide some description on how this issue happened.DocumentationRead the documentationhere.DependenciesPython 3.7 or latergitevergreen command line toolEvergreen config filegithub CLISeeUsage Prerequisitesfor more details.InstallationWe strongly recommend using a tool likepipxto install
this tool. This will isolate the dependencies and ensure they don't conflict with other tools.$pipxinstallevg-module-managerDebugging installation issuesA common issue that arises during installation is pipx failing to install emm and printing out the following error:$pipxinstallevg-module-manager
Fatalerrorfrompippreventedinstallation.Fullpipoutputinfile:/home/ubuntu/.local/pipx/logs/cmd_2022-03-31_13.24.42_pip_errors.logSomepossiblyrelevanterrorsfrompipinstall:ERROR:Couldnotfindaversionthatsatisfiestherequirementevg-module-manager(fromversions:none)ERROR:Nomatchingdistributionfoundforevg-module-managerErrorinstallingevg-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 theDependenciessection. You
can check the version of Python that is on your computer by running$python--versionIf 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.$whichpython3.9
/usr/bin/python3.9
$pipxinstallevg-module-manager--python/usr/bin/python3.9UsageSee thedocumentationfor details about using this tool.Usage:evg-module-manager[OPTIONS]COMMAND[ARGS]...EvergreenModuleManagerisatoolhelpsimplifythelocalworkflowsofevergreenmodules.

Options:--modules-dirPATHDirectorytostoremodulerepositories[default='..']--evg-config-filePATHPathtofilewithevergreenauthconfiguration[default='/Users/dbradf/.evergreen.yml']--evg-projectTEXTNameofEvergreenproject[default='mongodb-mongo-master']--helpShowthismessageandexit.

Commands:disableDisablethespecifiedmoduleinthecurrentrepo.enableEnablethespecifiedmoduleinthecurrentrepo.evgPerformevergreenactionsagainstthebaserepoandenabledmodules.gitPerformgitactionsagainstthebaserepoandenabledmodules.list-modulesListthemodulesavailableforthecurrentrepo.pull-requestCreateaGithubpullrequestforchangesinthebaserepositoryandany...Contributor's GuideSetting up a local development environmentThis project usespoetryfor setting up a local environment.gitclone...cdevg-module-manager
poetryinstalllinting/formattingThis project usesblackandisortfor formatting.poetryrunblacksrctests
poetryrunisortsrctestsRunning testsThis project usespytestfor testing.poetryrunpytestAutomatically running checks on commitThis project haspre-commitconfigured. Pre-commit will run
configured checks at git commit time. To enable pre-commit on your local repository run:poetryrunpre-commitinstallVersioningThis project usessemverfor versioning.Please include a description what is added for each new version inCHANGELOG.md.Code ReviewPlease open a Github Pull Request for code review.DeploymentDeployment to pypi is automatically triggered on merges to main.ResourcesEvergreen REST documentation