here's my december adventure log. it would be mostly coding sbt, but some mix of food, music, skate stuff too
day 1: fixed a Scala 3 compiler warning in sbt 2.x that gets displayed to the user
https://eed3si9n.com/december-adventure-2024/ #DecemberAdventure
=> More informations about this toot | More toots from eed3si9n@mastodon.social
[#]DecemberAdventure day 2
sent 'Artifact publishing proposal' proposal to Scala Center. the gist of the proposal is to consolidate the effort around publishing changes.
released sbt-jupiter-interface 0.13.3, featuring bug fix contributed by Li Haoyi
at night, worked on the december mixtape
https://eed3si9n.com/december-adventure-2024/
=> More informations about this toot | More toots from eed3si9n@mastodon.social
[#]DecemberAdventure day 3
went skating in the morning before work. 8.25 inch + AF-1 still feels heavy compared to previous setups
no night hacking but did a small writeup of sbt 2.x bug fix (https://github.com/sbt/sbt/pull/7925) wherein source dependency ProjectRef(file("a1"), "a1")
was resulting in "Invalid build URI" on sbt 2.x
https://eed3si9n.com/december-adventure-2024/#3
=> More informations about this toot | More toots from eed3si9n@mastodon.social
[#]DecemberAdventure day 4
this also cherry picks a commit from a dormant PR that changes licenses from a tuple `(String, URL)` to a data type https://eed3si9n.com/december-adventure-2024/#4 => /toot/113598773945326188 More informations about this toot => /profile/111276131949234374 More toots from eed3si9n@mastodon.social ### Written by Eugene Yokota on 2024-12-06 at 06:50 [#]DecemberAdventure day 5 my two cents on compilers: compilers should be silent if it did exactly what was told. any warnings should be actionable such that the user can get rid of the warning somehow. `-Xmigration` notices might be an exception. as a low effort exploration, I decided to try the next Scala 3.x, Scala 3.6.2-RC3. unfortunately the compilation failed under `-Xfatal-warnings` because Scala 3.6.2-RC3 threw unactionable notices as warning. https://eed3si9n.com/december-adventure-2024/#5 => /media?https%3A%2F%2Fmamot.fr%2Fmedia_proxy%2F113604547530018770%2Foriginal View attached media => /toot/113604547555686693 More informations about this toot => /profile/111276131949234374 More toots from eed3si9n@mastodon.social ### Written by Eugene Yokota on 2024-12-07 at 08:09 [#]DecemberAdventure day 6 an area of sbt that likely few people know the details about is the thin client. let’s try reverse engineering sbtn to see how the native code is communicating with sbt 1.x.
$ socat -v UNIX-LISTEN:$HOME/.sbt/1.0/server/aaaa/proxy.sock,fork UNIX-CONNECT:$HOME/.sbt/1.0/server/aaaa/sock
that should able to intercept the UNIX domain socket, if you point sbtn to proxy.sock https://eed3si9n.com/december-adventure-2024/#6 => /toot/113610521425171187 More informations about this toot => /profile/111276131949234374 More toots from eed3si9n@mastodon.social ### Written by Eugene Yokota on 2024-12-08 at 07:14 [#]DecemberAdventure day 7 continuing the reverse engineering of sbt thin client, looked into the actual communication body it looks like sbtn is basically a telnet/ssh over JSON-RPC, and a lot of the communication is `sbt/terminalCapabilities`. messages are sent key stroke by key stroke, which can invoke commands (like `compile`) but can also send back ANSI color code, or perform history lookup by up-arrow https://eed3si9n.com/december-adventure-2024/#7 => /toot/113615966524767444 More informations about this toot => /profile/111276131949234374 More toots from eed3si9n@mastodon.social ### Written by Eugene Yokota on 2024-12-09 at 08:18 [#]DecemberAdventure day 8 to absorb the `target` location differences in sbt 1.x and 2.x, I've implemented a scripted enhancement to support glob expression (https://github.com/sbt/sbt/pull/7932) this lets us write
$ exists target/**/classes/example/A.class
text/gemini
This content has been proxied by September (ba2dc).