jQuery 插件网站发生了什么?

发布日期: 作者:

大约一周前,我们的插件库不再托管数百个 jQuery 插件和数千个笔记本电脑电池广告,而是显示了一条关于垃圾邮件的非常糟糕的信息,以及对“新提交流程”的暗示。这件事发生得很突然,我们对所有受到影响的人表示歉意。请允许我花几分钟时间解释一下发生了什么,我们将走向何方,以及它将如何影响您。如果您时间紧迫,请查看 简短版本

背景故事

一只白象 虽然您所熟知的插件网站 深受喜爱 在最初建立时是一个有价值的工具,但它逐渐成为该项目的一个 白象。当像 GitHubnpm 这样的强大分发工具出现时,我们却被困在一个老化的 CMS 模式中,这令开发人员和插件使用者感到沮丧。许多人转向其他来源寻找和验证插件。此外,该网站的原始实施者和维护者已经不再积极参与 jQuery 项目。虽然团队面临着关于可用性和功能普遍缺乏的持续投诉,但该网站本身却面临着各种形式的垃圾邮件的轰炸。有标准的、富含关键词的 SEO 垃圾邮件,但也有一些更隐蔽的东西:第三方发布没有文档、没有演示的插件,并链接到付费下载网站,以获取联盟现金。虽然这并没有明确禁止,但它导致了用户体验糟糕且令人困惑,并使该网站给人一种一切都不正常的感觉。

精心制定的计划...

考虑到所有这些问题,团队开始制定彻底改革的要求。我们知道我们想要退出接受上传、提供下载以及在我们自己的服务器上监管插件“发布”流程的业务。由于我们的官方项目已经在 GitHub 上,我们知道我们想利用他们已经为分发、版本控制和促进开放式协作开发而发明的许多工具。另一个要求是创建一个标准模式,让作者能够清楚地界定依赖关系,例如插件支持的 jQuery 版本,以及它需要正常运行的其他插件和 CSS 资产。我们还希望引入一些质量控制,包括被动机制,如要求 GitHub 和用于分发的清单文件,以及主动机制,如用户评级。最后,我们希望有一个全新的开始;在对提交有更严格的要求的情况下,不可能大量导入所有旧插件。我们在准备规范方面取得了很大进展,但由于缺乏资源和其他项目的限制,我们从未能深入到实施阶段。毕竟,旧的网站“有效!”

...往往会出错

Throwing the baby out with the bathwater

随着垃圾邮件泛滥的加剧,以及 jQuery Core 错误跟踪器上开始出现多份报告,我至少想要采取一些措施来消除一些垃圾邮件和困扰我们的东西。获得了对该网站管理工具的新授权访问权限后,我与 Drupal Views 批量操作模块 合作,开始识别并删除垃圾邮件发送者及其帖子。在一两天内,几乎 90% 的所谓“内容”从该网站上消失了。在接下来的几天里,我继续监控情况,并删除了收到的垃圾邮件。不幸的是,我可能网撒得太宽了,把一些非常好的东西也一并删除了。更不幸的是,在开始这个过程之前我没有备份数据库。此时,您可能已经能够看到这个故事的走向。在本周晚些时候,当我试图删除四条垃圾邮件时,当操作结果显示剩余的 10%——数据库中剩余的每个插件——都被清除了,我感到非常震惊。剩下的只是一年前的备份。当然,我意识到这是一个可怕的结果,我对它负全部责任。如果这能有所帮助,我非常乐意接受仇恨邮件和批评我行为不负责任、不专业或愚蠢的推文。

在这个阶段,我们剩下两个选择。

  • 继续拖延:从旧备份中恢复,即使这样也会丢失大量数据,让作者经历重新上传插件的痛苦过程,即使该网站本来就应该完全弃用。
  • 利用这个明显的错误作为契机,彻底抛弃过去,最终实现我们讨论已久的网站。

我们选择了后者。

主要细节

在过去的几天里,我们开始将计划付诸行动,构建了一个由 GitHub 支持的基础设施。在新的网站上列出插件有两个要求
Success Kid is helping out as well

  • 一个有效的 package.json 文件
    我们借鉴了 CommonJS npm 的经验,创建了一个模式,用于指定 jQuery 插件的依赖关系、交付和其他元数据。虽然这种格式与其他项目的格式大体相似,但我们不得不进行一些细微的调整,以解决一些特定于插件的细节。
  • 至少有一个版本发布
    这意味着您需要使用有效的语义版本号 (semver) 字符串对发布点进行 标记

我们简化了提交和维护流程,只需执行一次操作:在您的插件的 GitHub 存储库中添加一个 post-receive 钩子。假设您的插件符合指南,插件网站上将创建一个页面来展示您的使用和下载信息。当您推送新版本时,我们会进行跟踪。

在此期间

我们认识到,旧网站仍然是许多人,尤其是 jQuery 新手用户的常用资源,他们仅仅重视存在一个中心浏览位置,尽管它存在缺陷。虽然许多经验丰富的用户已经转向其他网站,或依靠与可信作者的关系和口口相传,但这需要时间来发展。在我们能够启动新系统之前,我们很乐意为您推荐其他几个目录和可以帮助弥补差距的人员

如果您在搜索这些目录或任何其他目录时被导回 plugins.jquery.com,通常只需快速搜索作者姓名和插件名称即可找到它托管的替代网站。此外,DailyJS 刚刚发布了关于替代方案的有用综述,其中包含更多详细信息。

插件作者的下一步

如果您是一位插件开发者,想要确保您的插件在第一天(甚至更早)就能投入使用,您需要确保您的插件已在 GitHub 上发布,然后您需要开始创建您的 package.json 文件,并确保您的版本已正确标记。如果您还不熟悉 Git 和 GitHub,那么现在是您踏入并 开始使用 的绝佳时机。如果您更喜欢其他 SCM 系统,您可以考虑从 svnhg 设置一个镜像到 git,或其他项目托管网站,如 bitbucketgitorious。如果您没有将您的插件作为开源软件开发,或者您根本没有使用任何源代码控制,那么我们目前无法为您提供服务。

我该如何帮助?

虽然该网站仍在开发中,但您现在就可以跟踪进度,甚至设置您自己的本地开发环境,请访问 github.com/jquery/plugins.jquery.com/。我们仍在努力建立一个公共测试环境。

虽然该网站本质上是由 GitHub “驱动”的,但显然还有许多其他因素在起作用。该网站实际上将从 WordPress 内部提供服务,WordPress 中包含使用 node.js 工具索引的插件内容。仍有许多问题需要解决,因此如果您想参与其中,请加入我们在 存储库 中。我们将使用 GitHub Issues 来处理所有功能请求、错误和讨论。

虽然我们在制定 package.json 模式时投入了大量思考,但它仍然是一个不断发展中的文档,如果您对它的结构有任何疑问或意见,请访问 此问题

更正

在理想的世界中,这种情况肯定不会以这种方式发生。但遗憾的是,它确实发生了。我们希望您能够接受我们对这种过渡可能给您带来的各种麻烦、额外工作或令人不快的体验的歉意。如果您能够原谅我们,请耐心等待,甚至可能伸出援手,我们相信我们能够提供社区应得的现代、实用的插件网站。

TL;DR

所以说了一大堆,重点是:

  • 我们一直在计划用新的网站替换原来的、充斥着垃圾邮件的插件网站。
  • 在删除垃圾邮件的过程中,所有插件都被删除了,我们没有最新的备份。
  • 与其浪费时间让旧网站苟延残喘,我们决定彻底断绝联系,全力以赴开发新网站。
  • 新网站由 GitHub 和 插件包清单 支持。
  • 旧网站上的插件永远不会自动导入到新网站中。
  • 存储库位于 github.com/jquery/plugins.jquery.com
  • 我们非常抱歉,但也非常兴奋!

jQuery 插件网站发生了什么?” 的 156 条评论

  1. 我认为你在迁移到 GitHub 的过程中忽略了一个重要点……简便性……旧的仓库非常简单,虽然不完美,但对大多数用户来说更易用……

  2. 喜欢 jQuery,但越来越讨厌这个网站,更具体地说,是插件页面。每次都无法下载任何东西,顶部的“我们正在修复它”框似乎永远都在那里,GitHub 作为替代方案也是一团糟。糟糕的判断。

  3. 拜托,你们已经下架插件三个月了。即使你们认为旧的插件页面很乱,它也比完全没有插件页面要好得多。你们本可以将事情“保持现状”,直到推出新的插件部分。三个月是不可接受的,无论你们如何解释。