* added `majoreo-unstable` to packages
* fixed bogus duplicate shortcut error message when updating recipes with shortcuts
* always use unzip, even on mingw
Major EO, or
eo for short, is a lightweight agnostic package manager for use
in personal and commercial projects, meant to aid developers with rolling out
their codebase on polygenous development environments.
eo ships as a single binary or as a single script for Python 3.8 or higher.
Stable (Version 0.13):
Unstable (most recent):
hgarchives, export from subversion repositories, create directories and execute shell commands in order to build packages.
For popular extraction features to work, the tools
should be in your
To prepare a new project for use with
eo init in the project
eo init --dest path/to/new/directory to create a new one. The
following commands must then be executed within the projects directory
To install new packages, you must first put recipes in the default recipe
recipes. Have a look at
testing/recipes/*.eo in the archive for
testing folder is a valid
eo project to try things out in.
Recipes can be directly imported from a URL to a trusted downloadable recipe,
eo import <URL>.eo. You can also install
eo itself using the shortcut
eo import majoreo.
List all packages with
eo search or search for particular package names with
eo search <pattern>, where
pattern is a regular expression.
Install a package using
eo install <package-name> ..., and remove it with
eo remove <package-name> .... Installing a package will build it once, and
then reuse the package archive.
eo status lists all presently installed packages.
Recipes with update support can be updated with
eo update, downloading the
latest version of the recipe from its specified
Synchronize all packages whose versions have changed using
eo sync. This can
be an upgrade or a downgrade, depending on what the recipe specifies.
To sync a package even though its version has not changed, which is often
necessary for debugging, use
eo build <package-name> --force to rebuild the
package, followed by
eo sync <package-name> --force to force removal of the
old and installation of the new package.
If the configuration file
.eo/eorc exists, it will be used to change default
settings. Presently, only the recipe path is configurable.
For help, questions, bug reports and feedback: