The process for creating a Managed Distribution from a new project is outlined below. Currently these distributions are only available to Enterprise tier users.
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.
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.
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.
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.
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.
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 in the next step.
When you are satisfied with your selections click Save Changes Anyway.
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.
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 firstname.lastname@example.org 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.
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.
The first step to requesting a new package in an ActiveState Managed Distribution is to find the correct distribution name of the package. For Python packages, this is not a trivial process. 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.