Show npm package dist-tags in package UI #3121
Zak Siddiqui opened 4 weeks ago

Problem

When publishing npm packages to the OneDev npm registry, dist-tags are correctly stored and resolvable via npm dist-tag ls, but they are not visible anywhere in the OneDev package UI.

The package page shows versions and their metadata, but there is no section showing which dist-tags (e.g. latest, dev-develop, dev-feature-branch) point to which versions.

Evidence

A build published @abc/[email protected] with tag dev-issue-1519-shared-codec-use-npm-dist-tags. The build log from npm dist-tag ls confirms three tags exist on the registry:

dev-develop: 1.1.1-20260914215547.0
dev-issue-1519-shared-codec-use-npm-dist-tags: 1.1.1-69fba31.0
latest: 1.1.1-20260914154602.0

The npm install @abc/shared-codec@dev-issue-1519-shared-codec-use-npm-dist-tags command also resolves correctly (11 packages installed).

However, when viewing the package in the OneDev UI, none of these dist-tags are shown. Users have no way to see which tags exist or which version each tag points to without CLI access.

Request

Add a dist-tags section to the package detail page in the OneDev UI that shows:

  • Tag name
  • The version each tag points to
  • When the tag was last updated

This would make the npm package management experience in OneDev comparable to other registries (e.g. npmjs.com shows dist-tags on the package versions tab).

  • Service Desk commented 4 weeks ago

    OneDev currently does not display npm dist-tags in the package UI. The tags are stored on their target package versions and exposed through the npm registry API, which is why npm dist-tag ls <package> and installs by tag work correctly.

    At present, OneDev stores only the current tag-to-version association; it does not persist a separate last-updated timestamp for each tag. Therefore the requested UI, especially the “last updated” value, would require a product enhancement and additional tag-history metadata rather than enabling an existing view.

    For now, please use npm dist-tag ls <package> (or npm view <package> dist-tags) to inspect the current mappings.

  • Zak Siddiqui changed fields 4 weeks ago
    Name Previous Value Current Value
    Type
    Question
    Improvement
  • Zak Siddiqui commented 4 weeks ago

    @robin this is critical for us

  • Zak Siddiqui changed fields 4 weeks ago
    Name Previous Value Current Value
    Priority
    Normal
    Critical
  • Robin Shen commented 4 weeks ago

    @zaakiy I am busy handling customer request and may not able to address this recently.

  • Service Desk commented 4 weeks ago

    As the assignee, I am relevant to taking this enhancement forward, but I cannot prepare the implementation because the servicedesk account does not have write-code permission in onedev/server (the issue checkout failed with HTTP 403). Please grant the required permission or reassign the implementation to someone with repository write access.

  • Zak Siddiqui commented 4 weeks ago

    @robin any chance you could give me access to cwh?

  • Robin Shen commented 4 weeks ago

    @zaakiy sorry i cannot give access to cwh as it means to give user write access to the repository.

  • Zak Siddiqui commented 3 weeks ago

    @robin any chance this can get worked on in the near future.

    Thx

  • Robin Shen commented 3 weeks ago

    @zaakiy this will be shipped next release together with other improvements.

  • Robin Shen changed fields 3 weeks ago
    Name Previous Value Current Value
    Priority
    Critical
    Normal
  • Robin Shen commented 3 weeks ago

    Please note that package detail page will only display dist-tags associated with current version. Displaying all dist-tags not belonging to current version seems confusing and also performs bad (need to query all versions and deserializes packdata to read back dist-tags).

  • Service Desk commented 3 weeks ago

    As the assignee, I agree with limiting the display to dist-tags associated with the version currently being viewed. The package detail page is version-specific, and this avoids querying and deserializing every version. The section should make that scope clear; a tag last-updated value should remain omitted since that metadata is not currently persisted.

  • OneDev commented 3 weeks ago

    State changed as build OD-8482 is successful

  • OneDev changed state to 'Closed' 3 weeks ago
    Previous Value Current Value
    Open
    Closed
  • Zak Siddiqui commented 3 weeks ago

    Please note that package detail page will only display dist-tags associated with current version. Displaying all dist-tags not belonging to current version seems confusing and also performs bad (need to query all versions and deserializes packdata to read back dist-tags).

    I think that works. Let me have a look and check it out.

    Thanks very much @robin!

1/1
Type
Enhancement
Priority
Normal
Assignee
Labels
No labels
Issue Votes (0)
Watchers (5)
Reference
OD-3121
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover