easy-release-automation
ERA is an open-source tool designed to automatically tag multiple repositories.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.6%) to scientific vocabulary
Repository
ERA is an open-source tool designed to automatically tag multiple repositories.
Basic Info
Statistics
- Stars: 5
- Watchers: 3
- Forks: 5
- Open Issues: 6
- Releases: 0
Metadata Files
README.md
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-automationCLI 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:
```bash Main branch (Merge Commit from stable into main) │ ├─ chore: :wastebasket: ERA: Preparation for merging back into main with the plugin(s): changelogunreleasedsetter
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:
- Building and deploying a package from the source code.
- Integrating manual testing during the release process.
- 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:
```mermaid 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:
- ERA is supported on Ubuntu 20.04 or higher and on WSL2.
- ERA was tested on Ubuntu 20.04 and on WSL2 on Windows machines.
- ERA is not tested on native Windows machines.
Owner
- Name: Ingenics Digital GmbH
- Login: IngenicsDigital
- Kind: organization
- Email: info@ingenics-digital.com
- Location: Gräfelfing, Deutschland
- Website: https://www.ingenics-digital.com
- Repositories: 1
- Profile: https://github.com/IngenicsDigital
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it using these metadata."
title: "Easy Release Automation"
version: 0.1.0
date-released: TODO-update-for-release 0.1.0
license: "MIT"
copyright: "Copyright (c) 2024 Ingenics Digital GmbH"
authors:
- family-names: "Kauschke"
given-names: "David"
- family-names: "Seibold"
given-names: "Claus"
GitHub Events
Total
- Issues event: 2
- Watch event: 2
- Push event: 3
- Pull request review event: 1
- Pull request event: 4
- Fork event: 2
- Create event: 1
Last Year
- Issues event: 2
- Watch event: 2
- Push event: 3
- Pull request review event: 1
- Pull request event: 4
- Fork event: 2
- Create event: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 12
- Total pull requests: 19
- Average time to close issues: 22 days
- Average time to close pull requests: 10 days
- Total issue authors: 3
- Total pull request authors: 4
- Average comments per issue: 0.42
- Average comments per pull request: 0.42
- Merged pull requests: 16
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 3
- Pull requests: 8
- Average time to close issues: 7 days
- Average time to close pull requests: 4 days
- Issue authors: 2
- Pull request authors: 3
- Average comments per issue: 0.0
- Average comments per pull request: 0.5
- Merged pull requests: 8
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- kauschked (6)
- csSei (5)
- dansel-idg (1)
Pull Request Authors
- kauschked (11)
- csSei (4)
- dansel-idg (2)
- wgemm (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 53 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
- Total maintainers: 2
pypi.org: easy-release-automation
Easy-Release-Automation for Multi-Package-Versioning.
- Homepage: https://github.com/IngenicsDigital/easy-release-automation
- Documentation: https://easy-release-automation.readthedocs.io/
- License: MIT License
-
Latest release: 0.1.0
published over 1 year ago
Rankings
Dependencies
- actions/checkout v4 composite
- GitPython ==3.1.43
- pip ==24.0
- pip-tools ==7.4.1
- pydantic ==2.7.1
- pyyaml >=6.0
- ruamel.yaml ==0.18.6
- tomlkit ==0.12.5
- annotated-types ==0.6.0 test
- attrs ==22.1.0 test
- black ==24.4.2 test
- build ==1.2.1 test
- cachetools ==5.3.3 test
- chardet ==5.2.0 test
- click ==8.1.3 test
- colorama ==0.4.6 test
- coverage ==6.5.0 test
- deepdiff ==7.0.1 test
- distlib ==0.3.8 test
- entrypoints ==0.4 test
- filelock ==3.14.0 test
- flake8 ==3.8.0 test
- flakehell ==0.9.0 test
- gitdb ==4.0.9 test
- gitpython ==3.1.43 test
- iniconfig ==1.1.1 test
- license-header-check ==0.2.1 test
- mccabe ==0.6.1 test
- mypy ==1.3.0 test
- mypy-extensions ==1.0.0 test
- ordered-set ==4.1.0 test
- packaging ==24.0 test
- pathspec ==0.10.1 test
- pip-tools ==7.4.1 test
- platformdirs ==4.2.1 test
- pluggy ==1.5.0 test
- py ==1.11.0 test
- pycodestyle ==2.6.0 test
- pydantic ==2.7.1 test
- pydantic-core ==2.18.2 test
- pyflakes ==2.2.0 test
- pygments ==2.13.0 test
- pyproject-api ==1.6.1 test
- pyproject-hooks ==1.1.0 test
- pytest ==7.1.2 test
- pytest-cov ==2.12.1 test
- pytest-html ==3.1.1 test
- pytest-metadata ==2.0.2 test
- pytest-mock ==3.1.1 test
- pyyaml ==6.0 test
- ruamel-yaml ==0.18.6 test
- ruamel-yaml-clib ==0.2.7 test
- smmap ==5.0.0 test
- toml ==0.10.2 test
- tomli ==2.0.1 test
- tomlkit ==0.12.5 test
- tox ==4.15.0 test
- typing-extensions ==4.11.0 test
- urllib3 ==1.26.12 test
- virtualenv ==20.26.1 test
- wheel ==0.37.1 test
- annotated-types ==0.6.0
- build ==1.0.3
- click ==8.1.7
- gitdb ==4.0.10
- gitpython ==3.1.43
- importlib-metadata ==7.1.0
- packaging ==23.1
- pip-tools ==7.4.1
- pydantic ==2.7.1
- pydantic-core ==2.18.2
- pyproject-hooks ==1.0.0
- pyyaml ==6.0.1
- ruamel-yaml ==0.18.6
- ruamel-yaml-clib ==0.2.8
- smmap ==5.0.1
- tomli ==2.0.1
- tomlkit ==0.12.5
- typing-extensions ==4.11.0
- wheel ==0.41.2
- zipp ==3.18.1
- actions/checkout v4 composite
- webfactory/ssh-agent v0.9.0 composite