Allow parse functions to consider multiple sources of input

Why are we doing this work

To support some of the package manager dependency graphs, we'll need to consider more than one source of input. For example, in order to generate the dependency graph for cargo projects, we'll need to consider both the Cargo.toml and Cargo.lock files to identify the direct dependencies and dependency groups ("features" in Rust terms).

Relevant links

Non-functional requirements

  • Documentation: We'll need to add a new section or update the section on dependency detection.
  • Feature flag:
  • Performance:
  • Testing:

Implementation plan

  • Update the signature of ParseFunc to take a requirements file along with a scannable file
  • Update all the parsers to take this extra argument
  • Update tests for the scanner to ensure that it passes both files to parsers

Verification steps

n/a

Edited by Igor Frenkel