Kotlin Test Support
Starting a thread for coordinating Kotlin testsuite and code snippit work 🤘🏻
85 Replies
@dayhaysoos-tbd Here's the issue I'm starting on for this today: https://github.com/TBD54566975/developer.tbd.website/issues/1175
I've also set public pairing sessions in #adhoc-huddle Wed-Fri so we can stay synced. I'll dig into setting up the runtime today!
I got both
web5-kt
and tbdex-kt
building as a first step. The README
s need to be updated to give contributors better guidance. And I have some questions for the Core ENG team here in #tbdex about the versions we're using.
@dayhaysoos-tbd Do we yet have a shared upstream branch to work on in the dev site?Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@dayhaysoos-tbd You got it. Do we have an umbrella issue for this work I can name the branch after?
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@dayhaysoos-tbd Boom:
https://github.com/TBD54566975/developer.tbd.website/issues/1176
Go ahead and add any smaller dependencies in there to the summary! I've found just a couple already.
And created branch for us here @dayhaysoos-tbd:
https://github.com/TBD54566975/developer.tbd.website/tree/issue-1176/add-kotlin-test-support
Let's share that one and put all work relating to Kotlin support in there.
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@dayhaysoos-tbd - Final answer on Gradle for the build for dev site? Couple reasons I ask:
1) If we're going to Maven in the medium-term anyway, why duplicate work?
2) As a downstream consumer we can really align on whatever build system we like
3) Honestly I'm just much quicker with Maven
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
OK, you're really comfortable with my standing up the dev site Kotlin stuff w/ Maven?
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
OK awesome thank you.
🫡
Where test suite will live: don't know just yet, should have stuff to share tomorrow in our peer jam session. Right now I've got status in here with some open questions. Namely the Java runtime versions we're aligning on. I'll likely go into the upstream projects with PRs to make build prereqs clear and see if I can get to version alignment on
tbdex-kt
(on Java 17
) and web5-kt
(on Java 11
).
I do have them both building locally now so that's a win. Gotta update README
s in PRs to make that process easier.Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@dayhaysoos-tbd Maybe I should invert the question 🙂 Where do you need the Kotlin testuite to be?
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
OK will try for that. Maven for instance has test convention of
src/test/main
under the folder where the pom.xml
is, sure I can change that
Saw your new issues @dayhaysoos-tbd - awesome!
Should they be moved from open-source-programs
repo to the developer.tbd.website
repo, and on the OSP Project Board?
I have Kotlin runtime added to the Dev Site in the issue-1176/add-kotlin-test-support
branch. There's a minimal test showing web5-kt
can be imported and a call made to web5-did
module using Java 17
.
There's a draft PR to see ongoing changes and commits.
To use:
1) Bring in this branch locally
2) Follow the new instructions to set up the Java runtime in the README
3) Run pnpm test:kotlin
4) See output:
Next: @dayhaysoos-tbd and I have an open pairing session today. Let's see if this test infra is living in the right place in the repo, and how we can hook it into the Shnip system so that the Kotlin code and tests there can be annotated for inclusion into the site's docs.
cc: @techgirl1908 ^
@codermickey - Do we know why FOSSA is failing license checks in the web5-kt
suite? The license info is in Maven Central.Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Say more @dayhaysoos-tbd ? It is in the pnpm scripts of that branch?
Ah sorry pnpm test:kotlin
GitHub
developer.tbd.website/package.json at issue-1176/add-kotlin-test-su...
Source for the TBD Developer Website. Contribute to TBD54566975/developer.tbd.website development by creating an account on GitHub.
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Rad, huh?
I’m amped to get it annotated with Shnip
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
I have some in there @dayhaysoos-tbd
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
They’re not real examples we would publish but they’re Kotlin and they run and everything
Oh no not from real examples
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Nice
Yes let’s port em in
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@blackgirlbytes Are they Web5 or tbDEX? I’m waiting on a tbDEX release to Maven Central to bring in those dependencies; Web5 is ready to go on 0.10.0
Hell yeah, BTW
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
We can port - thanks for the pointer!
@dayhaysoos-tbd Lemme know if you need help with dep management or anything in setup
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Probably not. I made the whole folder structure outside of the dev site first and then lift and shifted it in.
You’ll just need to update the package.json test:Kotlin script to point to the new location.
And today let’s talk about the structure of that tests dir because I saw last night it was not originally partitioned by language
Like you’ll have to move the whole testsuite-kotlin folder, not just individual files.
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Yeah Kotlin needs the whole folder structure as I have it - Maven build info, file conventions etc apply. It’s not just freefloating scripts like we have in JS land
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Yup
@dayhaysoos-tbd Any idea why the hardcoded MDX version above does source code highlighting differently from the
CodeSnippet
version below?OT @blackgirlbytes but wanted to raise to you while I'm in here - Kotlin guide does not note the packages or import statements needed to use classes like
VerifiableCredential
? Is this expected, reflected elsewhere, or an issue to raise?
https://developer.tbd.website/docs/web5/build/verifiable-credentials/jwt-to-vc
@dayhaysoos-tbd site/snippets
is not in .gitignore
; as these files are generated by the build, shouldn't they be?
@techgirl1908 Update.
✅ Kotlin TestSuite is in place
✅ Shnip system can consume Kotlin code and surface it as docs. We did this with one of @blackgirlbytes guides to prove it out
There are some housekeeping things I want to do with the PR before we merge it in, and there will be things to review with @devRel regarding some changes locations for the testsuites.
By end of week you will be unblocked on Kotlin testsuite writing, likely by COB Thursday.
And this work @dayhaysoos-tbd and I did today paves the way to nicely slide Swift testsuite support in right next to the other suites.
Will set a meeting with @devRel for top of next week to show and tell how to use Kotlin on the site and get it surfaced in your docs.
@dayhaysoos-tbd I rebased and force-pushed to our branch. There's a new error there now due to changes that came in via main
. Can you identify where the new broken reference is?
https://github.com/TBD54566975/developer.tbd.website/actions/runs/7733947122/job/21087707729?pr=1183
Tomorrow: let's hook up the kotlin suite to pnpm test
and adjust the CI workflow if necessary in Actions. The sooner we get this merged, the less we have to worry about rebasing and getting new errors due to forward development in main
.
@blackgirlbytes Here is how we transformed your code blocks as real Kotlin.
And here is how we test it.Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Ha oh boy, which also raises that we're documenting in Gradle @blackgirlbytes while our own suites are in Maven (and I'm converting the upstream
*-kt
suites to use Maven).
Worth to developers to show how to do imports for both, or at least show them the GAV instead of Gradle- or Maven-specific ways to declare the dependency?
I recommend the build tool non-specific way and just show the GAV to get the dependency, let devs implement the dep declaration in their tool of choice.Like this is Gradle-specific:
vs. just saying "Declare in your build tool a dependency upon
xyz.block:web5-credentials:0.0.9-delta
(which is a version we need to externalize, too!)
WOW getting this all aligned is a lot of effort but totally worth it when it comes together!Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
HAPPY to help, for real
I'm having so much fun in ALR's JVM Week
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Set time with me to pair if you wanna review any of your Kotlin guides and we can get 'em clean and aliged w/ conventions
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Get me Twitch famous
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Nope, no change in system. I laid out the main code as main code, put snippets around it, and wrote tests for those. If you want to lay it out where everything is in tests and you put snippets on those, it supports that too.
Dev preference; I write main code as main and test it by convention. Adapt to your taste. 🤘🏻
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@devRel - @dayhaysoos-tbd and I are prepping a PR that changes the location of your
__tests__
folder. This PR will unblock you from writing Kotlin tests and snippets.
Could you please hold on any commits to main
that change existing code snippets? It'll help me avoid merge conflicts. I expect to have this PR cleared in the next couple of hours and you'll be back to business as usual.Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Yeah existing PRs would need to be rebased once this is in to bring in the new location. I'll work with you to make it as painless as possible.
@devRel As I'm sorting through this rebase, I want to make sure I'm not dropping any of your changes. It's true that you removed the DidIon methods in docs and tests, correct?
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
📰 ⏰
@devRel Kotlin Testsuite Support and Code Snippets for it are now live. 🚀 Props props @dayhaysoos-tbd for the integration with Snippets and @blackgirlbytes for the early feedback and pairing.
You are again clear to push to
main
. ✅ You'll need to rebase your branches/PRs to take in the changes cleanly, and there may be some merge conflicts due to folder renaming.
There are 2 important takeaways for you now, both noted in the commit message
* Java Development Kit is now an installation prerequisite when running pnpm test
* The location of site/__tests__
is now site/testsuites/testsuite-javascript/__tests__
I've set a Kotlin Bootcamp on the OSS Public Calendar for Monday to intro the team to JVM development - we can talk through IDE setup, environments, Maven configs, etc.
And we have a session after that to show you where Kotlin tests should live and how to run them. We'll gather feedback from the team on usability changes and anything you'd like to incrementally improve.
Was eager to get this in quickly to:
1) Unblock you from writing tested Kotlin code and including it into docs in Snippets
2) Clear the way for further merge conflicts due to the rename.
Any other questions before Monday - hit us up here!Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
🤘🏻
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Sure, I combined the main and test code together into a canonical example.
* Test
* Doc calling the Snippet
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Should have Swift support done by lunch tomorrow
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Teamwork makes the dream work.
Say it with me - developer.tbd.website is the singular home of all our community efforts. The one place to get at our software and learn how to use it. And everything in there works as advertised.
If we step back, we can see how amazing it is that a project of our maturity is doing tested docs in several languages. It’s an industry leading experience for a project at any phase - and we are living it.
And the software itself is there to help people - welcoming more folks into a biased economic system.
Proud to be on the team making this all real.
I was kidding when I said it but whelp this is done.
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
This is what I was working on when my suites broke locally - https://github.com/TBD54566975/developer.tbd.website/issues/1196
GitHub
Refactor testsuite folder names for brevity · Issue #1196 · TBD5456...
We have testsuites in: site/testsuites/testsuite-* The JS TestSuite is most egregious: site/testsuites/testsuite-javascript/tests* Slim this to: site/testsuites/$langname @angiejones raised in ...
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@blackgirlbytes Wanna jump into #tbdiscussions? Looks fine on
main
here:
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
For @dayhaysoos-tbd: We should probably enhance the Shnip config to do something like
.gitignore
; it's making snippet outputs for the target
directory where the build copies sources, so @blackgirlbytes accidentally was hunting in the wrong folder, one that shouldn't exist.
All part of discovering features for Shnip through using it in different ways! 😄Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
@AceKYD From the error:
Got your paths/filenames wrong somewhere?
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Running your branch locally
Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Getting:
And in my console:
So where is
importDidsKt.snippet.kt
in the folder developer.tbd.website/site/docs/web5/build/decentralized-identifiers
? Isn't that what it's expecting?
@AceKYD ^Unknown User•10mo ago
Message Not Public
Sign In & Join Server To View
Yeah @dayhaysoos-tbd is also gonna be updating Shnip to clear the snippets dir before regenerating so that doesn’t happen again. He’s on it next week!
Unknown User•9mo ago
Message Not Public
Sign In & Join Server To View
Hey @dayhaysoos-tbd this is really awesome - getting everything into one system. Props to you man, having an awesome week. 🔥
Unknown User•9mo ago
Message Not Public
Sign In & Join Server To View
You got it man. If you're working on something that's completed or not broken, you're not programming. 🤣
Unknown User•9mo ago
Message Not Public
Sign In & Join Server To View
Thank you @dayhaysoos-tbd! Doing the tough “make it all work in one place” stuff 🤘🏻
Unknown User•9mo ago
Message Not Public
Sign In & Join Server To View