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/*.
Metadata
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 | Provenance | Actions |
|---|---|---|---|---|
| fabric_deployment_tool-0.1.5.tar.gz | 14.6 kB | Without provenance | Details for fabric_deployment_tool-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fabric_deployment_tool-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for fabric_deployment_tool-0.1.5-py3-none-any.whl |
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
|
Security for fabric-deployment-tool 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.