neos/neos-ui

使用 React 编写的 Neos CMS UI

维护者

详细信息

github.com/neos/neos-ui

源代码

问题

资助包维护!
shop.neos.io/neosfunding

安装数: 812 389

依赖关系: 89

建议者: 0

安全: 0

星星: 264

关注者: 21

分支: 136

开放问题: 286

语言:JavaScript

类型:neos-package

9.0.0-beta13 2024-08-28 12:52 UTC

This package is auto-updated.

Last update: 2024-09-20 09:49:32 UTC


README

CircleCI Known Vulnerabilities Slack Forum Twitter

Neos CMS 接口,使用 ReactJS 和许多其他有趣的技术编写。

版本控制

此存储库遵循 Neos 本身相同的版本控制方案。发布路线图可在此处找到 这里

这意味着

  • 所有错误修复都应用于维护的最低分支
  • 所有新功能仅添加到 8.4 和 9.0 分支
  • 新的小版本和主要版本将与 Neos/Flow 同步发布。错误修复版本可能独立发布

当前维护的版本

  • NeosCMS 版本 8.3: 分支 8.3
  • NeosCMS 版本 8.3: 分支 8.4
  • NeosCMS 版本 9.0: 分支 9.0
  • 最新开发目前在 8.4 和 9.0 分支进行

仅包含安全更新的版本

  • NeosCMS 版本 7.3: 分支 7.3
  • NeosCMS 版本 8.0: 分支 8.0
  • NeosCMS 版本 8.1: 分支 8.1
  • NeosCMS 版本 8.2: 分支 8.2

浏览器支持

新界面支持所有evergreen(即自我更新)浏览器,包括:Chrome,Firefox,Safari,Edge,Opera和其他基于webkit的浏览器

如果您在支持的任何浏览器中发现了错误,请报告它们

特性

安装和使用

UI 已在基本 Neos 发行版中。在 Packagist 上通过 neos/neos-ui 可用。

更新

composer update neos/neos-ui

安装最新开发版本

为了尝试新 UI,我们建议您运行定期发布的测试版。然而,如果您想保持最新状态或想帮助开发,您将需要 9.0.x-dev 版本。您可以使用以下命令安装最新版本:

composer require neos/neos-ui-compiled:9.0.x-dev neos/neos-ui:9.0.x-dev

贡献

请遵循有关在 OSX 和 Linux 上贡献的相应指南。

在 Windows 上

  1. 请确保已安装相关版本(见上文)。

  2. 请安装 Docker for Windows。

  3. 运行 docker-compose up

  4. Configuration/Settings.yaml 中,设置以下属性以禁用预编译文件

Neos:
  Neos:
    Ui:
      frontendDevelopmentMode: true
  1. 了解代码库概览。我们在 YouTube 上录制了一个介绍视频,让您熟悉基础知识。此外,请通过 Slack 上的 #project-ui-rewrite 频道与我们联系。我们渴望帮助您开始!

在 OSX / Linux 上

要开始在 OSX / Linux 上贡献,请按照以下步骤操作

  1. 请确保已安装相关版本(见上文)。

  2. 我们需要 Chrome 以及 yarn(https://yarn.npmjs.net.cn/en/) 命令和 GNU Make(https://gnu.ac.cn/software/make/) 在您的系统上安装。

  3. 当前支持的 node 版本定义在 .nvmrc 文件中。如果您已安装 nvm,只需从项目目录运行 nvm install && nvm use

  4. Configuration/Settings.yaml 中,设置以下属性以禁用预编译文件

Neos:
  Neos:
    Ui:
      frontendDevelopmentMode: true
  1. 运行初始化脚本
make setup
  1. 了解代码库概览。我们在 YouTube 上录制了一个介绍视频,让您熟悉基础知识。此外,请通过 Slack 上的 #project-ui-rewrite 频道与我们联系。我们渴望帮助您开始!

PR 和提交消息指南

请参阅我们关于如何为您的贡献编写有意义描述的指南 (链接)

执行向上合并

要执行向上合并,请运行以下命令

# review and `git commit`
git checkout 8.0 && git fetch && git reset --hard origin/8.0 && git merge --no-ff --no-commit origin/7.3
# review and `git commit`
git checkout 8.1 && git fetch && git reset --hard origin/8.1 && git merge --no-ff --no-commit origin/8.0
# review and `git commit`
git checkout 8.2 && git fetch && git reset --hard origin/8.2 && git merge --no-ff --no-commit origin/8.1
# review and `git commit`
git checkout 8.3 && git fetch && git reset --hard origin/8.3 && git merge --no-ff --no-commit origin/8.2
# review and `git commit`
git checkout 8.4 && git fetch && git reset --hard origin/8.4 && git merge --no-ff --no-commit origin/8.3
# review and `git commit`
git checkout 9.0 && git fetch && git reset --hard origin/9.0 && git merge --no-ff --no-commit origin/8.4
# review and `git commit`

开发命令

编写单元测试

单元测试使用 jest 执行。要在您的 shell 中运行单元测试,请执行 make test

添加单元测试相对简单,只需在您的更改/新功能的同一树级别创建一个名为 [filename].spec.js 的文件,karma 将执行 spec 文件中找到的所有测试,除此之外,只需参考现有的测试即可。

如果您只想运行特定的测试而不是整个测试套件,请使用 it.only(() => {})describe.only(() => {})

集成测试

要本地设置端到端测试,您需要执行与 CircleCI 工作流程 中描述的相同操作,即获取 测试分发 并在其中执行 composer install,将正确的分支放入 Neos.Neos.Ui 文件夹中,并使用测试分发中的 Settings.yaml(或调整它)中的相同配置运行 web 服务器和 mysql 服务器。

要在 macOS catalina 或更高版本上执行端到端测试,您需要允许屏幕录制。打开 '系统偏好设置 > 安全与隐私 > 隐私 > 屏幕录制',并在应用程序列表中检查 'TestCafe 浏览器工具'。

make test-e2e-docker

带有 e2e 测试和 docker 的本地开发

为了加快 e2e-test 工作流程/反馈循环,您可以在 docker 设置中启动要测试的系统,并针对该系统运行测试

  • make start-neos-dev-instance(在 1Dimension 场景中启动一个包含要测试的系统的 docker 设置并保持运行)
  • neos 开发实例可在 localhost:8081 访问
  • 要进入容器,请运行 docker compose -f Tests/IntegrationTests/docker-compose.neos-dev-instance.yaml exec php bash
  • 使用 yarn run testcafe <browser> <testFile> <optional flags>
    • 例如,这将在 chrome 中运行所有测试:(注意:从 Chrome 127 版本开始,需要 --disable-search-engine-choice-screen)yarn run testcafe chrome:--disable-search-engine-choice-screen Tests/IntegrationTests/Fixtures/1Dimension
    • 一些有用的可选标志包括
      • -T 'sidebars' - 使用模式 grep 测试并只执行这些测试
      • --selector-timeout=10000 - 如果您正在处理 UI 的异步部分,则这可能会帮助防止竞争条件
      • --assertion-timeout=30000 - 如上所述
      • --debug-on-fail - 当断言失败时,您可以调试应用程序的状态
调试集成测试
  • 通过 Sauce Labs 查看录制。您可以在测试输出的开头找到 URL。
  • 在构建工件中观察 Flow 异常和日志。
  • 您可以通过 CircleCI 界面触发一个启用了 SSH 的构建,然后登录。

发布

您只需要触发 Jenkins 发布您想要发布的版本。Jenkins 完成后,您需要在 GitHub 上发布新版本。

许可证

请参阅 LICENSE