Project for building distributable Fabric deployment tooling wheels.
Project description
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/*.
Project details
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 fabric_deployment_tool-0.1.2.tar.gz.
File metadata
- Download URL: fabric_deployment_tool-0.1.2.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8906cf01363ed427c09826a8f504ff966b5970a751ffa8a833318f9803337cdd
|
|
| MD5 |
431a5809222318b22e17ba7f2823461a
|
|
| BLAKE2b-256 |
a8f7e957e8644019ddfd852f97fc9b0a20bf162a680e20a0a384d64bd48191f5
|
File details
Details for the file fabric_deployment_tool-0.1.2-py3-none-any.whl.
File metadata
- Download URL: fabric_deployment_tool-0.1.2-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e42293e5233c9a17348a99c1dce738a989b7ca7e91c6511ba8a8416b2837e3c
|
|
| MD5 |
79fbb3128c8e0cb35401e9eeccf872c3
|
|
| BLAKE2b-256 |
98a6e916d17358fa477db07c1f4967d2442d0d9bed4b91b66f1b4568e4a9912a
|