ITADN
kubevirt/kubevirt.github.io
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

为 KubeVirt.io 做贡献

Build Status

The kubevirt.io 网站是一个由 Jekyll 驱动、托管于 GitHub Pages 的网站。

非常欢迎为 KubeVirt 网站做出贡献!请就新内容创意或现有内容问题与我们联系!

入门指南

Git 语义

从开发到生产环境的代码迁移遵循一套半标准化的流程。

基本流程是 ...

Fork -> Clone -> Branch -> Commit -> Push -> Pull Request -> Approve -> Merge

Fork

通过点击仓库页面顶部的 Fork 按钮,将仓库的分支副本创建到你的 账户中。只要定期执行与上游的分支同步和变基操作以妥善维护该分支,这应该是唯一需要创建分支副本的时候。

Clone

要在本地克隆分支仓库,请访问 https://www.github.com/*github_name*/kubevirt.github.io 查看你的分支。点击 Code 按钮。选择一种克隆方法并将 url 复制到剪贴板。打开一个终端窗口并 ...

git clone *clipboard paste url*

Remotes

默认情况下,本地 git 仓库会有一个名为 origin 的远程别名,指向你在 GitHub 上的 fork。KubeVirt 仓库有许多贡献者,因此需要定期工作来同步本地和 origin 分支与上游分支。要在你的本地克隆中启用此工作流程,请向仓库添加一个新的远程。按照惯例,此远程命名为 upstream

要添加一个额外的远程,执行以下命令...

git remote add upstream http/ssh url

然后你应该会看到类似以下内容...

$ git remote -v
origin	git@github.com:mazzystr/kubevirt.github.io.git (fetch)
origin	git@github.com:mazzystr/kubevirt.github.io.git (push)
upstream	git@github.com:kubevirt/kubevirt.github.io.git (fetch)
upstream	git@github.com:kubevirt/kubevirt.github.io.git (push)

要从上游仓库同步 main 分支,请执行以下 ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f

注意 main 分支对于此仓库纯属外观上的。合并到 main 不被接受

所有工作必须从 main 分支创建分支。执行以下操作以从上游同步 ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f

功能分支

尽管来自本地 main 分支的更改会被接受,但这并不建议这样做,可能会引起混淆并可能导致数据丢失。请通过运行以下命令,从 main 创建功能分支 ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f; git branch feat_branch; git checkout feat_branch; git push --set-upstream origin feat_branch

Rebase

随着本地和 origin 落后于 upstream,功能分支需要定期执行 rebase。执行以下操作以进行 rebase ...

git checkout main; git fetch upstream; git reset --hard upstream/main; git push origin main -f; git checkout feat_branch; git rebase origin/main; git push -f

合并冲突的可能性始终很大。解决时请谨慎操作。每个冲突都必须手动编辑。执行以下操作以解决每个冲突 ...

# Modify and save the filename
git add filename; git rebase --continue

工作

这是我们的内容贡献指南

网站的每个部分都划分到各自的文件夹中。

  • ./pages : 网站
  • ./blogs : 博客文章
  • ./docs : 文档。
  • ./videos : 视频

所有网站图片都位于 ./assets/images 下。请勿编辑这些图片。

博客文章的 Markdown 文件位于 ./posts 下。请遵循现有的文件命名方案。

与博客条目相关的图片放置在 ./assets/images/BLOG_POST_TITLE 下。 BLOG_POST_TITLE 应与在 /_posts 下创建的 Markdown 文件名相匹配。

如果你是一名 UI/UX 开发者,网站的结构和布局将非常受益于你的关注。欢迎浏览 网站问题 或贡献其他想法。

测试工作

该仓库根目录下的 Makefile 为编辑器提供了在本地运行与 CI 用于验证更改相同的测试的能力。这比等待在线 CI 资源启动以发现拉取请求存在阻止合并的问题要节省时间。

  1. 在本地构建测试镜像
$ make build_img

注意 如果你使用 docker,你可能需要设置 CONTAINER_ENGINEBUILD_ENGINE

$ export CONTAINER_ENGINE=docker
$ export BUILD_ENGINE=docker

注意 如果您使用的是启用了 SELinux 的操作系统,您需要设置 SELINUX_ENABLED

$ export SELINUX_ENABLED=True
  1. 验证页面渲染
make run

在 Web 浏览器中打开 http://0.0.0.0:4000

  1. 测试所有超链接
make check_links
  1. 测试拼写
make check_spelling

如果您发现一个被标记的拼写错误,但您认为它并非错误,请随意将该词添加到位于 GitHub 仓库 kubevirt/project-infra/images/yaspeller/.yaspeller.json 中的字典文件。请尽量保持字典文件的良好排序,并使用正则表达式来处理常见模式。

  1. 检查 Markdown
make check_lint

如果您发现一个您认为应该被忽略的 markdown 错误,您应该考虑将其添加到 markdownlint.yaml 配置文件中。如果有一个文件需要跳过 linting,它可以被添加到 .markdownlintignore 配置文件中。

提交前请确保所有测试通过!

提交你的代码

  1. 提交你的代码并签署你的提交!
git commit -s -m "The commit message" file1 file 2 file3 ...

提交必须经过签名验证!没有例外!

您将在事务日志中看到以下内容

git log
commit hashbrowns (HEAD -> feat_branch, upstream/main, origin/main, main)
Author: KubeVirt contributer <kubevirt_contributer@kubevirt.io>
Date:   Mon Jan 01 00:00:00 2021 -0700

<your commit message>

Signed-off-by: <your configured git identity>
  1. 浏览至 https://www.github.com/*you*/kubevirt.github.io

  2. 你经常会看到一个 Compare & Pull Request 按钮……点击它

  3. 确保你的基础分支是 main,比较分支是 feat_branch,并且文件差异是正确的。

  4. 为拉取请求创建一个合适的标题和正文。务必标记相关的问题、相关人员,并点击“创建拉取请求”按钮。

维护者会自动收到已创建拉取请求的通知,并进一步指导如何合并贡献。

Makefile 帮助

$ make help

Makefile for website jekyll application

Usage:
  make <target>

Env Variables:
  CONTAINER_ENGINE	Set container engine, [*podman*, docker]
  BUILD_ENGINE		Set build engine, [*podman*, buildah, docker]
  SELINUX_ENABLED	Enable SELinux on containers, [*False*, True]

Targets:
  help                	 Show help
  build_img              Build image localhost/kubevirt-kubevirt.github.io
  check_links         	 Check external, internal links and links/selectors to userguide on website content
  check_lint             Check markdown linting
  check_spelling      	 Check spelling on content
  run                 	 Run site. App available @ http://0.0.0.0:4000
  status              	 Container status
  stop                	 Stop site

环境变量

  • CONTAINER_ENGINE: 我们中的一些人使用 docker。我们中的一些人使用 podman(默认:podman)。
  • BUILD_ENGINE: 我们中的一些人使用 docker。我们中的一些人使用 podman(默认:podman
  • SELINUX_ENABLED: 我们中的一些人运行启用了 SELinux 的环境。设置为 True 以启用容器挂载标签

目标:

  • build_img: 使用此目标来构建一个包含 Jekyll、casperjs、yaspeller 和 HTMLProofer 的镜像。
  • check_links: HTMLProofer 用于检查指向外部网站的链接以及任何跨页面链接。Casperjs 用于解析包含 markdown 选择器的用户指南 URL,并确保它们存在。
  • check_lint: 使用 markdownlint 来检查 markdown 代码规范。可以通过 .markdownlint.yaml 和 .markdownlintignore 配置文件进行配置。
  • check_spelling: yaspeller 用于检查拼写。如有需要,请随时更新字典文件(kubevirt/project-infra/images/yaspeller/.yaspeller.json)。
  • status: 基本上,${BUILD_ENGINE} ps 提供了一种轻松查看正在运行内容的方式。
  • stop: 停止容器和应用

采用者

如果您是 KubeVirt 的采用者并希望看到您的标志出现在网站上:

  1. 确保您已将自己添加到 kubevirt/kubevirt 仓库中的 adopters file。共有三种 adopter types,每个列表均按字母顺序排列。在您可以提交 PR 在此处添加您的 logo 之前,该 PR 必须已合并。
  2. 创建此仓库的一个分支,并以 png 或 svg 格式在 assets/images/adopters 中添加您的 logo。
  3. 在同一分支中,从 _data 文件夹内运行 _data/adopters.py 脚本。该脚本会检查 kubevirt/kubevirt 中的 ADOPTERS 文件,并自动更新我们网站代码中关联的 adopters 文件以包含您的 logo。
  4. (可选但推荐)通过构建网站的本地副本来 Test your changes
  5. 提交 PR 以在仓库中合并您的分支。应更改两个文件:您的 logo 新文件和 _data 中编辑过的 adopters.yml 文件。
  6. 如果审查者在一两周内未响应,请随时提醒他们。

Getting Help

Developer

Privacy