-
-
Notifications
You must be signed in to change notification settings - Fork 36
Fix Jreleaser's staging-dir #945
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary of ChangesHello @komamitsu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses an issue with JReleaser's staging directory configuration by ensuring that all references to the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request addresses an issue with JReleaser's staging directory configuration in a multi-project build. The changes correctly unify the staging directory to the root project's build directory for all subprojects, ensuring a single location for staged artifacts. This is a good fix. I've added one suggestion to improve the Gradle script's robustness by using lazy providers for path construction, which is a best practice.
| url = "https://central.sonatype.com/api/v1/publisher" | ||
| applyMavenCentralRules = true | ||
| stagingRepositories.set(listOf("${layout.buildDirectory.get().asFile}/staging-deploy")) | ||
| stagingRepositories.set(listOf("${rootProject.layout.buildDirectory.get().asFile}/staging-deploy")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While this change correctly points to the root project's build directory, the path construction can be improved to be more robust and idiomatic for Gradle. Using string interpolation with a hardcoded path separator (/) can be brittle on different operating systems. Additionally, using .get() causes eager resolution of the property, which is discouraged in favor of Gradle's lazy configuration model.
A better approach is to use Gradle's Provider API to construct the path lazily and in a platform-independent way.
stagingRepositories.set(rootProject.layout.buildDirectory.dir("staging-deploy").map { setOf(it.asFile.path) })There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR fixes the JReleaser staging directory configuration in a multi-module Gradle project to ensure all subprojects publish their artifacts to a unified staging location in the root project's build directory, rather than each subproject using its own build directory.
Key Changes:
- Updated Maven repository and JReleaser configuration to use
rootProject.layout.buildDirectoryinstead oflayout.buildDirectory - Modified the release workflow to explicitly publish artifacts to the staging repository before running JReleaser
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| build.gradle.kts | Updated the staging Maven repository URL and JReleaser's stagingRepositories configuration to reference the root project's build directory, ensuring all subprojects stage artifacts in the same location |
| .github/workflows/release.yml | Added publishAllPublicationsToStagingRepository task to the release workflow to ensure artifacts are published to the staging directory before JReleaser processes them |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.