Retire mkdocs, publish plugins to Reposilite, refresh docs#29
Conversation
The build-logic publish repository still used the old unauthenticated 'ghPages' block, so publishing the plugins to Reposilite failed (no credentials). Mirror the library's credential handling here: name the repo 'magicutilsPublish' and apply PUBLISH_USER/PUBLISH_TOKEN (or publish_user/publish_password) when set.
Documentation now lives in the separate MagicUtilsWebsite (Nuxt) project, so drop the mkdocs sources (docs/, mkdocs.yml), the docs/javadoc gh-pages workflows, and the docs lint check. Rewire publishing: publish-maven.yml is dispatched directly by release.yml after tagging (it no longer chains from the docs workflow_run), and release.yml's dispatch-downstream now triggers only the Maven publish.
Update the release pipeline description and verification commands for the new publish-maven-from-release flow, replace the deprecated publish_release.py references with the Gradle release tasks, and fix stale gh-pages/GitHub Pages Maven mentions.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Reviewer's GuideRetires the mkdocs/GitHub Pages documentation pipeline, moves docs responsibilities out of this repo, rewires the release workflows to dispatch Maven publishing directly, and fixes build-logic plugin publishing to use Reposilite with proper credentials. Sequence diagram for the updated release-to-Maven publish pipelinesequenceDiagram
actor Maintainer
participant GradleReleaseTasks
participant GitHubReleaseWorkflow
participant GitHubPublishMavenWorkflow
participant Reposilite
Maintainer->>GradleReleaseTasks: ./gradlew release -Pversion=X.Y.Z
GradleReleaseTasks->>GitHubReleaseWorkflow: dispatch release.yml
GitHubReleaseWorkflow->>GitHubReleaseWorkflow: tag job creates vX.Y.Z
GitHubReleaseWorkflow->>GitHubPublishMavenWorkflow: gh workflow run publish-maven.yml -f version=X.Y.Z
GitHubPublishMavenWorkflow->>GitHubPublishMavenWorkflow: resolve-matrix prints publish matrix
GitHubPublishMavenWorkflow->>Reposilite: publish tasks PUT artifacts
GitHubPublishMavenWorkflow->>Reposilite: publish-plugins builds build-logic and PUTs plugins
Flow diagram for build-logic plugin publishing credentials to Reposiliteflowchart TD
A[Project hasProperty publish_repo] -->|no| Z[mavenLocal only]
A -->|yes| B[read publish_user from Gradle properties]
B --> C[fall back to PUBLISH_USER env]
C --> D[read publish_password from Gradle properties]
D --> E[fall back to PUBLISH_TOKEN env]
E --> F{publishUser and publishPassword both non-null?}
F -->|no| G[Configure magicutilsPublish repo without credentials]
F -->|yes| H[Configure magicutilsPublish repo with username/password]
G --> I[maven name magicutilsPublish url publish_repo]
H --> I[maven name magicutilsPublish url publish_repo credentials]
Z --> I
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've found 2 issues, and left some high level feedback:
- In README.md the release helper description still says CI "builds docs/javadoc" even though the mkdocs and javadoc workflows have been removed; consider updating that sentence to reflect the new, docs-less pipeline and how javadoc jars are produced/published now.
- The build-logic publishing block now uses PUBLISH_USER/PUBLISH_TOKEN while RELEASING.md troubleshooting refers to MAVEN_PUBLISH_USER/MAVEN_PUBLISH_TOKEN; it may be worth explicitly calling out the different secrets used for library vs plugin publishing so operators don’t confuse or misconfigure them.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- In README.md the release helper description still says CI "builds docs/javadoc" even though the mkdocs and javadoc workflows have been removed; consider updating that sentence to reflect the new, docs-less pipeline and how javadoc jars are produced/published now.
- The build-logic publishing block now uses PUBLISH_USER/PUBLISH_TOKEN while RELEASING.md troubleshooting refers to MAVEN_PUBLISH_USER/MAVEN_PUBLISH_TOKEN; it may be worth explicitly calling out the different secrets used for library vs plugin publishing so operators don’t confuse or misconfigure them.
## Individual Comments
### Comment 1
<location path=".github/workflows/release.yml" line_range="101-102" />
<code_context>
+ # so the release only dispatches the Maven publish. Use workflow_dispatch
+ # (not the tag push) to avoid GitHub's GITHUB_TOKEN-pushed-tag rule that
+ # suppresses downstream workflow_run events.
+ gh workflow run publish-maven.yml --repo "$GITHUB_REPOSITORY" --ref "$TAG" \
-f version="$VERSION"
- echo "Dispatched docs.yml and javadoc.yml for $TAG"
+ echo "Dispatched publish-maven.yml for $TAG"
</code_context>
<issue_to_address>
**issue (bug_risk):** The `version` input passed to `publish-maven.yml` is not defined in that workflow and will cause `gh workflow run` to fail.
`publish-maven.yml` defines only `on: workflow_dispatch` and no `inputs`. Passing `-f version="$VERSION"` to `gh workflow run` will therefore fail with "workflow does not accept input 'version'". Please either add a `workflow_dispatch.inputs.version` to `publish-maven.yml` and use it, or remove the `-f version` flag from this invocation.
</issue_to_address>
### Comment 2
<location path="README.md" line_range="157-159" />
<code_context>
-push the selected branch, wait until `origin/<ref>` resolves to the pushed
-commit, and then dispatch `release.yml`. Optional flags are available for
-manual `javadoc.yml` and `publish-maven.yml` dispatches when needed.
+`release` validates the version, bumps `gradle.properties`, commits, and
+dispatches `release.yml`. CI then tags `vX.Y.Z`, builds docs/javadoc, and
+publishes the artifacts to Reposilite. See `RELEASING.md` for the full flow.
</code_context>
<issue_to_address>
**issue:** Clarify whether CI still builds docs here or only publishes Javadoc/artifacts, to keep the release description consistent.
Since this repo no longer contains the docs workflows and `RELEASING.md` describes the docs site as living in a separate MagicUtilsWebsite project, the phrase "builds docs/javadoc" here is probably inaccurate. Please reword to indicate that CI tags the release and publishes artifacts (and any Javadoc jars), without suggesting the full docs site is built in this pipeline.
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| gh workflow run publish-maven.yml --repo "$GITHUB_REPOSITORY" --ref "$TAG" \ | ||
| -f version="$VERSION" |
There was a problem hiding this comment.
issue (bug_risk): The version input passed to publish-maven.yml is not defined in that workflow and will cause gh workflow run to fail.
publish-maven.yml defines only on: workflow_dispatch and no inputs. Passing -f version="$VERSION" to gh workflow run will therefore fail with "workflow does not accept input 'version'". Please either add a workflow_dispatch.inputs.version to publish-maven.yml and use it, or remove the -f version flag from this invocation.
| `release` validates the version, bumps `gradle.properties`, commits, and | ||
| dispatches `release.yml`. CI then tags `vX.Y.Z`, builds docs/javadoc, and | ||
| publishes the artifacts to Reposilite. See `RELEASING.md` for the full flow. |
There was a problem hiding this comment.
issue: Clarify whether CI still builds docs here or only publishes Javadoc/artifacts, to keep the release description consistent.
Since this repo no longer contains the docs workflows and RELEASING.md describes the docs site as living in a separate MagicUtilsWebsite project, the phrase "builds docs/javadoc" here is probably inaccurate. Please reword to indicate that CI tags the release and publishes artifacts (and any Javadoc jars), without suggesting the full docs site is built in this pipeline.
Follow-up to the 1.22.0 release, addressing the two loose ends and the docs move.
Fixes
fix(build-logic): the plugin publish job used the old unauthenticatedghPagesrepository block, sopublish-pluginsfailed to upload to Reposilite (no credentials). Now mirrors the library's credential handling (PUBLISH_USER/PUBLISH_TOKEN).Retire mkdocs / gh-pages
docs/,mkdocs.yml, and thedocs.yml/javadoc.yml/docs-check.ymlworkflows.release.ymlnow dispatchespublish-maven.ymldirectly after tagging (it no longer chains from the docsworkflow_run).README.md/RELEASING.md/scripts/README.md: point at Reposilite and the Gradle release tasks; drop stale gh-pages /publish_release.pyreferences.The docs content itself (Reposilite URLs, diagnostics publish-verdict, a new Build Logic page) is updated in the MagicUtilsWebsite repo.
Summary by Sourcery
Retire the in-repo MkDocs/gh-pages documentation pipeline, move docs responsibilities out to the separate MagicUtilsWebsite project, and simplify releases to dispatch the Maven publish workflow directly after tagging.
New Features:
Bug Fixes:
Enhancements:
CI:
Documentation:
Chores: