Update semver_dialects gem to support apk 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
  2. Update semver_dialects gem to support apk opera... (#428703 - closed) • Shao Ming Tan • 17.2 • On track (this issue)
  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 apk purl type to the semver_dialects gem.

Implementation Plan

  1. Port over parsing logic from apk-tools.
  2. Port over tests from apk-tools and ensure they are passing.
  3. Update CVS documentation to support APK. Pending approval and merge
  4. Release semver-dialects gem v3.3.0 with APK support
  5. Create MR in monolith to bump semver-dialects gem. Pending review

/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.

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 Oscar Tovar