hexpm / hexpm/bob

API exact match on `arch` field

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

Nobody has claimed this yet.

Dominant language
Elixir
Stars
276
Forks
68
Avg merge
5h 52m
Merged PRs (30d)
14

Description

Manually extracted from https://github.com/hexpm/bob/issues/289#issuecomment-5407764435

There are exactly 2 choices of arch: amd64 | arm64, plus end users may want to filter results down to multi-arch images (e.g. mix phx.gen.release needs that), thus making an array also a reasonable valid input, thus making "arch": "amd64" | "arm64" | ["amd64", "arm64"].

LiveView UI in /docker uses a dropdown, so values are always exact and no typing is required.

One way to make arch usable for multi-arch queries is turning it into a multi-select in the LiveView UI (or, perhaps even better UX, keep with a single select with options "any", "amd64", "arm64", "multi-arch"), and an (optional) list of strings in the API, so that we can query for images that have both amd64 & arm64 archs.

An alternative for the API would be accepting some special value like "all", but I'd argue that's a worse solution, because it is ambiguous. If in the future Bob supports a new arch, the meaning of "all" would suddenly change.

Suggestion: make arch exact match instead of prefix match and support list of archs as API input, similar to the change to repo in #289.

Contributor guide

No contributing guide indexed for this repository

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.

Research direction

Start by tracing the API handling for the arch field and the LiveView UI under /docker, then inspect how the existing repo exact-match change works in #289. Done means exact matching for amd64 and arm64, support for an API list containing both architectures, and a UI choice for multi-arch results.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, elixir
Domain
api, devops, frontend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.