[importlinter]
root_package = accountable_record

[importlinter:contract:pipeline-does-not-import-stages]
name = Pipeline must not import stage packages
type = forbidden
source_modules =
    accountable_record.pipeline
forbidden_modules =
    accountable_record.stage_010_identity
    accountable_record.stage_020_contract
    accountable_record.stage_030_sources
    accountable_record.stage_040_elements
    accountable_record.stage_050_catalog
    accountable_record.stage_060_exports
    accountable_record.stage_070_resolution
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-010-does-not-import-later-stages]
name = Stage 010 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_010_identity
forbidden_modules =
    accountable_record.stage_020_contract
    accountable_record.stage_030_sources
    accountable_record.stage_040_elements
    accountable_record.stage_050_catalog
    accountable_record.stage_060_exports
    accountable_record.stage_070_resolution
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-020-does-not-import-later-stages]
name = Stage 020 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_020_contract
forbidden_modules =
    accountable_record.stage_030_sources
    accountable_record.stage_040_elements
    accountable_record.stage_050_catalog
    accountable_record.stage_060_exports
    accountable_record.stage_070_resolution
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-030-does-not-import-later-stages]
name = Stage 030 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_030_sources
forbidden_modules =
    accountable_record.stage_040_elements
    accountable_record.stage_050_catalog
    accountable_record.stage_060_exports
    accountable_record.stage_070_resolution
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-040-does-not-import-later-stages]
name = Stage 040 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_040_elements
forbidden_modules =
    accountable_record.stage_050_catalog
    accountable_record.stage_060_exports
    accountable_record.stage_070_resolution
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-050-does-not-import-later-stages]
name = Stage 050 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_050_catalog
forbidden_modules =
    accountable_record.stage_060_exports
    accountable_record.stage_070_resolution
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-060-does-not-import-later-stages]
name = Stage 060 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_060_exports
forbidden_modules =
    accountable_record.stage_070_resolution
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-070-does-not-import-later-stages]
name = Stage 070 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_070_resolution
forbidden_modules =
    accountable_record.stage_080_reports
    accountable_record.stage_090_verify

[importlinter:contract:stage-080-does-not-import-later-stages]
name = Stage 080 must not import later stages
type = forbidden
source_modules =
    accountable_record.stage_080_reports
forbidden_modules =
    accountable_record.stage_090_verify
