Project Management
Once you've created your ActiveState project, you'll need to manage its packages, requirements, branches, and collaborate with others. This section covers all aspects of project management.
Package Management
Manage the packages and dependencies in your project:
- Package Management - Add, remove, and update packages
- Manage Requirements - Import from requirements files and SBOMs
Project Operations
Work with your projects locally and remotely:
- Work with Projects - Check out, deploy, and switch between projects
- Multiple Projects - Manage multiple projects simultaneously
Collaboration
Share and collaborate on projects with your team:
- Branches and History - Create branches and manage project history
- Sharing and Collaboration - Share projects and manage permissions
Key Concepts
Project Structure
Every ActiveState project includes:
- activestate.yaml: Configuration file that defines your project
- Language runtime: The core language interpreter/compiler
- Packages: Dependencies and libraries for your project
- Platform support: Operating system and architecture targets
Project Lifecycle
- Create - Set up your project with initial language and packages
- Configure - Add/remove packages and adjust settings
- Deploy - Check out and activate locally
- Develop - Work with your runtime environment
- Update - Push changes back to the Platform
- Share - Collaborate with team members
Local vs Remote
- Remote: Your project configuration stored on the ActiveState Platform
- Local: Checked out copy of your project on your machine
- Sync: Use
state pushandstate pullto keep them in sync
📄️ Branches and History
ActiveState projects support branching and version history, allowing you to experiment with different configurations while maintaining a stable main branch.
📄️ Share a Project
Sharing a project is the simplest way to ensure your development team can get to work and avoid sorting out dependencies or worrying about security or stability issues.
📄️ Collaboration using activestate.yaml
The activestate.yaml is the config file for an ActiveState Project. It is similar to a package.json for JavaScript development, containing a link to project components and scripts which can automate project actions. The activestate.yaml file can be customized to meet the needs of your organization and shared across your teams to include proprietary code in your runtimes, add private scripts, and more.
📄️ Import and Manage Requirements
Using the ActiveState Platform you can import and manage your requirements for your Python, Perl, or Ruby project by importing the specific requirements files directly into your project. The Platform supports the following requirements file formats:
📄️ Work with Multiple Projects
After checking out two or more projects using the state checkout / command from different working directories, you can launch separate instances of your project by using the state shell and state use commands.
📄️ Organize and Manage Projects
Learn how to organize and manage multiple ActiveState projects effectively on your system.
📄️ Change an Existing Project
After creating your project, you can make changes to the existing configuration to ensure the project continues to meet the needs of you and your team. You can make changes to the following settings of your project:
📄️ Package Management
You can use the ActiveState Platform UI and the State Tool to:
📄️ Fork a project
Forking a project allows you to copy and edit a project and share that project and the builds it contains between organizations. For example, you can create a project in a test organization to ensure it meets your requirements, then fork it to another organization you belong to and share it with other members.
📄️ Download Project Ingredients
An ActiveState runtime consists of multiple components, dependencies, and language files. This document outlines how you can download the source files for components in your runtime.
📄️ Troubleshoot Dependency Errors
Dependency resolution errors occur when the software cannot resolve the required packages for your project. When a dependency error occurs, an "Unable to Resolve Dependencies" message appears on the Configuration tab of your project page.