Skip to content

Cache/use source tarballs when safe #2188

@Taffer

Description

@Taffer

problem: huge repos that take a long time to check out (ClickHouse, CUDA and its relatives for example)

request: a way to use source tarballs instead of a checkout

  • whitelist repos that generate tarballs from tags/revisions (not ones that have the tarball provided, thus avoiding the xz taint source); initial whitelist would be GitHub, probably GitLab… which probably covers most packages already, others can be added as necessary
  • if you need to cherry-pick changes, you'll have to get a diff of that change, then use patch to apply it; unless horrors occur, you'll get the same result
  1. if source repo isn't whitelisted: error
  2. if tarball in cache and hash matches, return that
  3. else get the tarball instead of checkout, add to cache
  4. unpack tarball

This would not be automatic; packages that use git-checkout would need to be modified to use this instead.

wins:

  • this will reduce network/cpu usage in exchange for cache storage
  • we can make a central cache used by the build nodes; presumably builds happen more often than source packages get updated

next problem: how to deal with things that do git submodule update --init as the first step of a build

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request
    No fields configured for Optimization.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions