联合慈善论坛 / km-starter-kit
Drupal 8 知识管理协作模板
Requires
- php: ^8.1
- drush/drush: >10.6
- united-philanthropy-forum/km_collaborative: ^3.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: >=0.5.0
- drupal/coder: >=8.3.1
- mglaman/drupal-check: ^1.1
- zaporylie/composer-drupal-optimizations: >=1.1
Conflicts
- dev-main
- 3.0.1
- v3.0.0
- v2.x-dev
- v2.0.0
- v2.0.0-rc1
- v1.1.1
- v1.1.0
- v1.0.0
- v0.5.6
- v0.5.5
- v0.5.4
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5
- v0.4
- v0.3
- v0.2
- v0.1
- dev-instruction-updates
- dev-drupal-10
- dev-kmc3
- dev-always_drush
- dev-solr-settings-localhost
- dev-kmc_200_global_ci
- dev-php8
- dev-rapid
- dev-install_fix_v161_era
- dev-use-minimal-profile
- dev-kmc-110
- dev-composer_22
- dev-kmc-100
- dev-adding-robo
- dev-scg_polish
- dev-issue-698-no-drops
- dev-composer-npm-fix
- dev-issue-530-anchor-link-libraries
- dev-drush10
- dev-gabe_tweaks
This package is auto-updated.
Last update: 2024-09-24 16:25:41 UTC
README
这是围绕在 https://github.com/United-Philanthropy-Forum/km-collaborative 上完成的 KM 协作工作大部分的简约包装。
在启动新的论坛站点时,您可能需要引用此代码。
需求
成功构建此项目需要一些东西
-
将代码推送到 github 的能力,特别是 此存储库
请确保您已 将 SSH 密钥添加到您的 github 帐户资料,并且您是 KM 协作存储库 的协作者或团队成员,拥有写入权限。
当您访问 存储库主页 并在 README.md 文件的右上角看到一个铅笔图标时,这表示您可以编辑该文件。
如果您没有访问权限,联合慈善论坛的所有者 之一将需要邀请您。
-
在联合慈善论坛命名空间中创建新存储库的能力。当您能够无错误地访问此 URL 时,您知道这正在正常工作:https://github.com/organizations/United-Philanthropy-Forum/repositories/new
如果您没有访问权限,联合慈善论坛的所有者 之一将需要邀请您。
-
访问 Pantheon。当您能够前往 在 Pantheon 中创建新站点 并能够从下拉菜单中选择联合慈善论坛时,您知道这正在正常工作。
如果您没有访问权限,联合慈善论坛管理员 之一将需要邀请您。
-
访问 联合慈善论坛 CircleCI 实例。当您能够访问此 URL 时,您知道这正在正常工作。
如果您没有访问权限,您可能需要验证 Circle -- 您可以使用 Github 登录。
-
Composer > 2.0.0 全局可用。当您在控制台中键入
composer --version
并看到类似 "Composer version 2.1.6 2021-08-19 17:11:08" 的内容时,您知道这正在正常工作。 -
Terminus > 3.6。当您在控制台中键入
terminus --version
并看到类似Terminus 3.6.0
的内容时,您知道这正在正常工作。在运行此脚本之前,更新 Terminus 到最新版本是个好主意,否则它可能会无端失败。 -
Pantheon 构建工具。当您在控制台中键入
terminus build:project:create -h
并看到有关 build:project:create 命令的信息时,您知道这正在正常工作Usage: build:project:create [options] [--] <source> [<target>] ...
-
您已运行了 一次性设置步骤
-
您的本地机器正在运行php 8.1。您可以在控制台输入
php -v
来确认它是否正在运行,您会看到类似PHP 8.1.12 (cli)
的信息。
使用方法
选择一个新的项目名称
要开始一个新的项目
- 确定一个新的项目名称——它应该是一个URL安全的字符串,可以是字母、破折号和数字。最好让名称与默认域名匹配,所以如果您的域名是"coolfoundation.org",理想的名称是"coolfoundation"。
- 确认要在哪个Pantheon "团队"下构建网站(这是一个唯一的字符串,但可以包含空格——在Pantheon的"团队"下可见)
- 确认开发仓库将位于哪个GitHub组织下(这也是一个URL安全的字符串,在GitHub上可见)
例如,为了创建ThinkShout Foundation的项目:项目名称:thinkshout-foundation Pantheon团队:United Philanthropy Forum GitHub组织:United-Philanthropy-Forum
请准备这个命令可能需要30分钟。这意味着要确保您的电脑在这段时间内不会进入休眠状态。如果您遇到超时,您可能需要尝试添加"ServerAliveInterval"以保持Pantheon在安装期间与您的机器连接。
您将运行此命令
terminus build:project:create --team='United Philanthropy Forum' --org='United-Philanthropy-Forum' --visibility='private' united-philanthropy-forum/km-starter-kit thinkshout-foundation
第一次运行此命令时,您将需要提供Circle和Pantheon上的某些API密钥。每个步骤都提供了链接和执行该操作的说明。您还将被要求为新网站设置用户1密码。(如果密码请求反复出现,系统正在拒绝您的密码,因为它不够安全。选择一个更复杂的密码。)
这将在美国Philanthropy Forum GitHub仓库中创建一个新的仓库,以及一个新的Pantheon网站
https://github.com/United-Philanthropy-Forum/thinkshout-foundation
https://dev-thinkshout-foundation.pantheonsite.io
Pantheon网站还应安装km_collaborative配置文件。
为全局上下文配置
我们现在有一个与您的个人GitHub账户关联的部署流程的网站。我们不想这样!将其更改为使用UPF CI机器人账户
- 以
upf-ci-bot
身份登录GitHub(登录信息在1password的论坛中) - 使用ci机器人的GitHub登录信息登录CircleCI。
- 访问
https://app.circleci.com/settings/project/github/United-Philanthropy-Forum/MYSITE/environment-variables
,如果存在,则删除这些环境变量:GITHUB_EMAIL
GITHUB_TOKEN
TERMINUS_TOKEN
(它们现在将由组织上下文提供) - 在
https://app.circleci.com/settings/project/github/United-Philanthropy-Forum/MYSITE/ssh
- 删除现有的"Deploy Key",然后添加一个新的。
- 滚动到"Additional SSH Keys"区域,并删除现有的用于域名"drush.in"的密钥。添加论坛CI自动化账户的SSH私钥(作为1password中详情的附件),域名"drush.in"。
初始网站设置
如果上述过程成功完成,您将拥有一个GitHub仓库和一个Pantheon仓库,它们通过CircleCI连接在一起,所有这些都在适当的组织或账户中。在Pantheon上,您将在"dev"上安装一个基本网站,但它看起来不会太多,并且它还没有大多数KMC功能。为了获得这些功能,您需要绕过Pantheon的内存限制。最好的方法是创建网站的本地副本并克隆下Pantheon数据库。在您的本地环境中,禁用您的PHP内存限制(或将其设置得非常高)。然后,启用"km_config_part2"模块。一旦完成,导出您的数据库并在Pantheon上导入它。
根据您网站的需求,您可能还需要启用一些其他的kmc子模块,例如如果您正在使用KMC包与Salesforce实例集成,则可以启用kmc_salesforce。这些模块都可以在您启用“kmc_config_part2”之后直接在Pantheon上启用——这是唯一一个需要大量内存来安装的模块。
如果build:project命令失败怎么办
如果在Pantheon上运行composer create-project
时build:project:create
命令失败,并出现Fatal error: Allowed memory size ... exhausted
错误,那么发行版的初始安装就变得过大(这种情况经常发生)。当以这种方式失败时,您将面临一个损坏的设置。唯一解决问题的方法是删除Pantheon网站和GitHub仓库,并重新开始。最常见的问题是Drupal安装,遇到内存不足错误。为了解决这个问题,您可以在composer.json脚本中的“install-cms”指定“minimal”安装分析器而不是km_collaborative,来创建这个项目的新的发布版本。这将跳过更大的KMC安装过程。一旦成功,您需要在一个本地网站实例上运行适当的配置安装,并将您的数据库上传到Pantheon Dev网站。
如果是因为composer冲突导致命令失败,您可以在本地运行更简单的构建命令来调试。
composer create-project united-philanthropy-forum/km-starter-kit thinkshout-foundation
如果这也失败了,这个仓库需要更新。
如果build:project命令由于某种原因失败,新的网站骨架的某些部分可能已经存在。如果确实如此,如果存在,请删除Pantheon环境和GitHub仓库。
有关构建工具的许多信息,可能有助于调试,可在Pantheon构建工具README中找到。Pantheon还提供了关于其构建工具全面范围的详细文档。
如何删除使用此启动器创建的项目。
Pantheon构建工具提供了一个build:env:obliterate命令,用于删除使用build:project:create
命令启动的网站。它将删除Pantheon网站和仓库,因此您在任一处所做的任何更改都将永远丢失。示例
terminus build:env:obliterate thinkshout-foundation
维护此项目
此项目中文件很少,因为它旨在简化Pantheon构建工具和KM协作配置文件之间的交接。因此,当D8 Pantheon drop中发生上游更改时,可以使用以下更新规则来更新此仓库
.gitignore
此代码仅属于此项目。只有在您需要向此仓库添加另一个文件时,才需要更新它。
README.md
此代码仅属于此项目。只有在更改过程或要求时才需要更新。
composer.json
此代码主要来自D8 Pantheon drop,但已定制到与解析不再值得的地步。
scripts/composer/ScriptHandler.php
这是对位于 D8 pantheon drop 中的相同文件的直接复制,并且将被在 km-collaborative profile 上的上游更改覆盖。此文件需要存在于此仓库中,以便 terminus 构建命令成功执行,并且可以随时直接从 drop 将其拉取到此仓库。
scripts/composer/ScriptUpdater.php
此代码位于此仓库中,并在 km-collaborative profile 中维护。它与 drupal scaffolding 功能非常相似,因为它直接从另一个仓库提取文件并在 composer 安装时覆盖它们。然而,与 drupal-scaffold 插件不同,此脚本不需要您声明您希望从子包拉取到站点包的每个文件。