RulesEngine: Maven Central publishing wiring#3488
Draft
ajpallares wants to merge 2 commits into
Draft
Conversation
Flip on every distribution-related piece for the `:rules-engine`
module so that, once a real consumer of the engine ships, releasing
it is just a matter of merging this PR alongside the skeleton:
- Drop the `:rules-engine` short-circuit from
`ConfigureConditionalPublishing` so the `com.vanniktech.maven.publish`
plugin gets applied to the module again.
- Add the `mavenPublishing { … }` block (`AndroidSingleVariantLibrary`
on `defaultsRelease`) inside a `plugins.withId("com.vanniktech.maven.publish")`
block so the custom-entitlement-computation deploy lane keeps working.
- Restore the `metalava { … }` configuration (hidden annotations) and
the committed `rules-engine/api.txt` baseline, and add the matching
`metalavaGenerateSignatureDefaultsRelease` task to `scripts/api-dump.sh`
so CI catches API drift.
- Restore the `dokkaHtmlPartial` suppression so the published
multi-module dokka site doesn't include an empty
`rules-engine` page.
- Re-add the `api(project(":rules-engine"))` constraint in `:bom`.
This stays a draft until the engine has functionality and a consumer
so we don't push empty `purchases-rules-engine` versions to Maven
Central. Stacked on top of the `pallares/rules-engine-skeleton`
branch.
Co-authored-by: Cursor <cursoragent@cursor.com>
2 tasks
…into pallares/rules-engine-distribution
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## pallares/rules-engine-skeleton #3488 +/- ##
===============================================================
Coverage 79.89% 79.89%
===============================================================
Files 369 369
Lines 14871 14871
Branches 2048 2048
===============================================================
Hits 11881 11881
Misses 2157 2157
Partials 833 833 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves SDK-4338
Stacked on top of: #3478 —
:rules-engine: internal skeleton module.Description
This PR flips on every Maven Central publishing piece for the
:rules-enginemodule::rules-engineshort-circuit inConfigureConditionalPublishingsocom.vanniktech.maven.publishgets applied again.mavenPublishing { … }block (AndroidSingleVariantLibrary("defaultsRelease", …)), gated byplugins.withId("com.vanniktech.maven.publish") { … }so the custom-entitlement-computation deploy lane keeps working.:rules-engine:metalavaGenerateSignatureDefaultsReleasetoscripts/api-dump.shso CI catches API drift inrules-engine/api.txt.dokkaHtmlPartialsuppression so the published multi-module dokka site doesn't include an emptyrules-enginepage.api(project(":rules-engine"))constraint in:bom.The
metalava { … }config + the committedrules-engine/api.txtbaseline already live in the skeleton PR (#3478) — they're standard hygiene for everyrevenuecat.public.librarymodule — so this PR just wires them into CI enforcement.Why a separate PR?
The skeleton itself (#3478) ships a kotlin android library gated by
@InternalRulesEngineAPIwith no functionality and no consumer. We deliberately split publishing wiring out so the skeleton can land independently and we don't start publishing emptypurchases-rules-engineversions to Maven Central on every SDK release (Maven Central versions are immutable, so once10.7.0exists we're committed to keeping it published forever).This PR is kept open as a draft and will be merged alongside (or just before) the first PR that introduces a real consumer of
:rules-engine. Until then, the skeleton compiles, runs tests, and gets detekt'd on every PR without producing any external artifact.