On Mon, Mar 21, 2022 at 4:31 PM Stefan Sperling <s...@elego.de> wrote: > > On Mon, Mar 21, 2022 at 12:44:44PM -0400, Mark Phippard wrote: > > I have been toying with the idea of volunteering to be Release > > Manager. I am not ready to do so yet as I have run into numerous > > problems. > > > > The docs are decent but they are definitely written to an audience > > that knows a lot of things that I do not and it feels like a lot of > > knowledge is just assumed. Keep in mind I am a MacOS/Windows user with > > no Python experience. My main fear is running into a problem during > > the process where the script needs to be fixed and not being able to > > do it. I do not have Mike/Paul on speed dial to help me any more. > > This is good news, thank you Mark! > > I will try to help as best as I can.
Thanks > > It would probably be helpful if someone saved a start to finish log of > > all of the commands they ran and from what directory when they were > > RM. > > I do not have such a transcript. However, I have been following the > docs almost to the letter for the last few releases. I have also > tried to keep the docs updated if something was no longer working. > > > The release.py script implies you can/should run the process from > > people.apache.org. I have no idea what that is, how I would access it, > > or what the experience would be like once I was there. I imagine you > > SSH into the box and I would assume you would do everything in your > > home folder if you did this, but the docs use /opt/svnrm as the > > example and it seems weird you would use a folder like this on a > > shared system. > > I believe people.apache.org no longer offers shell access. That is sort of good news in that it simplifies the options > > At the moment, I am not considering this option. Since I do not have a > > Linux machine available, I am trying to use Docker to build a Debian > > image to run the process. > > Using a virtual machine or container sounds like a good solution to me. > > > I am running everything as root. I could change it to a user account > > if it would fix my problems. > > I was always running commands as my own user. There should be no need > to use the root account for anything release.py is doing. I was only using root because that is where you end up by default when using Docker. I am glad I mentioned it though since it explains the test failure. I will do the extra work in my Dockerfile to create a user account and run with that. > > I should note up front that I do not have a GPG key so I would need to > > create a new one and "do something" before I begin. The key I used to > > use when signing releases was lost about 4 computers ago. I do note > > that HACKING mentions if you use people.a.o you do not do the signing > > from there. So I guess you use scp or something to pull the files down > > to sign them locally and then push your signatures back up to > > people.a.o after? > > > > Problem 1: Rolling the tarballs > > > > The process creates the tarballs but fails near the end. It looks GPG > > related? > > > INFO:root:Building Unix tarballs > > INFO:root:Moving artifacts and calculating checksums > > Traceback (most recent call last): > > File "trunk/tools/dist/release.py", line 1916, in <module> > > main() > > File "trunk/tools/dist/release.py", line 1912, in main > > args.func(args) > > File "trunk/tools/dist/release.py", line 983, in roll_tarballs > > download_file(KEYS, filepath, None) > > File "trunk/tools/dist/release.py", line 289, in download_file > > response = urlopen(url) > > File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen > > return opener.open(url, data, timeout) > > File "/usr/lib/python2.7/urllib2.py", line 435, in open > > response = meth(req, response) > > File "/usr/lib/python2.7/urllib2.py", line 548, in http_response > > 'http', request, response, code, msg, hdrs) > > File "/usr/lib/python2.7/urllib2.py", line 473, in error > > return self._call_chain(*args) > > File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain > > result = func(*args) > > File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default > > raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) > > urllib2.HTTPError: HTTP Error 404: Not Found > > It seems ASF have removed the KEYS file our script is trying to fetch. > See http://people.apache.org/keys/ where it says "Project group files are > no longer created." > > It looks like what the script wants to do here is obtain a copy of > the Subversion project's KEYS file and store it along with release > artifacts. If we want to keep doing this we will have to maintain > our own KEYS file on the website, I suppose. Otherwise, we could > decide to no longer provide such a file and remove relevant code > from the script. Not sure what is better. Since I do not know what this was used for, maybe someone can help get us to a decision and update the script? Daniel Shahaf, if you see this, I think of you as the resident expert on this stuff. Any thoughts? > > Problem 2: Test failure > > > > One of the lock_tests consistently fails. > > > > I have confirmed I get this failure using the 1.14.1 tarball so I > > assume it is related to running the tests inside Docker. If this ends > > up being the only problem, I could probably just safely ignore it and > > let the others that sign the release verify the tests all work for > > them. > > The failing test has a comment on top which explains why :) > > /* XXX NOTE: > This test will fail on most Unix-like systems when run as the > root user, because flock() will ignore file permissions. */ That is good to know > > Problem 3: Python bindings tests fail > > > > I have tried this using Debian Buster and Python 2 and Debian Bullseye > > and Python 3. The Perl and Ruby bindings are working OK. I am still > > having some trouble with JavaHL but feel like I will figure that one > > out. I have not tried the ctypes bindings yet. > > > > This fails using the 1.14.1 tarball as well as when I make a trial run > > using release.py > > > > # make check-swig-py > > if [ "LD_LIBRARY_PATH" = "DYLD_LIBRARY_PATH" ]; then for d in > > /opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python/libsvn_swig_py > > /opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python/../../../libsvn_*; > > do if [ -n "$DYLD_LIBRARY_PATH" ]; then > > LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$d/.libs"; else > > LD_LIBRARY_PATH="$d/.libs"; fi; done; export LD_LIBRARY_PATH; fi; \ > > cd /opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python; \ > > /usr/bin/python > > /opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python/tests/run_all.py > > Traceback (most recent call last): > > File > > "/opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python/tests/run_all.py", > > line 23, in <module> > > import mergeinfo, core, client, delta, checksum, pool, fs, ra, wc, > > repository, \ > > File > > "/opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python/tests/mergeinfo.py", > > line 22, in <module> > > from svn import core, repos, fs > > File > > "/opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python/svn/core.py", > > line 26, in <module> > > from libsvn.core import * > > File > > "/opt/svnrm/subversion-1.14.1/subversion/bindings/swig/python/libsvn/core.py", > > line 144 > > def apr_initialize() -> "apr_status_t": > > ^ > > SyntaxError: invalid syntax > > make: *** [Makefile:944: check-swig-py] Error 1 > > This might be a swig problem? Perhaps the version of swig and the > version of python don't work well together? Not sure. HACKING implies I should use the version that the clean room environment installs and not what the OS installs so I ran: ./configure --with-swig=/opt/svnrm/prefix This could be an example where the docs are just not explicit enough and I was overthinking. Now that I think about it maybe the problem is that this is not found when I run the tests. Perhaps I should use the OS SWIG for building and testing? Makes me wonder how the clean room version is ever used though? > > > Problem 4: Emails > > > > I have no idea how to send the emails from my Apache address > > Configure your mail client such that when you send mail from > your @apache.org address, it uses SMTP server mail-relay.apache.org. > ${user}_apache is the username (stsp_apache in my case). > The password is the same as you are using to make commits. > The server supports STARTTLS. Will give it a try. Sounds easy enough though. I will try these things tomorrow and see if I get unblocked. Mark