Skip to content

Comments

feat: add community adoption distribution link in Versions.vue#687

Merged
danielroe merged 18 commits intonpmx-dev:mainfrom
NullVoxPopuli:patch-2
Feb 3, 2026
Merged

feat: add community adoption distribution link in Versions.vue#687
danielroe merged 18 commits intonpmx-dev:mainfrom
NullVoxPopuli:patch-2

Conversation

@NullVoxPopuli
Copy link
Contributor

@NullVoxPopuli NullVoxPopuli commented Feb 1, 2026

Added a link to view community adoption distribution for packages.

image

This links out to https://majors.nullvoxpopuli.com to show what majors/minors of a package are being used -- helpful for maintainers to help move their communities forward

Added a link to view community adoption distribution for packages.
@vercel
Copy link

vercel bot commented Feb 1, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
npmx.dev Ready Ready Preview, Comment Feb 3, 2026 10:12pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs.npmx.dev Ignored Ignored Preview Feb 3, 2026 10:12pm
npmx-lunaria Ignored Ignored Feb 3, 2026 10:12pm

Request Review

@NullVoxPopuli NullVoxPopuli changed the title Add community adoption distribution link in Versions.vue feat: add community adoption distribution link in Versions.vue Feb 2, 2026
Copilot AI and others added 8 commits February 2, 2026 00:53
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
Co-authored-by: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com>
[WIP] Fix test errors related to component link update
// Find version links (exclude anchor links that start with #)
// Find version links (exclude anchor links that start with # and external links)
const versionLinks = component
.findAll('a')
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

filtering all links like this with a semantic wrapper feels a bit goofy, but I don't know what testing patterns are common/recommended, and this was pretty hands off for me. Lemme know what changes you want

@github-actions
Copy link

github-actions bot commented Feb 2, 2026

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
lunaria/files/en-GB.json Localization changed, will be marked as complete. 🔄️
lunaria/files/en-US.json Source changed, localizations will be marked as outdated.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

Copy link
Member

@danielroe danielroe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you ❤️

@NullVoxPopuli
Copy link
Contributor Author

looks like ci needs to re-run (due to actions outage yesterday)

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 3, 2026

📝 Walkthrough

Walkthrough

The pull request adds an external link button to the Package Versions component that directs users to a community distribution page. The link is added as an action in the CollapsibleSection header, uses the packageName prop to construct the URL, and includes an icon and accessible label. Supporting translation entries are added to locale files in English (en-GB, en-US variants and main i18n), and component tests are updated to exclude external links when filtering version link elements.

🚥 Pre-merge checks | ✅ 1
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The pull request description clearly describes the changeset: adding a link to view community adoption distribution for packages, with supporting context about the external URL and intended use case.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link

codecov bot commented Feb 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@danielroe danielroe added this pull request to the merge queue Feb 3, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Comment on lines +309 to +319
<template #actions>
<a
:href="`https://majors.nullvoxpopuli.com/q?packages=${packageName}`"
target="_blank"
rel="noopener noreferrer"
class="text-fg-subtle hover:text-fg transition-colors duration-200 inline-flex items-center justify-center min-w-6 min-h-6 -m-1 p-1"
:title="$t('package.downloads.community_distribution')"
>
<span class="i-carbon:load-balancer-network w-3.5 h-3.5" aria-hidden="true" />
<span class="sr-only">{{ $t('package.downloads.community_distribution') }}</span>
</a>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

majors.nullvoxpopuli.com package query parameter format scoped packages

💡 Result:

majors.nullvoxpopuli.com reads the package name(s) from the packages query parameter (i.e. ?packages=...). (nullvoxpopuli.com)

For scoped npm packages, use normal URL-encoding for reserved characters—most importantly:

  • @%40
  • /%2F

Example:

https://majors.nullvoxpopuli.com/?packages=%40ember%2Fdata

Citations:


🏁 Script executed:

# Check how packageName is used elsewhere in the codebase
rg "packageName" app/components/Package/Versions.vue -B 2 -A 2 | head -50

Repository: npmx-dev/npmx.dev

Length of output: 1625


🏁 Script executed:

# Look for any existing URL encoding patterns in the codebase
rg "encodeURIComponent|encodeURI" --type vue --type ts --type tsx | head -20

Repository: npmx-dev/npmx.dev

Length of output: 88


🏁 Script executed:

# Check the package name variable definition and source
rg "const packageName|let packageName|packageName:" app/components/Package/Versions.vue -B 3 -A 1

Repository: npmx-dev/npmx.dev

Length of output: 177


Encode packageName in the query string.

Scoped package names (e.g. @scope/package) contain characters like @ and / that must be URL-encoded (%40 and %2F respectively) for the majors.nullvoxpopuli.com service to correctly parse the query parameter.

🔧 Suggested change
-        :href="`https://majors.nullvoxpopuli.com/q?packages=${packageName}`"
+        :href="`https://majors.nullvoxpopuli.com/q?packages=${encodeURIComponent(packageName)}`"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<template #actions>
<a
:href="`https://majors.nullvoxpopuli.com/q?packages=${packageName}`"
target="_blank"
rel="noopener noreferrer"
class="text-fg-subtle hover:text-fg transition-colors duration-200 inline-flex items-center justify-center min-w-6 min-h-6 -m-1 p-1"
:title="$t('package.downloads.community_distribution')"
>
<span class="i-carbon:load-balancer-network w-3.5 h-3.5" aria-hidden="true" />
<span class="sr-only">{{ $t('package.downloads.community_distribution') }}</span>
</a>
<template `#actions`>
<a
:href="`https://majors.nullvoxpopuli.com/q?packages=${encodeURIComponent(packageName)}`"
target="_blank"
rel="noopener noreferrer"
class="text-fg-subtle hover:text-fg transition-colors duration-200 inline-flex items-center justify-center min-w-6 min-h-6 -m-1 p-1"
:title="$t('package.downloads.community_distribution')"
>
<span class="i-carbon:load-balancer-network w-3.5 h-3.5" aria-hidden="true" />
<span class="sr-only">{{ $t('package.downloads.community_distribution') }}</span>
</a>

Merged via the queue into npmx-dev:main with commit 74f04e9 Feb 3, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants