插件网站更新:旧的是新的

发布于 作者

自从上周宣布插件网站不幸陷入 oblivion 以来,我们收到了很多反馈,我想解决自那以后出现的一些最重要的问题。

“您能为了后代提供旧的备份吗?”

可以。我们可以这样做,而且已经做到了。在周末,我们恢复了我们拥有的最新备份,原始网站现在位于 archive.plugins.jquery.com;您应该能够浏览所有内容,直到您心满意足为止。我们还应用了我们拥有的最新用户信息,因此如果您在过去一年中的任何时间在旧网站上拥有帐户,它应该仍然有效。但是,该网站已关闭新的用户注册。如果您真的需要一个新帐户,请联系我 私信我,我可以为您解决这个问题。我们还设置了一个重定向,这样,如果您在浏览中遇到任何指向 plugins.jquery.com 的链接,您(希望)将最终到达存档中的相应页面。

只需从 Wayback Machine 获取备份!

虽然互联网存档已经缓存了比去年 10 月更新的版本的内容,但我们没有人力在新的存档网站上手动重新创建丢失的帖子。如果您有帐户,您可以随时添加“新”或旧的插件,或更新现有的插件,如果您愿意。但是,此存档不会被搜索引擎索引。

如果您如此讨厌 CMS,那 WordPress 是怎么回事?

我们正在进行全网络范围的重新设计,而 WordPress 在主题、搜索和为一组网站提供服务方面为我们提供了有价值的一套工具。然而,我们的新格言是 **pull requests,not passwords**;我们正在以这样一种方式实现主题、文档、插件等,即贡献实际上不需要在我们的 CMS 上拥有帐户。正如我在最初的帖子中所概述的那样,插件提交过程只涉及向您的存储库添加一个 post-receive hook。如果发生类似的灾难,我们确保能够重播整个插件贡献历史并立即恢复网站。我们的目标是利用我们发现有用的 WordPress 功能,而不会让它成为进入障碍或内容的规范仓库。如果您认为 WordPress 永远是一个糟糕的主意,无论如何,无论如何,您当然有权持有这种观点,但在这一点上,这对对话没有特别有益。

Git(Hub) 很困难

新的插件网站将充当插件索引,每个插件页面上都有一个简单的“下载”按钮。您 **不会** 必须在 GitHub 上四处浏览以查找 jQuery 插件。如果您不了解 git 并且只想下载 jQuery 插件,则不必学习它。但是,如果您想提交插件,您必须使用某种源代码控制,至少可以在 git 中镜像它。这是设计使然:构建 jQuery 插件可能非常容易,但这并不意味着它一定适合公开使用。要求使用源代码控制和 package.json 是被动机制,这将有助于确保扩散的插件是由满足合理基线的开发人员(而不是出售电池的开发人员)编写的。我们只针对 GitHub 支持进行发布,但我们 希望添加对其他服务的支持。我们正在积极避免使用 GitHub 特定的功能,这些功能会迫使我们将网站永久限制为 GitHub 用户。

这是一个阴谋!

有些人对我的帐户的真实性提出了质疑,鉴于时间和环境,这是可以理解的。但相信我,在花了一天时间手动从目录中清除垃圾邮件后,我最后想做的事情就是反过来给包括我和我的同事在内的数千人带来巨大的头痛。我希望重新启动最后一个备份至少能部分消除这些担忧。此外,我们从 GitHub 开始,仅仅因为它已经拥有非常广泛的用户群,并且自从我们将其用于 jQuery Core、UI 和 Mobile 的开发以来,它对我们一直非常积极。

再次感谢您在过渡期间的耐心等待。

jQuery 插件网站发生了什么?

发布于 作者

大约一个星期,我们的插件存储库一直在提供有关垃圾邮件和对某些“新提交过程”的暗示的非常可悲的信息,而不是托管数百个 jQuery 插件和数千个针对笔记本电脑电池的广告。这件事发生的非常突然,我们对所有受到影响的人感到抱歉。请允许我花几分钟时间解释发生了什么,我们将走向何方以及它如何影响您。如果您时间紧迫,这里有 简短版本

背景故事

一只白象 虽然您所知道的 和喜爱 的插件网站在最初设置时是一个有价值的工具,但它逐渐 变成了项目的一个累赘。当像 GitHubnpm 这样的强大分发工具出现时,我们一直陷于一个陈旧的、面向 CMS 的范式中,这使开发人员和插件的消费者都感到沮丧。许多人转向其他来源来查找和验证插件。此外,该网站的原始实施者和维护者已经从 jQuery 项目中的积极参与中退出。虽然该团队面临着关于可用性和一般缺乏功能的不断投诉,但该网站本身却面临着大量(多种类型的)垃圾邮件。有你常见的、关键词丰富的 SEO 垃圾,但也有一些稍微更阴险的东西:由第三方发布未经充分记录、没有演示的插件,这些插件包含指向付费下载网站的链接,以获取联盟现金。虽然这并没有明确禁止,但它导致了用户体验非常糟糕和混乱,并让该网站有一种强烈的直觉,即并非一切都是光明正大的。

最完美的计划……

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

……往往会出错

Throwing the baby out with the bathwater

随着垃圾邮件的泛滥越来越严重,并且在 jQuery Core 错误跟踪器中出现了多份报告,我至少想要采取一些措施来清除我们脸上的垃圾邮件和鸡蛋。凭借对网站管理工具的新近分配的访问权限,我与 Drupal Views Bulk Operations 模块 合作,开始识别和删除垃圾邮件发送者及其帖子。在一天或两天内,几乎 90% 的所谓的“内容”从网站上消失了。在随后的几天里,我继续监控情况,并删除了收到的垃圾邮件。不幸的是,我可能范围太广,把一些 perfectly good 的婴儿和洗澡水一起倒掉了。更不幸的是,在开始此过程之前,我没有备份数据库。在这一点上,您可能已经看到了这个故事的走向。在本周晚些时候,当我试图删除四项垃圾邮件时,当我看到操作结果报告剩余的 10%——数据库中剩余的每一个插件——都被清除了,我感到非常震惊。剩下的只是一年前的备份。当然,我意识到这是一个可怕的结果,我对此负全部责任。如果这有帮助的话,我非常乐意收到仇恨邮件和推特,谴责我为不负责任、不专业或愚蠢。

在这一点上,我们只剩下两种选择。

  • 继续踢罐子:从旧备份中恢复,反正也会丢失大量数据,让作者经历重新上传插件的痛苦过程,即使该网站本来应该完全弃用。
  • 利用这个明显的错误作为动力,从过去中分离出来,最终实现我们谈论了很久的网站。

我们选择了后者。

要点

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

  • 一个有效的 package.json 文件
    我们遵循了 CommonJS npm 的领先地位,并创建了一个模式来指定 jQuery 插件的依赖项、交付和其他元数据。虽然该格式与其他项目的格式非常相似,但我们不得不进行一些小的调整以说明一些插件特定的细节。
  • 至少一个版本化的发行版
    这意味着使用有效的语义版本号 (semver) 字符串标记您的发行点。

我们已将提交和维护过程简化为一个单一的一次性步骤:向您的插件的 GitHub 存储库添加一个 post-receive hook。假设您的插件符合指南,将在插件网站上创建一个页面来显示您的使用情况和下载信息。我们将跟踪您推送的新版本。

过渡阶段

我们认识到,旧网站仍然是许多人,尤其是 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 问题来处理所有功能请求、错误和讨论。

虽然我们在构建 package.json 模式方面投入了大量精力,但它仍然是一个不断发展的文档,如果您对它的构建方式有任何疑问或意见,请前往 这个问题

勘误

在理想的情况下,这种情况当然不会以这种方式发生。不幸的是,它发生了。我们希望您能接受我们对这种过渡可能给您带来的许多使工作变得更难、让您承担一些意外的额外工作或仅仅留下不好的感觉的道歉。如果您能原谅我们,请耐心等待,也许还能伸出援手,我们相信我们能够提供社区应得的现代、实用的插件网站。

TL;DR

所以说了很多话,这是要点。

  • 我们一直在计划更换原来的垃圾邮件泛滥的插件网站。
  • 在删除垃圾邮件的过程中,所有插件都被删除了,而且我们没有最近的备份。
  • 与其浪费时间让旧网站继续运行,我们决定彻底放弃旧网站,并加快新网站的开发。
  • 新网站由 GitHub 和 插件的软件包清单 提供支持。
  • 旧网站上的插件永远不会自动导入到新网站中。
  • 仓库地址:github.com/jquery/plugins.jquery.com
  • 我们非常抱歉,但也非常兴奋!

jQuery 董事会

发布日期: 作者:

TL;DR 负责监管 jQuery 财务和管理的机构,以前被称为 jQuery 团队,现在称为 jQuery 董事会。jQuery 团队是指任何在 jQuery 及其相关项目上投入大量时间贡献的人。

随着 jQuery 从 2005 年的一个酷想法 发展到 今天互联网上使用最广泛的 JavaScript 代码,支持其发展及其社区所需的组织结构也随之改变。随着时间的推移,电子邮件链变成了邮件列表,从这些列表中演化出一个被称为 jQuery 团队的非正式联盟。要加入这个团队,你只需要在项目的某个方面做出持续的贡献,最终 John 会将你的名字添加到我们的文档维基中的一个页面上。

到 2009 年,团队希望巩固项目的长期未来,因此我们接受了 加入软件自由保护协会 (SFC) 的邀请,自那以后,我们从 SFC 获得了大量行政和法律支持。虽然 SFC 提供了“项目可以继续以加入协会之前的方式运作,而无需选择董事会或任何其他公司管理层”,但团队选择实施一个治理系统,根据该系统,项目的官方决定将在“核心团队”成员进行 公开投票 后传达给 SFC,核心团队最初有 21 名成员。这为一个相对临时性的过程赋予了相当大的正式性,虽然这个系统运作良好,但也伴随着一些混乱。

  • 一方面,有投票成员,主要负责整个项目的财务和管理决策。另一方面,有一个实际的人员群体在处理 jQuery 核心本身。这两个群体有时都被称为 jQuery 核心团队,这是相当误导的。
  • 当新人加入并积极参与项目的某些部分时,告诉他们“嘿,干得好,但你 *不在* 团队中!” 并不令人愉快。
  • 仅仅因为你真的对黑客攻击 jQuery 核心、UI 或移动版(或处理文档,或以其他许多方式帮助项目)感兴趣,并不意味着你最想要做的是参加长时间的会议,讨论如何分配资金以及如何改善下一次会议的饮料服务。
  • 随着人们的生活起起伏伏,他们的贡献能力也会发生变化。现在活跃的贡献者与在项目的宏观管理中拥有投票权之间应该是什么样的关系?

为了试图解决一些混乱,并使该群体的目标更加清晰,jQuery 团队现在被称为 jQuery 董事会,所有适用于团队的治理规则现在也适用于董事会。董事会负责

  • 批准和拨付支出
  • 代表 jQuery 项目的意愿与 SFC 沟通
  • 监督和指导子团队,并选择负责项目各个方面的子团队负责人
  • 对自身的构成进行投票

如果你一直想“加入团队”,但不知道这意味着什么或你该做什么,那么这是个好消息!我们完全接受了 维基百科对团队的定义:一群人(或动物!)为共同的目标而联系在一起。因此,任何在一段时间内自愿积极参与 jQuery 子团队的人都会被邀请加入 jQuery 团队(由子团队负责人决定),这样你就可以自豪地在你的幻灯片、冰箱等等地方放上这个信息。

没有改变的是,如果你对 web 开发充满热情,并试图找到一种方法来为世界各地的开发人员做出贡献,那么在 jQuery 社区中有一个适合你的地方。加入 论坛,帮助其他开发人员。访问我们的 各种 错误 追踪器,帮助对开放问题进行分类 - 或者 深入研究,看看你是否能提供补丁。如果你只是想了解一下,可以加入 每周的 IRC 会议。想参与某个特定项目?查看更新后的 团队页面,并联系合适的子团队负责人!有一点可以肯定

jQuery wants you!

官方插件:路线图的改变

发布日期: 作者:

仅仅六个月前,我们宣布将三个主要由微软开发的插件——模板、数据链接和全球化——作为官方插件,并根据 jQuery 项目的标准进行开发,并由 jQuery 项目提供支持。今天,我们想借此机会分享我们在此期间的经验教训,并宣布对这些插件以及 jQuery 的其他“官方插件”的路线图进行调整。

从来没有一个专门的 jQuery 团队来支持官方插件。在采用微软的贡献之前,jQuery 项目支持的插件——颜色、缓动、bgiframe、鼠标滚轮、元数据和 Cookie——都是非常简单、有效的插件,可以实现特定的功利性目的。它们只需要很少的维护,在 jQuery 核心不同版本的演变过程中始终如一地运行,没有太多麻烦。最近几个月,当我们注意到与这三个新插件相关的问题有所增加时,我们意识到存在脱节现象。虽然对插件的测试版开发在微软继续进行,但旨在与微软合作并采用微软工作的计划中的 jQuery 子团队从未形成。

随着基于插件的测试版以及文章中做出的承诺而产生的需求增长,我们感受到了这种低沉的嗡嗡声、这种困惑和这种困惑的惊呼:“我认为模板将在 1.5 版本中出现!” 由于您的担忧和我们的担忧,我们决定完全消除官方插件的概念。这在语义和象征意义上都有所不同,但这是其物质影响

许多最初支持的 jQuery 插件(颜色、缓动和鼠标滚轮)将继续由 jQuery 核心开发团队提供支持和维护。元数据插件将被弃用,转而使用 jQuery 1.4.3 及更高版本提供的类似功能。Cookie 插件 将继续由 Klaus Hartl 维护。

jQuery UI 项目将接管其当前或未来依赖的插件:模板、全球化和 bgiframe。jQuery UI 团队计划从头开始处理模板和全球化,从 UI 插件的常规流程开始:协作开发规范。虽然有些人可能认为这是挫折,因为当前的 jquery-tmpl 插件已经取得了进展,但这实际上是一个与社区(包括微软)协同工作的机会,以开发一个有效且灵活的实现。微软一直开发的“官方插件”一直处于测试阶段,可能会发生变化,并在 Beta 2 版本中计划进行重大修改,但我们认识到(并感谢)那些已经参与并开始在应用程序中尝试和使用它们的你们。UI 团队目前仍处于 模板 和全球化插件的早期规划阶段,我们邀请您访问 规划维基 并分享您对开发的看法。

微软将继续独立开发和支持 Data Link 插件,并将负责托管现有插件的文档。 但是,短期内,我们将保留这些插件的文档在 api.jquery.com 上,以便为任何需要它的人保留参考。有关微软 Data Link 计划的更多信息,请阅读 他们的官方插件更新。我们感谢微软对 jQuery 的持续贡献,为许多工作提供开发时间和资金支持,包括 jQuery UI Grid 和 jQuery 会议。

我们意识到,其中一些细节可能看起来很混乱或仅仅是组织性的,但我们知道,在这些变化发生时告诉社区这些变化很重要,以便您可以尽快为您的应用程序做出最佳决策。我们希望您理解为什么我们必须进行这些调整,并鼓励您参与进来,帮助我们推动这些重要的项目向前发展!

附录:为什么模板不在 1.5 中?

虽然我们最初宣布 jquery-tmpl 插件将成为 jQuery Core 1.5 版本的一部分,但该插件与现在一样,仍处于 Beta 1 阶段。因此,当去年 12 月真正评估 1.5 的新功能时,它并没有被认为已准备好包含在内。鉴于我们上面解释的内容,我们希望很清楚的是,我们不打算在不久的将来直接在 Core 中包含模板。jQuery UI 模板插件将是一个独立的插件,不依赖于 jQuery UI 的任何其他部分,并将成为该项目“正式”支持的唯一模板解决方案,尽管 jQuery 当然会继续与任何输出良好、传统 HTML 字符串的 JavaScript 模板引擎配合使用。