Snapcraft.internal.repo

What is the role of this package? It seems to handle apt operations, but why it is called repo?

We call the place where apt gets packages from a repository.
repo is short for repository.

1 Like

From the _base.py file in that directory:

    """Base implementation for a platform specific repo handler.
    Generally any new repo handling system would inherit from this and
    implement:
    - get
    - unpack
    - get_package_libraries
    - get_packages_for_source_type
    - refresh_build_packages
    - install_build_packages
    - is_package_installed
    At the end of the `unpack` method `normalize` needs to be called to
    adapt the artifacts downloaded to be generic enough for building a snap."""

and then there’s an Ubuntu repo handler that knows how to get build dependencies from Ubuntu repositories. As I understand it if and when snapcraft grows to be able to use build dependencies on, for example, Suse, this would be where you’d find a Suse repo handler that knew the details.

1 Like

I added this clarification to __init__.py https://github.com/snapcore/snapcraft/pull/2390