release-notes

command module
v0.0.0-...-798368f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 3, 2018 License: Apache-2.0 Imports: 13 Imported by: 0

README

Kubernetes Release Notes Generator

This repo contains a tool called release-notes and a set of library utilities at which aim to provide a simple and extensible set of tools for fetching, contextualizing, and rendering release notes for the Kubernetes repository.

Install

The simplest way to install the release-notes CLI is via go get:

go get github.com/marpaia/release-notes

This will install release-notes to $GOPATH/bin/release-notes. If you're new to Go, $GOPATH default to ~/go, so look for the binary at ~/go/bin/release-notes.

Usage

To generate release notes for a commit range, run:

$ export GITHUB_TOKEN=a_github_api_token
$ release-notes \
  -start-sha d0a17cb4bbdf608559f257a76acfaa9acb054903 \
  -end-sha   91e7b4fd31fcd3d5f436da26c980becec37ceefe
level=info msg="fetching all commits. this might take a while..."
level=info msg="got the commits, performing rendering"
level=info msg="release notes markdown written to file" path=/var/folders/wp/6fkmvjf11gv18tdprv4g2mk40000gn/T/release-notes-048706664

You can also generate the raw notes data into JSON. You can then use a variety of tools (such as jq) to slice and dice the output:

[
  {
    "text": "fixed incorrect OpenAPI schema for CustomResourceDefinition objects",
    "author": "liggitt",
    "author_url": "https://github.com/liggitt",
    "pr_url": "https://github.com/kubernetes/kubernetes/pull/65256",
    "pr_number": 65256,
    "kinds": [
      "bug"
    ],
    "sigs": [
      "api-machinery"
    ]
  }
]

Helpers also exist in the Makefile to assist in the generation of well-known commit ranges. For example:

$ make 1.13

[+] fetching the latest commit information...
[+] generating notes
./release-notes \
		-start-sha="ad58349f7455a9ae8bb633e93ba0902a5cd6bc65" \
		-end-sha="3abb9f0ad7fd27a52679e395e73a62bebefea6fe"
level=info msg="fetching all commits. this might take a while..."
level=info msg="got the commits, performing rendering"
level=info msg="release notes written to file" path=/var/folders/wp/6fkmvjf11gv18tdprv4g2mk40000gn/T/release-notes-798948795 format=markdown

Building From Source

To build the release-notes tool, check out this repo to your $GOPATH:

git clone git@github.com:marpaia/release-notes.git $GOPATH/src/github.com/marpaia/release-notes

Run the following from the root of the repository to install dependencies:

make deps

Run the following from the root of the repository to build the release-notes binary:

make build

Use the -h flag for help:

./release-notes -h

Install the binary into your path:

cp ./release-notes /usr/local/bin/release-notes

FAQ

What do generated notes look like?

Check out the rendering of 1.11's release notes here.

Why formats are supported?

Right now the tool can output release notes in Markdown and JSON.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL