Skip to content

feat: introduced new downloads page - #7357

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

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

Conversation

@ovflowd

@ovflowdovflowd commented Dec 25, 2024

Copy link
Copy Markdown
Member

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

@ovflowdovflowd 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 ownersDecember 25, 2024 02:33
@vercel

vercelBot commented Dec 25, 2024

Copy link
Copy Markdown

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

NameStatusPreviewUpdated (UTC)
nodejs-org✅ Ready (Inspect)Visit PreviewDec 28, 2024 3:03am

@github-actions

This comment has been minimized.

GeoffreyBooth

This comment was marked as resolved.

@ovflowd

This comment was marked as resolved.

@ovflowd

This comment was marked as outdated.

@github-actions

github-actionsBot commented Dec 25, 2024

Copy link
Copy Markdown
Contributor

Unit Test Coverage Report

LinesStatementsBranchesFunctions
Coverage: 85%
84.08% (597/710)65.12% (183/281)82.7% (110/133)

Unit Test Report

TestsSkippedFailuresErrorsTime
1240 💤0 ❌0 🔥4.903s ⏱️

@MattIPv4

This comment was marked as resolved.

Comment threadapps/site/snippets/en/download/pnpm.bash Outdated
@ovflowd

This comment was marked as resolved.

@ljharb

This comment was marked as resolved.

@ovflowd

Copy link
Copy Markdown
MemberAuthor

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

github-actionsBot commented Dec 27, 2024

Copy link
Copy Markdown
Contributor

Lighthouse Results

URLPerformanceAccessibilityBest PracticesSEOReport
/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🔗

@ljharbljharb left a comment

Copy link
Copy Markdown
Member

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!

Comment threadapps/site/snippets/en/download/nvm.bash
Co-authored-by: Jordan Harband <ljharb@gmail.com>
Signed-off-by: Claudio W <cwunder@gnome.org>
@ovflowdovflowd added the github_actions:pull-request Trigger Pull Request Checks label Dec 27, 2024
@ovflowd

Copy link
Copy Markdown
MemberAuthor

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

@MattIPv4MattIPv4 left a comment

Copy link
Copy Markdown
Member

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).

Comment threadapps/site/snippets/en/download/fnm.bash
Comment threadapps/site/snippets/en/download/fnm.bash
@ovflowd

This comment was marked as resolved.

@ovflowd

This comment was marked as resolved.

@MattIPv4

Copy link
Copy Markdown
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
Copy Markdown
MemberAuthor

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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

i18nIssues/PRs related to the Website InternationalisationinfrastructureIssues/PRs related to the Repository Infrawebsite redesignIssue/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

@ovflowd@MattIPv4@ljharb@mikeesto@targos@AugustinMauroy@GeoffreyBooth@zkochan@rxmarbles