wmclifford / lazybones-ng

A simple project creation tool that uses packaged project templates.
Apache License 2.0
6 stars 1 forks source link

Latest release fails to name template zip archives correctly #2

Closed wmclifford closed 3 years ago

wmclifford commented 3 years ago

After testing lazybones v0.8.3 as installed via SDKMan, it appears that the distribution zip archives are not being named correctly. That is, they are not being named according to the template name, but rather they are named according to the root project name.

This has been confirmed by testing the build using a simple template named simple-java within a root Gradle project named test-lazybones. When the template is generated using

./gradlew packageTemplateSimpleJava

the zip archive generated in the build/distributions folder is named test-lazybones.zip instead of simple-java.zip. Sub-templates also fail to be named correctly, and they appear to be completely broken, though it is suspected that the incorrect naming is causing this.

There is presently a PR open against the upstream repository which has a proposed correction for this issue; that patch should be attempted and any further corrections applied after. 

wmclifford commented 3 years ago

Did a little further digging, and the bug appears to be introduced by using a newer version of Gradle. Not sure what the cut-off point is (will investigate), but it appears that the failure to name the packages correctly happens in the v6.x Gradle dist, but not v3.5.1. Tested this by downgrading the wrapper version in the test project, and things work as expected. Going to see where the issue is introduced (what version of Gradle) and see about creating a fix that will work with both old and new versions of Gradle, assuming that is possible.

wmclifford commented 3 years ago

Breaking point is Gradle v5.1; if memory serves, this is where there was a change made to the output directory structures. When the templates are packaged, the output path is no longer build/packages, but build/distributions. Somehow, because of that change the naming of the template zip files is also broken. I have confirmed that v5.0 and older work. Note that this is tested against the latest release of Lazybones (0.8.3) and the Lazybones Gradle plugin (1.2.4).