cdapio / release-tools

1 stars 3 forks source link

CDAP Release Tools

Prerequisites

Ensure you have the following components installed before proceeding:

Introduction

This repository contains tools for automating the tedious and error-prone tasks that are a part of CDAP OSS Release. So far the following processes have be automated:

  1. Bumping of artifact versions before and after release
  2. Generating Release Notes from JIRA tickets
  3. Collecting copyright licenses for third-party dependencies

Each automated process has a section that outlines how to use the scripts and the expected results

Bump Versions

The modifyVersions script automatically bumps versions in release branches across all repos listed in repos.txt and creates PRs against those branches for review. The script is most autonomous except for when it encounters an error, at which point it will confirm with the user what the correct path forward is. Examples of errors that require user intervention:

Usage

The script expects two arguments:

modifyVersions.py [version] {remove_snapshot, bump_to_snapshot, update_submodules}

Generate Release Notes

The generateReleaseNotes script automatically extracts Release Notes from all JIRA tickets targeted for this release and compiles the result into a reStructuredText file (.rst). A small example of the generated rst file can be seen below:


New Features
------------
- `CDAP-16690 <https://issues.cask.co/browse/CDAP-16690>`_ - Added revamped preview tab with new Record view for large schemas.
Improvements
------------
- `CDAP-16668 <https://issues.cask.co/browse/CDAP-16668>`_ - Adding support for creating autoscale dataproc cluster.
- `CDAP-16682 <https://issues.cask.co/browse/CDAP-16682>`_ - When backend is slow to respond to requests from UI, we now show a snackbar saying there's a delay.

Bug Fixes
---------
- `CDAP-12499 <https://issues.cask.co/browse/CDAP-12499>`_ - Clarified error message for when branches of a conditional are used as inputs to the same node.

Usage

The script expects two argument with one optional flag:

generateReleaseNotes.py [version] [username] [--output OUTPUT]

Collecting Third-Party Copyright Licenses

The generateLicenses script automatically collects third-party dependency copyright licenses and creates a PR against the cdap repository to place them in the COPYRIGHT folder. This script does not guarantee that all licenses will be automatically collected, it is a best-effort approach. The script generates two summary files:

Usage

The script expects one argument with one optional flag:

generateLicenses.py [version] [--output-path OUTPUT_PATH]