-
Notifications
You must be signed in to change notification settings - Fork 305
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
Are twine maintainers OK to have a twine build
command?
#593
Comments
This question interacts with the discussion in #160, but also pypa/pip#6041 and pypa/packaging-problems#219. The short answer is "no": |
So many discussions still open. I just read through pypa/pip#6041, which led me back to your original reference. Please don't take my closure of this issue as authoritative or prejudiced. I encourage your work to try to find a solution to this user-facing workflow issue. |
Right, but for building that concensus, I think it'd be useful to know if the maintainers of twine even want to be responsible for supporting/maintaining this functionality -- which is the question I'm asking here. |
FWIW, I am aware that the question is intertwined with many other discussions happening in many locations -- I am actively involved in nearly all those venues of discussion and initiated some of them. #160 also links back to the d.p.o discussion I linked to above. Anyway, I think what I'm asking here is much more scoped and independent of that. :)
I'm gonna move ahead assuming that all @pypa/twine-maintainers agree with this, so please holler if you disagree. I'm not gonna reopen this issue even though I have the permissions to do so, but other folks are welcome to do so if they disagree with this, and would like to discuss the specifics (of the question I've asked in this issue), in further detail. |
I do believe I've answered that question; this project will enthusiastically support that need if that's the recommended approach. I welcome others on the project to chime in before closing. |
For years I've had this on the horizon in my mind for twine. I don't have time to commit to writing it though or keeping up with all of the latest standards and such so I never volunteered it because twine's resources are already stretched thin |
That is to say: As a user of twine, I've wanted a twine build for forever, I just haven't needed it enough to do it |
In my experience, users tend to think of twine as "a tool for package publishers" and pip as "a tool for package installers". If the goal is to replace It seems to me that a library like One other thing: I'm hesitant to call this command
|
puts on bikeshedding hat with an evil smile @di How about |
I like |
I think that's more or less what I proposed. Users could just run Also, note that not all built distributions contain binaries, so |
Joking aside, everyone who has chimed in till now has basically agreed with what @jaraco said earlier -- that twine will be happy to host this functionality. That's nice, and I think I can move on to check that the broader community is cool with this happening. |
Not a twine maintainer but having
to allow |
@xavfernandez I wonder if this would be a good opportunity to discover what parts of pip functionality can/should be broken out into a new library for sharing between the two. It seems like you're arguing against this living in Adding my particular colour choice to the bike-shed, I think I personally also dislike (although that might be a more mild word than I actually feel) having |
(not "don't touch this area, MINE!" but more like, "hey, so uh... I flagged this too.") |
I would not phrase it like that. I'm certainly in favour of moving some pip internals into libraries. I was just pointing out that, to implement PEP-517 you need a full fledged installer. |
Oh certainly it would almost definitely be easier. It'd probably be a better UX too since someone might download a project and want to build it without ever installing twine or intending to reupload the built package elsewhere. That said, I can see the value in having something external to pip even if it's far less than ideal |
Thanks for reminding me @pradyunsg :D |
Also worth noting, we use entry-points for our subcommands. We could (if it were deemed desirable) distribute this as a separate package that registers itself as |
For what it’s worth, I am confused by the request. (I haven’t re-read the whole platypus thread. Also we used to call it the packaging pig, friend of the testing goat! 🙂) I thought twine’s point was: better tool than Now twine should do the build? |
On a less snarky note, I for one haven't had enough time to start messing with the other tools that do build artefacts. As such, my process is still |
Everything above said, we'll also want to build incremental builds with correctness. We want to avoid some of the unintended consequences of pypa/pip#7882 while also providing a fast and intuitive experience. That fundamentally changes this from "How do we do builds?" to "How do we detect when we can do incremental builds* versus when do we have to copy the entire source to a temporary directory like pip used to?" *Where 'incremental builds' and doing those well is left as an exercise to the implementer ;) |
twine build
command?twine build
command?
https://discuss.python.org/t/building-distributions-and-drawing-the-platypus/2062/67?u=pradyunsg I am no longer investing effort into this directly, and noting the latest developments in this space for completeness. It seems to me that some of the folks who were previously opposed to having an independent tool for this task, are now in favor of doing so. |
Closing since https://github.com/pypa/build exists now. |
Hey @pypa/twine-team!
Are y'all fine with twine growing a
twine build
command in the future? Do twine maintainers feel liketwine build
would be out of scope for the tool?The relevant context is in the first post of the discussion that I've linked to above. That discussion quickly diverged from the topic of "how to expose build logic" to "what should a unified tool for Python packaging/development workflow look like", so most replies there are not relevant to the question I'm asking here.
If we'd be doing this, it'd be based on a shared implementation of the underlying build and install logic, that would be the result of refactoring "out" pip's existing build and install logic. This is something that I plan to be working on later this year, and I'm trying to figure out the direction that work should be headed.
Before someone asks, yes, I checked with my fellow pip maintainers -- there's a long on-going discussion within that group privately, about what's "in scope" for pip. It seems to me that we'd be concluding that a
pip build
would be out of scope, which is why I'm preempting that conclusion and checking here.The text was updated successfully, but these errors were encountered: