A build tool to pick cherry, bake release branches, and power label-driven development
Project description
# Cherry Tree
<img src="https://i.imgur.com/QGyxImm.jpg" title="Cherry Tree" width="250" />
Cherry Tree is a set of tools that were originally designed to help
build releases for
[Apache Superset](https://github.com/apache/incubator-superset),
but can be use for any other project
that wants to implement a similar workflow.
Ideas behind `cherrytree` include:
* Baking and storing release metadata in static, deterministic config files
* Github label driven development / releases
* Make release files from specifying base reference and Github labels
* Bake release branches/SHAs from said config files
* Follow a base reference + cherries approach
## An example build file
`cherrytree` offers tooling to both:
1. generate a "bake file" from a base git reference along with a set of tagged PRs
2. craft a branch in a target repo from a "bake file"
Here's an example "bake file":
```hocon
// this is a Hocon formatted file,
// learn more about hocon here https://github.com/lightbend/config/blob/master/HOCON.md
{
id = "lyft.28.0rc4.1"
base_ref = 0.28.0rc4
source_repos = [
'https://github.com/apache-superset/cherrytree',
'https://github.com/some_fork/cherrytree',
]
cherries = [
[5e6efae15563036d98aa9a13affcef38c6957cb1, "Some SHA from either repos above"],
]
}
```
The format is `hocon`, which is yet another [bet much better] markup language.
<img src="https://i.imgur.com/QGyxImm.jpg" title="Cherry Tree" width="250" />
Cherry Tree is a set of tools that were originally designed to help
build releases for
[Apache Superset](https://github.com/apache/incubator-superset),
but can be use for any other project
that wants to implement a similar workflow.
Ideas behind `cherrytree` include:
* Baking and storing release metadata in static, deterministic config files
* Github label driven development / releases
* Make release files from specifying base reference and Github labels
* Bake release branches/SHAs from said config files
* Follow a base reference + cherries approach
## An example build file
`cherrytree` offers tooling to both:
1. generate a "bake file" from a base git reference along with a set of tagged PRs
2. craft a branch in a target repo from a "bake file"
Here's an example "bake file":
```hocon
// this is a Hocon formatted file,
// learn more about hocon here https://github.com/lightbend/config/blob/master/HOCON.md
{
id = "lyft.28.0rc4.1"
base_ref = 0.28.0rc4
source_repos = [
'https://github.com/apache-superset/cherrytree',
'https://github.com/some_fork/cherrytree',
]
cherries = [
[5e6efae15563036d98aa9a13affcef38c6957cb1, "Some SHA from either repos above"],
]
}
```
The format is `hocon`, which is yet another [bet much better] markup language.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cherrytree-0.1.0.tar.gz
(5.5 kB
view details)
File details
Details for the file cherrytree-0.1.0.tar.gz
.
File metadata
- Download URL: cherrytree-0.1.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.2 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c716307c7a7b4395b5c6e6e2c4b36d0c5ec3938f326562a53c4615b7ae706b5c |
|
MD5 | 081de6caf9b30971e80bdce0577baaab |
|
BLAKE2b-256 | b2ee23ad50fe64f6536d8923fa06c137e11ef005c50a34f1d076e2090cc4a255 |