aten/drupal-recommended-project

Aten Drupal 项目

9.x-dev 2023-03-13 20:38 UTC

This package is auto-updated.

Last update: 2024-09-08 13:46:56 UTC


README

概述

项目意图和目标描述。

项目中的个人与角色

Aten

  • Jack Reacher (项目经理)
  • James Bond (技术负责人)
  • Jason Bourne (开发者)

沟通

代码仓库

托管

生产

  • 提供商: Pantheon/Platform.sh/Acquia
  • 所有者: Aten/Client

开发流程

当向项目添加新功能时,您需要创建一个功能分支,通常这是 Jira 票据编号(例如,PROJECTCODE-XXX)。您将所有代码更改提交到该功能分支,并将其推送到代码仓库。一旦票据准备就绪进行 QA,它应合并到 master 分支。然后将其部署到托管平台上的开发实例。

将 Jira 票据分配给 QA 团队成员,提供开发环境的链接,并包括测试说明。同时,请确保在 QA 团队介入之前,使用模拟数据设置环境以确保其适用于您。

  1. 热补丁/非发布部署
    1. 确保您的本地环境没有未提交的更改
    2. 如果您的本地数据库非常陈旧(超过一个月),从生产环境中导入一个新的
    3. 在 master 分支上 git checkout master
    4. 非常重要:导入配置更改 drush cim sync -y 如果不这样做,将覆盖配置
    5. 基于 Jira 票据名称创建功能分支 git checkout -b PROJECTCODE-###
    6. 进行必要的代码更改。如果更改配置,请记住导出配置 drush cex sync -y
      1. 使用 git diff 查看您所做的更改
    7. 将更改提交到您的功能分支 git add .git commit -m "PROJECTCODE-###: 关于更改的说明" 和 git push
    8. 合并到 Acquia 的测试分支 git checkout staginggit merge PROJECTCODE-###
    9. 在您的更改在测试中获批准后,将功能分支合并到 master 分支并部署
      1. git checkout mastergit merge PROJECTCODE-###git push
  2. 使用发布/冲刺分支 - 如果同时处理多个功能,非常有用
    1. 创建发布分支
      1. 一次创建 - git checkout master && git checkout -b release-1
      2. 将发布分支推送到每个人工作的地方
    2. 参与发布
      1. 确保您的本地环境没有未提交的更改
      2. 如果您的本地数据库非常陈旧(超过一个月),从生产环境中导入一个新的
      3. 在 master 分支上 git checkout release-1
      4. 非常重要:导入配置更改 drush cim sync -y 如果不这样做,将覆盖配置
      5. 基于 Jira 票据名称创建发布分支的功能分支 git checkout -b PROJECTCODE-###
      6. 进行必要的代码更改。如果更改配置,请记住导出配置 drush cex sync -y
        1. 使用 git diff 查看您所做的更改
      7. 将更改提交到您的功能分支 git add .git commit -m "PROJECTCODE-###: 关于更改的说明" 和 git push
      8. 合并到 Acquia 的发布分支进行测试 git checkout release-1git merge PROJECTCODE-###
        1. 在 Acquia 上使用一个专门用于发布的独立环境
      9. 在您的更改在测试中获批准后,将功能分支合并到 master 分支并部署
        1. git checkout mastergit merge PROJECTCODE-###git push
    3. 发布部署
      1. 您可能需要将主分支合并到您的发布分支中,以捕捉自分支创建以来的任何差异
      2. 将您的发布分支合并到预发布分支中,以测试发布内容
      3. 一旦测试完成,将发布分支合并到主分支
    4. 注意事项:如果在发布分支上已经开始但未完成工作,则需要手动移除

自动化测试

无测试

  • 此项目尚未配置自动化测试。

有测试

  • 此项目已配置自动化测试。
  • 测试类型:Cypress (https://www.cypress.io/)
  • READ.ME 文件位置:web/...

主题信息

  • 基本主题:Prototype
  • 自定义主题:THEME_NAME
  • READ.ME 文件位置:web/themes/custom/THEME_NAME/README.md

部署/配置管理

强烈建议数据库更新和配置导入自动进行,以免遗忘。

  1. 审查生产环境中的配置,确保其与 /admin/config/development/configuration 保持同步
  2. 如果配置不同步,您有几个选择
    1. 导出不同步的单个配置,并确保它们与正在推送的代码一起提交
    2. 从生产环境获取一个新鲜数据库,并在主分支上运行配置导出

注意:在理想的世界里,配置不应该在生产环境中直接更改。

本地开发

Drupal 项目已设置为开箱即用支持 Lando。开发者可以通过以下说明快速开始设置本地环境。请确保您已安装 Lando

首先,让我们安装项目的 composer 包

composer install

现在,您需要启动 Lando 实例

lando start

现在,您需要将开发数据库导入到本地环境

lando db-import localdatabasename.sql

初始 Drupal 配置

composer create-project "aten/drupal-recommended-project" [SITE-NAME]

使用 Composer 更新 Drupal 核心和贡献模块

遵循开发工作流程,应仅使用 Composer 执行更新(请参阅 https://www.drupal.org/docs/develop/using-composer/manage-dependencies

  1. 更新 Drupal 核心 - 请参阅 https://www.drupal.org/docs/updating-drupal/updating-drupal-core-via-composer
    1. composer update drupal/core --with-dependencies
    2. drush updatedb
    3. drush cache:rebuild
  2. 更新 Drupal 模块
    1. composer update drupal/modulename --with-dependencies
    2. drush updatedb
    3. drush cache:rebuild
  3. 删除 Drupal 模块
    1. 注意:请谨慎操作。在您选择通过 Composer 从代码库中删除模块之前,必须在生产环境中卸载模块(这意味着两次部署)
    2. 卸载模块,导出配置,推送代码,并部署到生产环境
    3. 在生产环境中卸载模块后,您可以使用以下命令从代码库中删除它:composer remove drupal/modulename
  4. 补丁
    1. 补丁也应仅使用 Composer 进行。这允许所有开发者了解哪些模块正在修复,并在更新后是否有任何模块未能应用