Creating Stage Environments


Often times you would want other developers/users/artists to test your scripts/tools/plug-ins/applications before you release them for production. Meco™ offers a very flexible way of doing it via stage environments. By creating stage environments, you essentially separate stage (testing) environments from development environments. Thus, while you can continue your development work, your colleagues can test your tools without impacting your development workflow since the environments for both purposes differ.

Initializing a Development Environment

Initializing a development environment is required to create a stage environment. Activate Meco™ and initialize the master project with main development environment, like so;

# meco-init

meco -de main

Creating a Stage Environment

We are going to use mmeco-create-stage command to create a stage environment. Type and execute the following command.

mmeco-create-stage

Optionally you can provide -n | --name flag to give the stage environment a name.

mmeco-create-stage -n <STAGE_ENV_NAME>

Name of the current development environment name will be used if you don't provide this flag.

Command will do the following:

  • Create a stage environment named as the current development environment.
  • Copy all the packages from the development environment to the newly created stage environment.

The displayed result should be similar to the one below;

Stage Package Created: aDisplayMessage
Stage Package Created: mApplication
Stage Package Created: mFileSystem
Stage Package Created: mMayaCore

Stage environment has been created: /Users/soner/_development/meco/master/developers/soner/stage/main

You can initialize the newly created stage environment by invoking the following command:

meco --project master --developer soner --stage main

Let’s initialize the stage environment by executing the following command on a new shell.

meco --project master --developer soner --stage main

You can see that aDisplayMessage package along with others (if applicable) are initialized from your main stage environment even though packages with same name exist in master project. This is because packages in stage environments (just like packages in development environments) have priorities over those packages in project environments.

Initializing Stage Environments of Other Developers

You can provide the command that we used to initialize the stage environment above to other developers/artists/users, so they can initialize your stage environment and test the changes you made, if and when needed. Likewise, you can initialize other developer’s stage environments as well.

Rules to Remember

Some important rules to be mind full of when working with stage environments:

  • Stage environments are not meant to be used for development, rather to be used only for testing.
  • User name of a developer should be passed to -d flag if anyone initializes a stage environment apart from his/hers. After all, stage environments just like development environments belong to an individual developer.
  • Flag order should be the same as above, so the values would be auto-completed properly.
  • Please also note that, mMeco and mMecoSettings packages themselves will not be used from any stage environment when you open a new terminal tab. So, developing and testing these package is solely belongs to developers. Ideally, this package should not be provided in a stage environment at all.