First of all, let me say that I appreciate the way the community has
continued to update wiki pages to help new developers onboard. We're coming
up on the 7th anniversary of Impala's graduation from the ASF incubator,
and I think we can be grateful and proud of the steps the community has
made to increase openness over that time. Thank you to everyone that
contributed!

I have two concerns about this recent edit which requires release managers
to build ten different Linux release packages.

1. The instructions are substantially less detailed than the other
instructions in the wiki pages on building and releasing.

2. I counted the pages in the different legal documents one must agree to
to download a free-as-in-beer developer copy of Redhat. It's 42, and I'm
not even confident I got all of the documents, since a number of them can
be found only by Googling references deeply embedded in the legalese in one
document mentioning another binding agreement. (There's also an HTML page
that doesn't have page numbers, the length of which depends on your legal
jurisdiction.) Additionally, this is the set of  documents for where I
live, and RH points to some different documents depending on your legal
jurisdiction, even within different provinces/states in some countries
(California, Quebec). And some jurisdictions don't seem to have the
documents available, even though other documents require the downloader to
agree to be bound by them. Most of us aren't lawyers, and these are not
standard OSS legal documents like the Apache License or the GPL. The
initial documents don't seem, to me, to address whether building software
for distribution is covered by the free license (developing software is. Is
building and uploading release packages "development"? I dunno. Ask Eben
Moglen, or the equivalent person for your country.) Oh, and for the
documents without explicitly different links for different jurisdictions, I
guess I'm not even sure I have the same documents as others, self-defense
by Redhat.com based on the IP address of the country my web traffic
originates from. Furthermore, these terms change seemingly without notice:
some of the documents have changelogs indicating multiple updates in the
past year. And who knows if RH/IBM will continue to allow free downloads -
quite a few enterprise software companies have a history of withdrawing or
limiting free access to their builds of OSS or source-available software,
including Oracle, Microsoft, AT&T, SCO, Intel, etc. (I suppose if that
happens at a later date, we could just remove RH releases from the
instructions at that time.)

I'm sure there are other Apache projects that require developers to use
macOS or Windows to even do development, but that feels different to me,
since RH is not required for developing Impala.

Let me note that I don't feel like this is a concern in terms of Impala
following ASF policy, but more of a comment about practicality and keeping
the community open by  enabling is too have release managers who do not
work for a company with an Enterprise RH8 license.

3. The next edit on this wiki page says that pushing images to Docker is
optional. I think Impala users will might find it frustrating if images and
releases are inconsistently available, especially when security patches are
available.

In light of #3, I'd suggest we

A. Make all release package creation (source, Docker, RPM, deb) a required
part of releasing

B. Remove RH releases from this wiki page describing the release process

C. Add substantially more explicit instructions for how to build with VMs
for different Linux distributions and ISAs (x86-64, ARM)

D. Add a link on impala.apache.org to the base domain name of the
organizations that produce release packages produced outside the official
Apache process, along with a disclaimer: something like "Along with the
official releases, some organizations produce their own software packages
that include or are based on Apache Impala. This list includes:
https://cloudarea.biz, https://bigdoop.aol, ..." (Of course, before doing
this, we'll want to check that it's compatible with ASF requirements, but I
figure we should discuss my proposition that official RH8 builds are a
problem first before we dig into solutions, since perhaps the community
doesn't see the same problems I do with the RH8 OS availability.)

Thanks for taking the time to read and consider this! :-)

Jim

---------- Forwarded message ---------
From: <no-re...@apache.org>
Date: Mon, Aug 19, 2024 at 11:00 PM
Subject: [CONF] Impala > How to Release


There's *1 new edit* on your page

[image: page icon]
<https://cwiki.apache.org/confluence/display/IMPALA/How+to+Release?src=mail&src.mail.product=confluence-server&src.mail.timestamp=1724126401442&src.mail.notification=com.atlassian.confluence.plugins.confluence-notifications-batch-plugin%3Abatching-notification&src.mail.recipient=8aa9808754ca91780154cb1430000003&src.mail.action=view>
How
to Release
<https://cwiki.apache.org/confluence/display/IMPALA/How+to+Release?src=mail&src.mail.product=confluence-server&src.mail.timestamp=1724126401442&src.mail.notification=com.atlassian.confluence.plugins.confluence-notifications-batch-plugin%3Abatching-notification&src.mail.recipient=8aa9808754ca91780154cb1430000003&src.mail.action=view>

Here's what changed:

...



   1. If you have not done so yet, set up your apache.org email address
   <https://reference.apache.org/committer/email>.
   2. Make a code signing key
   <https://www.apache.org/dev/openpgp.html#generate-key> if you don't have
   one yet. This must be done on "hardware owned and controlled by the
   committer"
   <https://www.apache.org/legal/release-policy.html#owned-controlled-hardware>
   .
   1. Publish your key
      <https://www.apache.org/dev/openpgp.html#publish-in-web-space> if you
      haven't done so yet
   3. Optional but reccomended: if you haven't done so yet, add yourself to
   the Apache Web-of-Trust by meeting face-to-face with a person so they can
   sign your key <https://www.apache.org/dev/openpgp.html#wot>
      1. Publish your signed key
   4. If you haven't done so before, add your key to the KEYS file in the
   release staging area and the release distribution area using SVN.
      1. The staging area is https://dist.apache.org/repos/dist/dev/impala/
      2. The release area is
      https://dist.apache.org/repos/dist/release/impala/. If you are not a
      PMC member, you will need to ask a PMC member to edit the file for you.
   5. Pick a commit in the "master" branch you want to release from and
   test it.
   6. Test the licencing using Apache RAT; follow the instructions in
   bin/check-rat-report.py.
      1. You might have to download Apache RAT if you haven't done so
      previously: https://creadur.apache.org/rat/download_rat.cgi
   7. Propose a release on the dev@ list. It should start with the string
   "[DISCUSS]". Explain that this is not a "[VOTE]", and that anyone may
   participate.
   8. Make a new branch off of your commit called "branch-x.y.z", where
   x.y.z is the version you want to release. If you are not on the PMC, ask a
   PMC member to do this:
      1.


      Code Block
      language bash

      git checkout $COMMIT_HASH_YOU_CHOSE
      git checkout -b branch-x.y.z
      git push apache branch-x.y.z


      2.

      In this branch (but not in master), update IMPALA_VERSION in
      bin/impala-config.sh to x.y.z-RELEASE. For versions older than 4.1.0,
      update the version number in bin/save-version.sh instead.
      3.

      (Only for 4.1+) Update the version numbers for Java pom.xml files,
      use this maven command:
      Code Block
      language bash

      # From $IMPALA_HOME
      cd java
      mvn versions:set -DnewVersion=x.y.z-RELEASE


      4. Also in this branch (but not in master), update the GIT_HASH in
      bin/save-version.sh to the git hash of the top commit in the
branch. Please
      bear in mind to update this on every RC. (The git hash will of course not
      reflect that of the commit that includes this change as well, but that's
      okay)
   9. Continue testing. If you find bugs, file them. When they are fixed,
   cherry-pick the fixes from master to your branch that you want to include
   in the release
      1.


      Code Block
      language bash

      git fetch apache # to make sure you have the latest master
      git log apache/master # to find the commits you want to cherry-pick
      git checkout apache/branch-x.y.z
      git checkout -b x.y.z-patch-foo # the name doesn't matter - it
will only be in your local workstation
      git cherry-pick b4d1a3... # or whatever git hashes
      # then resolve conflicts, if there are any
      # cherry-pick some more commits:
      git cherry-pick ....
      git cherry-pick .....
      git push apache HEAD:branch-x.y.z


      2.

      At that time, tag the tree at the release candidate
      Code Block
      language bash

      git fetch apache
      git checkout apache/branch-x.y.z
      git tag -a x.y.z-rcw -m "x.y.z release candidate w" # when
making release candidate w of version x.y.z
      git push apache x.y.z-rcw


      10. Make a release tarball:
      1.

      Make the tarball using git archive. Name it
      apache-impala-x.y.z.tar.gz.
      Code Block
      language bash

      git archive --prefix=apache-impala-x.y.z/ -o
/tmp/apache-impala-x.y.z.tar.gz x.y.z-rcw


      2.

      Make signature, as well as sha512 checksums. This must be done
on "hardware
      owned and controlled by the committer"
      
<http://web.archive.org/web/20170109170347/http://www.apache.org/dev/release#owned-controlled-hardware>
      .
      Code Block
      language bash

      cd /tmp

      # Make the signature:
      gpg -u your_apache_user_n...@apache.org --armor --output
apache-impala-x.y.z.tar.gz.asc --detach-sign
apache-impala-x.y.z.tar.gz

      # Make sure it worked:
      gpg --verify apache-impala-x.y.z.tar.gz.asc apache-impala-x.y.z.tar.gz

      # Make checksums:
      sha512sum apache-impala-x.y.z.tar.gz > apache-impala-x.y.z.tar.gz.sha512

      # Make sure they worked:
      sha512sum --check apache-impala-x.y.z.tar.gz.sha512


      11.

   Before uploading your release candidate, follow the procedure in the
   section below on how to vote on a release. Don't upload until you could
   vote +1.
   12. Get commitments from at least three PMC members to vote on the
   artifact in the time frame for the upcoming vote. The list of PMC members
   is available at
   http://people.apache.org/committers-by-project.html#impala-pmc.
   13.

   Upload the artifacts. The location is
   https://dist.apache.org/repos/dist/dev/impala/. Upload all three
   artifacts (tarball, .asc and .sha512). Do not overwrite old release
   candidates.
   Code Block
   language bash

   svn checkout https://dist.apache.org/repos/dist/dev/impala/
   cd impala/
   # If you already have a local checked out repo (e.g. if you did
release before), run "svn update" to pull the latest updates.
   # The directory layout is x.y.z/RCw, where w is the release
candidate number - RC1 is the first candidate, RC2 the second, and so
on.
   mkdir -p x.y.z/RCw
   cd x.y.z/RCw
   cp /tmp/apache-impala-x.y.z.tar.gz* ./
   cd ..
   svn add .
   svn commit --username=YOUR_APACHE_USER_NAME -m "Impala x.y.z
release candidate w"


   14. Prepare a patch to the downloads.html page (on the asf-site branch
   of the git repo) to point to the latest downloads and to remove the links
   to any downloads that are subsumed by this release. Do not submit the patch
   yet.


   1.


   1. Prepare a patch to include the changelog for the latest release on
   the docs site. More help on this here
   
<https://confluence.atlassian.com/adminjiraserver071/creating-release-notes-802592502.html>.



   1.


   1.
      1. Access the IMPALA Versions
      
<https://issues.apache.org/jira/browse/IMPALA/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel>
      page
      2. Select the proper release version. They are not all in a sanely
      sorted order.
      3. On the top, select "Release Notes".
      4. Select "Configure Release Notes". Ensure HTML and the proper
      version are set.
      5. Click Create


   1.
      1. Scroll down to find a TEXTAREA containing the HTML release notes.
      Copy the contents and save it to a file, e.g. docs/changelog-4.4.1.html


   1.
      1.

      Add HTML tags to make this a standalone page. For example:
      Code Block
      language xml

      <!DOCTYPE html>
      <html>
      <head>
      <title>Impala 2.8 Change Log</title>
      </head>
      <body>
      <h1>Impala 2.8 Change Log</h1>
      <!-- contents of Jira-generated release notes go here -->
      </body>
      </html>


      2. Reorder the sections so that the issueType groupings show the more
      interesting groups, like New Feature, Epic, and Improvement, before less
      interesting groups like Sub-tasks.
      3. Provide a link to the changelog on the docs main page.
      4. Full example of this is here
      <https://gerrit.cloudera.org/#/c/6919/>.
      5. If the full docs are not yet ready for the release, it's OK to
      leave the link to the previous release's HTML documentation so
that a link
      to HTML documentation always exists. But please coordinate with
the people
      who are working on the docs before you announce the release.


   1.


   1. Take a vote on dev@. Your vote email should:
      1. Have a subject that starts with "[VOTE]"
      2. Explain what the vote is about
      3. Explain how to find the artifacts for testing, and include the tag
      and git tree hash (not release hash!) they correspond to. The
tree hash can
      be viewed with git log --pretty="%T %s".
      4. Include apache.org user name of the release manager
      5. Include the key that the artifacts are signed with, e.g.
      "Artifacts were signed with the 3BA2A72B key which can be found in
      https://downloads.apache.org/impala/KEYS";
      6. Explain what each type of vote means
      7. Explain the conditions for the vote passing, including how long
      the vote will remain open for.
      8. Include a link to this wiki page so voters can read the
      instructions in it on how to test, verify, and vote.
      9. Explain how you tested it.
      10. At your discretion, discuss what dependencies or tools you used
      to compile or run it, like gcc, hadoop, impala-lzo, and so on.
      11. Be consistent with the Impala bylaws
      <https://impala.apache.org/bylaws.html>. For instance, at the moment
      I am writing this wiki page, votes stay open for 72 hours (not counting
      weekends), and only PMC members have binding votes.
   2.

   When the vote closes, tally up the votes (who votes what) in a thread
   with the same title as the vote thread, but with "[RESULT] " prepended.
   Link to the vote thread form
   https://lists.apache.org/list.html?dev@impala.apache.org. The email
   should include a list of every vote, and reasons for the -1s ala:
   No Format
   nopanel true

   +1 (binding):

   Alice Bobopolis
   Carol Davestein

   -1 (non-binding):

   Emily Frankfurt (Build failed)


   3.

   If that vote passes, tag the git tree at the release:
   Code Block
   language bash

   git fetch apache
   git checkout apache/branch-x.y.z
   git tag -a x.y.z -m "x.y.z release"
   git push apache x.y.z


   4.

   Publish the release. The location is
   https://dist.apache.org/repos/dist/release/impala/. Upload all three
   artifacts. If you are not a PMC member, you will need a PMC member to do
   the upload for you.
   Code Block
   language bash

   svn checkout https://dist.apache.org/repos/dist/release/impala/
   cd impala/
   # If you already have a local checked out repo (e.g. if you did
release before), run "svn update" to pull the latest updates.
   mkdir x.y.z
   cp /tmp/apache-impala-x.y.z.tar.gz* x.y.z/
   svn add x.y.z
   svn commit --username=YOUR_APACHE_USER_NAME
   # You will be prompted to write a commit message. Make it look like
(without the '#'s):
   #
   # Impala release x.y.z
   #
   # Vote thread: ...
   #
   # Vote results thread: ...




   1. Prepare a patch for the DOAP file. It's in the asf-site branch:
   doap_Impala.rdf. Add the release date in it.
   2. Wait 24 hours for mirrors to catch up.
   3. Push your downloads.html and , changelog, DOAP file patches (Don't
   forget to run bin/push_to_asf.py after submitting your changes in gerrit).


   1. Optional but recommended: Add the release to the Apache Reporter
   Service: https://reporter.apache.org/addrelease.html?impala. If you are
   not a PMC member, you will need a PMC member to do it for you.
   2. Announce the release to dev@impala.apache.org, u...@impala.apache.org,
   and annou...@apache.org. The email must come from your apache.org email
   address.
   1. If you are not already subscribed from your @apache.org address,
      subscribe to dev@ and user@ by mailing dev-subscribe@ and
      user-subscribe@.
      2.

      Give your email a subject like "[ANNOUNCE] Apache Impala x.y.z
      release", and include in the body:
      No Format
      nopanel true

      The Apache Impala team is pleased to announce the release of Impala x.y.z.

      Impala is a high-performance distributed SQL engine.

      The release is available at: https://impala.apache.org/downloads.html

      Thanks,

      The Apache Impala team


      3. To avoid the email get rejected by annou...@apache.org, use "Plain
      text mode". The default in gmail has MIME Content-Type: 'text/html' which
      will be rejected.
   3. Announce the release on the community links listed on
   https://impala.apache.org/community.html.
      1. You might need to reach out to the PMC, as e.g. they have access
      to ApacheImpala Twitter/X account, etc.
   4. Send a patch review to the master branch to update its version number
   to "p.q.r-SNAPSHOT" (where p.q.r is greater than x.y.z)
      1. Update the location in bin/impala-config.sh
      2.

      To update the version numbers for Java pom.xml files, use this maven
      command:
      Code Block
      language bash

      # From $IMPALA_HOME
      cd java
      mvn versions:set -DnewVersion=p.q.r-SNAPSHOT


      5. In the issue tracker, change the target version for open tickets
   targeted at x.y.z to p.q.r. You may need to create a version p.q.r if it
   does not already exist.
   6. In the issue tracker, "Release" the version on this screen:
   
https://issues.apache.org/jira/plugins/servlet/project-config/IMPALA/versions.
If
   you are not a PMC member, you will need a PMC member to do it for you.
   7.

   In the SVN repo where you put the final release artifacts, delete the
   previous release, assuming that branch is no longer being actively worked
   on. If there is more than one active branch, leave the latest release from
   each branch up. If you are not a PMC member, you will need a PMC member do
   that for you. E.g. for removing the 4.1.1 release:
   Code Block

   # In the folder where you checkout
https://dist.apache.org/repos/dist/release/impala/
   svn update
   svn delete 4.1.1
   svn commit -m "Remove 4.1.1 release"




   1.

   Build the RPM/DEB packages and upload them to github
   1.

      Build the packages on CentOS 7, RedHat 8, Ubuntu 18.04, 20.04 and
      22.04. Example commands:
      Code Block

      ./buildall.sh -noclean -notests -release -package svn update
      rm -rf fe/target
      export USE_APACHE_HIVE=true
      ./buildall.sh -noclean -notests -release -package

      RPM/DEB packages are built under package/build. Please also build on
      ARM instances.
      2. Create a release in github and upload these packages.
         1. Go to the Github page: https://github.com/apache/impala. Click
         "Tags".
         2. Find the one of the current release, e.g. 4.4.1. Click the 3
         dots button at the right side. Click "Create release".
         3. Use a title of "Impala x.y.z" and add the link of the changelog
         in the content. E.g.
         4. Upload all the RPM/DEB packages.

How to Vote on a Release Candidate

...
Go to page history
<https://cwiki.apache.org/confluence/pages/viewpreviousversions.action?pageId=65869538&src=mail&src.mail.product=confluence-server&src.mail.timestamp=1724126401442&src.mail.notification=com.atlassian.confluence.plugins.confluence-notifications-batch-plugin%3Abatching-notification&src.mail.recipient=8aa9808754ca91780154cb1430000003>
View page
<https://cwiki.apache.org/confluence/display/IMPALA/How+to+Release?src=mail&src.mail.product=confluence-server&src.mail.timestamp=1724126401442&src.mail.notification=com.atlassian.confluence.plugins.confluence-notifications-batch-plugin%3Abatching-notification&src.mail.recipient=8aa9808754ca91780154cb1430000003&src.mail.action=view>

Stop watching space
<https://cwiki.apache.org/confluence/users/removespacenotification.action?spaceKey=IMPALA&src=mail&src.mail.product=confluence-server&src.mail.timestamp=1724126401442&src.mail.notification=com.atlassian.confluence.plugins.confluence-notifications-batch-plugin%3Abatching-notification&src.mail.recipient=8aa9808754ca91780154cb1430000003&src.mail.action=stop-watching&jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ4c3JmOjhhYTk4MDg3NTRjYTkxNzgwMTU0Y2IxNDMwMDAwMDAzIiwicXNoIjoiZGY0MDY2Njc0Mjk2OTc4ZGM0MjMyNDYxMjM3ZGJmMzJhMmJjYjQ2ZTJkNmYxZGY0YTBkZThjZmVlNDYxY2E3ZiIsImlzcyI6ImNvbmZsdWVuY2Vfbm90aWZpY2F0aW9uc0FSRUgtWFVEMS1QT1FHLUNTQU8iLCJleHAiOjE3MjQ3MzEyMDEsImlhdCI6MTcyNDEyNjQwMX0.ynFl4NII22JspCBBlZPOn1fz1yPppC8hrLlZRXSlsyg>
•
Manage notifications
<https://cwiki.apache.org/confluence/users/editmyemailsettings.action?src=mail&src.mail.product=confluence-server&src.mail.timestamp=1724126401442&src.mail.notification=com.atlassian.confluence.plugins.confluence-notifications-batch-plugin%3Abatching-notification&src.mail.recipient=8aa9808754ca91780154cb1430000003&src.mail.action=manage>
[image: Confluence logo big]
This message was sent by Atlassian Confluence 7.19.25

Reply via email to