Skip to content
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

Introduce LibraryInstallationGoalState #743

Merged
merged 6 commits into from
May 20, 2024

Commits on May 19, 2024

  1. Introduce installation goal state

    The existing LibraryInstallationState abstraction is not flexible about mapping files to their source on an individual basis.  It presumes that all files installed by a library retain the same folder hierarchy as the library they originate from.
    
    In order to allow more flexibility, this change adds a new abstraction to wrap all installed files to their individual source files.  This eliminates the prior assumption, allowing for flexibility to install files to a different folder hierarchy than their originating library structure.
    
    This flexibility also allows an important new concept: each destination file must be unique (to avoid collisions), but the sources are not so constrained.  A single source file may be installed to multiple destinations; by creating a mapping of destination-to-source, we can easily allow this.
    
    This change prepares for a new feature to allow more granular mappings of files within a library.
    jimmylewis committed May 19, 2024
    Configuration menu
    Copy the full SHA
    eb732f0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4b79145 View commit details
    Browse the repository at this point in the history
  3. Change BaseProvider to use a public API for getting goal state.

    Also updated Manifest to use the goal state for the uninstall scenario.
    jimmylewis committed May 19, 2024
    Configuration menu
    Copy the full SHA
    b845a91 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c0de1fc View commit details
    Browse the repository at this point in the history
  5. Expose logic for finding local cache path

    Needed so that FileSystemProvider can override the default behavior, since it doesn't use the same cache logic as other providers.
    jimmylewis committed May 19, 2024
    Configuration menu
    Copy the full SHA
    4e665b3 View commit details
    Browse the repository at this point in the history
  6. make goalstate immutable

    jimmylewis committed May 19, 2024
    Configuration menu
    Copy the full SHA
    d53986e View commit details
    Browse the repository at this point in the history