Skip to content

feat: introduced new downloads page#7357

Merged
ovflowd merged 5 commits intomainfrom
feat/new-downloads-page
Dec 28, 2024
Merged

feat: introduced new downloads page#7357
ovflowd merged 5 commits intomainfrom
feat/new-downloads-page

Conversation

@ovflowd
Copy link
Member

@ovflowd ovflowd commented Dec 25, 2024

This PR introduces the shiny new Downloads page envisioned by the package maintenance Working Group (#7037).

It also officially unblocks community members from adding package managers and installation methods to the Downloads page!

Warning!: This PR also resets all translations for the downloads page (unfortunately, as a preventive method)

Closes #7037
Closes #7296
Unblocks #6953
Unblocks #6978
Unblocks #6832

CHECK THE PREVIEW HERE

@ovflowd ovflowd added i18n Issues/PRs related to the Website Internationalisation website redesign Issue/PR part of the Node.js Website Redesign feature-request infrastructure Issues/PRs related to the Repository Infra labels Dec 25, 2024
@ovflowd ovflowd requested review from a team as code owners December 25, 2024 02:33
@vercel
Copy link

vercel bot commented Dec 25, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
nodejs-org ✅ Ready (Inspect) Visit Preview Dec 28, 2024 3:03am

@github-actions

This comment has been minimized.

GeoffreyBooth

This comment was marked as resolved.

@ovflowd ovflowd added the github_actions:pull-request Trigger Pull Request Checks label Dec 25, 2024
@github-actions github-actions bot removed the github_actions:pull-request Trigger Pull Request Checks label Dec 25, 2024
@ovflowd

This comment was marked as resolved.

@ovflowd

This comment was marked as outdated.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 25, 2024

Unit Test Coverage Report

Lines Statements Branches Functions
Coverage: 85%
84.08% (597/710) 65.12% (183/281) 82.7% (110/133)

Unit Test Report

Tests Skipped Failures Errors Time
124 0 💤 0 ❌ 0 🔥 4.903s ⏱️

@MattIPv4

This comment was marked as resolved.

@ovflowd

This comment was marked as resolved.

@ljharb

This comment was marked as resolved.

@ovflowd
Copy link
Member Author

ovflowd commented Dec 27, 2024

Out of curiosity, what determines if an installation method is "official"? What makes nvm official that fnm doesn't have -- both are third-party version managers not maintained by the Node.js org?

That is a good question. I will write up the guidelines for Official vs Community on a follow-up PR and how to get your installation method or package manager added to the current Downloads page.

However, regarding official versus community, I'd say there needs to be some criteria for the official status to be attained. (Keep in mind these are criteria I've come up with and were NOT agreed upon yet; these are pending discussion and agreement)

  • As soon as a Node.js release gets out, said version manager/installation mode needs to have it out, so either coordinated releases or something that listens for our releases
  • The project maintainers must have a close relationship with Node.js, at least a direct communication way
  • The installation method must download the official binaries bundled by the Node.js project; if the installation method builds it from the source and/or modifies what gets bundled (SSL version, Corepack or not, NPM or not or removed modules), then it also does not qualify as an official method.
  • Maybe other criteria.

fnm may already fit the criteria. Still, at the moment, I only marked (intentionally) "nvm" as the only Official one as it already fits all these criteria above, and it is the most used version manager out there. I'm more than happy adding "fnm" to the list, I don't even know who the fnm maintainers are and if they have any ties with the Node project.

@ovflowd

This comment was marked as resolved.

chore: removed all translated (old) downloads page (forcing re-translation)

fix: fix build and extension extraction

chore: just update todo text

Apply suggestions from code review

Co-authored-by: Geoffrey Booth <webadmin@geoffreybooth.com>
Signed-off-by: Claudio W <cwunder@gnome.org>

fix: fixed unit tests

chore: unnecessary memoization of reqs

chore: some minor code review changes

feat: code review and iteration on logic

chore: improvements for docker

chore: more improvements for texts and sizes

chore: minor design updates

chore: numerous improvements and fixes

chore: some typo fixes

feat: bug fixes, improved types, handle unknown scenarios and fallback

chore: always use corepack to enable pnpm

chore: util will always return string, but `parseNumericBitness` ensures number is set

chore: improved types

chore: random changed file

chore: some code reviews and bug fixes

chore: not an external link
@github-actions
Copy link
Contributor

github-actions bot commented Dec 27, 2024

Lighthouse Results

URL Performance Accessibility Best Practices SEO Report
/en 🟢 91 🟢 100 🟢 100 🟢 91 🔗
/en/about 🟢 100 🟢 100 🟢 100 🟢 91 🔗
/en/about/previous-releases 🟢 99 🟢 100 🟢 100 🟢 92 🔗
/en/download 🟠 89 🟢 100 🟢 100 🟢 91 🔗
/en/blog 🟢 100 🟢 100 🟢 96 🟢 92 🔗

Copy link
Member

@ljharb ljharb left a comment

Choose a reason for hiding this comment

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

i'm happy with the current state of the PR, thanks!

Co-authored-by: Jordan Harband <ljharb@gmail.com>
Signed-off-by: Claudio W <cwunder@gnome.org>
@ovflowd ovflowd added the github_actions:pull-request Trigger Pull Request Checks label Dec 27, 2024
@ovflowd
Copy link
Member Author

ovflowd commented Dec 27, 2024

Cane someone from @nodejs/web-infra approve this PR too?

Copy link
Member

@MattIPv4 MattIPv4 left a comment

Choose a reason for hiding this comment

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

LGTM.

Looking forward to the follow-up docs PR for folks wanting to add other community options, and what constitutes an official option vs. community.

As a future improvement, would love the over-the-wire HTML to have some default selected (perhaps based on stats for the most common OS) and the snippet pre-rendered (could just be plain-text if Shiki pre-rendering is too complex).

@ovflowd

This comment was marked as resolved.

@ovflowd

This comment was marked as resolved.

@MattIPv4
Copy link
Member

You mean when JavaScript is not available

Yah indeed, if JS isn't available and before JS has run on the page but once the HTML has arrived (with my slow:tm: internet, I see a solid few seconds of the empty code block which I'd love to see have a default of some sort loaded instead from the start)

@ovflowd
Copy link
Member Author

ovflowd commented Dec 28, 2024

You mean when JavaScript is not available

Yah indeed, if JS isn't available and before JS has run on the page but once the HTML has arrived (with my slow:tm: internet, I see a solid few seconds of the empty code block which I'd love to see have a default of some sort loaded instead from the start)

I tested with slow 3g and it took 2-3 seconds, but honestly that shouldn't be a concern. The issue of having an initial codebox regardless of environment, @MattIPv4 is that it will cause a flash effect, since most likely it will show a different one once it renders, hence why the Skeleton.

It would also require Shiki + Eval'ing the snippet to happen twice. My last commit was done as a performance pass meticulously 👀 the performance graphs on DevTools.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

i18n Issues/PRs related to the Website Internationalisation infrastructure Issues/PRs related to the Repository Infra website redesign Issue/PR part of the Node.js Website Redesign

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Redesign the Downloads page tabs to reflect on latest agreements with Package Maintenance WG

9 participants