Closed ALRubinger closed 3 months ago
Update on how this is going @jiyoontbd @frankhinek:
tbdex-kt
so the two projects share versioning and make a cohesive platform.Still TODO:
README
to show how to build, run tests, etcBut this is an encouraging stopping point for today. Thanks for resolving that cyclic dependency. Found no other issues in Mavenizing. Looks like I won't need much from @jiyoontbd until we do review of this chonky PR. 🤘🏻
Things that will require some validation and perhaps follow-on commits after this is merged:
These we can't fully test until they're in main
, but in case of errors we can fix them up after. I've done my best to validate the commands locally first.
Added Dokka config using Dokka CLI as Dokka Maven plugin does not support multimodule builds. The config looks a little different from before, with no sidebar. Gotta be "good enough" for now, though I'm very open to anyone who can restore the left nav sidebar.
vs. before:
Added Dokka config using Dokka CLI as Dokka Maven plugin does not support multimodule builds. The config looks a little different from before, with no sidebar. Gotta be "good enough" for now, though I'm very open to anyone who can restore the left nav sidebar.
Does the sidebar shows up when one of the modules is selected? If so, I think we should be ok for now, since they are different packages. Are there any interlinked docs? For example, in the dids package, a link to a crypto class/definition that does not work anymore?
Added Dokka config using Dokka CLI as Dokka Maven plugin does not support multimodule builds. The config looks a little different from before, with no sidebar. Gotta be "good enough" for now, though I'm very open to anyone who can restore the left nav sidebar.
Does the sidebar shows up when one of the modules is selected? If so, I think we should be ok for now, since they are different packages. Are there any interlinked docs? For example, in the dids package, a link to a crypto class/definition that does not work anymore?
@leordev It doesn't, boo. I revised the README
to include "Generating API Docs Locally" if you wanna give it a spin. Note the Hermit installation and source ./bin/activate-hermit
steps which are new in main
and I've rebased into here.
Would you mind checking those instructions work for you, and see if the interlinking works as you're expecting?
Update: Getting close. Need to reconcile how we publish to Maven Central now. All publishing in this PR is to TBD Artifactory as it stands. Will link with @leordev on that tomorrow.
Also TODO: The parent POM here doesn't actually export all the web5 submodules as deps. Fix this structurally so that consumers have one dep declaration to make and it brings in everything.
I squashed everything and rebased atop main
to keep things clean and make further rebasing easier.
I think we have to run Kover to generate the reports that CodeCov reads, good catch from @leordev
Doesn't look like the cache on the build-test-deploy
script is doing anything; lots of Maven Central downloads there. Why?
Things that will require some validation and perhaps follow-on commits after this is merged:
- Publish Action
- Publish SNAPSHOT Action
These we can't fully test until they're in
main
, but in case of errors we can fix them up after. I've done my best to validate the commands locally first.
This is no longer true. I've updated the workflows here to run on this branch and they're tested on this PR thanks to @leordev showing me how to do that.
Merging #261 (c717caf) into main (f3e8a88) will decrease coverage by
0.04%
. Report is 4 commits behind head on main. The diff coverage isn/a
.
Boom Kover works now.
https://app.codecov.io/github/TBD54566975/web5-kt/tree/issue-217%2Fmaven-build
For testing of GitHub Actions, I'm continuing work on this branch in my fork on main
; will bring back here after I can validate Actions are working correctly.
Merging #261 (dec79ab) into main (f3e8a88) will decrease coverage by
2.25%
. Report is 17 commits behind head on main. The diff coverage isn/a
.:exclamation: Current head dec79ab differs from pull request most recent head 15bcba7. Consider uploading reports for the commit 15bcba7 to get more accurate results
Add to README
- Snapshots are published using version format: commit-{shortSHA}-SNAPSHOT
. @leordev will update.
Summary
This PR creates a mechanism whereby we may align dependencies between
web5-kt
and projects built atop it, (ie.tbdex-kt
). This satisfies #217. It does so by replacing the existing Gradle build with a Maven one and adding explicit<dependencyManagement>
sections through which dependency versioning can be governed and exported for use in other projects. A more in-depth account of that reasoning is here on Discord.This is offered as a drop-in replacement for the existing build:
README
showing how to use all aspects of the local build, publishing, and release processExpected impact for devs of
web5-kt
is in 3 dimensions:mvn verify
is now the command to run the build locallypom.xml
files outlining how to do this.API Docs
README
.main
.Kover and CodeCov
Detekt
verify
lifecycle, for instance when running the build viamvn verify
:Release
0.0.0-main-SNAPSHOT
, effectively unversioning upstream dev as we've done in Gradle.git
asv$version
, publishes to Maven Central, creates a GitHub Release, and publishes API Docs.Example Releases
Release on TBD Artifactory
This is triggered by the "Release and Publish" workflow. This example has version:
0.15.0-issue217-alpha-1
GitHub Release
Same as the example above: a GitHub Release for:
0.15.0-issue217-alpha-1
SNAPSHOT on TBD Artifactory
These are published on every push to main. This example has version:
commit-2ed97da-SNAPSHOT
Release Candidate Build on TBD Artifactory
Published: https://blockxyz.jfrog.io/artifactory/tbd-oss-releases-maven2/xyz/block/web5/1.0.0-maven-rc-1/
Release on Maven Central