Repository navigation
Fix release notes that stay empty after a repository change, rel_ tags and npm author parsing - #11
Merged
Merged
Conversation
…nges Versions looked up without a repository, or under a wrong one, were stored as empty and stayed empty for 30 days after the repository was corrected. A metadata refresh that finds a different repository now clears the source of those empty notes and queues a scrape, so they are read again once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SQLAlchemy and Alembic tag releases as rel_2_1_5, which no tag candidate matched, so their GitHub release notes were never found. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The packument is deserialized from a stream, where Utf8JsonReader.Skip throws on a partial buffer. An old author object with a url before its name (glob, minimatch) made the whole lookup fail and the package was reported as not found on npm. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three fixes for packages whose release notes stayed empty although the notes exist on GitHub: empty notes are looked up again when a package's repository changes,
rel_X_Y_Zrelease tags are matched, and npm packuments with an oldauthorlayout no longer fail to load.Why
Checked against production on 2026-10-19:
seleniumwas first scraped before its repository was known, so all 192 versions were stored empty. Once PR fix(pypi): find the repository in the README when project_urls has none #1 found the repository, nothing looked them up again: the package page only queues a scrape for versions never looked up, and analysis only for missing or expired (30 days) rows. 34 cached packages also carried a non-repository GitHub link from older code (/discussions,/issues,/actions?..., a.gitsuffix);.gitmade the releases API return 404, so Grpc.Net.Client and Swashbuckle.AspNetCore had no notes at all.rel_tags. SQLAlchemy and Alembic tag releases asrel_2_1_5. No tag candidate matched, so their GitHub release notes were never found.author. The packument is deserialized from a stream, whereUtf8JsonReader.Skip()throws on a partial buffer.globandminimatchhave old versions whoseauthorobject listsurlbeforename; the converter skippedurl, the lookup threw, and the package was reported as "not found on npm".Changes
PackageCacheService: when a metadata refresh finds a different GitHub repository, empty notes that were already looked up get their source cleared and a scrape is queued, so they are read once more under the new repository. Notes that are genuinely missing are not retried on a schedule; only a repository change triggers it.GitHubScraperService.TagCandidates: addsrel_{version with dots as underscores}.NpmService: the custom converters useTrySkip()instead ofSkip().Notes for reviewers
sqlalchemyandalembicstill hold empty notes from the old tag matching; their repository does not change, so the first change does not cover them. Clearing the source of their empty notes once (or waiting for the 30-day expiry) brings the notes in.Checklist
developand is about one thingfeat(scope): ...,fix(scope): ...)src/frontend/src/app/core/models