Skip to content

RepologyIndex: index sibling-formula projects; run tests on PRs - #27

Merged
andrew merged 3 commits into
mainfrom
repology-index-siblings
Jul 28, 2026
Merged

RepologyIndex: index sibling-formula projects; run tests on PRs#27
andrew merged 3 commits into
mainfrom
repology-index-siblings

Conversation

@andrew

@andrew andrew commented Jul 28, 2026

Copy link
Copy Markdown
Member

Two changes surfaced by the brew advisory-match calibration run in Homebrew/brew#23329.

RepologyIndex sibling-formula loosening. A Repology project that groups Homebrew formulae with distinct base names (wget + wget2, sqlite + sqlite-analyzer, boost + boost-mpi, ffmpeg + a third-party ffmpeg-full) was previously omitted from data/repology.json and recorded only in meta.ambiguous_projects. That left 50 projects unmapped, including ffmpeg, imagemagick, wget, sqlite, binutils and cmake. Each formula in such a project is now indexed with the full distro srcname set; in Homebrew::Vulns::Match (Homebrew/brew#23329) the sibling's srcnames become extra low-confidence distro queries whose upstream-CVE range check will not match this formula's identity, so the cost is uncomparable candidate records rather than wrong :affected/:fixed claims. meta.ambiguous_projects is still populated so the list can be tightened via repology-rules PRs.

validate.yml test job. regenerate.yml runs rake test before rebuilding the index, but only on schedule; PRs touching lib/ or test/ had no coverage. Added a test job mirroring regenerate.yml's Ruby setup. RuboCop is not added because the org-synced .rubocop.yml sets AllCops: Include: ["**/*.rbi"], which replaces the default .rb glob and scans nothing here (a Homebrew/.github fix).

andrew added 2 commits July 28, 2026 15:52
A Repology project that groups Homebrew formulae with distinct base names
(wget + wget2, sqlite + sqlite-analyzer, boost + boost-mpi, ffmpeg + a
third-party ffmpeg-full) was previously omitted from the index and
recorded only in meta.ambiguous_projects. That left 50 projects
unmapped, including several heavy-CVE targets (ffmpeg, imagemagick,
wget, sqlite, binutils, openssl variants).

Each formula in such a project is now indexed with the full distro
srcname set. In Homebrew::Vulns::Match the sibling's srcnames become
extra low-confidence distro queries whose upstream-CVE range check will
not match this formula's identity, so the cost is uncomparable candidate
records rather than wrong :affected/:fixed claims.
meta.ambiguous_projects is still populated so the set can be tightened
via repology-rules PRs.
regenerate.yml runs the test suite before rebuilding the index, but only
on schedule; PRs touching lib/ or test/ had no test coverage. Add a test
job mirroring regenerate.yml's Ruby setup.
Copilot AI review requested due to automatic review settings July 28, 2026 14:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the Repology indexing logic to include “sibling-formula” Repology projects (where multiple Homebrew formulae share a Repology project despite distinct base names) while still recording them as ambiguous, and expands CI validation by running Ruby tests on PRs.

Changes:

  • Index sibling-formula Repology projects instead of omitting them, while continuing to record them in meta.ambiguous_projects.
  • Update Repology index tests to validate the new indexing behavior for sibling-formula projects.
  • Add a test job to validate.yml to run rake test on pushes and pull requests.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
lib/repology_index.rb Loosens ambiguous-project handling to index sibling-formula projects and updates logging/documentation.
test/repology_index_test.rb Adjusts expectations to cover sibling-formula indexing and updated logging behavior.
.github/workflows/validate.yml Adds a PR-running Ruby test job mirroring the regenerate workflow’s Ruby setup.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/repology_index.rb
@andrew
andrew requested a review from p-linnane July 28, 2026 15:22
@andrew
andrew merged commit bbec7c6 into main Jul 28, 2026
7 checks passed
@andrew
andrew deleted the repology-index-siblings branch July 28, 2026 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants