Rocky 8 should be an equivalent target for building RPMs that carries
similar license implications to CentOS. I agree that more detail for the
packaging step would be nice, and I'd like to see a job on jenkins.impala.io
to simplify these steps.

On Tue, Aug 27, 2024 at 6:12 AM Jim Apple <jbap...@apache.org> wrote:

> 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