Skip to content

Commit

Permalink
docs: add document detailing release strategy for libraries
Browse files Browse the repository at this point in the history
Signed-off-by: Nathan Weinberg <[email protected]>
  • Loading branch information
nathan-weinberg committed Aug 1, 2024
1 parent fa76420 commit fd761bd
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions docs/library-release-strategy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Library Release Strategy for InstructLab

This document describes the overarching release strategy and policies for Python libraries in the InstructLab organzation.

## Background and Problem Statement

Check failure on line 5 in docs/library-release-strategy.md

View workflow job for this annotation

GitHub Actions / markdown-lint

Headings should be surrounded by blank lines

docs/library-release-strategy.md:5 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Background and Problem Statement"] https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md022.md
The InstructLab organization features multiple code repositories that are tagged and released as Python libraries.
Primarily this has been the [CLI repository](https://github.com/instructlab/instructlab) but has grown over time,
including but not limited to:

- [sdg](https://github.com/instructlab/sdg)
- [training](https://github.com/instructlab/training)
- [eval](https://github.com/instructlab/eval)
- [schema](https://github.com/instructlab/schema)
- [GPTDolomite](https://github.com/instructlab/GPTDolomite)
- [instructlab-quantize](https://github.com/instructlab/instructlab-quantize)

You can see the published versions of these libraries on PyPI [here](https://pypi.org/search/?q=instructlab).

While these libraries are all owned and maintained by the InstructLab organization, only the CLI has an official
[release strategy](https://github.com/instructlab/instructlab/blob/main/docs/release-strategy.md) documented. Other library
releases have been handled directly by the Maintainer teams at their own discretion. The organization needs to have certain
overarching principals around this topic, while still allowing for flexibility for each library on case-by-case basis.

## Proposal

Check failure on line 24 in docs/library-release-strategy.md

View workflow job for this annotation

GitHub Actions / markdown-lint

Headings should be surrounded by blank lines

docs/library-release-strategy.md:24 MD022/blanks-around-headings Headings should be surrounded by blank lines [Expected: 1; Actual: 0; Below] [Context: "## Proposal"] https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md022.md
By default, each existing and new library should have the following a `release-strategy.md` aligned with the CLI doc. This proposal recognizes that certain libraries may need flexibility
on case-by-case basis - therefore, Maintainer teams are empowered to modify these documents as they see fit, so long as the
following tenants remain consistent:
1. Packages **must** be named `instructlab-<package-name>`

Check failure on line 28 in docs/library-release-strategy.md

View workflow job for this annotation

GitHub Actions / markdown-lint

Lists should be surrounded by blank lines

docs/library-release-strategy.md:28 MD032/blanks-around-lists Lists should be surrounded by blank lines [Context: "1. Packages **must** be named ..."] https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md032.md
1. Packages **must** follow the `X.Y.Z` numbering scheme
1. Packages **must** have GitHub tagged releases named `v.X.Y.Z`
1. Packages **must** use release branches for Y-Streams.
1. Packages **must** maintain a `CHANGELOG.md`
1. Maintainer teams **must** publically communicate releases through official InstructLab channels such as Slack or Mailing Lists

0 comments on commit fd761bd

Please sign in to comment.