diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9d1d9cb9..0c69f806 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,9 @@ Release notes ### Version 5.3.0-dev +- Rename ProductDependency is_resolved to is_pinned. + https://github.com/aboutcode-org/dejacode/issues/189 + ### Version 5.2.1 - Fix the models documentation navigation. diff --git a/component_catalog/tests/test_importers.py b/component_catalog/tests/test_importers.py index 515a5271..fefb5412 100644 --- a/component_catalog/tests/test_importers.py +++ b/component_catalog/tests/test_importers.py @@ -1259,7 +1259,7 @@ def test_package_import_prepare_package(self): "scope": "compile", "is_runtime": True, "is_optional": False, - "is_resolved": False, + "is_pinned": False, } ], "contains_source_code": None, @@ -1294,7 +1294,7 @@ def test_package_import_prepare_package(self): "dependencies": '[\n {\n "purl": "pkg:maven/org.slf4j/slf4j-api",' '\n "requirement": null,\n "scope": "compile",' '\n "is_runtime": true,\n "is_optional": false,' - '\n "is_resolved": false\n }\n]', + '\n "is_pinned": false\n }\n]', "repository_homepage_url": ( "https://repo1.maven.org/maven2/org/apache/activemq/activemq-camel/5.11.0/" ), diff --git a/component_catalog/tests/testfiles/import/package_from_scancode.json b/component_catalog/tests/testfiles/import/package_from_scancode.json index fc4af405..03e1a027 100644 --- a/component_catalog/tests/testfiles/import/package_from_scancode.json +++ b/component_catalog/tests/testfiles/import/package_from_scancode.json @@ -154,7 +154,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/appraisal", @@ -162,7 +162,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/rspec", @@ -170,7 +170,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/rake", @@ -178,7 +178,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/gem-release", @@ -186,7 +186,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false } ], "contains_source_code": null, @@ -246,7 +246,7 @@ "scope": "devDependencies", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false } ], "contains_source_code": null, @@ -388,7 +388,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/appraisal", @@ -396,7 +396,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/rspec", @@ -404,7 +404,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/rake", @@ -412,7 +412,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/gem-release", @@ -420,7 +420,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false } ], "contains_source_code": null, @@ -691,7 +691,7 @@ "scope": "devDependencies", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false } ], "contains_source_code": null, diff --git a/component_catalog/tests/testfiles/import/package_from_scancode_no_summary.json b/component_catalog/tests/testfiles/import/package_from_scancode_no_summary.json index d1630bf7..4f2e1b46 100644 --- a/component_catalog/tests/testfiles/import/package_from_scancode_no_summary.json +++ b/component_catalog/tests/testfiles/import/package_from_scancode_no_summary.json @@ -102,7 +102,7 @@ "scope": "runtime", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/appraisal", @@ -110,7 +110,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/rspec", @@ -118,7 +118,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/rake", @@ -126,7 +126,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false }, { "purl": "pkg:gem/gem-release", @@ -134,7 +134,7 @@ "scope": "development", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false } ], "contains_source_code": null, @@ -454,7 +454,7 @@ "scope": "devDependencies", "is_runtime": false, "is_optional": true, - "is_resolved": false + "is_pinned": false } ], "contains_source_code": null, diff --git a/dejacode/static/css/dejacode_bootstrap.css b/dejacode/static/css/dejacode_bootstrap.css index 957dcdd4..81ef895f 100644 --- a/dejacode/static/css/dejacode_bootstrap.css +++ b/dejacode/static/css/dejacode_bootstrap.css @@ -403,7 +403,7 @@ table.vulnerabilities-table .column-summary { #tab_dependencies .column-column-is_optional { width: 100px; } -#tab_dependencies .column-column-is_resolved { +#tab_dependencies .column-column-is_pinned { width: 88px; } diff --git a/product_portfolio/admin.py b/product_portfolio/admin.py index 15be02cb..d2af4723 100644 --- a/product_portfolio/admin.py +++ b/product_portfolio/admin.py @@ -807,7 +807,7 @@ class ProductDependencyAdmin(ProductRelatedAdminMixin): "datasource_id", "is_runtime", "is_optional", - "is_resolved", + "is_pinned", "is_direct", "get_dataspace", ) @@ -822,7 +822,7 @@ class ProductDependencyAdmin(ProductRelatedAdminMixin): ("product", RelatedLookupListFilter), "is_runtime", "is_optional", - "is_resolved", + "is_pinned", "is_direct", ("for_package", RelatedLookupListFilter), ("resolved_to_package", RelatedLookupListFilter), diff --git a/product_portfolio/api.py b/product_portfolio/api.py index 6d1f9d50..a8482fee 100644 --- a/product_portfolio/api.py +++ b/product_portfolio/api.py @@ -801,7 +801,7 @@ class Meta: "datasource_id", "is_runtime", "is_optional", - "is_resolved", + "is_pinned", "is_direct", "last_modified_date", ) @@ -841,7 +841,7 @@ class Meta: "datasource_id", "is_runtime", "is_optional", - "is_resolved", + "is_pinned", "is_direct", "created_date", "last_modified_date", diff --git a/product_portfolio/filters.py b/product_portfolio/filters.py index 4cfe81de..e0fc5127 100644 --- a/product_portfolio/filters.py +++ b/product_portfolio/filters.py @@ -399,7 +399,7 @@ class DependencyFilterSet(DataspacedFilterSet): is_optional = BooleanChoiceFilter( widget=DropDownWidget(anchor="#dependencies"), ) - is_resolved = BooleanChoiceFilter( + is_pinned = BooleanChoiceFilter( widget=DropDownWidget(anchor="#dependencies"), ) is_direct = BooleanChoiceFilter( @@ -417,6 +417,6 @@ class Meta: "datasource_id", "is_runtime", "is_optional", - "is_resolved", + "is_pinned", "is_direct", ] diff --git a/product_portfolio/migrations/0008_productdependency_is_resolved_to_is_pinned.py b/product_portfolio/migrations/0008_productdependency_is_resolved_to_is_pinned.py new file mode 100644 index 00000000..6c50c6a0 --- /dev/null +++ b/product_portfolio/migrations/0008_productdependency_is_resolved_to_is_pinned.py @@ -0,0 +1,30 @@ +# Generated by Django 5.0.9 on 2024-10-31 04:26 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('component_catalog', '0009_componentaffectedbyvulnerability_and_more'), + ('dje', '0004_dataspace_vulnerabilities_updated_at'), + ('product_portfolio', '0007_alter_scancodeproject_type'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.RemoveIndex( + model_name='productdependency', + name='product_por_is_reso_368f34_idx', + ), + migrations.RenameField( + model_name='productdependency', + old_name='is_resolved', + new_name='is_pinned', + ), + migrations.AddIndex( + model_name='productdependency', + index=models.Index(fields=['is_pinned'], name='product_por_is_pinn_aa0755_idx'), + ), + ] diff --git a/product_portfolio/models.py b/product_portfolio/models.py index d4355f16..da3eda4e 100644 --- a/product_portfolio/models.py +++ b/product_portfolio/models.py @@ -1428,7 +1428,7 @@ class ProductDependency(HistoryFieldsMixin, DataspacedModel): default=False, help_text=_("True if this dependency is an optional dependency"), ) - is_resolved = models.BooleanField( + is_pinned = models.BooleanField( default=False, help_text=_( "True if this dependency version requirement has been pinned " @@ -1451,7 +1451,7 @@ class Meta: models.Index(fields=["scope"]), models.Index(fields=["is_runtime"]), models.Index(fields=["is_optional"]), - models.Index(fields=["is_resolved"]), + models.Index(fields=["is_pinned"]), models.Index(fields=["is_direct"]), ] diff --git a/product_portfolio/templates/product_portfolio/tabs/tab_dependencies.html b/product_portfolio/templates/product_portfolio/tabs/tab_dependencies.html index 92d6fd6f..e7ac6b96 100644 --- a/product_portfolio/templates/product_portfolio/tabs/tab_dependencies.html +++ b/product_portfolio/templates/product_portfolio/tabs/tab_dependencies.html @@ -68,7 +68,7 @@ {{ dependency.is_optional|as_icon }} - {{ dependency.is_resolved|as_icon }} + {{ dependency.is_pinned|as_icon }} {% empty %} diff --git a/product_portfolio/tests/test_importers.py b/product_portfolio/tests/test_importers.py index e2f4b642..af39f13b 100644 --- a/product_portfolio/tests/test_importers.py +++ b/product_portfolio/tests/test_importers.py @@ -965,7 +965,7 @@ def test_product_portfolio_import_packages_from_scancodeio_importer( "scope": "install", "is_runtime": True, "is_optional": False, - "is_resolved": True, + "is_pinned": True, "is_direct": True, "dependency_uid": dependency_uid, "for_package_uid": None, @@ -999,7 +999,7 @@ def test_product_portfolio_import_packages_from_scancodeio_importer( self.assertEqual("pypi_setup_cfg", created_dependency.datasource_id) self.assertTrue(created_dependency.is_runtime) self.assertFalse(created_dependency.is_optional) - self.assertTrue(created_dependency.is_resolved) + self.assertTrue(created_dependency.is_pinned) self.assertTrue(created_dependency.is_direct) self.assertIsNone(created_dependency.for_package_id) self.assertIsNone(created_dependency.resolved_to_package_id) diff --git a/product_portfolio/views.py b/product_portfolio/views.py index df994e7c..0a0a20fc 100644 --- a/product_portfolio/views.py +++ b/product_portfolio/views.py @@ -1023,7 +1023,7 @@ class ProductTabDependenciesView( Header("extracted_requirement", _("Extracted requirement")), Header("is_runtime", _("Runtime"), filter="is_runtime"), Header("is_optional", _("Optional"), filter="is_optional"), - Header("is_resolved", _("Resolved"), filter="is_resolved"), + Header("is_pinned", _("Pinned"), filter="is_pinned"), ) def get_context_data(self, **kwargs): diff --git a/purldb/tests/test_views.py b/purldb/tests/test_views.py index 23e0d3fd..0b697306 100644 --- a/purldb/tests/test_views.py +++ b/purldb/tests/test_views.py @@ -89,7 +89,7 @@ "scope": "compile", "is_runtime": true, "is_optional": false, - "is_resolved": false + "is_pinned": false } ], "resources": "https://purldb/api/packages/2928d61d-b113-46ba-aa11/resources/"