ZX: Zompify an Existing Project

To make an existing project work with Zomp/ZX (whether for convenience in local development or inclusion to a Zomp realm) the project needs to be initialized. To initialize a project you need to decide three things:

  1. The version number at which you wish the project to begin its life as a Zomp-published package.
  2. The realm to which the package will belong.
  3. A name. Valid characters are [a-z0-9_] and must begin with a letter.

Initialize the Zomp Project Meta

From the project's root directory, initialize the project with the command zx init and follow the prompts.

ceverett@takoyaki:~/code/my_old_app$ zx init

The above command will generate a file called "zomp.meta" that contains the project's metadata and create a minimal default "Emakefile". If your project has special directives needed in the Emakefile then it is recommended to edit this yourself. Note that ZX currently only supports Erlang code, so modules from other languages cannot yet be supported by ZX.

If more than one realm is installed on the local system ZX will ask which one the project should be packaged for, otherwise it will select whatever is available if there is only one.

Note that there is no requirement for a project directory have the same name as the project it stores, though this is the most common case. It is also not necessarily true that a package's name is the same as the project's repository name or the name of its primary interface module. The same is true of version numbers: sometimes an app's package version number must be different from a project's internal version keeping system (always true of projects that do not adhere to semver, for example).