释放 Maven

由于几个额外的步骤,Maven 的发布过程略有不同。

目标是将候选版本提交到 svndevhttps://dist.apache.org/repos/dist/dev/maven/maven-3 / $VERSION。投票通过后,svn 移至release https://dist.apache.org/repos/dist/release/maven/maven-3 / $VERSION

树目录是:

https://dist.apache.org/repos/dist/dev/maven/maven-3/
  `-- $VERSION/
      |-- binaries/
      |   |-- apache-maven-$VERSION-bin.tar.gz
      |   |-- apache-maven-$VERSION-bin.tar.gz.asc
      |   |-- apache-maven-$VERSION-bin.tar.gz.sha512
      |   |-- apache-maven-$VERSION-bin.zip
      |   |-- apache-maven-$VERSION-bin.zip.asc
      |   `-- apache-maven-$VERSION-bin.zip.sha512
      `-- source/ (notice: singular...)
          |-- apache-maven-$VERSION-src.tar.gz
          |-- apache-maven-$VERSION-src.tar.gz.asc
          |-- apache-maven-$VERSION-src.tar.gz.sha512
          |-- apache-maven-$VERSION-src.zip
          |-- apache-maven-$VERSION-src.zip.asc
          `-- apache-maven-$VERSION-src.zip.sha512

请注意,失败版本的策略是继续使用新版本。产生失败发布的标签留待后人使用。因此,如果 3.2.4 的发布失败,那么我们将继续使用 3.2.5。

生成候选版本

对于非 alpha/beta 版本,候选版本在实际发布之前生成。

签出https://dist.apache.org/repos/dist/dev/maven/maven-3然后创建必要的目录树。

将二进制文件和 src-tar.gz 及其 sha512/asc 复制到创建的目录中。

要生成候选版本,请仅执行以下过程中的前七个步骤:

使用的版本应该是带有 -RC1、-RC2 等的最终版本。

生成 RC 后,要求开发人员测试列表中的版本。如果发现回归,则会推出一个新的候选版本。

在没有发现回归的合理时间之后,如果发布经理愿意(例如,users@),可以调查更广泛的受众。

一旦对发布候选感到满意,就会执行完整的发布,最终版本就位。

制作发行版

为了生成最终版本,遵循与标准项目相同的过程:

下面描述了在这些说明中更新网站时需要采取的其他步骤。

准备发行说明

结帐 Maven 站点源https://github.com/apache/maven-site.git

创建发行说明:

  • 创建content/markdown/docs/$version
  • 创建content/markdown/docs/$version/release-notes.md(参见其他版本的示例)

暂存最新文档

一旦准备好发布,但在发布投票之前,网站需要上演。

从发布结帐中,暂存站点:

mvn -Preporting site site:stage
mvn scm-publish:publish-scm

这将在/ref/3-LATEST中发布 Maven 核心站点。

完成发布

投票成功后,您应该执行以下步骤来完成发布。

将新版本添加到 ASF 分发目录

除了提升存储库外,还应将发布档案移至发布 svnpubsub 树:

svn mv https://dist.apache.org/repos/dist/dev/maven/maven-3/$VERSION https://dist.apache.org/repos/dist/release/maven/maven-3 -m "Publish Maven $VERSION Distribution Archives"

更新 DOAP 信息

编辑https://github.com/apache/maven/blob/master/doap_Maven.rdf以列出新版本。

更新网站

结帐 Maven 站点源https://github.com/apache/maven-site.git

对于 3.x:更新versions3x,currentStableVersioncurrentStableReleaseDate中的属性pom.xml

接下来,更新发布历史content/markdown/docs/history.md.vm

仅在镜像上存在版本并且参考文档已部署到/ref/时才部署站点。

将最新文档部署到目标版本化位置

Maven 核心源代码参考和 API 文档的参考文档已在上一步中上演:现在需要将其部署到其专用目录,然后再部署指向新版本的网站。

这包括在网站 svn 树中将登台 /ref/3-LATEST 目录复制到最终 /ref/ $VERSION

svn cp https://svn.apache.org/repos/asf/maven/website/components/ref/3-LATEST https://svn.apache.org/repos/asf/maven/website/components/ref/$VERSION -m "Maven $VERSION released"

/ref/current机制信息

从到实际 Maven 版本参考的重定向/ref/current是通过.htaccess在站点中发布的。

部署发布网站

一旦上述两个都同步到主站点和适当数量的镜像,继续更新网站并制作公告。

提交您的更改,然后部署主 Maven 站点

从 ASF 分发目录中删除旧版本

接下来,应从上述位置删除任何被取代的版本(在确认它们存在于 /www/archive.apache.org/dist/maven 之后)。

继续公告

您现在可以继续在Maven 项目通用发布程序上部署网站后概述的步骤