Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] Golang Tier 2 #1572

Open
doron-cohen opened this issue Jul 20, 2024 · 9 comments
Open

[feature] Golang Tier 2 #1572

doron-cohen opened this issue Jul 20, 2024 · 9 comments
Labels
enhancement New feature or request

Comments

@doron-cohen
Copy link

Is your feature request related to a problem? Please describe.

I wasn't sure if to open this here or in the tools repo. I would love implicit dependency detection on Golang code. I've built a similar tool in Go for that but then I found about moon. I think this will make moon one of the best build tools for Golang monorepos.

@doron-cohen doron-cohen added the enhancement New feature or request label Jul 20, 2024
@milesj
Copy link
Collaborator

milesj commented Jul 21, 2024

It's definitely on the roadmap, but newer language developer is sort of paused right now till we move entirely to WASM plugins.

I'm not a Go expert, so I could definitely use some guidance on best practices for using Go in a monorepo! Or just in general.

@doron-cohen
Copy link
Author

BTW, any way I could help expedite this feature? I don't code in Rust (although I would love to) but could help with writing it in Go and compiling to WASM (if this is a viable way of integration).

@milesj
Copy link
Collaborator

milesj commented Aug 4, 2024

The WASM plugins is taking longer than expected. I think it's best too loosen the restriction of no new language development in Rust. With the said, there is some docs if you want to give it a shot.

https://github.com/moonrepo/moon/blob/master/scripts/new-language.md (this is probably outdated a bit)

@doron-cohen
Copy link
Author

Hey @milesj it took me longer then expected to get to try that and I am pretty new to Rust. I did see that WASM plugins are more stable now aren't they?

@milesj
Copy link
Collaborator

milesj commented Sep 19, 2024

The plugin system itself is in place, but the toolchain part of the plugin system has not been finished yet.

@doron-cohen
Copy link
Author

Thanks. Seeking your advice here. I would love to contribute better Golang support but will need to know if there is a point in developing it in the existing non WASM way. It will probably take me a month or so with current obligations.

Is it worth it? Or should I wait?

@milesj
Copy link
Collaborator

milesj commented Sep 23, 2024

@harlequin
Copy link
Contributor

@milesj: I have implemented with the mentioned tutorial Python as a Tier3 language (not completed yet)
Anyway you have mentioned that the toolchain implementation will also be done inside the proto tools plugin area.

Do you think it's worth to bring the Python Tier 3 still in the legacy, or is the tools repository the future and I can start implementing the Tier 3 support?

@milesj
Copy link
Collaborator

milesj commented Sep 26, 2024

@harlequin A few things:

Python tier 3 is technically partially completed already for proto (via the tools repo): https://github.com/moonrepo/tools/tree/master/tools/python This can be used in the same way that node/npm/etc is currently built in moon. The only issue is that it is currently powered by prebuilts, which doesn't support all python versions.

The new WASM based toolchain APIs are not completed yet, but will be very similar to the current moon legacy code. Once the APIs are ready, porting them over should be relatively simple, so any work done on legacy won't be entirely throw away work. I'm hoping to have these APIs done by the end of the year.

All in all, putting stuff in legacy for now is fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Development

No branches or pull requests

3 participants