我开发了自己的CMS - 我并不认为它是最好的甚至是好的,我只想面对创建这样的系统可能带来的问题。
目前我在为我的CMS设计一些合理的版本控制系统时遇到了问题。
我现在得到了什么:
我的第一个想法是使用GitHub API创建更新系统 - 用户正在将他的本地最新提交sha与项目页面上的sha进行比较 - 如果不是最新的下载文件。这个解决方案有一个很大的缺点 - API的请求限制,一个用户可以关闭整个'更新服务器',因为每分钟请求太多。
而不是这个,我将使用'GitHub Pages'来存储项目页面和更新我自己生成的changsets(以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时,三个整数可能看起来不太好。什么时候我应该将更改从devel推送到master branch?我没有像Joomla / Drupal团队这样的经验,所以我没有任何时间表或功能列表来发布版本X(大多数更新肯定会有错误修正)。
如果版本经常更改,我将需要生成许多JSON文件,这会浪费时间和资源。也许我应该有一个六个月的截止日期,届时不会产生任何变化?
我知道我应该有一些带有REST API的Web服务器来处理它,但我希望我的项目完全托管在GitHub上。
答案 0 :(得分:0)
对于版本方案,您可以使用Semantic Versioning
每次查看页面时检查更新都是不现实的,如果高端网站使用您的脚本,实际上可能会构成威胁。相反,您可以向管理面板添加页面或选项,以便管理员检查更新。