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

Simplify source root stripping. #10543

Merged
merged 4 commits into from
Aug 4, 2020
Merged

Commits on Aug 4, 2020

  1. Simplify source root stripping.

    Previously we had two parallel rule paths for stripped and unstripped source files.
    
    This added a lot of complication: various types could contain either stripped or
    unstripped sources, and there wasn't always an easy way to know which. This also
    required a lot of near-duplication of code, to handle each of the two paths.
    
    This change simplifies the types and rules, as follows:
    
    - Unstripped generic sources are represented by the SourceFiles type.
    - Stripped generic sources are represented by the StrippedSourceFiles type.
    - Unstripped Python sources are represented by the PythonSourceFiles type,
      which wraps a SourceFiles.
    - Stripped Python sources are represented by the StrippedPythonSourceFiles type,
      which wraps a StrippedSourceFiles.
    
    The only way to get a StrippedSourceFiles is to request via a SourceFiles subject.
    The only way to get a StrippedPythonSourceFiles is to request it via a PythonSourceFiles subject.
    
    The SourceFiles type carries just enough extra information to allow source-root stripping
    even in a merged snapshot, where the originating target information is lost.
    
    As a result, other rules operate primarily on unstripped sources, and strip them just as needed.
    For example, finding ancestor files operates only on unstripped sources, and no longer needs
    to implement logic to handle the stripped case.
    
    [ci skip-rust]
    
    [ci skip-build-wheels]
    benjyw committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    9ca6cc0 View commit details
    Browse the repository at this point in the history
  2. Fix test

    # Rust tests and lints will be skipped. Delete if not intended.
    [ci skip-rust]
    
    # Building wheels and fs_util will be skipped. Delete if not intended.
    [ci skip-build-wheels]
    benjyw committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    91d9388 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'master' into stripping_refactor

    [ci skip-rust]
    
    [ci skip-build-wheels]
    benjyw committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    15258ee View commit details
    Browse the repository at this point in the history
  4. Address code review comments.

    And fix test.
    
    [ci skip-rust]
    
    [ci skip-build-wheels]
    benjyw committed Aug 4, 2020
    Configuration menu
    Copy the full SHA
    7a400dd View commit details
    Browse the repository at this point in the history