From 44d6ea84a2aa88767d48dca0dcec7c5e411e6e3c Mon Sep 17 00:00:00 2001 From: italo jose Date: Wed, 25 Feb 2026 17:15:29 -0300 Subject: [PATCH 1/5] feat: add dynamic contributors page with GitHub data fetching, update navigation, and include `rspack` and `tools-core` in the API package listing. --- v3-docs/docs/.vitepress/config.mts | 18 +++- .../docs/.vitepress/theme/Contributors.vue | 99 +++++++++++++++++++ v3-docs/docs/.vitepress/theme/index.ts | 2 + v3-docs/docs/api/packages-listing.md | 2 + .../docs/{about => community}/contributing.md | 0 v3-docs/docs/community/contributors.data.ts | 60 +++++++++++ v3-docs/docs/community/contributors.md | 13 +++ 7 files changed, 190 insertions(+), 4 deletions(-) create mode 100644 v3-docs/docs/.vitepress/theme/Contributors.vue rename v3-docs/docs/{about => community}/contributing.md (100%) create mode 100644 v3-docs/docs/community/contributors.data.ts create mode 100644 v3-docs/docs/community/contributors.md diff --git a/v3-docs/docs/.vitepress/config.mts b/v3-docs/docs/.vitepress/config.mts index bef4db33ed..97af62202c 100644 --- a/v3-docs/docs/.vitepress/config.mts +++ b/v3-docs/docs/.vitepress/config.mts @@ -163,10 +163,6 @@ export default defineConfig({ text: "Roadmap", link: "/about/roadmap", }, - { - text: "Contributing", - link: "/about/contributing", - } ], collapsed: true, }, @@ -631,6 +627,20 @@ export default defineConfig({ ], collapsed: true, }, + { + text: "Community", + items: [ + { + text: "Contributing", + link: "/community/contributing", + }, + { + text: "Contributors", + link: "/community/contributors", + }, + ], + collapsed: true, + }, ], socialLinks: [ diff --git a/v3-docs/docs/.vitepress/theme/Contributors.vue b/v3-docs/docs/.vitepress/theme/Contributors.vue new file mode 100644 index 0000000000..d96c993fd6 --- /dev/null +++ b/v3-docs/docs/.vitepress/theme/Contributors.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/v3-docs/docs/.vitepress/theme/index.ts b/v3-docs/docs/.vitepress/theme/index.ts index afddc3f960..e546ad156d 100644 --- a/v3-docs/docs/.vitepress/theme/index.ts +++ b/v3-docs/docs/.vitepress/theme/index.ts @@ -3,6 +3,7 @@ import type { Theme } from "vitepress"; import DefaultTheme from "vitepress/theme"; import ApiBox from "../../components/ApiBox.vue"; import ApiMap from "../../components/ApiMap.vue"; +import Contributors from "./Contributors.vue"; import Layout from "./Layout.vue"; import "./theme.css"; @@ -12,6 +13,7 @@ export default { // register your custom global components app.component("ApiBox", ApiBox); app.component("ApiMap", ApiMap); + app.component("Contributors", Contributors); }, Layout, } satisfies Theme; diff --git a/v3-docs/docs/api/packages-listing.md b/v3-docs/docs/api/packages-listing.md index d53b36c78f..2b283d0acf 100644 --- a/v3-docs/docs/api/packages-listing.md +++ b/v3-docs/docs/api/packages-listing.md @@ -125,6 +125,7 @@ ### [retry](https://github.com/meteor/meteor/tree/devel/packages/retry) {#retry} ### [roles](https://github.com/meteor/meteor/tree/devel/packages/roles) {#roles} ### [routepolicy](https://github.com/meteor/meteor/tree/devel/packages/routepolicy) {#routepolicy} +### [rspack](https://github.com/meteor/meteor/tree/devel/packages/rspack) {#rspack} ### [server-render](https://github.com/meteor/meteor/tree/devel/packages/server-render) {#server-render} ### [service-configuration](https://github.com/meteor/meteor/tree/devel/packages/service-configuration) {#service-configuration} ### [session](https://github.com/meteor/meteor/tree/devel/packages/session) {#session} @@ -142,6 +143,7 @@ ### [test-server-tests-in-console-once](https://github.com/meteor/meteor/tree/devel/packages/test-server-tests-in-console-once) {#test-server-tests-in-console-once} ### [tinytest](https://github.com/meteor/meteor/tree/devel/packages/tinytest) {#tinytest} ### [tinytest-harness](https://github.com/meteor/meteor/tree/devel/packages/tinytest-harness) {#tinytest-harness} +### [tools-core](https://github.com/meteor/meteor/tree/devel/packages/tools-core) {#tools-core} ### [tracker](https://github.com/meteor/meteor/tree/devel/packages/tracker) {#tracker} ### [twitter-config-ui](https://github.com/meteor/meteor/tree/devel/packages/twitter-config-ui) {#twitter-config-ui} ### [twitter-oauth](https://github.com/meteor/meteor/tree/devel/packages/twitter-oauth) {#twitter-oauth} diff --git a/v3-docs/docs/about/contributing.md b/v3-docs/docs/community/contributing.md similarity index 100% rename from v3-docs/docs/about/contributing.md rename to v3-docs/docs/community/contributing.md diff --git a/v3-docs/docs/community/contributors.data.ts b/v3-docs/docs/community/contributors.data.ts new file mode 100644 index 0000000000..6edc582ecb --- /dev/null +++ b/v3-docs/docs/community/contributors.data.ts @@ -0,0 +1,60 @@ +export interface Contributor { + login: string + avatar_url: string + html_url: string + contributions: number +} + +declare const data: Contributor[] +export { data } + +export default { + async load(): Promise { + const contributors: Contributor[] = [] + let page = 1 + const perPage = 100 + + while (true) { + const headers: Record = { + Accept: 'application/vnd.github.v3+json', + 'User-Agent': 'meteor-docs-builder', + } + + if (process.env.GITHUB_TOKEN) { + headers['Authorization'] = `Bearer ${process.env.GITHUB_TOKEN}` + } + + const response = await fetch( + `https://api.github.com/repos/meteor/meteor/contributors?per_page=${perPage}&page=${page}`, + { headers } + ) + + if (!response.ok) { + console.warn( + `[contributors.data] GitHub API error: ${response.status} ${response.statusText}` + ) + break + } + + const batch = (await response.json()) as any[] + + if (!batch.length) break + + contributors.push( + ...batch + .filter((c) => c.type === 'User') + .map((c) => ({ + login: c.login, + avatar_url: c.avatar_url, + html_url: c.html_url, + contributions: c.contributions, + })) + ) + + if (batch.length < perPage) break + page++ + } + + return contributors + }, +} diff --git a/v3-docs/docs/community/contributors.md b/v3-docs/docs/community/contributors.md new file mode 100644 index 0000000000..19376c9c7b --- /dev/null +++ b/v3-docs/docs/community/contributors.md @@ -0,0 +1,13 @@ +--- +outline: false +--- + +# Contributors + +Thank you to all the amazing people who have contributed to Meteor! This list is automatically generated from the [meteor/meteor](https://github.com/meteor/meteor) GitHub repository, sorted by number of commits. + + + + From df6d66679647ff90c0beffcf1b7c1f87ebc583e4 Mon Sep 17 00:00:00 2001 From: italo jose Date: Wed, 25 Feb 2026 17:23:31 -0300 Subject: [PATCH 2/5] feat: enhance the contributors page to display technical committee and core maintainers with optional contribution counts. --- .../docs/.vitepress/theme/Contributors.vue | 15 +++++--- v3-docs/docs/community/contributors.md | 36 ++++++++++++++++--- v3-docs/docs/history.md | 16 ++++----- 3 files changed, 51 insertions(+), 16 deletions(-) diff --git a/v3-docs/docs/.vitepress/theme/Contributors.vue b/v3-docs/docs/.vitepress/theme/Contributors.vue index d96c993fd6..2b817192b7 100644 --- a/v3-docs/docs/.vitepress/theme/Contributors.vue +++ b/v3-docs/docs/.vitepress/theme/Contributors.vue @@ -1,9 +1,16 @@