Hi Allen, all, Thank you for the prompt reply.
My apologies for the lengthy postings, and dragging this thread. I am still learning as I go along in my endeavour to reach something like what HBASE has ( https://issues.apache.org/jira/browse/HBASE-14498). Based on my conclusion in a posting here earlier, I adjusted the startup command to ~/dev/asf/yetus/precommit/src/main/shell/test-patch.sh --basedir=/Users/nl04748/dev/asf/ofbiz/ofbiz-framework --build-tool=gradle --dirty-workspace --docker --patch-dir=/Users/nl04748/dev/test/yetus --plugins=all --project=ofbiz https://github.com/apache/ofbiz-framework/pull/12 which kicked in/off nicely and ran its course. To finally end with a nice report: Total elapsed build time: 40m 15s WARNING: Setting /usr/lib/jvm/java-8-openjdk-amd64 as the JAVA_HOME. WARNING: Found both spotbugs and findbugs. Disabling findbugs. Modes: Docker Processing: https://github.com/apache/ofbiz-framework/pull/12 GITHUB PR #12 is being downloaded from https://api.github.com/repos/apache/ofbiz-framework/pulls/12 JSON data at Sat Feb 15 17:23:32 UTC 2020 Patch data at Sat Feb 15 17:23:32 UTC 2020 Diff data at Sat Feb 15 17:23:33 UTC 2020 ============================================================================ ============================================================================ Confirming git environment ============================================================================ ============================================================================ dirty workspace mode; applying against existing branch Testing patch on develop. ============================================================================ ============================================================================ Re-exec mode detected. Continuing. ============================================================================ ============================================================================ ============================================================================ ============================================================================ Determining needed tests ============================================================================ ============================================================================ (Depending upon input size and number of plug-ins, this may take a while) executable '' for 'gradle' does not exist. ============================================================================ ============================================================================ Adding comment to Gitlab ============================================================================ ============================================================================ Gitlab Plugin: no credentials provided to write a comment. -1 overall _____ _ _ _ | ___|_ _(_) |_ _ _ __ ___| | | |_ / _` | | | | | | '__/ _ \ | | _| (_| | | | |_| | | | __/_| |_| \__,_|_|_|\__,_|_| \___(_) | Vote | Subsystem | Runtime | Comment ============================================================================ | 0 | reexec | 40m 24s | Docker mode activated. +--------------------------------------------------------------------------- | | | | Prechecks +--------------------------------------------------------------------------- | -1 | gradle | 0m 35s | ERROR: gradle is not available. || Subsystem || Report/Notes || ============================================================================ | Docker | Client=18.09.2 Server=18.09.2 base: /Users/nl04748/dev/test/yetus/Dockerfile | | GITHUB PR | https://github.com/apache/ofbiz-framework/pull/12 | | Optional Tests | dupname asflicense xml | | uname | Linux 99e99167b8f4 4.9.125-linuxkit #1 SMP Fri Sep 7 08:20:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | gradle | | git revision | develop / 969f48b | | versions | git=2.7.4 | | Powered by | Apache Yetus 0.12.0-SNAPSHOT https://yetus.apache.org | Cleaning up docker image used for testing. ============================================================================ ============================================================================ Finished build. ============================================================================ ============================================================================ So in docker mode, misses the gradle package. It seems to me that, when telling the script that the build tools to be used is gradle (parameter --buildtool =gradle) the generated image (yetus/ofbiz in this case) should have gradle installed. Correct? If so, the Dockerfile file in the test-patch-docker folder needs to be adjusted. I can imagine that a specific Gradle version may be required, so that may be an additional parameter, like --gradle-version=5.5.0 (in the case of OFBiz) Met vriendelijke groet, Pierre Smits *Proud* *contributor* (but without privileges)* of* Apache OFBiz <https://ofbiz.apache.org/>, since 2008 *Apache Trafodion <https://trafodion.apache.org>, Vice President* *Apache Directory <https://directory.apache.org>, PMC Member* Apache Incubator <https://incubator.apache.org>, committer Apache Steve <https://steve.apache.org>, committer On Sat, Feb 15, 2020 at 7:00 PM Allen Wittenauer <a...@effectivemachines.com.invalid> wrote: > > > > On Feb 15, 2020, at 6:41 AM, Pierre Smits <pierresm...@apache.org> > wrote: > > > > This indicates to me that for --patch-dir and --basedir parameters their > > values are treated as literally, instead of relatively (~ indicating the > > user's home folder). > > Correct. Tilde prefix expansion is not currently supported. > > First the causes: > > - The interactive shell isn't expanding ~ due to the tilde > not being in front of a word. e.g., ~/ will expand but --foo=~/ will not. > - precommit isn't expanding it because the code base > properly quotes it's variables to specifically avoid unexpected shell meta > character expansions, deal with spaces in paths, etc, etc. > > Is this fixable? Maybe? > > For those unfamiliar, a quick lesson in ~: > > There are basically 7 different forms of ~ that bash > supports. Everyone has probably seen two of them: > > ~/ == $HOME > ~username/ == username's $HOME > > But there are 5 other forms that are fairly rare to see in > the wild: > > ~+/ == ${PWD} > ~-/ == ${OLDPWD} > > ~N/ == dirs +N > ~+N/ == dirs +N > ~-N/ == dirs -N > > There are a few different ways to make these work. One would be > to completely rewrite how parameters are passed and processed. :) The > second would be to eval the variables, but that has a HIGH degree of risk > of getting it wrong (e.g., what does PWD mean at that point?). The third > would be to create a special ~ evaluator and do the work itself. > > Substituting ~/ for $HOME is trivial. > ~username/ is almost certainly going to require getent or eval. I > can't think of any other way off the top of my head that would work for > places where user's don't come from /etc/passwd. > ~+/ should be precommit's $STARTINGDIR > ~-/ would need like a $PRESTARTINGDIR==$OLDPWD or something > dirs support would mean getting a copy of the pre-existing > directory stack and referencing it, since precommit uses pushd and popd > liberally. > > It'd probably be worthwhile to at least handle the ~/ form since I > suspect that's going to be by and far the most common use case.