跳转到内容

新的拉取请求


针对 Phalcon 的拉取请求必须基于我们的主仓库cphalcon它是一组代码更改,这些更改:

  • 修复一个错误(当前问题)
  • 引入新的功能或增强。

您的拉取请求必须包括:

  • 确保目标分支正确。
  • 更新相关的CHANGELOG.md
  • 包含单元测试
  • 根据需要更新文档和使用示例
  • 您的代码必须遵守 Phalcon 使用的编码标准。对于 PHP 代码,我们使用PSR-12而对于 Zephir 代码,我们在仓库根目录提供了一个.editorconfig文件以帮助您遵循标准。

注意

我们不接受针对master分支

如果您的拉取请求与修复某个问题/错误相关,请在拉取请求正文中链接该问题编号。您可以利用我们在 GitHub 上的模板来展示此信息。如果问题不存在,请先创建一个。

对于新功能,我们需要先创建并引用一个问题。如果您引入的功能与 Phalcon 的理念和实现相冲突,该拉取请求将被拒绝。

此外,任何引入破坏性变更的新功能将不会被当前版本接受,而是需要更新为目标指向下一个主要版本。

强烈建议在与核心团队及社区讨论您的 NFR 和 PR 时获取反馈、指导,并制定一个使所有人受益的发布计划。

分支与提交

以下步骤为推荐但非强制执行。

如果您正在处理一个问题,请记下该问题的编号。假设该问题为:

#12345 - Create New Object

  • 切换到5.0.x分支
  • 创建一个分支:T12345-create-new-object

分支名称以T开头,后跟问题编号以及作为 slug 的问题标题。

在您的cphalcon文件夹中导航至.git/hooks

创建一个名为commit-msg将以下代码粘贴到其中并保存:

#!/bin/bash
if [ -z "$BRANCHES_TO_SKIP" ]; then
  BRANCHES_TO_SKIP=(master develop)
fi
BRANCH_NAME=$(git symbolic-ref --short HEAD)
BRANCH_NAME="${BRANCH_NAME##*/}"
BRANCH_EXCLUDED=$(printf "%s\n" "${BRANCHES_TO_SKIP[@]}" | grep -c "^$BRANCH_NAME$")
BRANCH_IN_COMMIT=$(grep -c "\[$BRANCH_NAME\]" $1)
if [ -n "$BRANCH_NAME" ] && ! [[ $BRANCH_EXCLUDED -eq 1 ]] && ! [[ $BRANCH_IN_COMMIT -ge 1 ]]; then
  ISSUE="$(echo $BRANCH_NAME | cut -d'-' -f 1)"
  ISSUE="${ISSUE/T/#}"
  sed -i.bak -e "1s/^/[$ISSUE] - /" $1
fi

确保该文件具有可执行权限

chmod a+x commit-msg

您现在向该分支添加的任何提交都将与该12345问题关联。

执行上述操作可以让每个人清楚哪些提交与哪个问题相关联。

无噪 Logo
无噪文档
25 年 6 月翻译
文档源↗