chore: migrate from flat to src layout #568
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Summary
Migrate from a flat layout with the Python code stored directly under
pact/
in the root to a src layout with the Python code stored undersrc/pact/
🚨 Breaking ChangesWhile this is a major change to the structure, the packaged executable is the same.
🔥 Motivation
The src layout helps prevent a number of issues during development. A discussion by Python's packaging group of the pros can be found at https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/.
Fundamentally, it prevents
import pact
from finding the localpact/
directory, and ensures that the package is installed correctly (typically as an editable installation).🔨 Test Plan
Regular CI/CD
🔗 Related issues/PRs