charcoal/charcoal

Charcoal 框架的单一代码仓库

v5.0.0 2024-03-13 15:04 UTC

README


Charcoal
Locomotive 🚂 提供

License Latest Stable Version Uses Semantic Release with Conventional Commits Commitizen-friendly Supported PHP Version

Charcoal 是一个适应所有项目需求的网络框架和内容管理系统。

此存储库是一个单一代码仓库,包含整个网络框架。Charcoal 可以作为一个全栈框架使用,也可以作为独立的包使用,可以独立使用。

Charcoal 包

核心包位于 packages 目录中。

安装

首选(也是唯一支持)的方法是使用 Composer

composer require charcoal/charcoal

从工作骨架开始

composer create-project charcoal/boilerplate

独立包

Charcoal 框架被分割成可以独立使用的独立包。例如,一个项目可能不需要管理面板、队列系统或发送电子邮件。

composer require charcoal/app charcoal/api custom/admin 

将项目迁移到 charcoal/charcoal

以下内容有助于将项目从 locomotivemtl/charcoal-* 转换为 charcoal/*

ℹ️ 以前所有核心包都独立维护自己的版本号。

单一代码仓库框架使用共享版本号对所有核心包,以实现一致和预期的互操作性。

ℹ️ contrib 包继续维护其现有的独立版本号。

选项 A — 如果你想用全栈框架包替换所有包
  1. composer.json 文件中删除核心包(locomotivemtl/charcoal-*)的要求。

  2. composer.json 文件中,用来自 charcoal/contrib-* 的等效包替换对 contrib 包(locomotivemtl/charcoal-contrib-*)的要求。

  3. 运行 composer require charcoal/charcoal 以安装框架。

  4. 运行 composer update 以确保所有要求都是最新的。

  5. 运行以下迁移脚本

    ./vendor/charcoal/charcoal/build/script/migrate-project

    migrate-project 脚本将更新项目中配置文件中的所有元数据路径。之后,它将编辑或创建一个包含键 PACKAGES_PATH 设置为:vendor/charcoal/charcoal/packages.env 环境变量文件。

    这允许 %packages.path% 字符串模板扩展到 charcoal/charcoal 中的包位置,否则它将导致在 vendor 目录中。

选项 B — 如果你想用新的独立包替换所有包
  1. composer.json 文件中替换核心包(locomotivemtl/charcoal-*)的要求。
  2. composer.json 文件中,用来自 charcoal/contrib-* 的等效包替换对 contrib 包(locomotivemtl/charcoal-contrib-*)的要求。
  3. 运行 composer require charcoal/config charcoal/core… 以安装包。
  4. 运行 composer update 以确保所有要求都是最新的。
  5. 将配置文件中的 vendor/locomotivemtl/charcoal-* 出现替换为 vendor/charcoal/*

依赖

⚠️ 必需

  • PHP 7.4 或 8.0

⚙️ 配置

[待办事项]

使用

[待办事项]

开发

开发在一个与 main 分支分开的分支上进行。

⚠️ main 分支受到保护,不允许直接推送更改。

安装开发环境

composer install

运行脚本(phplint、phpcs 和 phpunit)

composer test

提交信息格式

Charcoal 使用 semantic-release 来处理发布过程。

它使用提交信息来确定代码库中更改对消费者的影响。遵循提交信息的正式化约定,semantic-release 自动确定下一个 语义版本 号码,生成变更日志并发布版本。

当前配置使用 常规提交 用于提交信息。您可以查阅它以获取更多信息。

此存储库对 Commitizen 友好,并配置为使用 常规提交 标准,因此您可以在全局范围内安装它,以简化编写提交的过程。

或者,有一些代码编辑器插件可以帮助创建常规提交

以下是根据一些提交信息得出的发布类型示例

  • 补丁(修复)版本发布

    fix(pencil): stop graphite breaking when too much pressure applied
  • 小版本(功能)发布

    feat(pencil): add 'graphiteWidth' option
  • 大版本(破坏性)发布

    perf(pencil): remove graphiteWidth option
    
    BREAKING CHANGE: The graphiteWidth option has been removed.
    The default graphite width of 10mm is always used for performance reasons.

    ✍🏻 注意,BREAKING CHANGE: 标记必须位于提交的底部。

开发指南

开发应基于分支进行,提交信息应遵循常规提交。

维护和自动化

Symplify 的 MonorepoBuilder 用于处理核心存储库及其包之间的合规性。它将同步 composer.json 文件和包版本。

[待办] .releaserc 中的语义发布配置

[待办] 常规提交

[待办] Commitizen

开发依赖

开发历史

此单代存储库使用此指南和工具以多对单方法创建

GitHub Actions

脚本

create-pr

此脚本简化了创建拉取请求的过程。当您的分支准备好被拉入 main 或其他 [目标] 分支时,此工具将为您生成它,请求 @charcoalphp/reviewers 的审查,并添加一个从两个分支之间的差异生成的美观且易于阅读的发布说明。

文档

Description
  Create a pull request on the github repository on the requested branch.
  Default branch: main

Usage
  ./create-pr

Options
  -b, --base          The base branch to merge into for the pull request. [Default: main]
  -h, --head          The branch to compare against the base branch. [Default: The current branch]

示例

# target: the target branch for the pull request. Defaults to [main]
./create-pr -b main -h user:feat-branch

create-release-notes可选工具

此脚本在请求时生成发布说明,返回基于请求的 提交范围分支 的变更日志。

文档

./build/script/create-release-notes --help

示例

./build/script/create-release-notes -g --from main

输出

更改

功能

  • create-pr: 添加脚本以在远程触发拉取请求(3016115

错误修复

  • create-pr: 从脚本中删除个人访问令牌,并用 $GITHUB_TOKEN 代替(f2aaac6
  • package: 添加缺少的语义发布插件(59bd1b1

贡献

与 Charcoal 互动的每个人都应遵循 行为准则

请参阅我们的贡献指南,了解如何为Charcoal做出贡献。

如果您试图报告Charcoal可能的安全漏洞,请参阅我们的安全策略获取更多信息。

✍🏻 作者

🎉 贡献者

List of contributors

使用contrib.rocks制作。

变更日志

查看CHANGELOG

变更日志符合Keep a Changelog规范,并从自动发布的版本中自动生成。

许可

Charcoal遵循MIT许可协议。有关详细信息,请参阅LICENSE