用于选择樱桃、烘焙发布分支和驱动基于标签的开发的构建工具
项目描述
Cherry Tree
Cherry Tree 是一组最初设计用来帮助构建 Apache Superset 发布的工具,但也可以用于任何其他希望实现类似工作流程的项目。
cherrytree
背后的想法包括
- GitHub 标签驱动开发/发布
- 通过指定基本引用和 GitHub 标签来制作发布
- 按正确顺序应用樱桃
- 遵循基本引用 + 樱桃方法
一个示例构建文件
cherrytree
为以下提供工具
- 在烘焙发布前验证所有樱桃是否干净地应用
- 从“烘焙文件”在目标仓库中创建一个分支
这里有一个例子
$ cherrytree bake -r apache/superset -l v1.3 1.3
🍒🌳🍒 CherryTree
Running in dryrun mode, all changes will be rolled back
Base ref is 69c5cd792296167d503403455b7e434fb3fedcd6
2090 commits skipped due to missing PRs
Fetching labeled PRs: "v1.3" (113 labels found)
113 PRs found
Fetching all branches
Checking out base branch: 1.3
Recreating and checking out temporary branch: __tmp_branch
skip-applied #16233: fix(dashboard): cross filter chart highlight when filters badge ic...
apply-ok #16193: refactor: external metadata fetch API [DRY-RUN]
skip-applied #16251: chore: bump superset-ui packages to 0.17.84
skip-applied #16253: fix: Homepage dashboard examples tab does not show user created ob...
skip-applied #16259: fix: pivot columns with ints for name
skip-applied #16260: fix: check roles before fetching reports
apply-ok #16293: fix(sqlite): week grain refer to day of week [DRY-RUN]
apply-ok #16167: feat: Adding Rockset db engine spec [DRY-RUN]
apply-ok #16369: fix: call external metadata endpoint with correct rison object [DRY-RUN]
apply-ok #16299: fix: copy to Clipboard order [DRY-RUN]
apply-ok #16416: feat: add Shillelagh DB engine spec [DRY-RUN]
apply-ok #16460: fix(native-filters): handle null values in value filter [DRY-RUN]
apply-ok #16464: fix: prevent page crash when chart can't render [DRY-RUN]
apply-ok #16468: fix(native-filters): handle undefined control value gracefully [DRY-RUN]
apply-ok #16515: fix: Pin snowflake-sqlalchemy to 1.2.4 [DRY-RUN]
apply-ok #16372: fix: ensure setting operator to `None` (#16371) [DRY-RUN]
apply-ok #16526: fix: Set correct comparison operator for snowflake-sqlalchemy pinning [DRY-RUN]
apply-ok #16482: fix: can't drop column when name overlap [DRY-RUN]
apply-ok #16412: fix: Support Jinja template functions in global async queries [DRY-RUN]
apply-ok #16573: fix: impersonate user label/tooltip [DRY-RUN]
apply-ok #16594: feat: Experimental cross-filter plugins [DRY-RUN]
apply-ok #16592: fix: Remove export CSV in old filter box [DRY-RUN]
Summary:
0 successful cherries
17 dry-run cherries
可用选项
cherrytree bake --help
🍒🌳🍒 CherryTree
Usage: cherrytree bake [OPTIONS] RELEASE_BRANCH
Applies cherries to release
Options:
-t, --target-branch TEXT target branch for baking. Leave empty for
dry run
-m, --main_branch TEXT name of branch containing cherries, usually
`master` or `main`
-r, --repo TEXT The name of the main repo. Example:
apache/superset [required]
-l, --label TEXT Name of label to use for cherry picking.
Supports multiple labels, e.g. `-l Label1 -l
Label2`
-b, --blocking-label TEXT Name of labels to block cherry picking
operation. Supports multiple labels, e.g.
`-b Blocker1 -b Blocker2`
-pr, --pull-request TEXT Pull request id to add to list of cherries
to pick. Supports multiple ids, e.g. `-pr
1234 -pr 5678`
-nd, --no-dryrun Should cherries be committed to target
branch
-e, --error-mode [break|dryrun|skip]
What to do in case of an error. `skip` skips
conflicted cherries, `dryrun` reverts to
dryrun for subsequent prs and `break` stops
cherry picking. [default: skip]
-f, --force-rebuild-target Forcefully remove target branch before
applying cherries. Only relevant when using
`--target-branch`
-at, --access-token TEXT GitHub access token. If left undefined, will
use the GITHUB_TOKEN environment variable
--help Show this message and exit.