Creating your Managed Distribution

The process for creating a Managed Distribution from a new project is outlined below. Currently, these distributions are only available to Enterprise tier users.

  1. Create a project
  2. Add the packages to your project
  3. Configure your packages
  4. Expect a build error
  5. Contact us
  6. Next steps

A note about Python package naming conventions

This process can save time and avoid miscommunications that can arise in email exchanges and will allow us to see and assess which packages your project needs.

1. Create a project

After signing in to your ActiveState account go to your organization’s page and click the +Project button. Follow the steps here to create a new project.

2. Add your packages

Under the Configuration tab for your new project, use the interface to select your packages.

To add package(s) that are not currently on the Platform use the Import From File feature on your project’s Configuration tab. This will bring up the prompt shown below. Copy your requirements into the field provided and click Import to finish.

alt_text

Managed Distributions allow you to request packages and versions which are not yet available on the Platform (these requests may result in an expected error message). If you are requesting packages or versions that are not currently available on the Platform you will receive an “Unable to Resolve Dependencies” message. This message can be ignored as this will be resolved during the build of your Managed Distribution.

alt_text

3. Configure your Packages

alt_text

The Platform allows you to choose a specific version– or range of versions– for your packages. The Auto option is selected by default, which allows the Platform to automatically select compatible package versions and dependencies.

  • Packages dependent on your requirements will automatically be added to the build and highlighted in green.
  • Packages dependent on your requirements that are already present are highlighted in blue.
  • Packages that must be removed for compatibility or have been manually removed will be highlighted in red.

If your testing or production environment requires a specific version of a package, ensure it is selected from the list. If the version is not on the list, please let us know using the methods described later in this document.

When you are satisfied with your selections click Save Changes Anyway.

4. Expected Build Error

If you have selected packages or versions that are not currently available on the Platform or require dependencies that are not currently available to build, your project’s dependencies will fail to resolve. This is to be expected and will be reviewed by our engineering team.

5. Contact Us

After saving the list of packages on the Configuration tab, let us know that you would like us to apply these changes to your Managed Distribution. Send an email to enterprise-support@activestate.com and include the link to the project in your message (copied from your web browser). We will work to resolve all dependencies and notify you when your Managed Distribution build is complete.

6. Next Steps

Our build engineering team will review your build and requirements, identifying any packages or issues that need specific attention. These will be summarized if needed and suggestions will be made to resolve them. In most cases, a short meeting will be scheduled to discuss these recommendations.

Note For Python: Package Naming

The first step to requesting a new package in an ActiveState Managed Distribution is to find the correct distribution name of the package. Some special considerations must be made for Python packages. The distribution name is the name of the package as it is listed in the package index. The central package index for Python is PyPi, and all Python packages on the ActiveState Platform mirror the distribution names on PyPi.

The name of a Python package listed on a package index (distribution name) is not necessarily the name you use to import the package. The distribution name is not the same as the import name. For example, you can use the pip package manager (which pulls packages from the PyPi index) to install the package with the distribution name “mysql-python”:

pip install mysql-python

When you try to import this package into your Python project you will get an error.

import mysql-python -> package not found error
import mySqlDb -> correct import

This can create confusion because some import names will actually be distribution names for other packages. Looking at your import statements alone it is impossible to determine which packages you actually need to provide ActiveState. If you used ActiveState runtimes during your development process this is not an issue as the correct distribution names will be listed in your project.

If you used pip or conda for development, generate a requirements.txt file and use that to identify the distribution names of the package you provide to ActiveState.