Skip to main content

Easy-Release-Automation for Multi-Package-Versioning.

Project description

ERA (Easy Release Automation)

Imagine reducing the time and complexity of managing multiple software releases to a single click. That's exactly what the ERA tool does - it streamlines the tagging of multiple interdependent repositories by integrating ERA into your CI pipeline or your local development environment.

This robust automation not only saves us over four hours per release but also simplifies our release process, crucial for software project with frequent monthly updates.

ERA is an open source Python tool crafted to enhance efficiency and convenience in handling multiple repository tags.

Table of Contents

Requirements

  • Windows Subsystem for Linux (WSL2)
  • Ubuntu Version 20.04 LTS or higher
  • Python Version 3.9 or higher

Quick Start Guide

Explore the ERA Getting Started For End Users. This hands-on tutorial will guide you through releasing ERA and then applying it to your own Git project, all within approximately one hour.

What is ERA?

  • ERA provides a easy-release-automation CLI entry point to release multiple repositories in your project.
  • ERA configures the release process for modification, validation and tagging according to a lightweight release-config.yml (see Release-Config Example).
  • During the release process:
    • ERA offers repository validation steps before a repository is tagged.
    • ERA offers repository modification steps before and after a repository is tagged.
    • ERA tags the repositories.
    • ERA pushes the updated and tagged branches to the remote repository.
  • ERA offers an existing set of versatile modification and validation plugins.
  • ERA offers customization by enabling you to create your own modification and validation plugins to meet specific requirements.

ERA automatically generates the following three commit messages for each repository during the release process:

    Main branch (Merge Commit from stable into main)
        ├─ chore: :wastebasket: ERA: Preparation for merging back into main with the plugin(s): changelog_unreleased_setter

    Stable branch (Commit for Tag 0.1.0)
        ├─ chore: :bookmark: ERA: Release-Commit for Version: 0.1.0

    Stable branch (Commit for modification based on defined plugins in release-config.yml)
        ├─ chore: :white_check_mark: ERA: Modification with the plugin(s): changelog_version_updater, yaml_updater
      and Validation with the plugin(s): validate_changelog 

What is ERA not?

ERA is not responsible for the following tasks:

  1. Building and deploying a package from the source code.
  2. Integrating manual testing during the release process.
  3. Testing created packages on end-devices or in cloud environment.

ERA Release With Continuous Integration

ERA is a practical tool that can be integrated into a Continuous Integration (CI) environment, such as GitHub, GitLab, or Azure pipelines. The following diagram illustrates a possible flow for integrating ERA into a CI pipeline within the Release With ERA step to ensure smooth and consistent tagging:

graph LR
    DevTeam(Dev Team) --> CodeRepo[Code Repository]

    CodeRepo --> CI_CD_Pipeline[CI/CD Pipeline]
    CI_CD_Pipeline --> BuildTests[Linting & Building & Testing]
    BuildTests --> Release[Release With ERA]
    Release --> Deployment[Deployment]
    style Release fill:#00ACA9

Diagram 1: ERA CI for Release Automation

Getting Started

Additional Documentation

FAQ

What Should I Know Before Using ERA?

  • Basics of using Git
  • Basics of GitFlow

Does ERA Natively Run On Windows?

ERA is primarily developed and used on Linux developer machines (see scripts/setup-era.sh) or in CI environment with Linux agents.

ERA operates in the following environments:

  1. ERA is supported on Ubuntu 20.04 or higher and on WSL2.
  2. ERA was tested on Ubuntu 20.04 and on WSL2 on Windows machines.
  3. ERA is not tested on native Windows machines.

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

easy_release_automation-0.1.0.tar.gz (672.1 kB view details)

Uploaded Source

Built Distribution

easy_release_automation-0.1.0-py3-none-any.whl (39.4 kB view details)

Uploaded Python 3

File details

Details for the file easy_release_automation-0.1.0.tar.gz.

File metadata

File hashes

Hashes for easy_release_automation-0.1.0.tar.gz
Algorithm Hash digest
SHA256 86858e626b6e129f2e77383db1e02f08cddeb7ec554cbc0a1354f0cfc451d35c
MD5 8efd488ed331c294c7f625e0ed4e3912
BLAKE2b-256 d8084632ad1aacddca0a577611028594cea1da8e843a0da4970c3e95b9aa2a9f

See more details on using hashes here.

File details

Details for the file easy_release_automation-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for easy_release_automation-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed84835bfb126f2d35e3764008a379ee866bee7f8e8f8607c1ef1d456f1ef376
MD5 936ba25318cac57896ee935113ccf083
BLAKE2b-256 d2bda4ab6fdd47993006a4256a5dc56508cc0387e611ccbf7f797f0749cf34d4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page