aboutcode-org / aboutcode-org/scancode.io

CodebaseResource does not have all the features of commoncode Resource model

未關閉
#1,585 7 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
215
分支
203
平均合併
4 天 8 小時
30 天內合併 PR
6

描述

Due to a need of maintaining a Codebase/Resource model to traverse and support all the scancode-toolkit functions we have two similar models with same functions to integrate scancode-toolkit in SCIO:
* the `CodebaseResource` model mirrors the `commoncode.resource.Resource` model
* the `Project` model has necessary functions with the same behavior from the `commoncode.resource.Codebase` model

But the support is currently limited to the widely used functions in scancode-toolkit only, and not all the functions from the `commoncode.resource` models, and this causes failures when a new function is used on the scancode-toolkit side, which might not be supported on the scancode.io side yet.

For example:
In https://github.com/aboutcode-org/scancode-toolkit/pull/3983 we fixed some issues related to package resource assignment for jar manifests, and in the process we started using `commoncode.resource.Resource.extracted_to` from the suggestion at https://github.com/aboutcode-org/scancode-toolkit/pull/3983#discussion_r1846347945, but this is not something that is supported in SCIO, so after this was released and used in SCIO, we had the following failure:

```
'CodebaseResource' object has no attribute 'extracted_from'

Traceback:
File "/opt/scancodeio/aboutcode/pipeline/__init__.py", line 199, in execute
step(self)
File "/opt/scancodeio/scanpipe/pipelines/inspect_packages.py", line 61, in scan_for_application_packages
scancode.scan_for_application_packages(
File "/opt/scancodeio/scanpipe/pipes/scancode.py", line 436, in scan_for_application_packages
assemble_packages(project=project)
File "/opt/scancodeio/scanpipe/pipes/scancode.py", line 493, in assemble_packages
for item in items:
^^^^^
File "/opt/scancodeio/.venv/lib/python3.12/site-packages/packagedcode/maven.py", line 123, in assemble
yield from JavaJarManifestHandlerMixin.assemble(package_data, resource, codebase, package_adder)
File "/opt/scancodeio/.venv/lib/python3.12/site-packages/packagedcode/models.py", line 1185, in assemble
cls.assign_package_to_resources(
File "/opt/scancodeio/.venv/lib/python3.12/site-packages/packagedcode/maven.py", line 158, in assign_package_to_resources
models.DatafileHandler.assign_package_to_resources(
File "/opt/scancodeio/.venv/lib/python3.12/site-packages/packagedcode/models.py", line 1225, in assign_package_to_resources
archive_resource = resource.extracted_from(codebase)
```

So we need to do a review of all the functions present in `commoncode.resource` models which could be used in scancode-toolkit, and implement all of them here, and add tests to make sure they are all supported.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。