-
I recently got this action to succeed as part of a release deployment workflow in dhimmel/pubmedpy@f554a06. However, I had to manually install - name: Install dependencies
run: pip install wheel
- name: Build package
run: python setup.py sdist bdist_wheel Without It seems that many users of this action will need to build a wheel... should |
Beta Was this translation helpful? Give feedback.
Replies: 7 comments
-
That's by design. This action only intends to publish dists (hence the name). You can put the artifact in place any way you want. Not everyone builds dists in the same way and also you often want to put a testing step between building dists and publishing them. And finally, this action intends to follow UNIX philosophy — do one thing and to it well. P.S. If I were to build an Action for building dists, I'd use PEP517 to invoke the build system instead of locking in the implementation detail. |
Beta Was this translation helpful? Give feedback.
-
Thanks @webknjaz for the reply. I don't fully understand your points (the specifics of Python packaging are a bit of a mystery to me). When my workflow ran
Are you saying that |
Beta Was this translation helpful? Give feedback.
-
@dhimmel You're running You used setuptools to build dists. https://www.python.org/dev/peps/pep-0517/ and https://www.python.org/dev/peps/pep-0518/ introduce a better standard of doing this which may or may not call setuptools but that's out of scope now and is completely up to you. |
Beta Was this translation helpful? Give feedback.
-
Okay, so you are saying that dists should be built before this action. Do you have any workflows that I could reference that first build dists for a python package and then pass those dists to |
Beta Was this translation helpful? Give feedback.
-
Well, there's one which is tox-based that uses Basically, your goal is to build dists and put them into |
Beta Was this translation helpful? Give feedback.
-
Yep. This action is specifically scoped to only handling uploads. There's a very clear standard way for doing that and there are no project-specific quirks to take care of with it. :) That's not true for building a package for projects, which can take many forms and have varying requirements. w.r.t. building packages, I think what you're doing right now makes sense, given that you're using setuptools. We are trying to figure out a better, more generally applicable answer for "how do I build a package to upload to PyPI" for end users but given that basically everyone working on Python packaging is volunteering their time, it'll take some time to actually have a better answer. :) |
Beta Was this translation helpful? Give feedback.
-
Got it. Thanks @webknjaz and @pradyunsg for the clarification and examples of resources for building packages.
Definitely! Still super impressed with the PyPI progress like markdown description files, API tokens, and the new web interface. Seems like there is still some more I can learn regarding using the most modern tools for building distributions. |
Beta Was this translation helpful? Give feedback.
Yep. This action is specifically scoped to only handling uploads. There's a very clear standard way for doing that and there are no project-specific quirks to take care of with it. :)
That's not true for building a package for projects, which can take many forms and have varying requirements.
w.r.t. building packages, I think what you're doing right now makes sense, given that you're using setuptools.
We are trying to figure out a better, more generally applicable answer for "how do I build a package to upload to PyPI" for end users but given that basically everyone working on Python packaging is volunteering their …