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::MavenMetadatum
Packages::ConanFileMetadatum
Packages::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::MavenMetadatum
linked 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::MavenMetadatum
can only be transformed intoPackages::Maven::Metadatum
and not something else such asPackages::Metadatum::Maven
)
Involved components
Packages::ConanFileMetadatum
Packages::ConanMetadatum
Packages::MavenMetadatum
Packages::PypiMetadatum
Optional: Intended side effects
- Future package type metadata will have their own namespace at the model level too.