Workspace Setup¶
Setting up a unified development environment for the provide.io ecosystem.
Overview¶
The Workspace section covers tools and approaches for managing multi-package development in the provide.io ecosystem.
provide-workenv¶
provide-workenv is the official workspace manager that coordinates all 13+ ecosystem repositories for unified development.
Key Features¶
- Single-Command Setup
- Clone all repositories, install dependencies, and configure your environment with three commands.
- Coordinated Development
- Work across multiple packages with editable installs and shared virtual environment.
- Meta-Repository Pattern
- Each package stays in its own repository while the workspace provides coordination.
- Reference Implementation
- Demonstrates best practices for using wrknv to manage multi-repository workspaces.
Quick Start¶
git clone https://github.com/provide-io/provide-workenv.git
cd provide-workenv
./scripts/bootstrap.sh
./scripts/setup.sh
source .venv/bin/activate
Get Started with provide-workenv →
Why Workspace Management?¶
The Challenge¶
The provide.io ecosystem consists of 13+ packages across three architectural layers: - Foundation Layer (provide-foundation, testkit) - Framework Layer (pyvider, pyvider-cty, pyvider-hcl, pyvider-rpcplugin, components) - Tools Layer (flavorpack, wrknv, plating, tofusoup, supsrc)
Working across these packages manually requires: - Cloning 13+ repositories - Installing dependencies in correct order - Managing virtual environments - Coordinating changes across packages
The Solution¶
provide-workenv automates workspace setup and coordination:
# Without workspace manager
git clone https://github.com/provide-io/provide-foundation.git
git clone https://github.com/provide-io/provide-testkit.git
git clone https://github.com/provide-io/pyvider-cty.git
# ... 10+ more clones ...
cd provide-foundation && python3 -m venv .venv && source .venv/bin/activate && pip install -e "."
cd ../provide-testkit && pip install -e "."
# ... manual setup for each package ...
# With workspace manager
git clone https://github.com/provide-io/provide-workenv.git
cd provide-workenv
./scripts/bootstrap.sh && ./scripts/setup.sh
source .venv/bin/activate
When to Use Workspace Setup¶
Use provide-workenv When:¶
✅ New to the ecosystem (easiest onboarding) ✅ Cross-package development ✅ Building providers that use multiple pyvider packages ✅ Contributing to multiple packages ✅ Testing integration between packages ✅ Building documentation ✅ Full ecosystem exploration
Use Individual Packages When:¶
✅ Working on single package only ✅ Using published packages (not developing them) ✅ Building applications on top of the framework ✅ Limited disk space or bandwidth
Workspace Architecture¶
provide-workenv uses a meta-repository pattern:
parent-directory/
├── provide-workenv/ # Workspace manager
│ ├── .venv/ # Shared virtual environment
│ ├── scripts/ # bootstrap, setup, validate
│ └── wrknv.toml # Workspace configuration
│
├── provide-foundation/ # Foundation layer
├── provide-testkit/
├── pyvider/ # Framework layer
├── pyvider-cty/
├── pyvider-hcl/
├── pyvider-rpcplugin/
├── pyvider-components/
├── flavorpack/ # Tools layer
├── wrknv/
├── plating/
├── tofusoup/
└── supsrc/
Each package:
- Maintains its own git repository
- Has independent history and releases
- Can be worked on individually
- Is installed in the shared .venv in editable mode
Learn about Meta-Repository Pattern →
wrknv Integration¶
provide-workenv is built on wrknv, the work environment management tool. It serves as a reference implementation showing how to use wrknv for multi-repository workspaces.
wrknv (the tool) : provide-workenv (the workspace) :: Make (the tool) : Makefile (the configuration)
You can use wrknv to create your own multi-repository workspaces following the provide-workenv pattern.
Next Steps¶
-
Complete guide to workspace setup, architecture, and development workflows
-
Step-by-step installation instructions for setting up the workspace
-
Understanding the meta-repository pattern and workspace design
-
Working with cross-package development and editable installs
Related Documentation¶
- Foundry Architecture - Understand package organization
- Development Workflow Guide - General development patterns
- Package Overview - See all available packages