Fabric Deployment Tool Template
Starter repository for packaging Fabric deployment utilities as a Python wheel. The template uses
the modern pyproject.toml + src/ layout, bundles a Typer-based CLI, and ships with tests plus
linting configuration so you can publish quickly and confidently.
Features
- src-layout package ready for
pip installand wheel publishing - Typer CLI (
fabric-deployment-tool run) backed by sample deployment helpers - Pinned
ms-fabric-cli==1.2.0runtime dependency so Fabric environments are consistent - Pytest suite with coverage plus Ruff linting defaults
- Editable install workflow via
requirements-dev.txt - Pre-configured project metadata, changelog, and manifest for reproducible builds
Prerequisites
- Python 3.10+ with the ability to create virtual environments
- Fabric access plus credentials for
ms-fabric-cli - Optional:
gitfor version control andmake/PowerShell for scripted workflows
Project Layout
fabric-deployment-tool/
├── CHANGELOG.md
├── LICENSE
├── MANIFEST.in
├── pyproject.toml
├── requirements-dev.txt
├── src/
│ ├── fabric_deployment_tool/
│ │ ├── __init__.py
│ │ ├── _fab_cli.py
│ │ ├── _fab_item_management.py
│ │ ├── _git.py
│ │ └── _util.py
│ └── fabric_deployment_tool.egg-info/
├── tests/
│ ├── test_cli.py
│ └── test_deployment.py
└── dist/ # Populated after running `python -m build`
Quick Start
-
Install dev dependencies
python -m pip install -e .[dev]
-
Run tests + coverage
python -m pytest
-
Build wheel + sdist (requires the
buildextra already included indev)python -m build
-
Inspect artifacts
Get-ChildItem dist
If you see deprecation notices about the license metadata during build, swap the project.license
table for a SPDX string (for example "MIT") when you are ready to publish.
Runtime Modules
__init__.py: aggregates mixins (fdtCLU,fdtGit,fdtUtils,fdtItemManagement) into theFabDeplmentToolorchestrator and wires Fabric authentication vianotebookutils._fab_cli.py: shared helpers for invoking Microsoft Fabric CLI commands._fab_item_management.py: routines that orchestrate Fabric items defined inconfig/deployment_order.json._git.py: GitHub download helpers for fetching source/config bundles as zip files._util.py: Fabric-specific utilities (ID lookups, temp extraction, mapping replacements).
Using the CLI
python -m fabric_deployment_tool run ./sample-project
- Use
--versionor-vto print the package version. - Repeat
--artifact my_artifact.yamlto filter the deployment list.
Publishing Tips
- Update
pyproject.tomlmetadata (name,authors,urls) before publishing. - Bump the version and
CHANGELOG.mdtogether to keep releases traceable. - Add real deployment logic to
src/fabric_deployment_tool/deployment.pyand extend tests to fit your workflow. - Run
python -m buildbefore tagging a release so you can publish the wheel / sdist found indist/viatwine upload dist/*.
Release files for fabric-deployment-tool 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fabric_deployment_tool-0.1.5.tar.gz | 14.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fabric_deployment_tool-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.7 kB
Release files / fabric_deployment_tool-0.1.5.tar.gz
| Download URL | fabric_deployment_tool-0.1.5.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
35e061d2c8ad753dfde4e65020c9b7bc1502d5b0cb84ffc62928bee6dcb46e00
|
|
BLAKE2b-256 checksum How to use checksums |
176c9f87d458445197868c9a9232ec7c4e65edf5c605edd4d52171cab72b02ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / fabric_deployment_tool-0.1.5-py3-none-any.whl
| Download URL | fabric_deployment_tool-0.1.5-py3-none-any.whl |
|---|---|
| Size | 14.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b4114aba0c825bef4c4a0c93128e48502b8d892a23166ade0e43470fe0bb9bed
|
|
BLAKE2b-256 checksum How to use checksums |
26c7f7be36d34ba3ea529247cd5b713325464d418de1df0d4142af33dd975974
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|