jQuery 插件网站发生了什么?

发布于 作者

大约一周前,我们的插件库不再托管数百个 jQuery 插件和数千个笔记本电脑电池的广告,而是提供了一条关于垃圾邮件的相当可怜的信息,并暗示了一些“新的提交流程”。这发生得非常突然,我们对所有因此而造成不便的人感到抱歉。请允许我花几分钟解释一下发生了什么,我们将走向何方,以及这对您有什么影响。如果您赶时间,这里有简短版本

背景故事

白象 虽然您所知的插件网站曾经是一项宝贵的工具,它是在刚建立的时候,但随着时间的推移,它逐渐成为项目的一个鸡肋。当像GitHubnpm这样的强大分发工具出现后,我们却仍然停留在一个老化的、以 CMS 为中心的模式中,这让插件的开发人员和消费者都感到沮丧。许多人转向了其他来源来寻找和审查插件。此外,该网站最初的实现者和维护者已经不再积极参与 jQuery 项目。虽然团队面临着关于可用性和普遍缺乏功能的持续抱怨,但该网站本身却遭到了各种垃圾邮件的轰炸。有普通的、富含关键字的 SEO 垃圾邮件,但也有更隐蔽的东西:第三方通过网络搜寻联盟现金,批量发布没有文档、没有演示的插件,并链接到付费下载网站。虽然这并没有被明确禁止,但它导致了用户体验糟糕且令人困惑,并给该网站带来了所有事物都不正经的感觉。

最好的计划……

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

……往往会出错

Throwing the baby out with the bathwater

随着垃圾邮件泛滥变得更加严重,以及多个报告开始出现在 jQuery 核心错误跟踪器上,我至少想采取一些措施来消除一些垃圾邮件,让我们摆脱困境。凭借新获得的对网站管理工具的访问权限,我和Drupal Views 批量操作模块合作,开始识别和删除垃圾邮件发送者及其帖子。一两天之内,近 90% 的所谓“内容”从网站上消失了。在接下来的几天里,我继续监控情况,并删除了出现的垃圾邮件。不幸的是,我可能网撒得太广,把一些完全无辜的宝贝也一起扔掉了。更不幸的是,在我开始这个过程之前,我没有备份数据库。在这一点上,您可能已经猜到故事的结局了。在当周晚些时候,当我试图删除四条垃圾邮件时,当我发现操作结果报告剩余的 10%——数据库中剩下的每一个插件——都被清除了,我完全惊呆了。只剩下一个一年前的备份。当然,我意识到这是一个可怕的结果,我对此负全部责任。如果能有所帮助,我非常乐意接受仇恨邮件和推特,谴责我因为不负责任、不专业或仅仅是愚蠢。

在这个关头,我们只剩下两种选择。

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

我们选择了后者。

要点

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

  • 一个有效的package.json 文件
    我们遵循了CommonJSnpm 的先例,创建了一个模式来指定 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
  • 我们对此感到非常抱歉,但也非常兴奋!

156 thoughts on “jQuery 插件网站发生了什么?

  1. 有人知道这个新的插件网站什么时候会上线吗?有没有预计日期或其他信息?

    谢谢,
    George

  2. 爱 jQuery!在我发现它之前,我一直像躲避瘟疫一样躲避学习 JavaScript。

    很高兴得到一个关于这里发生了什么的诚实解释,正如另一个用户评论的那样,我们都经历过,这通常是塞翁失马,焉知非福。

    继续努力,伙计们!

  3. jQuery Rocks on said:

    我要回应一些最近的评论 - 你有新的插件网站的时间表吗?我迫不及待地想看到它,或者至少是一个粗略的版本。考虑到今年的假期,不用急于求成,但只是想知道时间表。

    祝假期愉快,感谢你们所有的辛勤工作!

  4. 我很高兴你们删除了所有这些。好的插件会马上回来,而过时/不太好的插件会回到它们应该在的地方 :)

    我很期待看到新系统。感谢你们所做的一切!

  5. 通过谷歌搜索缓存

    cache:URL 或缓存链接

    估计从昨天到 3 个月前。给出爬取日期。纯文本缓存也是。

  6. 做得很好,

    十个人中有九个人会保留旧的垃圾。我想你们是意外删除了所有这些,但最终 jQuery 会因为这场复兴而成长。

    阻止我们使用垃圾插件,给你们 100 分!

  7. 我曾经在第一次演示时“意外”地用没有备份的新网站覆盖了客户的旧网站。老板训了我一顿,但客户对新网站很满意,并不介意。类似的情况,就像我理解的那样 ;)

    我会接着说,无论是有意还是无意,这都是一件好事,但看到新的插件网站上线运行是有道理的。

  8. 所以关于这个 post-receive hook… 我假设我只是将一个 url 添加到你的插件 hook 中?我没看到这个 hook 的发布 url。

  9. 你们如此坦诚地公开说明发生的事情,说明了很多。你们本可以轻易地掩盖真相,使其不是你们的错,但你们却承担了全部责任。你们是人,我们都会犯错。我喜欢你们在这里做的事情。jQuery、插件、UI 组件,所有这些都非常棒,我感谢你们。不要太担心,最终的结果会好很多!我非常理解丢失一个非常重要的数据库有多糟糕,我自己也经历过。我相信,如果别无他法,你们至少会先备份数据库!:)

  10. 并不是所有的事情都是坏事,我们可能会指责,但你们道歉是正确的做法,我相信 query 可以提供的不仅仅是这些,我希望更多,而且因为你们的态度而变得更好。

  11. Mike Otgaar on said:

    我最近“意外”删除了一个网站。因为懒惰,我使用 C-Panel 选择了错误的网站 - 应该是用于测试的临时网站…
    至少有一个当前的备份数据库和文件 - 只需上传文件,恢复数据库,并替换几个图像即可。

    祝新网站好运 - 看起来很棒。

  12. 很好!旧网站的插件搜索很糟糕。我不得不通过谷歌才能找到任何相关的东西。不要讨厌 Drupal,它是你想让它成为的样子,但你必须使用正确的工具来完成工作。

  13. 旧网站并不完美,但它确实为开发者提供了一个展示他们作品的中心点,也让用户看到了哪些新功能已经推出。电池广告很烦人,但不像搜索功能那么让人沮丧,但它仍然是筛选所有这些内容以找到你需要的那颗宝石的唯一途径。

    您知道类似的东西(清单而不是电池广告)什么时候会再次上线吗?

  14. 与其将旧站点作为死存档展示,为什么不将其作为真实站点展示,同时创建一些新的东西?

    链接到一个业余时间 Github 项目和一篇解释错误的博客文章对任何人都没有帮助。

  15. 嘿,Adam 和整个团队,感谢你们的解释。危机是全球性的,没有人能宣称自己是完美的!毕竟我们都是人。

    继续努力!

  16. 插件是 jQuery 的命脉,展示了该产品的最新发展。它们保持着用户的极高兴趣,并允许开发人员更轻松地实施通常复杂的程序。

    虽然新网站可能很棒,但现在需要一些东西,以便我们网站开发人员能够继续为我们的组织提供产品。如果 jQuery 想要在专业领域继续被认真对待,它不能只是说“目前没有产品”,而没有任何过渡安排或完成目标日期。

    我相信你们都在努力工作,并将想出比以前更好的东西 - 但是 - 我们确实需要一些暂时的东西(即现在) - 请 - 请 - 请!

  17. YouShouldBeFired 说:

    我只希望你会被踢出 jQuery 团队!像这样的错误出现在任何公司都会让犯错的人被解雇!

  18. @YouShouldBeFired - 这就是为什么如果你的小破公司代表你的态度,没有人会听说过它。

    错误会发生。那些认真对待 jQuery 的人对这些变化感到高兴。

  19. Alvaro Prieto 说:

    @santo 我认真对待 jQuery,我不高兴继续等待几个月才能让新网站上线。我知道这是一个错误,我真的希望没有人会被解雇,但是这已经太久了,你不觉得吗?

    jQuery 如今是如此重要的资源,我认为两个月的插件库等待时间可能会损害 jQuery 本身。也许应该使用更多资源来加快网站开发。

    我相信新网站会很棒,而且会好很多,但我真的很希望尽快看到它!:-)

  20. 这真的很糟糕。整个网络上关于 jQuery 插件的链接都失效了。我不能再等了。这对项目开发来说真的很糟糕。

  21. 你的诚实回答听起来很有趣,它证明每个人都会犯错误,接受错误比给出很多解释要好。

    祝你的新网站好运,我永远爱 jquery。

  22. 虽然这是一个有趣的故事,但它表明了在“开源世界”的各个方面所遇到的普遍缺乏专业精神。

    为什么我应该使用一个维护人员甚至没有为他们的服务器设置轮换备份的框架?

  23. 最后一条评论让我很恶心。这不是关于“开源世界”,而是关于人性。

    每个人都会犯错误。jQuery 虽然很棒,但你无法构建完美的解决方案。最重要的是不断改进,使其尽可能好。

    更重要的是,让我们保持知情,这样社区也能一起成长!

  24. jQuery 是一款优秀的產品,并得到一群敬业人士的支持。有人犯了一个错误——虽然不愉快,但我们必须接受並继续前进。

    插件让这个产品变得伟大——如果没有它们,它将是一个不太有用的产品。拥有如此丰富的强大、紧凑且经过测试的应用真是太棒了。只是目前我们无法访问这些应用。更糟糕的是,我们不知道何时可以访问它们……

    如果有人正在处理这个问题,请告诉我们可能的结束日期好吗?

  25. 我完全同意最后一条评论!!!jQuery 非常棒,帮助了无数开发者构建了无数很棒的网页!

    至于这个特定的插件页面问题,它确实阻止了我们中的许多人进一步探索 jQuery 的能力。几个月过去了,但仍然没有关于还要等待多久的消息/更新。

    最后,我个人非常感谢创作者为创建 jQuery 做出的努力。

  26. 拜托大家,
    你们付钱给这些人来为你们开发 jQuery 吗?我想不是吧,所以别抱怨了。

    考虑到插件网站以前有多糟糕(过时的垃圾、脚本小子垃圾和垃圾邮件泛滥),我认为有人来把它删除了简直是天降福音。说真的。

    jQuery 非常棒,理应拥有一个很棒的插件存档。

    别再催促新网站了!这些人也有自己的生活,知道吗?如果你想加快进度,就去给他们捐款吧。

  27. 听起来你并不怎么重视插件网站,Bruno!我们其他人却很重视(即使有垃圾邮件和过时项目,我们也可以轻松地跳过它们),而且经常使用它。认为“它不存在,那又怎样?”的态度肯定会让开发者感到非常沮丧,虽然这并不像“把他们都炒鱿鱼”那样令人厌恶!

    我的感受是
    (1) 它是一个 jQuery 不可或缺的一部分。没有插件网站会降低 jQuery 本身的价值。
    (2) 我希望它尽快上线。
    (3) 但最重要的是,让我们了解进展情况,以及何时会有一个新的网站可用。

  28. 回复 jQuery Rocks
    我当然没有想要批评 jQuery 团队的意思!我们很幸运拥有一支敬业且才华横溢的团队为用户社区服务。只是没有办法让用户在相当长的一段时间内贡献基于 jQuery 的应用,也没有办法让其他人了解现有的选项,这令人沮丧。否则,我们将一直重复造轮子。

    我认为,如果我们知道发生了什么,以及计划何时交付替代方案(或者只是暂时恢复旧系统),那么我们都会感觉好一些。正如你所说,UI 1.9 的发布日期也很让人感兴趣!

  29. jQuery Rocks 说:

    我其实不是在说你的帖子,Bill——我主要是说其他人的评论,比如 jQuery 团队应该被解雇,还有一些人正在咒骂,给文章作者起了各种难听的绰号,等等。

  30. 回复 jQuery Rocks
    那真是太好了——虽然我冒犯了大家——我也是 jQuery 的粉丝。

    我非常依赖 jQuery 插件(以及我自己的一些代码)来让我的网站令人难忘。没有插件网站,我正在努力重新发明轮子,我的效率急剧下降。

    我同意,辱骂和人身攻击永远不是解决问题的正确方法,而且还会适得其反,因为我相信这会让为我们提供这种优秀资源的才华横溢的团队失去动力。

  31. DipRach 说:

    我正在使用 Jquery Idle timeout 插件,它在 aspx 页面上运行良好,但在 fancybox 模态弹出框上却无法运行。当我点击 fancybox 模态弹出框上的“确定”继续时,我的会话过期了,并跳转到注销页面。有人知道这个问题吗?

  32. Martyn 说:

    过去我发现 JQuery 插件网站非常有用。只有在发现没有人真正备份过不可替代的数据之后,才会出现“几千个笔记本电池广告”的借口。所有相关人员都应该重新考虑职业生涯,把这类事情交给专家来做。

    P.S. 这到底要花多长时间才能解决?第一篇帖子出现在 2011 年 12 月 8 日。

  33. 哦,我好想念旧的插件网站!

    通过这次经历,我想你永远不会忘记备份了。

    新网站好运!你们可以为那些想尽快使用这个网站的人创建电子邮件提醒吗?

  34. 我认为这是你只能从痛苦中吸取教训的事情。大多数工程师都会感同身受 :-).

    无论如何,重要的是新网站何时上线?旧网站可能存在一些问题,但没有可用的网站更糟糕。