Update semver_dialects gem to support deb operating system package versions

Proposal

In order to fully support Continuous Vulnerability Scans for Container Scanning advisories, we need to be able to compare the package versions for the following operating system purl types: deb, apk, rpm. Support for these purl types will be implemented by the following issues:

  1. Update semver_dialects gem to support deb opera... (#427961 - closed) • Nick Ilieskou • 16.6 • On track (this issue)
  2. Update semver_dialects gem to support apk opera... (#428703 - closed) • Shao Ming Tan • 17.2 • On track
  3. Update semver_dialects gem to support rpm opera... (#428941 - closed) • Shao Ming Tan • 17.2 • On track

The purpose of this issue is to add support for comparing package versions for the deb purl type to the semver_dialects gem.

Implementation Plan

  1. Port the go-based deb tests from go-deb-version to ruby and add them to the semver_dialects project. Most of these tests will fail.

  2. Add the ruby-deb-version gem to semver_dialects and document how many of the deb purl type tests fail.

    • If no tests fail, we're good, this issue can be closed.
    • If a small number of tests fail, such as 10%, then we can either:
      • document this as a limitation, or
      • Add special handling for the failing tests, possibly porting the necessary logic from go-deb-version.
    • If a large number of tests fail, we'll need to port the logic from go-deb-version in a follow-up issue.

/cc @gonzoyumo @smeadzinger @fcatteau

Auto-Summary 🤖

Discoto Usage

Points

Discussion points are declared by headings, list items, and single lines that start with the text (case-insensitive) point:. For example, the following are all valid points:

  • #### POINT: This is a point
  • * point: This is a point
  • + Point: This is a point
  • - pOINT: This is a point
  • point: This is a **point**

Note that any markdown used in the point text will also be propagated into the topic summaries.

Topics

Topics can be stand-alone and contained within an issuable (epic, issue, MR), or can be inline.

Inline topics are defined by creating a new thread (discussion) where the first line of the first comment is a heading that starts with (case-insensitive) topic:. For example, the following are all valid topics:

  • # Topic: Inline discussion topic 1
  • ## TOPIC: **{+A Green, bolded topic+}**
  • ### tOpIc: Another topic

Quick Actions

Action Description
/discuss sub-topic TITLE Create an issue for a sub-topic. Does not work in epics
/discuss link ISSUABLE-LINK Link an issuable as a child of this discussion

Last updated by this job

Discoto Settings
---
summary:
  max_items: -1
  sort_by: created
  sort_direction: ascending

See the settings schema for details.

Edited by Adam Cohen