-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: add document detailing release strategy for libraries
Signed-off-by: Nathan Weinberg <[email protected]>
- Loading branch information
1 parent
fa76420
commit fd761bd
Showing
1 changed file
with
34 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 GitHub Actions / markdown-lintHeadings should be surrounded by blank lines
|
||
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 GitHub Actions / markdown-lintHeadings should be surrounded by blank lines
|
||
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 GitHub Actions / markdown-lintLists should be surrounded by blank lines
|
||
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 | ||
|