Could anyone recommend some next steps for me for ...
# plugins
w
Could anyone recommend some next steps for me for making this PyOx plugin more usable for the community? Once I can import a PyOx configuration file, instead of using a coded template, it'll be more or less usable for my purposes. I haven't designed a target api or subsystem for it, as that would end up highly specific for my use cases and not much value to everyone else. I've got some tickets open in this repo that I'll be closing out as well, but in general - this has reached proof of concept level for me and I'll just be running it over some of my non-trivial projects for a while. https://github.com/sureshjoshi/pants-pyoxidizer-plugin
w
we’d love to accept it as a patch upstream: that will save you the maintenance burden, and we would (selfishly!) love to use it for pants itself
💯 1
the plugin API being experimental can mean that it is challenging to maintain plugins outside the repo that will work with multiple versions of pants: see https://www.pantsbuild.org/docs/plugins-overview#publishing-a-plugin
w
Sure, I can submit a patch next week or so when I get some more time to work on the outstanding tasks and maybe roll in some unit testing.
❤️ 3
🙌 1
Oh, forgot to ask - what branch should I use, and where should I place the files? I'm not sure where experimental targets would land - I see where the experimental linters are, but there doesn't seem to be a similar target location
h
All the actual code would go into something like
pants/backend/python/pyoxidizer
. The only thing that goes under
pants/backend/experimental/python/pyoxidizer
is a
register.py
file that exports all the targets/rules. We use that architecture so that we don't have lots of noise in Git when stabilizing the backend to no longer be experimental - all that will change is the
register.py
This means users will activate
pants.backend.experimental.python.pyoxidizer
Within that
pyoxider/
folder, convention would probably be to have a file called
target_types.py
, possibly
subsystem.py
, and then
rules.py
w
Thanks! That's kinda what I figured, but I wasn't sure about that final pyoxidizer folder location