Skip to content

Resolve circular dependencies #473

@swamp-agr

Description

@swamp-agr

As it was initially discussed in #469, there is circular dependencies between fay and fay-base:

  • fay-base depends on fay.
  • fay-base contains modules with same names as in base (Prelude, Data.Maybe and so on). In order to prevent ambiguous modules names error, it was not exposed by default.
  • fay-tests executable which is hidden by flag test and disabled by default from fay package depends on fay-base.

Thus, fay-tests component could not be converted easily to enabled test-suite.

During discussion in #469 there were 2 proposals opened in order to mitigate circular dependencies:

  1. Move fay-base into fay package as a (separate) library. (multi-component packages are enabled only since cabal 3.0).
  2. Split tests into compiler-related and base-related and convert them to corresponding test-suites.

I would prefer to keep two separate packages and relocate tests accordingly to their purpose (compiler or base library).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions