Recent NuGet PURLs missing from public.purldb.io despite existing in federated data; NuGet mining jobs repeatedly time out
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 44/100
Línea de trabajo
Empieza con aboutcode-data/minecode-pipelines-config/.github/workflows/mine-nuget-packageurls.yml para confirmar la cadencia de activación, las entradas y cualquier gestión de timeout de mine_nuget. Después localiza el código desplegado del pipeline mine_nuget y el trabajo de sincronización público que importa aboutcode-data/purls-nuget-* en registros Package, ya que el issue solicita evidencias del flujo de importación. Revisa los logs del workflow y llama a GET /api/packages/?purl=... en public.purldb.io antes y después de las comprobaciones específicas; estará terminado cuando aparezcan PURLs de NuGet recientes en los datos públicos y la ejecución ya no termine a las 6 h.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
I am seeing a significant gap in recent NuGet/.NET package data in the public PurlDB instance (public.purldb.io).
Initially, I suspected that recent .NET/NuGet packages were simply no longer being collected. However, after looking at the current AboutCode mining infrastructure, the situation appears to be more specific:
- Recent NuGet PURLs, including current .NET 10 packages, are already present in the federated
aboutcode-data/purls-nuget-*repositories. - These packages do not appear to be available as expected in the public PurlDB instance.
- At the same time, the scheduled NuGet mining workflow repeatedly reaches GitHub Actions' six-hour execution limit and is cancelled.
- On-demand population of an individual recent NuGet package into PurlDB works successfully.
This suggests that there may be two related issues:
- the NuGet mining process may currently produce an incomplete federated data set because runs do not finish;
- the federated NuGet PURLs that have already been mined may not be imported/defederated into
public.purldb.ioregularly or completely.
Examples
A useful example is:
pkg:nuget/[email protected]
NuGet.org currently contains this package/version. It was published in August 2026.
The PURL is also already present in the federated AboutCode data:
Repository:
aboutcode-data/purls-nuget-0000
Path:
nuget-0024/Microsoft.NETCore.App.Runtime.linux-x64/purls.yml
The same file currently contains, among others:
pkg:nuget/[email protected]
pkg:nuget/[email protected]
pkg:nuget/[email protected]
Older versions such as the following are present there as well:
pkg:nuget/[email protected]
pkg:nuget/[email protected]
pkg:nuget/[email protected]
pkg:nuget/[email protected]
I see the same pattern for another Microsoft package family:
pkg:nuget/Microsoft.AspNetCore.App.Runtime.linux-x64
The corresponding federated PURL file in:
aboutcode-data/purls-nuget-0512
contains recent versions including:
pkg:nuget/[email protected]
pkg:nuget/[email protected]
pkg:nuget/[email protected]
Therefore, recent .NET PURLs are definitely reaching the federated AboutCode data repositories.
However, recent package/version records from this range do not appear to be available as expected in the public PurlDB instance.
A query that can be used to check an individual PURL on the public instance is for example:
GET /api/packages/?purl=pkg:nuget/[email protected]
On-demand population works
As an additional test, I scanned a very recent NuGet package as a single package in ScanCode.io and then used the populate PURL DB functionality.
The package was:
pkg:nuget/[email protected]
After the population step, the package was successfully created in public.purldb.io.
The public API now returns this package successfully.
This seems to demonstrate that:
- current NuGet packages can be downloaded and processed by PurlDB;
- NuGet PURLs themselves are supported;
- the issue is probably not a general incompatibility with recent .NET/NuGet packages;
- on-demand collection and the regular bulk/federated population path behave differently.
This also seems consistent with the PurlDB release history: NuGet on-demand package collection was added in PurlDB v7.0.0, while the NuGet PURL mining pipeline and decentralized PURL data were added as part of the newer PurlDB/Purl Next architecture around v7.1.0.
NuGet mining workflow repeatedly reaches the 6-hour limit
The scheduled NuGet mining workflow is located in:
aboutcode-data/minecode-pipelines-config/.github/workflows/mine-nuget-packageurls.yml
It currently runs:
schedule:
- cron: '0 */6 * * *'
and invokes:
pipelines: "mine_nuget"
with the federated data destination:
FEDERATEDCODE_GIT_ACCOUNT_URL: https://github.com/aboutcode-data
Recent workflow executions appear to repeatedly run for approximately six hours and then get cancelled.
For example, workflow run #1093, triggered on August 26, 2026, ended with:
Status: Cancelled
Total duration: 6h 0m 19s
The job has exceeded the maximum execution time of 6h0m0s
The operation was canceled.
Several surrounding scheduled runs show essentially the same six-hour duration.
Possible mining issue
The NuGet mining implementation introduced in aboutcode-org/purldb#721 appears to:
- clone the AboutCode NuGet catalog mirror;
- initialize a new in-memory package/version mapping;
- iterate over all catalog page JSON files;
- collect all package/version combinations;
- publish the resulting PURLs to the federated Git repositories in batches.
The implementation contains logic equivalent to:
package_versions = {}
for page in catalog_pages.rglob("*.json"):
...
I do not see a NuGet-specific incremental checkpoint/cursor in that implementation.
Since PURLs are committed in batches during the publishing step, a job that is killed after six hours can still leave partial updates in the purls-nuget-* repositories.
This may also explain another observation: the federated data is very recent, but it is not fully current.
For example, NuGet.org currently contains:
pkg:nuget/Microsoft.NETCore.App.Runtime.linux-x64@11.0.0-preview.7.26381.103
while the corresponding federated PURL file currently stops at:
pkg:nuget/Microsoft.NETCore.App.Runtime.linux-x64@11.0.0-preview.5.26302.115
So the miner appears to be processing recent catalog data, but there are also recent gaps.
I realize that the currently deployed mine_nuget implementation may have changed since #721, so it would be useful to confirm whether the production mining workflow still processes the complete catalog on each execution or whether there is now another checkpoint mechanism.
Federated data -> public PurlDB
PurlDB PR aboutcode-org/purldb#790 implemented the decentralized/federated PURL data import.
The implementation appears to consume the aboutcode-data PURL repositories and create PurlDB Package records from the federated PURLs.
This raises the main question for the public instance:
Is public.purldb.io currently importing/defederating the aboutcode-data/purls-nuget-* repositories?
I could not find a public scheduled production job showing when or how this import is executed for public.purldb.io.
Given that recent .NET 10 PURLs are already present in the federated repositories, but do not appear to be available in the public PurlDB as expected, this may be the point where the data becomes stale.
Questions
It might help to work along those questions while digging into the details of that issue. At least it helped me to write them down alongside the research on that issue.
-
Is
public.purldb.ioexpected to regularly import the PURLs fromaboutcode-data/purls-nuget-*? -
If yes, what process currently performs this import/defederation and how frequently does it run?
-
Is that import currently running successfully for NuGet?
-
Is there an expected delay between a NuGet PURL appearing in
aboutcode-data/purls-nuget-*and the correspondingPackageappearing inpublic.purldb.io? -
Are the repeated six-hour cancellations of the
mine_nugetworkflow known/expected? -
Does the currently deployed NuGet mining pipeline have an incremental checkpoint, or does every scheduled run process the complete NuGet catalog again?
-
Can an interrupted mining run leave only a partial subset of NuGet PURLs updated until a later run happens to process the remaining packages?
-
Is there currently a planned backfill or synchronization of the federated NuGet data into the public PurlDB?
-
Which PurlDB version/deployment architecture is currently used by
public.purldb.io? Could the missing NuGet data be related to the transition to the decentralized PURL data architecture introduced around PurlDB 7.1?
Expected behavior
Ideally, a NuGet PURL that:
- exists on NuGet.org, and
- has already been mined into an
aboutcode-data/purls-nuget-*repository
should eventually appear as a corresponding Package in public.purldb.io within a predictable synchronization interval.
The scheduled NuGet miner should also eventually process the complete catalog without leaving persistent gaps caused by the six-hour workflow timeout.
Thank you for any insight into how the NuGet mining and public PurlDB synchronization are currently intended to work.
- Lenguaje dominante
- HTML
- Estrellas
- 70
- Forks
- 74
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 7
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de aboutcode-org/purldb
-
purlcli failsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
aboutcode-org/purldb#891 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Incorrect set comparison between package names and PURLs in NPM sync logicPosiblemente ocupada @MuhammadBilal64 la tomó hace 25 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
aboutcode-org/purldb#890 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
PypiVersionAPI.get_latest_date() crashes when a release entry is missing upload_time_iso_8601Posiblemente ocupada @drawliin la tomó hace 207 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
aboutcode-org/purldb#863 ·
Los mantenedores suelen responder en 1 día
-
Add doctest and tests for clearcode coordinate helpersPosiblemente ocupada @drawliin la tomó hace 215 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
aboutcode-org/purldb#861 ·
Los mantenedores suelen responder en 1 día
-
Preserve version ordering in packagedb VersionResponsePosiblemente ocupada @drawliin la tomó hace 216 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
aboutcode-org/purldb#857 ·
Los mantenedores suelen responder en 1 día
Todos los issues de aboutcode-org/purldb
Issues similares
-
simulator-session.yml の simtunnel の固定先が古く、agentd が無いため simtunnel up --wait / status が準備完了を検知できないAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
automated issue report
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
camunda/camunda-deployment-references#3903 ·
Los mantenedores suelen responder en 1 día
-
VLAgent `spec.k8sCollector.includePodLabels: false` has no effectPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
VictoriaMetrics/operator#2772 ·
Los mantenedores suelen responder en 1 día
-
admission-deferred priority: medium status: ready work-class: scoped
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
melodic-software/claude-code-plugins#10887 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
personalrobotics/geodude#243 ·
Los mantenedores suelen responder en 1 día