Skip to main content

Modular Pypeline Library

build-and-test-module coverage publish-documentation Checked with mypy

linting: pylint Code style: black

version python package downloads mpyl

What is MPyL?

MPyL stands for Modular Pipeline Library (in Python).

This library is loosely based on the principles described in https://www.jenkins.io/blog/2019/01/08/mpl-modular-pipeline-library/ but completely independent of Jenkins or any other CI/CD platform.

🔖 Documentation

Detailed, complete, searchable documentation can be found at https://vandebron.github.io/mpyl

📚 Principles

MPyL is built with the following principles in mind.

  • Not a platform It is not tied to any CI/CD platform. MPyL is a library, not a framework. It is not a runner, not a scheduler, and it doesn't have a GUI. It can be plugged into any CI/CD platform. Execution flows for Jenkins or Dagster are included as an example.
  • Minimal footprint: It is self-contained and has very few external dependencies (e.g. Git, Docker). It can be run anywhere, also on your local machine.
  • Accessible and maintainable
    • Written in Python, the most widely adopted scripting language with an extensive amount of client libraries relevant to CI/CD.
    • Strongly typed: MyPy type hints and schemas for all YAML files. Clearly defined interfaces for inputs and outputs of steps.
    • Focus on short feedback loop. Unit testable and everything can be run locally.
  • Self documented by docstrings in the code, descriptions in the schemas and explanations in the CLI.
  • Python as YAML templating engine Attempts to mix markup and logic tend to have a worst of both worlds outcome. MPyL uses YAML strictly for configuration. Where YAML needs to produced dynamically, like for CRDs via HELM charts, it is generated by Python code. The produced YAML is validated against the corresponding schemas.
  • Extensible Support for the most common use cases (e.g. Docker, Helm, Kubernetes, AWS, etc.) is built-in. But it is easy to extend with your own mpyl.steps.

💻 Technologies

Requirements

The following technologies are expected to be present on the local OS:

Bundled

MPyL is extensible and has a minimal footprint. Having said that, batteries for the following technologies are included.

CI/CD
Build
  • Docker mpyl.steps.build.dockerbuild
  • Scala (SBT) mpyl.steps.build.sbt
  • Jenkins mpyl.cli.commands.build.jenkins and mpyl.utilities.jenkins.runner.JenkinsRunner
Testing
  • Junit mpyl.steps.models.ArtifactType.JUNIT_TESTS
Deployment
  • K8S mpyl.steps.deploy.kubernetes
  • Helm mpyl.steps.deploy.k8s.helm
Reporting
  • Jira mpyl.reporting.targets.jira
  • Github mpyl.reporting.targets.github
  • Slack mpyl.reporting.targets.slack

Metadata

Release files for mpyl 1.8.7

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

Built distribution (wheel)

Table of built distributions (wheels) for mpyl 1.8.7
File Interpreter ABI Platform
mpyl-1.8.7-py3-none-any.whl Python 3 none any Details

Release files / mpyl-1.8.7-py3-none-any.whl

Download URL mpyl-1.8.7-py3-none-any.whl
Size 254.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8e197606309142aac005c08b6ba1bcdcf614b9539a0c0d5b1b219369c8cc41b
BLAKE2b-256 checksum
How to use checksums
c45f96417e72e853839f163b32b645961942d3c9b06acecc4fcd5ec266f5a84c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.10

Release history Release notifications | RSS feed

This release

1.8.7 This release

1 release file

1.8.6

1 release file

1.8.5

1 release file

1.8.4

1 release file

1.8.3

1 release file

1.8.2

1 release file

1.8.1

1 release file

1.8.0

1 release file

1.7.6

1 release file

1.7.5

1 release file

1.7.4

1 release file

1.7.3

1 release file

1.7.2

1 release file

1.7.1

1 release file

1.7.0

1 release file

1.6.11

1 release file

1.6.10

1 release file

1.6.9

1 release file

1.6.8

1 release file

1.6.7

1 release file

1.6.6

1 release file

1.6.5

1 release file

1.6.4

1 release file

1.6.3

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.6.0

1 release file

1.5.1

1 release file

1.5.0

1 release file

1.4.20

1 release file

1.4.19

1 release file

1.4.18

1 release file

1.4.17

1 release file

1.4.16

1 release file

1.4.15

1 release file

1.4.14

1 release file

1.4.13

1 release file

1.4.12

1 release file

1.4.11

1 release file

1.4.10

1 release file

1.4.9

1 release file

1.4.8

1 release file

1.4.7

1 release file

1.4.6

1 release file

1.4.5

1 release file

1.4.4

1 release file

1.4.3

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.0

1 release file

1.0.10

1 release file

1.0.9

1 release file

1.0.8

1 release file

1.0.7

1 release file

1.0.6

3 release files

1.0.5

3 release files

1.0.4

3 release files

1.0.3

3 release files

1.0.2

3 release files

1.0.1

3 release files

1.0.0

3 release files

0.0.25

3 release files

0.0.24

3 release files

0.0.22

3 release files

0.0.21

3 release files

0.0.20

3 release files

0.0.19

3 release files

0.0.18

3 release files

0.0.17

3 release files

0.0.15

3 release files

0.0.14

3 release files

0.0.12

3 release files

0.0.11

3 release files

0.0.10

3 release files

0.0.9

3 release files

0.0.8

3 release files

0.0.7

3 release files

0.0.6

3 release files

0.0.5

3 release files

0.0.3

3 release files

0.0.2

3 release files

0.0.1

3 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