Project Automation and Configuration Engine - A Python CLI tool for bulk management of C# .NET project ecosystems
Project description
Project Automation and Configuration Engine
A Python CLI tool for bulk management of C# .NET project ecosystems — from single class libraries to complex multi-project hierarchies with MAUI applications.
Overview
PACE eliminates the repetitive, error-prone manual work of managing .NET project ecosystems at scale. Rather than shelling into each project directory to run dotnet commands, manage git state, or manually update build configurations, PACE provides a unified interface to interact with all of them at once.
It understands your project topology — respecting dependency order, project hierarchy, and configuration context — so you can express intent once and apply it across your entire repository graph.
PACE is built for .NET library authors, platform teams, and SDK maintainers who manage production-grade codebases consisting of multiple interconnected components and need reliable, scriptable tooling to keep them in sync.
Target project types
| Type | Description |
|---|---|
| Class libraries | Standalone or NuGet-published reusable packages |
| MAUI applications | Cross-platform apps with platform image and build assets |
| Dependency trees | Multi-library hierarchies with topological dependency ordering |
| Sample applications | Reference and demo apps accompanying library suites |
Capabilities
Design principles
Composability — individual commands can be piped, scripted, and combined into workflows. PACE is a good Unix citizen.
Topology-awareness — multi-project operations always respect inter-project dependencies. CoreLib is built before ExtensionLib before SampleApp, automatically.
Transparency — every operation emits clear, structured output suitable for both human review and CI log parsing. Nothing happens silently.
Reproducibility — configuration is declared in a manifest file that describes the project graph, repository layout, and per-project overrides. Behaviour is version-controllable alongside the code it manages.
Installation
TBD
Or install from source:
git clone https://github.com/Noremac11800/PACE.git
cd PACE
pip install -e .
Quick start
Initialize a manifest in your workspace root:
pace init
This generates a pace.toml describing your project graph. Edit it to reflect your repository layout, then run any command across the full graph:
# Build all projects in dependency order
pace dotnet build
# Build projects starting from a specific project
pace --from ProjectName dotnet build
# Check git status across every repo
pace git status
# Run all unit tests and show a summary
pace test
# Format and verify code style
pace format --check
Configuration
PACE is driven by a pace.toml manifest at your workspace root:
[workspace]
path = "C:\Applications\Melbourne"
[[project]]
name = "common-lib"
path = "./common-lib/src/CommonLib/CommonLib.csproj"
type = "classlib"
[[project]]
name = "feature-module"
path = "./feature-module/src/FeatureModule/FeatureModule.csproj"
type = "classlib"
depends_on = ["common-lib"]
[[project]]
name = "mobile-app"
path = "./mobile-app/src/MobileApp/MobileApp.csproj"
type = "maui"
depends_on = ["feature-module"]
Development
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Format code
ruff format .
# Check code style
ruff check .
# or for safe fixes
ruff check --fix .
# Type check
pyright
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pace_dotnet-0.1.2.tar.gz.
File metadata
- Download URL: pace_dotnet-0.1.2.tar.gz
- Upload date:
- Size: 22.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc80c1117ed0aa556eed31e57926cb09f7e07ea3856680936dc6454e3b855b97
|
|
| MD5 |
f2c2190a0a5a3525e558bc7fdda534c4
|
|
| BLAKE2b-256 |
d35b069a43ffbb2dd16d6d410dfce4c24b266288ce80780c760ab88ff2e11045
|
File details
Details for the file pace_dotnet-0.1.2-py3-none-any.whl.
File metadata
- Download URL: pace_dotnet-0.1.2-py3-none-any.whl
- Upload date:
- Size: 24.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
218facd460a1a19ec5f2ca579e748f2255176947e6f8e8036dc146a070b52415
|
|
| MD5 |
770253816c3add8f50077a8cc2e75f74
|
|
| BLAKE2b-256 |
c921b07a37a84d1910ef6f70aab6d5422c00c516451da403c475d0a46d639a3d
|