pkl icon indicating copy to clipboard operation
pkl copied to clipboard

Suggeston: Bazel docs

Open udf2457 opened this issue 1 year ago • 8 comments

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

Thank you

udf2457 avatar Feb 10 '24 20:02 udf2457

How do you want it to look like @udf2457 ?

silicon-ninja avatar Feb 11 '24 13:02 silicon-ninja

@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.:

  • BUILD
  • MODULE.bazel
  • Other project-specific files/folders necessary to demonstrate the functionality (e.g. in your case pkl files located in a sub-folder)

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 ?

udf2457 avatar Feb 11 '24 13:02 udf2457

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.

silicon-ninja avatar Feb 11 '24 18:02 silicon-ninja

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

dieu avatar Feb 26 '24 23:02 dieu

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

silicon-ninja avatar Feb 27 '24 05:02 silicon-ninja

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

dieu avatar Feb 27 '24 05:02 dieu

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

holzensp avatar Apr 23 '24 13:04 holzensp

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:).

udf2457 avatar May 01 '24 17:05 udf2457