apple / pkl

A configuration as code language with rich validation and tooling.
https://pkl-lang.org
Apache License 2.0
10.36k stars 280 forks source link

Suggeston: Bazel docs #108

Open udf2457 opened 9 months ago

udf2457 commented 9 months ago

Please consider adding documentation for interop with Bazel, in particular bzlmod and gazelle.

Thank you

silicon-ninja commented 9 months ago

How do you want it to look like @udf2457 ?

udf2457 commented 9 months ago

@silicon-ninja The way I've typically seen it done at other projects is they create an MVP skeleton example repo which has the bare minimum, i.e.:

The BUILD would then show the minimum configuration for integration with gazelle (becasue most real-world projects use gazelle). The bzlmod integration itself is inherent from using MODULE.bazel instead of the legacy WORKSPACE.bazel.

So gazelle is used to automatically locate project-specific files (e.g. pkl in your case) and then automatically create a local BUILD file in its immediate directory. Its very popular with e.g. go monorepos, but also other applications (e.g. building gRPC stubs from protobuf files).

Hope this helps clarify ?

silicon-ninja commented 9 months ago

Well, @udf2457. I've used gazelle before it's great but not yet perfect for anything except rules_go in production as we have a monorepo. I like your idea of using gazelle for BUILD file generation. Did you have a look at gazelle directives. This would eliminate using gazelle directives completely if bazel team were to implement this. I think right now team at apple thought of it more like your typical config files that are used for the systems (primarily backend). To validate and use it with ease. Thanks.

dieu commented 8 months ago

@silicon-ninja, does PKL have integration with Bazel?

silicon-ninja commented 8 months ago

Not yet, I am trying to write the rules. Maybe this week.

dieu commented 8 months ago

@silicon-ninja Nice, looking forward to trying it out.

holzensp commented 6 months ago

We have now released initial Bazel integration, through rules_pkl. I'm not sure what this Issue asks for specifically (Bazel docs before integration). We do not yet have support for gazelle, because it (and Bazel) doesn't like how Pkl does multi-file output.

The generated Bazel docs don't yet integrate with our website build automation (because they render markdown instead of asciidoc). This is on my TODO list. When this is done, the documentation will be part of https://pkl-lang.org

udf2457 commented 6 months ago

I'm not sure what this Issue asks for specifically (Bazel docs before integration)

I thought Apple-peeps were supposed to be geniuses and capable of time travel (docs before integration) @holzensp :stuck_out_tongue:

In all honesty, the serious answer is you can assume "this issue asks for" a feature request. I will openly admit I could have worded it better / posted it in a better place / whatever.

Nonetheless, thank you for the efforts in getting rules_pkl out, I look forward to trying it out, and of course I will keep my fingers crossed for eventual gazelle integration (followed by docs :wink:).