Robert Jaros
02/11/2024, 5:36 PMRobert Jaros
02/11/2024, 5:38 PMRobert Jaros
02/11/2024, 5:43 PMJavier
02/11/2024, 5:48 PMRobert Jaros
02/11/2024, 5:48 PMRobert Jaros
02/11/2024, 5:57 PMJavier
02/11/2024, 6:04 PMChrimaeon
02/11/2024, 6:07 PMJavier
02/11/2024, 6:09 PMRobert Jaros
02/11/2024, 6:09 PMJavier
02/11/2024, 6:10 PMRobert Jaros
02/11/2024, 6:10 PMJavier
02/11/2024, 6:11 PMRobert Jaros
02/11/2024, 6:16 PMJavier
02/11/2024, 6:17 PMhfhbd
02/11/2024, 6:18 PMRobert Jaros
02/11/2024, 6:18 PMJavier
02/11/2024, 6:18 PMJavier
02/11/2024, 6:19 PMhfhbd
02/11/2024, 6:19 PMmavenCentral
shortcut.Robert Jaros
02/11/2024, 6:19 PMhfhbd
02/11/2024, 6:19 PMRobert Jaros
02/11/2024, 6:19 PMJavier
02/11/2024, 6:20 PMJavier
02/11/2024, 6:22 PMJavier
02/11/2024, 6:22 PMJavier
02/11/2024, 6:25 PMeygraber
02/11/2024, 6:25 PMeygraber
02/11/2024, 6:26 PMmavenCentral
should still workhfhbd
02/11/2024, 6:29 PMmavenCentral
still works, it's just strange you need another plugin to publish to mavenCentral.Robert Jaros
02/11/2024, 6:30 PMhfhbd
02/11/2024, 6:31 PMRobert Jaros
02/11/2024, 6:31 PMeygraber
02/11/2024, 6:32 PMJavier
02/11/2024, 6:33 PMJavier
02/11/2024, 6:34 PMRobert Jaros
02/11/2024, 6:35 PMRobert Jaros
02/11/2024, 6:37 PMmbonnin
02/11/2024, 6:39 PMmbonnin
02/11/2024, 6:39 PMRobert Jaros
02/11/2024, 6:39 PMmbonnin
02/11/2024, 6:40 PMmbonnin
02/11/2024, 6:40 PMRobert Jaros
02/11/2024, 6:43 PMmbonnin
02/11/2024, 6:45 PMhfhbd
02/11/2024, 6:46 PMmbonnin
02/11/2024, 6:47 PMJavier
02/11/2024, 6:47 PMJavier
02/11/2024, 6:47 PMeygraber
02/11/2024, 6:55 PMAdam S
02/11/2024, 6:56 PMmaven-publish
plugin, publishing the KMP project to a project-local directory, and then zipping + uploading it to the new API.hfhbd
02/11/2024, 7:00 PMDoes the new API just need a zip of the published artifacts?Yes, this is all and it's not hard to implement by yourself. But still annoying.
Adam S
02/11/2024, 7:01 PMmbonnin
02/11/2024, 7:03 PMhfhbd
02/11/2024, 7:03 PMmbonnin
02/11/2024, 7:03 PMmbonnin
02/11/2024, 7:04 PMJavier
02/11/2024, 7:04 PMhfhbd
02/11/2024, 7:05 PMtill separate API callsIf you set
publishingType
to AUTOMATIC
(default), its just one call.Javier
02/11/2024, 7:05 PMhfhbd
02/11/2024, 7:06 PMJavier
02/11/2024, 7:06 PMJavier
02/11/2024, 7:06 PMhfhbd
02/11/2024, 7:07 PMmbonnin
02/11/2024, 7:08 PMIf you setThey still supporttopublishingType
(default), its just one call.AUTOMATIC
USER_MANAGED
though so they have to build the statefull stuff anyways...hfhbd
02/11/2024, 7:08 PMJavier
02/11/2024, 7:08 PMJavier
02/11/2024, 7:09 PMJavier
02/11/2024, 7:09 PMAdam S
02/11/2024, 7:09 PMAdam S
02/11/2024, 7:09 PMFeb 25, 2021
Still in the future column on the roadmap. Hopefully in the fall this year.
Javier
02/11/2024, 7:13 PMAdam S
02/11/2024, 7:13 PMeygraber
02/11/2024, 7:14 PMJavier
02/11/2024, 7:15 PMmbonnin
02/11/2024, 7:16 PM<mailto:central-support@sonatype.com|central-support@sonatype.com>
is the best I could findmbonnin
02/11/2024, 8:10 PMCannot publish to maven central (status='500'): {"httpStatus":500,"errorCode":10500,"message":"Internal Server Error occurred","explanation":null,"data":null}
mbonnin
02/11/2024, 10:14 PMmbonnin
02/11/2024, 10:20 PMeygraber
02/11/2024, 11:21 PMmbonnin
02/11/2024, 11:34 PMmbonnin
02/11/2024, 11:34 PMmbonnin
02/11/2024, 11:35 PMmbonnin
02/11/2024, 11:38 PMmbonnin
02/11/2024, 11:38 PMmbonnin
02/11/2024, 11:38 PMmbonnin
02/11/2024, 11:44 PMmbonnin
02/11/2024, 11:46 PMmbonnin
02/11/2024, 11:47 PMeygraber
02/12/2024, 12:29 AMRobert Jaros
02/12/2024, 3:26 PMnmcp {}
block only once in the root project?mbonnin
02/12/2024, 3:30 PMmbonnin
02/12/2024, 3:31 PMmbonnin
02/12/2024, 3:32 PMnmcp {
publishing.publications.configureEach {
publish(name) {
username = System.getenv("MBONNIN_MAVEN_CENTRAL_USERNAME")
password = System.getenv("MBONNIN_MAVEN_CENTRAL_PASSWORD")
publicationType = "USER_MANAGED"
}
}
}
Robert Jaros
02/12/2024, 3:32 PMmbonnin
02/12/2024, 3:32 PMmbonnin
02/12/2024, 3:32 PMRobert Jaros
02/12/2024, 3:33 PMmbonnin
02/12/2024, 3:33 PMmbonnin
02/12/2024, 3:33 PMmbonnin
02/12/2024, 3:33 PMAUTOMATIC
, it should all work.mbonnin
02/12/2024, 3:34 PMmbonnin
02/12/2024, 3:34 PMRobert Jaros
02/12/2024, 4:02 PMmbonnin
02/12/2024, 5:38 PMpublishAllSubprojectsProbablyBreakingProjectIsolation
blob joy
nmcp {
publishAllSubprojectsProbablyBreakingProjectIsolation {
username = TODO()
password = TODO()
publicationType = "USER_MANAGED"
}
}
hfhbd
02/12/2024, 5:38 PMmbonnin
02/12/2024, 5:39 PMnmcp {
publishAggregation {
project(":module1")
project(":module2")
project(":module3")
username = TODO()
password = TODO()
publicationType = "USER_MANAGED"
}
}
mbonnin
02/12/2024, 5:39 PMeygraber
02/12/2024, 5:39 PMmbonnin
02/12/2024, 5:40 PMmbonnin
02/12/2024, 5:40 PMhfhbd
02/12/2024, 5:42 PMRobert Jaros
02/12/2024, 5:42 PMeygraber
02/12/2024, 5:42 PMin all cases, the root project needs to depend on a list of subprojectsNot if the subprojects write to a well known location
eygraber
02/12/2024, 5:42 PMmbonnin
02/12/2024, 5:42 PMNot if the subprojects write to a well known locationMeans it depends on you calling 2 different Gradle invocations, right?
mbonnin
02/12/2024, 5:43 PM./gradlew createAllZips
./gradlew publishAggregate // this step depends on the previous one being called just before and no one messing with the build directories in between
mbonnin
02/12/2024, 5:44 PMis it possible to upload different modules with the same version automatically, eg uploading from different OS/runnersyou can't upload a single bundle from different runners
mbonnin
02/12/2024, 5:44 PMmbonnin
02/12/2024, 5:44 PMJavier
02/12/2024, 5:44 PMeygraber
02/12/2024, 5:45 PMrootTask.dependsOn(projectTask)
and then just run the root level task.mbonnin
02/12/2024, 5:45 PMrootTask.dependsOn(projectTask)
Is that PI compatible?Javier
02/12/2024, 5:45 PMJavier
02/12/2024, 5:45 PMmbonnin
02/12/2024, 5:45 PMeygraber
02/12/2024, 5:45 PMTaskProvider<*>
I think it would be PI compatiblembonnin
02/12/2024, 5:45 PMrootTask.dependsOn(":module:createZip")
eygraber
02/12/2024, 5:46 PMrootProject
instance directlyJavier
02/12/2024, 5:46 PMJavier
02/12/2024, 5:46 PMmbonnin
02/12/2024, 5:47 PMAs long as you're not referencing theBut how do you get theinstance directlyrootProject
rootTask
?Javier
02/12/2024, 5:47 PMmbonnin
02/12/2024, 5:47 PMeygraber
02/12/2024, 5:47 PMJavier
02/12/2024, 5:49 PMJavier
02/12/2024, 5:49 PMmbonnin
02/12/2024, 5:51 PMJavier
02/12/2024, 5:51 PMeygraber
02/12/2024, 5:51 PMTaskProvider
there for the root task
2. Each project applies a plugin that puts the artifacts to upload into a well known location
3. They also get the TaskProvider
from the build service and make it dependent on their task
4. After all the project tasks run, the root task will run, zip all of the artifacts that the other projects created, and upload themJavier
02/12/2024, 5:52 PMeygraber
02/12/2024, 5:53 PMgradle :rootTask
Since all of the projects make it dependent on their tasks, it will not run until they are all doneJavier
02/12/2024, 5:53 PMJavier
02/12/2024, 5:53 PMeygraber
02/12/2024, 5:55 PMinstead of creating a report in the root, create a zip and upload itI'm not following, what do you mean by that?
Javier
02/12/2024, 5:55 PMeygraber
02/12/2024, 5:58 PMJavier
02/12/2024, 5:59 PMJavier
02/12/2024, 5:59 PMeygraber
02/12/2024, 6:06 PMRobert Jaros
02/12/2024, 7:51 PMpublishAggregation
. When I add a module with project()
I've got an error nmcp: no aggregate dependencies found
. Adding a different module gives me another error: Entry META-INF/MANIFEST.MF is a duplicate but no duplicate handling strategy has been set.
mbonnin
02/12/2024, 7:54 PMJavier
02/12/2024, 8:07 PMintegration testsDo you mean functional tests? or you can test everything with integration ones?
mbonnin
02/13/2024, 1:11 AMmbonnin
02/13/2024, 1:11 AMmbonnin
02/13/2024, 1:12 AMmbonnin
02/13/2024, 1:13 AMJavier
02/13/2024, 1:14 AMmbonnin
02/13/2024, 1:15 AMEntry META-INF/MANIFEST.MF is a duplicate but no duplicate handling strategy has been set
@Robert Jaros sorry about that, this is because the plugin isn't applied in the submodules and so the aggregate publication is trying to zip the .jar
file in each submodule (instead of the publication bundle). If you want to go the project isolation route, you'll have to add the plugin to each module. I have updated the READMEmbonnin
02/13/2024, 1:16 AMpublishAllSubprojectsProbablyBreakingProjectIsolation {}
TBH. The name is scary but for the time being there's no drawback to using it.mbonnin
02/13/2024, 1:16 AMRobert Jaros
02/13/2024, 6:38 AMmaven-publish
plugin)Robert Jaros
02/13/2024, 7:03 AMnmcp: no aggregate dependencies found, please apply the 'com.gradleup.nmcp' in your submodules
, even though I've applied the plugin. I don't see any difference in this submodule configuration - the only one is it's location - directly below the root project (the other subprojects are in their own directory).Robert Jaros
02/13/2024, 7:24 AMmbonnin
02/13/2024, 11:00 AM:kilua
is resolved to :
because they have the same GAV maven coordinatesmbonnin
02/13/2024, 11:01 AMkilua
into kilua-core
or so to avoid the name clashmbonnin
02/13/2024, 11:01 AMUsing this fails on submodules which are present in my project but are not to be published (and don't applyRight, good call, I'll make this reactiveplugin)maven-publish
Javier
02/13/2024, 11:03 AMJavier
02/13/2024, 11:06 AMrootProject.name = βkilua-projectβ
you will see the change in the project view in the IDERobert Jaros
02/13/2024, 11:38 AMRobert Jaros
02/13/2024, 11:39 AMRobert Jaros
02/13/2024, 11:46 AMmbonnin
02/13/2024, 11:47 AMRobert Jaros
02/13/2024, 11:48 AMmbonnin
02/13/2024, 11:48 AMRobert Jaros
02/13/2024, 11:48 AMmbonnin
02/13/2024, 11:48 AMRobert Jaros
02/13/2024, 11:49 AMmbonnin
02/13/2024, 11:51 AMmbonnin
02/14/2024, 5:14 PMmbonnin
02/14/2024, 5:15 PMRobert Jaros
02/14/2024, 5:15 PMmbonnin
02/14/2024, 5:18 PM