refactor!: LocalProject (a subclass of ProjectManager for projects on the local file-system) now delegates to sub-managers for various tasks, such as .contracts as a dict-like ContractManager, .sources as a dict-like SourceManager, .deployments, etc, simulating objects from the ethpm_types.PackageManifest with higher up functionalities related to local file-system projects.
We've altered some project tools that will help you be able to organise and run things faster:
- ProjectManager is a base class containing factory-like behavior for creating ProjectManager subclasses, such as LocalProject or Project.
- Project is a base that only needs a PackageManifest to work (think ape.Project.from_manifest() using package resources).
- LocalProject contains various features for local-projects but for the most part is interoperable with its base Project, as the manifest is the root of all the functionality.