Monorepo-style tags break latest release detection

Open
#4 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
javascript
Domain
cli, release

Research direction

Start with src/get-latest-release.js and the latest-semver call linked in the issue. Trace how command-line options are parsed, then determine where platform filtering and prefix removal belong. Done means a platform option lets the tool identify the latest release from mapbox-gl-native-style tags without breaking existing tag handling.

Written by the indexing model from the issue text.

Description

The mapbox-gl-native repository uses a non-semver-compliant tag naming scheme that prepends a platform identifier to an otherwise semver-compliant version number, since the various libraries developed in that monorepo are versioned independently. This tool relies on the latest-semver package, which is unable to understand these version numbers on its own:

https://github.com/mapbox/github-release-tools/blob/8d88e10b6fedf3f34f8d3929287148088e65709c/src/get-latest-release.js#L13

Fortunately, I think we can make the tool compatible with mapbox-gl-native by filtering tags by platform and stripping off the platform identifiers before calling latestSemver(). The tool would need a new command line option to specify a platform.

/cc @anandthakker

Dominant language
JavaScript
Stars
16
Forks
5
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from mapbox/github-release-tools

All issues in mapbox/github-release-tools

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.