So, what languages are ready or WIP? - python (of ...
# general
p
So, what languages are ready or WIP? ā€¢ python (of course) ā€¢ shell (at least for linting) ā€¢ golang (wip) ā€¢ java (wip) What else? Is anyone looking at JavaScript?
b
p
oh cool. I didn't realize that page listed the status of the languages. nice.
b
We'd very much like to add JavaScript/TypeScript next. The community survey indicated that's high on the community's list. The challenges include needing to spec out what that looks like in the context of Pants and identifying one or more companies to partner with us on adding JS/TS support. The current work on adding Go, Java, and Scala is contributing a bunch of changes that will make it even easier to add more languages in the future. But it'll still be a non-trivial undertaking, of course.
šŸ‘† 2
h
Although still a lot less non-trivial (aka "more trivial"?) than it would be in other systems. The Pants v2 engine continues to amaze me every time I have to do something with it.
šŸ˜Ž 2
b
The language support page was created just a couple weeks ago, so no surprise that you didn't know if it despite your considerable familiarity with the docs.
p
Yeah. JavaScript would be nice for the StackStorm community because there are very few JavaScript devs - using the same tooling for both might simplify maintenance for all the rest of us non-js devs. šŸ˜› anywho. Just keeping my eyes peeled.
h
That is exactly the kind of use-case we're imagining. If you're already a pure JS repo, there is a ton of tooling for you. But if you have JS in a polyglot repo...
āž• 3
b
This is some of the same reasons for adding Go support. Go has fantastic build tooling. But being able to use one consistent UI across languages in a polyglot codebase, with the benefits of caching, adds important value to an already strong set of native tooling.
āž• 1
Haha Benjy and I are apparently sharing one brain today.
h
Go should be alpha-level (beta?) quality in Pants 2.8. Tom got
./pants test
wired up last week and has been chipping away at
./pants check
integration, while I'm trying to get CLI specs to work better with it being directory-based and relying heavily on "target generation" we think it won't be much new feature development, but edge cases like "it won't compile because of some weird thing like how Go handles capital letters in package names!" (an actual issue hah)
b
Fun times!
p
I'm very new to go, so I stumbled over the significance of case in go just last week šŸ˜›
b
Painful?
p
learning something new is always somewhat painful, but the joy of understanding overshadows that imo šŸ˜„
šŸ’› 1
l
@busy-vase-39202> is there some written reference on the effort to scope Javascript support? I remember a message from you about it, but I can't find it anymore.
b
@worried-painter-31382 has made significant progress on that, and I'm sure would appreciate having more feedback on the open PRs.
l
I see šŸ‘ @worried-painter-31382> If there is a roadmap somewhere or a description of the welcome contributions, please forward it to me. At Tweag we are looking to help out on this subject.
p
šŸ‘ 1
w
I dont think there is a roadmap? https://github.com/pantsbuild/pants/discussions/17357 is the gh discussion around my efforts, https://github.com/pantsbuild/pants/issues?q=is%3Aissue+label%3A%22backend%3A+javascript%22 is all I know of the written plans. #15489, #16962 and #16960 will close with the pr jacob linked, I have a PR ready for #16959 but it is blocked on the same PR. I intend to tackle test (there is no issue yet) after #16959, and then generalize package managers (no issue for that either), but I'm waiting on maintainers moving things along, I think. I also humbly ask to not be considered a coordinator for these efforts, I've only worked in software 3 years and have 0 project/people coordination skills, and in this codebase I've only written like 40 merged lines of code šŸ™ƒ
šŸ‘ 1
but feedback and collabs are of course awesome
l
Thanks for the inputs, that will help bootstrap finding someone at Tweag that can help. We have a frontend team on one hand and a Bazel team on the other hand, it's been a bit difficult to find someone to cross over the two teams šŸ˜… but we are trying.
b
+1 re feedback and collaboration. @lemon-oxygen-72498 definitely don't underestimate how much the team appreciates quality feedback, especially on experimental or alpha features. It's somewhat unglamorous, and often underappreciated elsewhere in OSS. But for us, a history of good feedback is often cited as a key reason for electing someone to join Pants Team. Abundant examples of this are in the pants-develop mailing list, where we cite the major factors that were considered in a person's nomination. Because so few of the maintainers have substantial JS ecosystem background to lean on, getting more eyes on those PRs is particularly valuable for ensuring a broadly useful outcome.
āž• 1
l
Yep agreed and noted @busy-vase-39202 šŸ‘ We had some internal discussions at Tweag and how we can help out. Outcome is: as a first step to help on Javscript support, we aim to come up with an example Javascript/Typescript project built with webpack, and see how Pants could be used, by calling webpack under the hood. @worried-painter-31382> I've forwarded your links above. I'm sure we will be able to understand better your contributions soon, as we realize you are laying out things we will need too šŸ™‚
šŸ‘ 1
Oh and if there is an example JS project that you will to see tackled/scoped, we welcome it. It will help us drive our work.
w
The current idea is to try and fit all of: 1. Front-end shops via
node_build_script
(this is where webpack falls) 2. Full-stack shops by integrating with other langs, example here is pythons Flask with a fronted like 1. 3. Full-stack shops with backend written in js (e.g express.js). My current thinking is that the docker backend will have to power the app packaging here.
All of the above should work with any package manager, eventually.