pulumi / pulumi-java

Java support for Pulumi
Apache License 2.0
69 stars 21 forks source link

Third-Party Publishers - Pom misses package name #1406

Open muhlba91 opened 1 month ago

muhlba91 commented 1 month ago

What happened?

When publishing to Sonatype, I cannot close the staging repository and publish to public because of a Pom error.

Looking at the generated build.gradle file, I see that pom.name = "" which should ideally be the package name as for Pulumi published packages.

Example

publishing {
    publications {
        mainPublication(MavenPublication) {
            groupId = "io.muehlbachler.pulumi"
            artifactId = "proxmoxve"
            version = resolvedVersion
            from components.java
            artifact sourcesJar
            artifact javadocJar

            pom {
                inceptionYear = ""
                name = "" <- THIS IS MISSING
                packaging = "jar"
                description = "A Pulumi package for creating and managing Proxmox Virtual Environment cloud resources."

                url = "https://github.com/muhlba91/pulumi-proxmoxve"

                scm {
                    connection = "git@github.com/muhlba91/pulumi-proxmoxve.git"
                    developerConnection = "git@github.com/muhlba91/pulumi-proxmoxve.git"
                    url = "https://github.com/muhlba91/pulumi-proxmoxve"
                }

                licenses {
                    license {
                        name = "The Apache License, Version 2.0"
                        url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
                    }
                }

                developers {
                    developer {
                        id = ""
                        name = ""
                        email = ""
                    }
                }
            }
        }
    }
}

Output of pulumi about

N/A

Additional context

This is related to https://github.com/pulumi/pulumi-java/blob/main/pkg/codegen/java/templates_gradle.go#L129-L136 where the project name, as well as other properties like the inception year, are only set for Pulumi published packages. For third-party publishers this needs to be set as well accordingly. I believe it would make sense to set most, if not all, of these properties that are currently hard-coded only for Pulumi published packages.

Contributing

Vote on this issue by adding a 👍 reaction. To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

justinvp commented 1 month ago

Thanks for opening the issue, @muhlba91.

I believe it would make sense to set most, if not all, of these properties that are currently hard-coded only for Pulumi published packages.

Agreed. In some cases we can infer them, such as with the package name. Others, may require additional Java-specific values in the Pulumi schema.