-
Notifications
You must be signed in to change notification settings - Fork 530
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
External Python dependencies #1447
Comments
<background-rant> I have some reservations still, but they're minor:
If we go down this route, I suspect it might be a perfect opportunity to do large scale rewrites. As a lot of what archinstall both suffers from, but does ok and has a lot of helper functions for - is disk management. Any other issues we can probably manage, either with build hooks or something else. So yea, tl;dr I'm in favor these days with careful consideration on the introduction :) |
I do agree on that only libraries that give a lot of benefit should be included.
I think it's good to know that the library is still maintained, and probably should be in case of
Here's where my knowledge about packaging is quite blurry so any explanation would be appreciated :) Most python packages will be published in the pypi repository, how is that impacting things? I was under the impression that when the ISO is build it would pull the code from github and then just run the
Happy to do some analysis on this one to see the differences when including dependencies
Essentially this means that we're implementing the library functionality (at the least the one relevant) ourselves, which can maybe even extracted from the library if shit hits the fan :D |
I agree, this is a reasonable effort from all parties.
I am sure that I'm probably the wrong person to give a technical explanation of this as I've mostly made mistakes trying to package stuff in AUR. I was young and naive. But from my mistakes the things that I've picked up is: There's Line 14 in a335f10
The packages won't actually be contained within the package with this approach however. You could surely solve the problem by running pip install --target=${target} during packaging making sure that the libraries gets installed to the appropriate "overlay" structure that the finished Arch package contains and then later unwrapped onto the user system during installation.
However, that would cause issues when users later try to do Also, another benefit would be automatic updates when doing system upgrades. Again, I'm a noob on this area and I'm sure @grazzolini or @dvzrv for instance (or really anyone packaging stuff) could explain way better, as I'm currently learning a lot from them myself.
I'd bet my cat, who I hold very dearly, that it's going to be a drop in the ocean 99% of the time. As long as we don't start pulling in TensorFlow stuff that is 500+MB we should be fine.
We could also create wrapper functions that we call, that way we can just change the central places connecting to the libraries. |
@Torxed I had a look at this, and I wonder if it's actually simpler than doing things in the PKGBUILD file by simply adding it in the
this worked just fine for me when doing a As I understood the So looking at the PKGBUILD there are two sections
which indicate that the wheel is build and then installed. The python package dependencies if specified in the setup.cfg will then be included in the wheel. So we might be good with simply adding the dependencies to the |
That will work but assume that someone does I haven't tested it myself so It's just a theory :) |
@Torxed sorry for the late response, live got in the way :) If I run I've raised a first PR to introduce the external dependency support, it can be used as a starting point and to see if this would be right way to do it #1478 :) |
I've raised the question with a packager to see how easy it would be to adopt aur/python-pyparted into extra or something similar. It would allow us to do #1478 but also introduce it in the |
I would consider this as resolved as we're using dependencies now |
I'm putting this here as a discussion point and/or exploration if it's possible at all.
Would there be a way for us to use external dependencies?
I don't know how the current release loop works or what the blockers/challenges are to accomplish this.
I'm not keen on pulling in heaps of external dependencies but things like
pyparted
might be extremely useful and would probably prevent a lot of bugs from reinventing the wheel :)The text was updated successfully, but these errors were encountered: