Skip to main content

ITW Python Builder

Standardized Django deployment pipeline with Docker, testing, SonarQube integration, automatic changelog generation, and code quality enforcement.

Features

  • Automated deployment with semantic versioning
  • Docker/Podman-based build and push pipeline
  • Automated testing with coverage
  • SonarQube static code analysis
  • Pylint linting with SonarQube integration
  • Quality gates - deploy only when tests pass
  • Automatic changelog generation from commit trailers
  • Support for local and production pipelines
  • Global CLI tool
  • Automatic venv detection per project

Installation

pip install itw-python-builder

Install globally (outside any project venv). The itw command becomes available system-wide.

Quick Start

  1. Navigate to your Django project directory (must have a .venv or venv):

  2. Initialize versioning:

itw tag-init
  1. Run local pipeline:
itw pipelinelocal
  1. Deploy to staging:
itw incrementrc
  1. Deploy to production:
itw incrementpatch

Available Commands

Deployment Commands

  • itw incrementpatch — Increment patch version and deploy
  • itw incrementminor — Increment minor version and deploy
  • itw incrementmajor — Increment major version and deploy
  • itw incrementrc — Increment release candidate (staging)
  • itw release — Promote RC to stable release (master)

Local Development Commands

  • itw pipelinelocal — Run full local pipeline (lint → test → analyze → build)
  • itw lintlocal — Run pylint with human-readable output
  • itw lint — Run pylint and generate SonarQube report files
  • itw buildlocal — Build Docker image locally
  • itw testlocal — Run tests locally
  • itw analyzelocal — Run SonarQube analysis locally
  • itw changelog — Generate changelog manually
  • itw tag-init — Initialize version tagging

Skip Pipeline

itw incrementpatch --skip-pipeline

Virtual Environment Detection

itw is installed globally but automatically detects the project's virtual environment (.venv or venv) in the current directory. Tasks that need Python/Django dependencies (test, lint, analyze) activate the venv automatically — no need to manually activate it.

If no venv is found, those tasks will error with a clear message. Tasks that only use git (like changelog, tag-init, buildlocal) work without a venv.

Linting

The pipeline runs pylint automatically on every deployment and generates report files for SonarQube. The .pylintrc configuration is shipped with the package — no config files needed in your project.

# Review issues with human-readable output
itw lintlocal

# Generate report files for SonarQube
itw lint

Add this to your sonar-project.properties:

sonar.python.pylint.reportPaths=pylint-report.txt

Changelog Generation

Changelog entries are generated automatically on every deployment based on commit messages. To categorize a commit, add a Changelog: trailer to the commit body:

add user authentication

Changelog: added

Available categories: added, fixed, changed, deprecated, removed, security, performance, tests, docs, refactor

Commits without a trailer appear under Other Changes. The CHANGELOG.md file is committed and pushed automatically with each deployment.

Requirements

  • Python 3.10+
  • Podman
  • Git
  • SonarQube server

Configuration

Environment Variables

Add to your project .env:

SONAR_HOST_URL=https://your-sonar-server
SONAR_TOKEN=your-token
GIT_DEPTH=0

Project Files Required

  • Git repository with develop, staging, and master branches
  • VERSION file in project root
  • Dockerfile
  • sonar-project.properties

License

MIT

Metadata

Release files for itw-python-builder 0.2.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for itw-python-builder 0.2.12
File Size Uploaded
itw_python_builder-0.2.12.tar.gz 39.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for itw-python-builder 0.2.12
File Interpreter ABI Platform
itw_python_builder-0.2.12-py3-none-any.whl Python 3 none any Details

Total release size: 81.4 kB

Release files / itw_python_builder-0.2.12.tar.gz

Download URL itw_python_builder-0.2.12.tar.gz
Size 39.4 kB
Tags Source
SHA-256 checksum
How to use checksums
078c38e2936761352b646c6768dc8f1ce361e5b821156d2add8aa61665df6d5b
BLAKE2b-256 checksum
How to use checksums
649b3ee0e5c397a4447adf69a8aa9f7a8ada7c978a54af2ef21a8244fc58b633
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / itw_python_builder-0.2.12-py3-none-any.whl

Download URL itw_python_builder-0.2.12-py3-none-any.whl
Size 42.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
07aaeb0814c1aaba1608c373d5fafde2868583d91c60a74959cdb8800318dda1
BLAKE2b-256 checksum
How to use checksums
ce8636536e118d96ada594302c59e5ed40813b82b48596f3f5f7e75680267d6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

0.2.15

2 release files

This release

0.2.12 This release

2 release files

0.2.11

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.52

2 release files

0.1.51

2 release files

0.1.50

2 release files

0.1.49

2 release files

0.1.48

2 release files

0.1.47

2 release files

0.1.46

2 release files

0.1.45

2 release files

0.1.44

2 release files

0.1.43

2 release files

0.1.42

2 release files

0.1.41

2 release files

0.1.40

2 release files

0.1.39

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.29

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page