asciidoctor / asciidoctorj-pdf

AsciidoctorJ PDF bundles the Asciidoctor PDF RubyGem (asciidoctor-pdf) so it can be loaded into the JVM using JRuby.
Apache License 2.0
35 stars 17 forks source link

Ci maintenance #66

Closed abelsromero closed 2 years ago

abelsromero commented 2 years ago

Thank you for opening a pull request and contributing to AsciidoctorJ PDF!

Please take a bit of time giving some details about your pull request:

Kind of change

[ ] Bug fix [ ] New non-breaking feature [ ] New breaking feature [ ] Documentation update [x] Build improvement

Description

What is the goal of this pull request?

Maintenance of the CI pipelines and build.

How does it achieve that?

Are there any alternative ways to implement this?

Not that I know of.

Are there any implications of this pull request? Anything a user must know?

I am afraid the Gradle bump may break something in the release, but I did not see anything suspicious. But is this PR is OK, we could align with https://github.com/asciidoctor/asciidoctor-pdf/releases/tag/v1.6.1 and make a release to test it. Some local testing I did and upstream pipeline work nicely.

Issue

If this PR fixes an open issue, please add a line of the form:

Fixes #Issue

Release notes

Please add a corresponding entry to the file CHANGELOG.adoc

abelsromero commented 2 years ago

About the removal of Groovy test, I had to do it due to an issue in which Groovy seems to translate new File(str) to new File(str, str) :man_shrugging:

    org.asciidoctor.diagram.WhenDitaaDiagramIsRendered > should render ditaa diagram to PDF FAILED
    java.lang.reflect.InaccessibleObjectException: Unable to make private java.io.File(java.lang.String,java.io.File) accessible: module java.base does not "opens java.io" to unnamed module @6f96c77
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
        at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
        at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
        at org.asciidoctor.diagram.WhenDitaaDiagramIsRendered.should render ditaa diagram to PDF(WhenDitaaDiagramIsRendered.groovy:37)

Since there was only 1 test, and it fixes the problem I went ahead, it also simplifies the overall build.

abelsromero commented 2 years ago

@robertpanzer any comments? :cat2: . Btw I am keeping commits for review, let me know if you preffer me to squash manually.

robertpanzer commented 2 years ago

Sorry for responding late. I'll try this out tomorrow.

robertpanzer commented 2 years ago

Somehow it seems like with this PR I can no longer publish to Sonatype. With current main I see these publishing tasks:

Publishing tasks
----------------
generateMetadataFileForMavenAsciidoctorJPdfPublication - Generates the Gradle metadata file for publication 'mavenAsciidoctorJPdf'.
generatePomFileForMavenAsciidoctorJPdfPublication - Generates the Maven POM file for publication 'mavenAsciidoctorJPdf'.
publish - Publishes all publications produced by this project.
publishAllPublicationsToLocalRepository - Publishes all Maven publications produced by this project to the local repository.
publishAllPublicationsToSonatypeRepository - Publishes all Maven publications produced by this project to the sonatype repository.
publishMavenAsciidoctorJPdfPublicationToLocalRepository - Publishes Maven publication 'mavenAsciidoctorJPdf' to Maven repository 'local'.
publishMavenAsciidoctorJPdfPublicationToMavenLocal - Publishes Maven publication 'mavenAsciidoctorJPdf' to the local Maven repository.
publishMavenAsciidoctorJPdfPublicationToSonatypeRepository - Publishes Maven publication 'mavenAsciidoctorJPdf' to Maven repository 'sonatype'.
publishToMavenLocal - Publishes all Maven publications produced by this project to the local Maven cache.
publishToSonatype - Publishes all Maven publications produced by this project to the 'sonatype' Nexus repository.

With this PR I only see this:

Publishing tasks
----------------
generateMetadataFileForMavenAsciidoctorJPdfPublication - Generates the Gradle metadata file for publication 'mavenAsciidoctorJPdf'.
generatePomFileForMavenAsciidoctorJPdfPublication - Generates the Maven POM file for publication 'mavenAsciidoctorJPdf'.
publish - Publishes all publications produced by this project.
publishAllPublicationsToLocalRepository - Publishes all Maven publications produced by this project to the local repository.
publishMavenAsciidoctorJPdfPublicationToLocalRepository - Publishes Maven publication 'mavenAsciidoctorJPdf' to Maven repository 'local'.
publishMavenAsciidoctorJPdfPublicationToMavenLocal - Publishes Maven publication 'mavenAsciidoctorJPdf' to the local Maven repository.
publishToMavenLocal - Publishes all Maven publications produced by this project to the local Maven cache.

Might there be any property missing on my side?

abelsromero commented 2 years ago

Somehow it seems like with this PR I can no longer publish to Sonatype.

Applied same config as Asciidoctorj; added io.github.gradle-nexus.publish-plugin and removed 'io.codearte.nexus-staging'. And it seems to be fine now, there are new tasks releaseSonatypeStagingRepository but that's consistent with what AsciidoctorJ shows. I assume the release will be the same now requiring sonatypeUsername, sonatypePassword properties.

I am tempted to test it with my Sonatype credentials (the ones I use for maven-plugin), but I am not sure if it will also close the release or will be remain in staging. We wouldn't want to make an accidental release :sweat_smile: Can you confirm?

robertpanzer commented 2 years ago

I tested it and it looks great! Thank you!

And merry xmas! 🎅