Package Info Module


Every Meco™ package has a mandatory Python module named packageInfoLib.py module under <PACKAGE_NAME>/python/<PACKAGE_NAME> path and contains information about the package itself. This information is used throughout Meco Ecosystem™. When you crate a package via related command and/or provided Python API, package info module and its default content get created automatically.

The example below shows typical content of a package info module.

## [ str ] - Name of the package.
NAME                = 'mCore'

## [ str ] - Version of the package.
VERSION             = '1.0.0'

## [ str ] - Description about the package.
DESCRIPTION         = 'Core functionalities used by all packages.'

## [ list of str ] - Keywords to find this package.
KEYWORDS            = ['core']

## [ list of str ] - Platforms which this package meant to be used on.
PLATFORMS           = ['Linux', 'Darwin', 'Windows']

## [ list of dict ] - Documentations about the package, keys of dict instances are: title, url.
DOCUMENTS           = []

## [ list of str ] - Applications which this package meant to be initialized for.
APPLICATIONS        = ['all']

## [ list of str ] - Python versions supported by this package.
PYTHON_VERSIONS     = ['2', '3']

## [ bool ] - Whether this package is active (in use).
IS_ACTIVE           = True

## [ bool ] - Whether this package is external (third party).
IS_EXTERNAL         = False

## [ list of str ] - E-mail addresses of the developers.
DEVELOPERS          = ['developer@company.com']

## [ list of str ] - Dependent packages.
DEPENDENT_PACKAGES  = []

## [ list of str ] - Python packages contained by this package.
PYTHON_PACKAGES     = ['mCore', 'mFileSystem']

Attributes

All the attributes listed below are mandatory, therefore they should be present in the module.

NAME (str)

Name of the package. This name must match with the name of the package and a Python package under <PACKAGE_NAME>/python> path of the package. For mCore package, the Python package must be mCore/python/mCore.

VERSION (str)

Version of the package. You need to bump up the version based on the changes you make everytime you want to release a new version of a package.

DESCRIPTION (str)

Description about the package.

KEYWORDS (list of str)

Keywords relevant to the package. Meco™ uses these keyword to provide features to users such as searching packages.

PLATFORMS (list of str)

Platforms, which the package supports. You can remove the name of the platform from the list if you wish not to support it. For instance, is you only leave Windows in this list, the package will not be initialized on Linux OS and Mac OS.

Valid values are; Linux, Darwin, Windows

DOCUMENTS (list of dict)

Documentation available for the package. Meco Ecosystem™ uses these URLs/paths to provide support to users. You can also use paths relative to the root of the package to provide help that contained by the package itself.

APPLICATIONS (list of str)

Application, which the package supports. If an environment is initialized for maya application and this list doesn't contain maya, the package will not be initialized.

If the package should be initialized for all environments all should be added to the list.

if the package should be initialized only for standalone environments (shell) standalone should be added to the list.

Name of the applications can be found in mApplication.parentApplicationLib.Application enum class.

PYTHON_VERSIONS (list of str)

Python versions supported by the package. Meco™ currently uses only major version to determine whether the package should be initialized for that version of Python.

IS_ACTIVE (bool)

Whether the package is active. You can disable the package by setting this attribute False.

IS_EXTERNAL (bool)

Whether the package is external, meaning whether the package contains libraries developed by third party. For instance, the package extPySide2Linux that contains PySide2 is considered as an external package.

This attribute also determines where the package will be released to. Example paths are;

  • If False, the release path will be: /<PATH>/meco/<PROJECT_NAME>/internal
  • If True, the release path will be: /<PATH>/meco/<PROJECT_NAME>/external

DEVELOPERS (list of str)

Email addresses of the developers who worked on the package.

DEPENDENT_PACKAGES (list of str)

Dependent packages of the package.

PYTHON_PACKAGES (list of str)

Python packages contained by the package. Python packages are located in <PACKAGE_NAME>/python> path.

Command Examples

Many commands and API classes in Meco Ecosystem™ use the information in package info module to operate on packages, like the command below.

mmecopackage-display-info -n mCore

You would get a result like the one below once you execute the command above.

NAME                : mCore
VERSION             : 1.0.0
DESCRIPTION         : Core functionalities used by all packages.
KEYWORDS            : core
PLATFORMS           : Linux, Darwin, Windows
DOCUMENTS           : N/A
APPLICATIONS        : all
PYTHON_VERSIONS     : 2, 3
IS_ACTIVE           : True
IS_EXTERNAL         : False
DEVELOPERS          : developer@company.com
DEPENDENT_PACKAGES  :
PYTHON_PACKAGES     : mCore, mFileSystem
IS_VERSIONED        : False
PATH                : <PATH>/meco/master/developers/soner/development/main/mCore

Stats
Line of code (python) : 4361
Line of code (cpp)    : 0