jQuery 插件网站怎么了?
大约一周前,我们的插件库不再托管数百个 jQuery 插件和数千个笔记本电脑电池广告,而是显示了一条关于垃圾邮件的非常可怜的信息,以及对“新的提交流程”的暗示。这发生得非常突然,我们对所有受到影响的人感到抱歉。请允许我花几分钟时间解释发生了什么事、我们将去哪里以及这对您有什么影响。如果您赶时间,这里有简短版本。
背景
虽然您所熟知的插件网站
和喜爱的在首次建立时是一个有价值的工具,但它逐渐成为该项目的白象。虽然像GitHub 和npm 这样的强大分发工具已经出现,但我们却被困在了一个陈旧的、以 CMS 为中心的模式中,这让插件的开发人员和使用者都感到沮丧。许多人转向了其他来源来查找和审查插件。此外,该网站的最初实现者和维护人员已经从 jQuery 项目的积极参与中脱身。虽然团队面临着关于可用性和功能普遍缺乏的不断投诉,但该网站本身却面临着一场真正的(各种各样的)垃圾邮件轰炸。有您常见的、充斥着关键词的 SEO 垃圾邮件,但也有一些更隐蔽的东西:第三方通过网络抓取以获取联盟现金,批量发布文档不足、没有演示的插件,并链接到付费下载网站。虽然这并没有被明确禁止,但它导致了用户体验糟糕且令人困惑,并使该网站给人一种一切都不正常的强烈感觉。
精心策划的计划...
意识到所有这些问题,团队开始制定完整的改造要求。我们知道我们想要退出接收上传、提供下载以及在自己的服务器上规定插件“发布”流程的业务。由于我们的官方项目已经在 GitHub 上,我们知道我们想要利用他们已经为分发、版本控制和促进开放协作开发而发明的许多工具。另一个要求是为作者创建一个标准模式,以明确界定依赖关系,例如插件支持的 jQuery 版本以及插件正常运行所需的其他插件和 CSS 资源。我们还想引入一些质量控制,包括被动机制(例如,要求 GitHub 和分发清单文件)和主动机制(例如,用户评级)。最后,我们想要一个全新的开始;由于对提交的要求更加严格,因此不能大量导入所有旧插件。我们在准备规范方面取得了很大进展,但由于资源不足和许多其他项目,我们从未能够深入到实现阶段。毕竟,旧网站“有用”!
...通常会出错
随着垃圾邮件泛滥的加剧,以及 jQuery 核心错误跟踪器上出现了多份报告,我至少想采取一些措施来擦掉我们脸上的垃圾邮件和鸡蛋。通过对该网站的管理工具的新授权访问,我与Drupal Views Bulk Operations 模块 合作,开始识别并删除垃圾邮件发送者及其帖子。在一两天内,该网站上几乎 90% 的所谓“内容”都被删除了。在随后的几天里,我继续监控情况,并删除了出现的垃圾邮件。不幸的是,我的网可能撒得太大,把几个非常好的孩子也一起扔掉了。更不幸的是,在开始这个过程之前,我没有备份数据库。在这一点上,您可能已经猜到这个故事将如何发展。在那一周的后半段,当我试图删除四条垃圾邮件时,当操作结果显示数据库中剩余的 10%(所有剩余的插件)都被清除时,我彻底震惊了。剩下的只是一个一年前的备份。当然,我知道这是一个可怕的结果,我对此负全部责任。如果这能有所帮助,我非常乐意接受仇恨邮件和批评我做事不负责任、不专业或愚蠢的推文。
在这一点上,我们只剩下两种选择。
- 继续把球踢到路边:从旧备份中恢复,尽管如此还是会丢失大量数据,让作者经历重新上传插件的繁琐过程,即使该网站本来就计划完全弃用。
- 利用这个明显的错误作为动力,摒弃过去,最终实现我们已经讨论了很久的网站。
我们选择了后者。
具体情况
在过去几天里,我们开始将计划付诸行动,构建一个由 GitHub 支持的基础设施。在新的网站上列出插件有两个要求
- 一个有效的package.json 文件
我们遵循了CommonJS 和npm 的领导,创建了一个模式来指定 jQuery 插件的依赖项、交付和其他元数据。虽然该格式在很大程度上类似于其他项目,但我们不得不进行一些小的调整以考虑一些插件特定的细节。 - 至少有一个版本化的版本
这意味着用有效的语义版本号 (semver) 字符串对您的发布点进行标记。
我们已将提交和维护过程简化为一个单一的、一次性步骤:向您的插件的 GitHub 存储库添加一个post-receive 钩子。假设您的插件符合指南,将在插件网站上创建一个页面来展示您的使用和下载信息。当您推送新版本时,我们将进行跟踪。
在此期间
我们认识到,旧网站仍然是许多人,尤其是新 jQuery 用户的常规资源,他们只是重视中央浏览位置的存在,尽管它存在缺陷。虽然许多经验丰富的用户已经转向其他网站,或者依靠与受信任的作者的关系和口碑,但这需要时间才能建立起来。在我们能够启动新系统之前,我们很乐意将您引导至其他几个目录和可以帮助解决问题的人
如果您在搜索这些目录或任何其他目录时被引导回当前的 plugins.jquery.com 网站,通常只需快速搜索作者姓名和插件名称就可以找到托管它的备用网站。此外,DailyJS 刚刚发布了一个有用的替代方案汇总,其中提供了更详细的信息。
插件作者的后续步骤
如果您是想要确保自己的插件在第一天(甚至更早)就可以正常运行的插件开发者,您需要确保自己的插件在 GitHub 上,然后您需要开始创建自己的package.json 文件,并确保您的版本已正确标记。如果您还不熟悉 Git 和 GitHub,那么现在就是您开始使用的绝佳时机。如果您更喜欢其他 SCM 系统,您可以研究从 svn 或 hg 设置一个镜像到 git,或其他项目托管网站,例如 bitbucket 或 gitorious。如果您没有将插件开发为开源软件,或者根本没有使用任何源代码控制,我们目前将无法为您提供服务。
我如何提供帮助?
虽然该网站仍在开发中,但您可以跟踪进度,甚至立即设置自己的本地开发环境,地址为 github.com/jquery/plugins.jquery.com/。我们仍在努力建立一个公共的预发布环境。
虽然该网站本质上是“由”GitHub 提供支持,但显然还有许多活动部分。该网站实际上将从 WordPress 内部提供服务,WordPress 使用 node.js 工具填充已索引插件的内容。仍然有许多问题需要解决,因此,如果您想加入这个堆栈,请加入我们,访问该存储库。我们将使用 GitHub Issues 来处理所有功能请求、错误和讨论。
虽然我们已经对package.json
模式进行了深入的思考,但它仍然是一个活文档,如果您对它的设计方式有任何疑问或意见,请访问此问题。
勘误
在理想情况下,当然不会完全按照它发生的这样发生。不幸的是,它确实发生了。我们希望您能接受我们对这种过渡可能使您的工作变得更加困难、给您带来一些您没有预料到的额外工作或只是让您感到反感的多种方式表示歉意。如果您能原谅我们,请耐心等待我们,也许还能伸出援手,我们相信我们能够交付社区应得的现代且实用的插件网站。
TL;DR
因此,说了很多话,以下是要点。
- 我们一直在计划替换最初的、充斥着垃圾邮件的插件网站有一段时间了。
- 在删除垃圾邮件的过程中,所有插件都被删除了,而且我们没有最近的备份。
- 我们没有把精力浪费在让旧网站继续运行上,而是决定断然决裂,全力以赴地开发新网站。
- 新网站由 GitHub 和插件的包清单 提供支持。
- 旧网站上的插件永远不会自动导入到新网站中。
- 该存储库位于 github.com/jquery/plugins.jquery.com
- 我们非常抱歉,但也非常兴奋!
我认为你在迁移到 Github 时遗漏了一个重要点…简单性… 旧的代码库非常简单,虽然不完美,但对大多数用户来说更实用…
这个项目没有活动,也没有更新?jQuery 核心开始看起来像一个******** 不专业的烂摊子。
喜欢 jQuery,开始对网站感到非常不满,更具体地说,是对插件页面。似乎永远无法下载任何东西,顶部那个“我们正在修复这个问题”的方框似乎已经存在了很久,而 Github 作为替代方案也是一团糟。这是一个糟糕的判断。
拜托,你们已经下架插件三个月了。即使你们认为旧的插件页面很乱,它也比完全没有插件页面好得多。你们本来可以将事情保持“现状”,直到推出新的插件部分。无论如何,三个月都是不可接受的。
也应该使用这个 http://drupal.org/project/backup_migrate
好主意。继续!如果你需要帮助,我可以帮忙。