moderntribe/tribe-libs

现代Tribe服务项目使用的库。

4.2.1 2023-03-07 16:37 UTC

README

Tribe Libs是Modern Tribe为Square One基于WordPress项目创建的库集合。它是Square One核心插件所必需的。

版本

安装

composer require moderntribe/tribe-libs

用法

所有使用文档都位于Square One仓库中。

支持

Tribe Libs的使用不得到Modern Tribe的主动支持(除非是客户合同)。欢迎提交拉取请求和建议,并将根据业务需求进行回应。

发布流程

此库包含大量小型库,可以全部或部分包含在Square One项目中。这些库遵循monorepo模式进行开发。所有更改都提交到该项目。维护各个包使用Monorepo Builder工具。

发布新版本

重要:子仓库中必须已经存在分支,如果不存在,请使用创建子仓库分支GitHub工作流程来创建它们。

  1. 确保所有发布代码都已合并到与发布号匹配的分支中,例如,如果您计划发布更新4.1.0,则该代码应位于4.x分支中。如5.2.6这样的发布应位于5.x分支中。
  2. 确保所有发布更新都已记录在CHANGELOG.md中的## Unreleased下。
  3. 运行发布脚本,输入发布版本号(格式:<major>.<minor>.<patch>):4.x发布的干运行示例
    git checkout 4.x && git pull && ./monorepo.sh release 4.1.0 --dry-run
    4.x发布的真实发布示例
    git checkout 4.x && git pull && ./monorepo.sh release 4.1.0
  4. 脚本将为您自动处理几个步骤
    1. 将任何包相互依赖设置为新的版本。
    2. CHANGELOG.md中使用适当版本号更新。
    3. 创建git标签并将其推送到GitHub,标签针对已签出的分支。
    4. 当前签出的分支的版本升级到下一个版本号
  5. 当标签推送到GitHub时,那里的Action将自动拆分monorepo并将标签部署到所有包仓库。注:GH Action将以具有适当权限写入所有包仓库的bot用户运行。(那些仓库在常规使用中是只读的。)

添加包

  1. src中为包创建一个新目录。在那里创建您的代码,包括一个独立的composer.json包(您可以复制示例),并将其提交到tribe-libs。
  2. 为包创建一个空公共GitHub仓库(您可能需要成为组织管理员才能完成此步骤)。遵循命名约定moderntribe/square1-*。确保用户tr1b0t有权写入仓库。使用脚本dev/monorepo/scripts/create-package-repo.sh自动创建仓库并添加用户tr1b0t
    ./dev/monorepo/scripts/create-package-repo.sh square1-my-new-repo
  3. 添加单个提交(一个空的README文件也可以)并将其推送到远程。
  4. 运行创建子仓库分支GitHub工作流程以创建任何缺失的版本分支,例如master4.x5.x等...
  5. 运行脚本来合并包的composer.json文件到根目录下的composer.json文件
    ./monorepo.sh merge
  6. 在下一个版本发布后,在Packagist上注册包。

添加Composer依赖项

  1. 将依赖项添加到需要它的子包的composer.json文件中。
  2. 运行merge命令将依赖项合并到根目录的composer.json
    ./monorepo.sh merge

更新开发版本

您很少需要这样做,但这里记录了以备不时之需。

  1. 为所有包设置master分支别名
    ./monorepo.sh set-alias 5.0
  2. 将包之间的内部依赖关系提升到相同版本。
    ./monorepo.sh bump-interdependency "^5.0"