Skip to content

Release Task Schedule Curator (ReTaSC) - Plans product release work in Jira based on schedules in Product Pages

License

Notifications You must be signed in to change notification settings

release-engineering/retasc

Repository files navigation

Coverage Status

Release Task Schedule Curator (ReTaSC)

ReTaSC is an app that plans product release work in Jira based on schedules in Product Pages (PP).

Introduction

ReTaSC is meant to run as a batch job regularly to monitor schedules in PP and create or update Jira issues according to custom rules and Jira templates.

ReTaSC manages the Jira issues it creates until resolved. This means that if a PP schedule or a rule changes, the related unresolved Jira issues are also updated or even closed.

Tasks and Rules

Tasks are objects managed by ReTaSC. Each Task is related to a specific Rule and a Product Release (an identifier in PP).

Rules describe how to manage related tasks using:

  • Prerequisites - PP schedule item name with number of days before/after the date, and list of other dependent Rules
  • Jira issue templates
  • Definition of Done (DoD) - currently, the only supported DoD is: "related Jira issues have been resolved"

Task state can be one of:

  • Missing (PP schedule is not defined yet)
  • Pending (some prerequisites and not satisfied)
  • In-progress (prerequisites are satisfied and DoD is not)
  • Completed (prerequisites and DoD is satisfied)

Environment Variables

Below is list of environment variables supported in the container image:

  • RETASC_LOGGING_CONFIG - Path to JSON file with the logging configuration; see details in Configuration dictionary schema
  • OTEL_EXPORTER_OTLP_TRACES_ENDPOINT - OpenTelemetry exporter endpoint; if unset (default), traces are not exported; for example: https://jaeger.example.com:4318/v1/traces
  • OTEL_EXPORTER_SERVICE_NAME - service name for OpenTelemetry; if unset (default), traces are not exported

Development

This section lists useful commands to help with ReTaSC development.

Install pre-commit locally:

pre-commit install

Creating a new commit or amending an existing commit may cause the pre-commit to fail. In many cases pre-commit automatically fixes formatting and you can run the command again:

> git commit --ammend --no-edit
...
autoflake................................................................Failed
- hook id: autoflake
- files were modified by this hook
...

> git commit --ammend --no-edit
...
autoflake................................................................Passed
...

Run tests and additional linters:

tox

Inspect specific test failure:

tox -e py3 -- --no-cov -lvvvvsxk test_init_tracing_with_valid_config

Install and run the app to virtualenv with Poetry:

poetry install
poetry run retasc --help

Clean up the virtualenv (can be useful after larger host system updates):

poetry env remove --all

About

Release Task Schedule Curator (ReTaSC) - Plans product release work in Jira based on schedules in Product Pages

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published