Layered Environment & Initialization Priorities
One of the solvers that Meco™ offers is "Priority" solver, which provides intuitive layering system. The system separates packages based on dedicated environments, namely;
- Development Packages (Development Environment)
- Stage Packages (Stage Environment)
- Project Internal Packages (Project Internal Environment)
- Project External Packages (Project External Environment)
- Master Project Internal Packages (Master Project Internal Environment)
- Master Project External Packages (Master Project External Environment)
By doing so, Meco™ allows you to initialize each layer (environment) on demand, on the fly without dealing with common chores known to a typical production pipeline such as dealing with hard coded configuration files to setting paths. This approach also allows users and developers to initialize environments based on their needs and offers comprehensive options to do so.
Every developer would have development environment(s) for a given project, whether it's a production project or the master project. Development environment is meant to be used by developers and only contains packages being developed. This term often refers to the actual path where the development packages are kept by developers.
Developers would also have stage environment(s) for a given project, whether its a production project or the master project. Stage environments allow other developers and users to test packages without interfering with ongoing productions or development efforts. After testing is done, the packages can be released from the development environment. This term often refers to the actual path where the stage packages are kept by any developer.
Project Internal Packages
Project environment is where released/production packages for a dedicated project are kept. This environment allows production to have customized packages for a dedicated project without affecting other projects. Say you have a publishing framework used by all the projects but one particular project requires it to be implemented differently. This is where a project environment comes into play and allows you to have tweaked version of the publishing framework for that particular project. This term often refers to the actual path where the project packages are kept.
Master Internal Packages
Master project environment contains all the released/production packages used by all the projects. You can think this environment as the main source for all the projects you have. Its not meant to be used for production but starting point for all the tools used by all the productions. This term often refers to the actual path where the master project packages are kept.
Versioned packages are the released ones and they meant to be used for production. These package are available under master project environment or project environments.
Non-version packages are the ones used in development and stage environments. Since these packages are not meant to be used for production directly, Meco™ keeps them non-versioned in their respective environments for simplicity.