Organize package models by package type
Summary
- Package models are all living under the
Packages::namespace - This leads to a mix of models that deals with different package types to be at the same level. Examples:
Packages::MavenMetadatumPackages::ConanFileMetadatumPackages::PypiMetadatum
-> We should apply the same strategy as we have in the package services: each type has its own and dedicated namespace.
Improvements
- Improve code organization.
Packages::will not be a bag of everything mashed together. It will contain common/shared classes among all package types - Improve code readability
Risks
- Models are linked to database tables (Example:
Packages::MavenMetadatumlinked topackages_maven_metadata). We want to avoid a table renaming so we must use the exact same terms and in the same order (Example:Packages::MavenMetadatumcan only be transformed intoPackages::Maven::Metadatumand not something else such asPackages::Metadatum::Maven)
Involved components
Packages::ConanFileMetadatumPackages::ConanMetadatumPackages::MavenMetadatumPackages::PypiMetadatum
Optional: Intended side effects
- Future package type metadata will have their own namespace at the model level too.