Create a package_metadata table to support package tags and additional attributes
Summary
Currently, packages are stored in the packages_packages
table. We do not have a column to handle attributes like dist_tags for NPM(npm install package_name stable
) or other packages that support tags or additional arguments other than version.
Improvements
Since a version can have multiple tags, we should consider adding a PackageMetadata model so the attributes can be assigned to other packages.
Taking NPM as an example, a package can have many dist_tags, class_name: PackageMetaTag, foreign_key: :'tag_id'
- Resolve packages by specifying tags instead of only versions
- We can store other metadata for other packages, which will also give us access to additional dependencies
Risks
Involved components
Packages