【问题标题】:Versioning style for open source CMS开源 CMS 的版本控制风格
【发布时间】:2012-06-08 18:35:27
【问题描述】:

我已经开发了自己的 CMS - 我并没有声称它是最好的,甚至不是最好的,我只是想面对创建这样的系统可能带来的问题。
目前,我在为我的 CMS 设计一些合理的版本控制系统时遇到了问题。

我现在有什么:

  1. 项目正在 GitHub 上托管(实际上还没有),
  2. 有两个分支:
    • 针对当前变化进行开发
    • 主要用于稳定更改表单开发

我的第一个想法是使用 GitHub API 创建更新系统——用户正在将他的本地最新提交 sha 与项目页面上的 sha 进行比较——如果不是最新的下载文件。这个解决方案有一个很大的缺点 - API 的请求限制,由于每分钟的请求太多,一个用户将能够关闭整个“更新服务器”。
取而代之的是,我将使用“GitHub Pages”来存储项目页面并更新我自己在本地生成的变更集(以 JSON 格式修改的 git diff 输出以及附加信息)。在这个想法中,我不使用提交来检查更新状态而是版本号。
假设我的 GitHub 页面如下所示:

index.html
/changsets
+--0.0.1.json
+--0.0.2.json
...
+--1.0.0.json

changsets 目录中的每个 JSON 文件都将保存自其名称版本以来更改的文件列表 - 如果 1.0.0 是当前版本,则文件 1.0.0.json 将包含一个空数组。
版本号应该是什么格式?三个整数在 1.0.55 或 1.55.21 时可能看起来不太好。我什么时候应该将更改从开发分支推送到主分支?我不像 Joomla / Drupal 团队那样有经验,所以我没有任何时间表或功能列表来发布版本 X(大多数更新肯定是错误修复)。
如果版本更改太频繁,我将需要生成数十个 JSON 文件,这将浪费时间和资源。也许我应该有六个月的最后期限,那时不会生成任何变更集?
我知道我应该有一些带有 REST API 的网络服务器来处理它,但我希望我的项目完全托管在 GitHub 上。

【问题讨论】:

    标签: php content-management-system github


    【解决方案1】:

    对于版本方案,您可以使用Semantic Versioning

    每次查看页面时检查更新是不现实的,如果知名网站正在使用您的脚本,这实际上可能是一种威胁。相反,您可以在管理面板中添加一个页面或选项,让管理员检查更新。

    【讨论】:

    • 非常有用的规范,带有精确的提示/要求。谢谢!关于存储 chngset 的任何想法?
    • 您可以在存储库中执行此操作,也可以使用其他服务,例如Dropbox,并有一个特定页面,管理员可以在其中手动检查更新(以防止更新服务器过载) .
    • 我只是想稍等一下,如果其他人也会发布一些有趣的东西:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 2011-02-23
    • 2023-04-02
    • 2010-10-01
    相关资源
    最近更新 更多