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 >