-
Notifications
You must be signed in to change notification settings - Fork 12
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
provide builtins for downloading GitHub release tarballs #138
Comments
So I have been playing around with things and I think there are two possible implementations:
url, version = resolve_dist(
ctx, req, sdist_server_url, include_sdists=True, include_wheels=False
)
url_resolver = overrides.find_override_method(req.name, "get_url_for_download")
if url_resolver:
url = url_resolver(req) The advantage of this approach is that we don't have to figure out from where we want to get the github URL for that package. However, we will still have to hand-code an ovveride for |
What if we extended the settings schema to support a list of packages to download from GitHub? We could map a project canonical name to the GitHub org and repo where releases can be found. Then our logic for finding the Would we need information other than the GitHub project URL? |
On the other hand, if they're downloading sources from GitHub they are almost certainly going to have to provide an override function to build from that tarball. So, maybe it's sufficient to write a reusable function to do the download easily? That would be something they can call from |
Yes this could work, I think we just need the GitHub project URL. We can also make it generic and allow mapping a project to whatever URL they want to download from |
OK. Give some thought to what I said about needing an override for the build step before you invest in extending the settings. If you think it makes sense to use the settings, we can think about how to take URL templates so we can do things like plug in the version number. |
Looking at our downstream plugins which override |
Look at the pyarrow plugin more closely. But yeah, it may be useful to have some core functionality for at least downloading and possibly even organizing the unpacked source. |
Looking at the vllm plugin, looks like there is a need for some sort of a version mapping as well |
Downstream we have several dependencies we're building from release tarballs on GitHub, instead of sdists. It would be convenient if there was an easy way to express that via first-class features of fromager, instead of having to hand-code each override.
overrides.list_all() will need to be updated if we extend the settings schema.
The text was updated successfully, but these errors were encountered: