Hi Carl,

Thank you for clarifying!  I'm glad the documentation was able to help too. 

As for the verification failures, that script attempts to compare each jar file 
to a locally built copy vs the uploaded copy.  We are unfortunately not 100% 
reproducible yet - but we are close!  We produce some 300ish jars, and out of 
those jars we typically have 4-5 that aren't reproducible.  When we spoke with 
ASF security, the build needs to be verifiable - reproducible is one way for 
this.  

The current strategy is to take those 4 jars, extract each matching set, and 
then compare the decompiled byte code to ensure they're functionality 
equivalent.  

FYI:  the remaining differences can be explained by the following:
1. https://issues.apache.org/jira/browse/GROOVY-11689 - @Delegate causes method 
reordering
2. https://issues.apache.org/jira/browse/GROOVY-11715 - @DelegateTo has it's 
parameters reordered
3. Grails-forge has not updated to groovy 4 so the groovydoc doesn't have the 
fixes we made in https://issues.apache.org/jira/browse/GROOVY-11674 have not 
yet been applied

Once these are fixed, I am expecting our verification to be clean going 
forward.  

-James

On 2025/07/16 22:55:38 Carl Marcum wrote:
> Hi James,
> 
> I was running the script locally and I had set GRAILS_REPO_URL.
> I should have read the whole document before I started because I hadn't 
> got to the Docker container :)
> 
> Now I've tried it and seemed to go well except for the mention of 
> verification failed shown below.
> Is that typical?
> 
> ---
> 
> FAILURE: Build failed with an exception.
> 
> * What went wrong:
> Gradle build daemon disappeared unexpectedly (it may have been killed or 
> may have crashed)
> 
> * Try:
>  > Run with --stacktrace option to get the stack trace.
>  > Run with --info or --debug option to get more log output.
>  > Run with --scan to get full insights.
>  > Get more help at https://help.gradle.org.
> ❌ Verification failed. ❌
> ❌ Verification failed. ❌
> ✅ Reproducible Build Verified
> Be sure to do the following:
> ☑️   Set the override repo: 'export 
> GRAILS_REPO_URL=https://repository.apache.org/content/groups/staging'
> ☑️   Run the wrapper ShellApp:  cd 
> /home/groovy/grails-verify/apache-grails-wrapper-7.0.0-M5-incubating-bin/ShellApp
>  
> && ./gradlew bootRun --init-script ~/grails-verify/custom-repos.gradle
> ☑️   Run the wrapper ForgeApp:  cd 
> /home/groovy/grails-verify/apache-grails-wrapper-7.0.0-M5-incubating-bin/ForgeApp
>  
> && ./gradlew bootRun --init-script ~/grails-verify/custom-repos.gradle
> ☑️   Run the cli ShellApp: cd 
> /home/groovy/grails-verify/apache-grails-7.0.0-M5-incubating-bin/bin/ShellApp 
> && ./gradlew bootRun --init-script ~/grails-verify/custom-repos.gradle
> ☑️   Run the cli ForgeApp: cd 
> /home/groovy/grails-verify/apache-grails-7.0.0-M5-incubating-bin/bin/ForgeApp 
> && ./gradlew bootRun --init-script ~/grails-verify/custom-repos.gradle
> ☑️   Add the local repos to the application and then run the shell cli 
> from one of the applications and ensure all commands show as expected - 
> pay attention to the scaffolding ones since they are dynamically loaded
> ✅✅✅ Verification finished, see above instructions for remaining manual 
> testing.
> groovy@6b743c022c7a:~/grails-verify$
> 
> ---
> 
> I'll continue working through the remaining steps so I have it for next 
> time.
> 
> BTW, congratulations All on the M5 milestone!
> 
> Best regards,
> Carl
> 
> On 7/13/25 12:11 PM, James Daugherty wrote:
> > Hi Carl,
> >
> > First, thank you for taking a look at the release!
> >
> > Are you running the very script locally on your machine or in the docker 
> > container command we provide in the RELEASE.md? Also, are you running those 
> > commands manually or is the verify script?  If you're running them 
> > manually, you need to point at the staging repo so the wrapper downloads 
> > the file:  export 
> > GRAILS_REPO_URL=https://repository.apache.org/content/groups/staging
> >
> > Concerning this specific issue, we did discover that the wrapper can fail 
> > in certain circumstances, specifically around these temporary 
> > states.https://github.com/apache/grails-core/pull/14896 is the PR that 
> > fixes it for the next release - I didn't feel it was important enough to 
> > cancel the release given the scope of changes over the past month (this is 
> > a milestone so we expect issues like this to be found) & because the issue 
> > only affects these transitives states / snapshots.
> >
> > -James
> >
> > On 2025/07/13 13:46:22 Carl Marcum wrote:
> >> Hi All,
> >>
> >> I was trying to go through the verification using the verify.sh script
> >> during the vote.
> >> I think I'm missing some setup or something.
> >>
> >> I was running the verify script from my up-to-date clone of grails-core.
> >>
> >> /./etc/bin/verify.sh v7.0.0-M5 ~/temp/verify/
> >>
> >> and it seems to be failing during the verify-wrapper-distribution.sh
> >> section:
> >>
> >> /./grailsw -t shell create-app ShellApp/
> >>
> >> Checking wrapper shell command ...
> >> java.lang.ClassNotFoundException:
> >> org.apache.grails.cli.DelegatingShellApplication
> >>       at 
> >> java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
> >>       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
> >>       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
> >>       at java.base/java.lang.Class.forName0(Native Method)
> >>       at java.base/java.lang.Class.forName(Class.java:534)
> >>       at java.base/java.lang.Class.forName(Class.java:513)
> >>       at grails.init.Start.main(Start.java:74)
> >> ❌ Verification failed. ❌
> >>
> >> I do currently have M4 installed so I don't know if that has anything to
> >> do with it or not.
> >>
> >> I didn't have a lot of time during the M5 vote to get into it but
> >> hopefully I can be ready for future ones.
> >>
> >> Best regards,
> >>
> >> Carl
> >>

Reply via email to