-
Notifications
You must be signed in to change notification settings - Fork 5
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
feat: add a build:wheel
task to Taskfile.yml
#128
Conversation
build:wheel
task to Taskfile.ymlbuild:wheel
task to Taskfile.yml
Please view this entire endeavor with as skeptical of an eye as you can manage. It's rather icky. It's immediate technical debt. But all of the other solutions I came across involved maintaining yet another set of identical project metadata; this one has the (small) benefit of letting you continue to only fight with the tooling you're already fighting with. And it's nominally standards-compliant, and only uses the stdlib, so as long as it works well enough now, it should keep doing the trick into perpetuity. Maybe. |
Would we be able to upload the wheel to pypi tho right? I just need to build the actions to do so, yeah? |
That's supposed to be the idea. But I don't have any projects on PyPI, so I couldn't tell you for sure if they'll behave. |
56dacb0
to
16aa470
Compare
Am I doing something wrong?
|
Oh, here we go. It installs for me on my local machine (and the Linux wheel installed in an Ubuntu container) but I was absolutely winging it wrt. compatibility. Can I see what you get when you run these commands?
|
Stupid question: you're not running I suppose there's no reason NOT to allow it to install on Python 2, but I did draw the line at Python 3, because it's all I have to test with. (and honestly, Python 2.x shouldn't be allowed within 500m of a production environment) |
I also just installed it on a 2012 MacBook Pro running Catalina; no issues spotted. Something funny is definitely going on. That your |
Yeah, was a remote issue. |
I'll retry again, I must be doing something dumb. updateLooks to have been an issue on my end:
|
BRB, rewriting history on this PR... |
At this point, I think it's in suitable shape to throw over the wall to you, @retr0h . With this script, the proposed (manual) Python release process is:
...since the It should be a fairly simple matter to adjust your Github actions to handle whatever parts you don't want to run by hand. |
Adds a `build` sub-target called `build:wheel`, that will assemble Python wheels for all artifacts built under dist/, according to the PEP 491 specification. The script does the absolute bare minimum to generate a package that will allow `pip install` and `pip uninstall` to place the gilt binary under bin/, using packages that should be entirely available via the Python stdlib. i.e., a minimalist Python runtime should be able to do the work, with no venv or anything required. It does not make sdists. It does not upload to PyPI. Tested on Debian 12, Alpine 3.16.2, Mac OS X 10.15, and macOS 14.2.1, all x86_64. ARM builds were not tested for lack of hardware. Drive-by: change the name of the Goreleaser `name_template` so that snapshot builds will make/use version numbers that are compatible with PEP 440. Fixes: Issue retr0h#127
Thanks for busting this out @0xDEC0DE I had avoided implementing, b/c I figured you would introduce a nice solution 🥇 |
Adds a
build
sub-target calledbuild:wheel
, that will assemble Python wheels for all artifacts built underdist/
, according to the PEP 491 specification.The script does the absolute bare minimum to generate a package that will allow
pip install
andpip uninstall
to place the gilt binary underbin/
, using packages that should be entirely available via the Python stdlib. i.e., a minimalist Python runtime should be able to do the work, with no venv or anything required.It does not make sdists.
It does not upload to PyPI.
Tested on Debian 12, Alpine 3.16, Mac OS X 10.15, and macOS 14.2, all x86_64. ARM builds were not tested for lack of hardware.
Drive-by: change the name of the Goreleaser
name_template
so that snapshot builds will make/use version numbers that are compatible with PEP 440.Fixes: Issue #127