25 个版本 (7 个稳定版)

1.3.0 2024 年 3 月 30 日
1.1.5 2023 年 12 月 26 日
0.7.0 2022 年 3 月 8 日
0.6.1 2021 年 11 月 28 日
0.3.2 2021 年 1 月 24 日

#128 in 构建实用工具

Download history 3/week @ 2024-05-20

每月 1,033 次下载

MIT 许可证

58KB
1K SLoC

概述

帕里吉特是一个 Git 工作流程实用工具,灵感来源于 git-flow 和 git-flow-avh。

等等?

git-flow 是一个工具,最初作为 2010 年这篇文章的后续作品发布,对开发者来说非常有吸引力。 git-flow 允许您相对轻松地完成发布/功能周期中的各个阶段,这非常好。

为什么是帕里吉特?

虽然 git-flow 很好,但它并不完美。首先,它存在各种可用性问题,其中一些问题已被 git-flow-avh 分支项目解决。更重要的是,对于某些类型的项目,发布和管理版本仍然需要进行大量手动操作。这就是帕里吉特介入的地方。

帕里吉特旨在成为 git-flow 的有见地替代方案,同时提供更好的自动化,以处理繁琐的部分。

主要功能

  • 原子发布 - 当尝试发布一个与上游仓库冲突的发布时,像 git-flow 这样的工具会失败,并留下一个半发布的发布。帕里吉特通过干净地回滚发布并删除临时标签来解决这个问题。
  • 项目内部版本逻辑 - 帕里吉特包括预发布检查,旨在最大限度地减少痛苦和错误。对于 Rust 项目,它检查 Cargo.lock 正确性,为您执行版本升级,并提示您在多 crate 工作区中选择要升级的项目。
  • 合理的默认设置 - pargit旨在使流程合理,在可能的情况下推断参数,并使用合理的默认值来处理项目工作流程。与git-flow不同,pargit在发布版本时不会两次提示你输入提交信息 🤦‍♂️

快速入门

安装

$ cargo install --locked pargit

特性

Pargit默认从develop分支创建功能分支。要开始一个新功能

# starts a new feature, and places you in the feature/my_feature branch
$ pargit feature start my_feature 
# deletes a feature (defaults to the current one)
$ pargit feature delete [feature name] 
# publishes a feature branch to a matching remote branch, setting its upstream (defaults to the current feature)
$ pargit feature publish [feature name]

发布

# Start a new release from the develop branch
$ pargit release start 0.1.0
# Alternatively, you can tell pargit to bump a patch, minor or major version numbers
$ pargit release start minor
# You can publish a release branch to a remote branch, setting its upstream
$ pargit release publish [release name]
# When you're done, finish the release
$ pargit release finish [release name]

Pargit还支持快速版本发布,它会连续为您执行版本发布步骤

$ pargit release version 0.2.0

或者,您可以指定主要/次要/补丁的升级

$ pargit release version major

配置

您可以通过在项目根目录中添加一个.pargit.toml文件来配置pargit,格式如下(所有值都是可选的)

tag_prefix = "" # prefix for tags, e.g. "v". Default is empty prefix

您还可以指定生产和开发分支的自定义名称。目前默认情况下,Pargit假设生产分支名称为master(但未来可能有所改变)

master_branch_name = "master" # optional
develop_branch_name = "develop" # optional

对于项目不在存储库根目录中的存储库,您可以设置项目子路径配置值

project_subpath = "./project"

依赖项

~19–30MB
~543K SLoC