iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何完成一次Apache的版本发布
  • 124
分享到

如何完成一次Apache的版本发布

2023-06-03 20:06:45 124人浏览 八月长安
摘要

理解Apache发布的内容和流程总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary Release是可选项,dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。请

理解Apache发布的内容和流程

总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary Release是可选项,dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。

请参考以下链接,找到更多关于ASF的发布指南:

  • Apache Release Guide

  • Apache Release Policy

  • Maven Release Info

本地构建环境准备

主要包括签名工具、Maven仓库认证相关准备

  1. 安装GPG,参见 https://www.gnupg.org/download/index.html

    • Mac OS

      $ brew install gpg$ gpg --version #检查版本,应该为2.x
  2. 用gpg生成key

    $ gpg2 --full-gen-keygpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc.This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Please select what kind of key you want:   (1) RSA and RSA (default)   (2) DSA and Elgamal   (3) DSA (sign only)   (4) RSA (sign only)Your selection? 1RSA keys may be between 1024 and 4096 bits long.What keysize do you want? (2048) 4096Requested keysize is 4096 bitsPlease specify how long the key should be valid.         0 = key does not expire      <n>  = key expires in n days      <n>w = key expires in n weeks      <n>m = key expires in n months      <n>y = key expires in n yearsKey is valid for? (0) Key does not expire at allIs this correct? (y/N) yGnuPG needs to construct a user ID to identify your key.Real name: Robert Burrell DonkinEmail address: rdonkin@apache.orGComment: CODE SIGNING KEYYou selected this USER-ID:    "Robert Burrell Donkin (CODE SIGNING KEY) <rdonkin@apache.org>"Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? OYou need a Passphrase to protect your secret key. # 填入密码,以后打包过程中会经常用到
    • 查看key id

      $ gpg --list-keyspub   rsa4096/28681CB1 2018-04-26 # 28681CB1就是key iduid       [ultimate] liujun (apache-dubbo) <liujun@apache.org>sub   rsa4096/D3D6984B 2018-04-26# 通过key id发送public key到keyserver$ gpg --keyserver pgpkeys.mit.edu --send-key 28681CB1# 其中,pgpkeys.mit.edu为随意挑选的keyserver,keyserver列表为:Https://sks-keyservers.net/status/,因为相互之间是自动同步的,选任意一个都可以。
    • 如果有多个public key,设置默认key

      ~/.gnupg/gpg.conf

      # If you have more than 1 secret key in your keyring, you may want to# uncomment the following option and set your preferred keyid.default-key 28681CB1
    • 根据提示,生成key

  3. 设置Apache中央仓库

    <settings>...  <servers>    <!-- To publish a snapshot of some part of Maven -->    <server>      <id>apache.snapshots.https</id>      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>      <passWord> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>    </server>    <!-- To stage a release of some part of Maven -->    <server>      <id>apache.releases.https</id>      <username> <!-- YOUR APACHE LDAP USERNAME --> </username>      <password> <!-- YOUR APACHE LDAP PASSWORD (encrypted) --> </password>    </server>   ...      <!-- gpg passphrase used when generate key -->     <server>      <id>gpg.passphrase</id>      <passphrase><!-- yourKeyPassword --></passphrase>    </server>  </servers></settings>
    • Dubbo项目的父pom为apache pom

      <parent>  <groupId>org.apache</groupId>  <artifactId>apache</artifactId>  <version>19</version></parent>
    • 添加以下内容到.m2/settings.xml

      所有密码请使用[maven-encryption-plugin](http://maven.apache.org/guides/mini/guide-encryption.html)加密后再填入

打包&上传

  1. 从主干分支拉取新分支作为发布分支,如现在要发布2.6.4版本,则从2.6.x拉出新分支2.6.4-release,此后2.6.4 Release Candidates涉及的修改及打标签等都在2.6.4-release分支进行,最终发布完成后合入主干分支。

  2. 首先,在2.6.4-release分支验证maven组件打包、source源码打包、签名等是否都正常工作

    $ mvn clean install -Papache-release$ mvn deploy# 将snapshot包推送到maven中央仓库,处于staging状态
  3. 用maven-release-plugin发布

    $ mvn release:clean$ mvn release:prepare -Papache-release -Darguments="-DskipTests" -DautoVersionSubmodules=true -Dusername=YOUR GitHub ID# 执行完成后:1.生成source.zip包; 2.打出tag,并推送到github仓库; 3.分支版本自动升级为2.6.4-SNAPSHOT,并将修改推送到github仓库
    • 执行release:perfORM,做正式发布

      $ mvn -Prelease release:perform -Darguments="-DskipTests" -DautoVersionSubmodules=true -Dusername=YOUR GITHUB ID# 所有artifacts发布到配置的远程maven中央仓库,处于staging状态
    • 先用dryRun验证是否ok

      $ mvn release:prepare -Papache-release -Darguments="-DskipTests" -DautoVersionSubmodules=true -Dusername=YOUR GITHUB ID -DdryRun=true
    • 验证通过后,执行release:prepare

准备Apache发布

  1. 准备svn本机环境(Apache使用svn托管项目的发布内容)

  2. 将dubbo checkout到本地目录

    $ svn checkout https://dist.apache.org/repos/dist/dev/incubator/dubbo# 假定本地目录为 ~/apache/incubator/dubbo
  3. 当前发布版本为2.6.4,新建目录

    $ cd ~/apache/incubator/dubbo # dubbo svn根目录$ mkdir 2.6.4
  4. 添加public key到KEYS文件。KEYS主要是让参与投票的人在本地导入,用来校验sign的正确性

  5. 拷贝Dubbo根目录下的source.zip包到svn本地仓库dubbo/2.6.4

  6. 生成sha512签名

    $ shasum -a 512 dubbo-incubating-2.6.4-source-release.zip >> dubbo-incubating-2.6.4-source-release.zip.sha512
  7. 如果有binary release要同时发布

    # 到dubbo项目distribution的module下,执行:$ mvn install# target目录下,拷贝bin-release.zip以及bin-release.zip.asc到svn本地仓库dubbo/2.6.4# 参考第6步,生成sha512签名
  8. 提交到Apache svn

    $ svn status$ svn commit -m 'prepare for 2.6.4 RC1'

验证Release Candidates

证环节包含但不限于以下内容和形式:

  1. Check signatures and hashes are Good

sha512 dubbo-incubating-${release_version}-bin-release.zip.sha512sha512 dubbo-incubating-${release_version}-source-release.zip.sha512
  1. unzip dubbo-incubating-&dollar;{release_version}-source-release.zip to the default directory and check the following:

  • Directory with incubator in name
         dubbo-incubating-${release_version}-bin-release

  • DISCLAIMER file exists

  • LICENSE and NOTICE file exists and contents are good

  • All files and no binary files exist

  • All files has standard ASF License header

  • Can compile from source

  • All unit tests can pass

    mvn clean test # This will run all unit tests# you can also open rat and style plugin to check if every file meets requirements.mvn clean install -Drat.skip=false -Dcheckstyle.skip=false
  • Release candidates match with corresponding tags, you can find tag link and hash in vote email.

进入投票

投票分两个阶段:

  1. Dubbo社区投票,发起投票邮件到dev@dubbo.apache.org。在社区开发者Review,并统计到3个同意发版的binding票后,即可进入下一阶段的投票。

  2. Apache社区投票,发起投票邮件到general@apache.org。在Apache PMC Review,并统计到3个统一发版的binding票后,即可进行正式发布。

邮件模板:

Hello Dubbo CommUnity,This is a call for vote to release Apache Dubbo (Incubating) version 2.6.4.The release candidates:https://dist.apache.org/repos/dist/dev/incubator/dubbo/2.6.4/Git tag for the release:https://github.com/apache/incubator-dubbo/tree/dubbo-2.6.4Hash for the release tag:afab04c53edab38d52275d2a198ea1aff7a4f41eRelease Notes:https://github.com/apache/incubator-dubbo/releases/tag/untagged-4775c0a22c60fca55118The artifacts have been signed with Key : 28681CB1, which can be found in the keys file:https://dist.apache.org/repos/dist/dev/incubator/dubbo/KEYSThe vote will be open for at least 72 hours or until necessary number of votes are reached.Please vote accordingly:[ ] +1 approve [ ] +0 no opiNIOn [ ] -1 disapprove with the reasonThanks,The Apache Dubbo (Incubating) Team

正式发布

  1. 提交https://dist.apache.org/repos/dist/dev/incubator/dubbo目录下的发布包到https://dist.apache.org/repos/dist/release/incubator/dubbo/,完成正式发布。

  2. 发邮件到dev@dubbo.apache.org和general@apache.org,通知社区发布完成。

--结束END--

本文标题: 如何完成一次Apache的版本发布

本文链接: https://www.lsjlt.com/news/235503.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何完成一次Apache的版本发布
    理解Apache发布的内容和流程总的来说,Source Release是Apache关注的重点,也是发布的必须内容;而Binary Release是可选项,Dubbo可以选择是否发布二进制包到Apache仓库或者发布到Maven中央仓库。请...
    99+
    2023-06-03
  • Windows、Apache 和 PHP: 如何在本地搭建一个完美的开发环境?
    在软件开发领域,搭建一个高效的开发环境是至关重要的。本文将介绍如何在 Windows 操作系统上搭建一个完美的开发环境,其中包括 Apache 和 PHP。 首先,我们需要安装 XAMPP,它是一个流行的开源软件包,其中包括了 Apach...
    99+
    2023-08-10
    leetcode windows apache
  • 如何让突发的多个请求等待第一个完成(分布式)
    大家好,我们又见面了啊~本文《如何让突发的多个请求等待第一个完成(分布式)》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们...
    99+
    2024-04-04
  • 数据库存版本迁移:如何轻松完成?
    1. 选择合适的数据库迁移工具 数据库迁移工具可以帮助您轻松完成数据库版本迁移。市面上有很多数据库迁移工具,您可以根据自己的需要选择合适的工具。一些常用的数据库迁移工具包括: Flyway Liquibase DbSchema Sch...
    99+
    2024-02-27
    数据库版本迁移、数据库迁移工具、数据库备份、数据库还原
  • MongoDB官方发布的每次重大修改的版本特性有哪些
    这篇文章主要介绍MongoDB官方发布的每次重大修改的版本特性有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 版本1.8.X(官方已不再支持)分片...
    99+
    2024-04-02
  • Ubuntu发行版是如何炼成的
    这篇文章给大家分享的是有关Ubuntu发行版是如何炼成的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ubuntu的开发团队Zimmerman对项目的跟踪从未间断过,确保团队成员之间保持密切沟通,这是一个与众不同...
    99+
    2023-06-16
  • 如何利用GitLab进行项目版本发布和回滚
    如何利用GitLab进行项目版本发布和回滚引言:在软件开发过程中,项目的版本发布和回滚是开发团队必不可少的一项工作。GitLab是一款功能强大的版本控制系统,它提供了丰富的功能和工具来管理和发布项目的不同版本。本文将介绍如何利用GitLab...
    99+
    2023-10-22
    回滚 gitlab 版本发布
  • Python开发经验分享:如何进行版本控制和发布管理
    Python开发经验分享:如何进行版本控制和发布管理引言:在Python开发过程中,版本控制和发布管理是非常重要的环节。通过版本控制,我们可以轻松地追踪代码的更改、协同开发、解决冲突等;而发布管理则能够帮助我们组织代码的部署、测试和发布过程...
    99+
    2023-11-23
    版本控制 Python开发 发布管理
  • 如何将Anaconda安装时默认的python版本改成其他版本
     方法一:命令行修改 win+R输入cmd进入命令行,在命令行里输入以下代码: ​​​​​​​conda activate 进入Anaconda的base版本  查看当前python版本号 python -V (注意v是大写) 查看可选...
    99+
    2023-08-31
    python 开发语言
  • 如何实现CentOS与Apache连接的PHP多版本共存
    这篇文章给大家介绍如何实现CentOS与Apache连接的PHP多版本共存,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。CentOS下与Apache连接的PHP多版本共存方案实现,针对mod_fcgi模块的配置作了一些...
    99+
    2023-06-05
  • Linux面版如何进行一键备份及恢复工具发布
    这篇文章将为大家详细讲解有关Linux面版如何进行一键备份及恢复工具发布,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。面板备份/恢复程序,用于备份所有面板数据,包括网站、数据库、计划任务等。...
    99+
    2023-06-05
  • android中如何实现二次打包完成apk多渠道打包的方法
    这篇文章将为大家详细讲解有关android中如何实现二次打包完成apk多渠道打包的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。此打包方式一个渠道包只需要5秒左右,可实现快速打渠道包对于为了在asse...
    99+
    2023-05-30
    android
  • 如何搭建一个完整的Java开发环境
    作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课。环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse)。下面我们就一个一个慢慢配置。配置JD...
    99+
    2023-05-30
    java 开发环境 ava
  • 如何DIY一个自己的ubuntu发行版
    这篇文章主要介绍“如何DIY一个自己的ubuntu发行版”,在日常操作中,相信很多人在如何DIY一个自己的ubuntu发行版问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何DIY一个自己的ubuntu发行版...
    99+
    2023-06-28
  • gitlab如何看一个文件的历史版本
    随着云计算和DevOps的发展,Git已经成为了软件版本控制的事实标准。而在Git的使用中,GitLab无疑是较为出色的Git管理平台之一。作为一个优秀的Git托管服务,GitLab为我们开发者提供了很多便捷的操作方式,而其中之一就是查看文...
    99+
    2023-10-22
  • 如何实现一个angular版本的Message组件
    这篇文章主要介绍如何实现一个angular版本的Message组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!学习一个框架或库的最好方法是看官方文档,并着手去写例子。最近在利用空闲...
    99+
    2024-04-02
  • 如何支持同一接口的多个版本?
    问题内容 我正在编写一个 go 模块,它实现一个满足接口的结构。我们只想维护库的单个版本,但我们的客户使用我们的依赖项之一的多个版本。 依赖项提供了我们想要实现的接口,如下所示。 ty...
    99+
    2024-02-06
  • 如何进行下一代分布式消息队列Apache Pulsar的分析
    如何进行下一代分布式消息队列Apache Pulsar的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Pulsar简介Apache Pulsar是一个企业级...
    99+
    2023-06-02
  • Java打包中如何处理Apache和Laravel的版本兼容性问题?
    随着技术的不断发展,Java和Laravel这两个开发工具的使用越来越广泛,但是在实际应用中,我们经常会遇到版本兼容性的问题。尤其是在打包过程中,如何保证Apache和Laravel的版本兼容性就成为了一个需要解决的难题。本文将为大家介绍...
    99+
    2023-10-15
    打包 apache laravel
  • Win10(10061)版本的内侧会员成就如何获得?
    新版的win10 (10061)版本 添加了一项内侧会员的成就 ,下面就看一下如何获得吧,如何获得Win10 内侧会员成就。 工具/原料 win10 开发者预览版10061或更高 互联网 方法/步骤 1、首先...
    99+
    2023-06-17
    Win10 10061 内侧 会员 版本 成就
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作