matrei commented on PR #39:
URL: 
https://github.com/apache/grails-gradle-publish/pull/39#issuecomment-5864961095

   Thanks @jdaugherty, the example projects and the Nexus endpoint are a big 
step up in coverage, and you're right about the parent project properties.
   
   **Parent project properties (161dc93).** My grails-core runs passed 
`-PprojectVersion=8.0.0`, which made the version a Gradle property on every 
project and hid exactly this. The release job sets it in the root 
`gradle.properties`, which `SharedPropertyPlugin` copies into the grails-gradle 
root's `ext`, so its subprojects need the parent lookup. I reran the comparison 
that way: the release job's assemble and publish steps for grails-gradle, 
grails-core and grails-forge, with `projectVersion=8.0.0` set in 
`gradle.properties`, comparing `1.0.x` with 8507dd7.
   
   - Both runs pass and publish the same 5,058 files; all 843 signatures verify 
and every checksum file matches.
   - 12 `.module` files differ. 11 of them gain a version for a dependency that 
`1.0.x` published without one (e.g. `requires 6.1.0` in `grails-controllers`, 
`grails-web-core`, `grails-mimetypes`), so the module metadata fix corrects 
what grails-core publishes today. The 12th is `grails-gradle-plugins`, whose 
jar only differs in its SBOM.
   - The plugin logs no warn-level parent lookups.
   - The only new warnings are grails-core's own `isCiBuild` lookup in 
`gradle/test-config.gradle` line 44, reported through `findProperty()` 33 more 
times, probably because the plugin now queries `compileGroovy`'s output 
directory for the descriptor. Nothing from the plugin itself.
   
   The branch's own `clean check rat` passes locally as well: 14 unit tests, 99 
functional tests with the same 6 skipped. The functional tests now take about 
16 minutes instead of 5, which seems a fair price for what they cover.
   
   A few small things:
   
   1. **The help text contradicts itself** 
(`GrailsPublishGradlePlugin.groovy:185`): after "...not available with Isolated 
Projects." it still has "or its build script before the plugin is applied. 
Properties set on parent projects, including in the gradle.properties of a 
parent project's directory, are not read." That looks like a leftover from the 
edit; the README is right.
   2. **`findProjectProperty` is now public.** It was package-private and 
static; as an instance method on a class grails-core extends, it becomes API. 
`@PackageScope` (the unit test is in the same package) or `protected` would 
keep it internal.
   3. **Nit: the rewritten `.module` files are pretty-printed with 4-space 
indentation**, while Gradle writes 2, so they look different from the untouched 
ones. Harmless, and reproducible, but `JsonOutput.prettyPrint` could be 
replaced by writing with Gradle's indentation if you care.
   4. **For later:** `configureModuleMetadataVersions` uses `project` inside 
`doLast`, which the configuration cache doesn't allow. Publishing isn't 
configuration-cache compatible yet anyway, so this doesn't need to block.
   
   I'll update the PR description and title, since "plugin properties are no 
longer read from parent projects" is no longer a breaking change.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to