This is an automated email from the ASF dual-hosted git repository.
fenbox pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-answer-website.git
The following commit(s) were added to refs/heads/main by this push:
new 981f5c12 Add contributors page (#173)
981f5c12 is described below
commit 981f5c120e6c58a1d5384bf4f76f0b4c50a3e487
Author: Fen <[email protected]>
AuthorDate: Tue May 7 11:54:51 2024 +0800
Add contributors page (#173)
Add contributors page #148
---------
Co-authored-by: shuai <[email protected]>
---
community/about.md | 38 ------
community/team.json | 345 +++++++++++++++++++++++++++++++++++++++++++++++++
community/team.mdx | 80 ++++++++++++
docusaurus.config.js | 12 +-
scripts/contributor.js | 44 +++++++
sidebarsCommunity.js | 2 +-
6 files changed, 480 insertions(+), 41 deletions(-)
diff --git a/community/about.md b/community/about.md
deleted file mode 100644
index 336d634e..00000000
--- a/community/about.md
+++ /dev/null
@@ -1,38 +0,0 @@
----
-slug: /about
----
-# About
-
-As a Q&A platform software, we are committed to creating great product that
let more people experience the fun and efficiency of Q&A communities, unleash
the collective wisdom. As an open-source project, we also hope to embrace the
Apache way, and attract more partners sharing the same goals to join our
community. Let's build an inclusive and thriving open-source community together.
-
-## Roles
-
-Apache Answer aligns with the Apache Way. Based on community philosophy of
Apache Foundation, our community has the following roles: users, contributors,
committers, and PMCs.
-
-### Users
-
-For Apache Answer users, you can share and communicate with other users in the
[community](/community/support). If you need help, you can refer to our
[documentations](/docs) and pick the one that works for you. We encourage
everyone to help each other, so when you have an answer to a question while
searching, please don't hesitate to respond. We also welcome more users to join
our contributor family.
-
-### Contributor
-
-Becoming a contributor means you are interested in and contribute to the
project, not just code. In Answer, there are ways of contribution, and you can
find out more [here](/community/contributing). As long as you contribute to the
Answer project, you are a recognized Answer Contributor. If you become a
valuable contributor to the project, the Project Management Committee (PMC) may
invite you to become a Committer.
-
-### Committer
-
-Committers have read-write access to the code repository, have signed the
Contributor License Agreement (CLA), and have an `@apache.org` email address.
They can directly patch the code or documentation, and the Project Management
Committee (PMC) will generally approve these changes by default, or reject
them. Of course, the final decision is made by the PMC, not the committer
individually.
-
-There's no set timeline or specific code contribution requirement to become a
committer, long-term active contributors are typically considered strong
candidates. The Apache Software Foundation embraces diverse contributions, so
anyone who supports the community and is following the CoPDoC (Contributing to
Apache Projects by Doing the Right Thing) is a potential candidate for
committership.
-
-As a committer, you'll play a crucial role in shaping the project's future.
You'll review and merge code changes, test and vote on release candidates,
engage in product discussions, and continue to contribute in various ways. If a
committer is active and has made significant contributions to the community,
they may be invited to join the Project Management Committee (PMC).
-
-### PMC (Project Management Committee)
-
-A project management committee (PMC) is a committee of the Apache Software
Foundation charged with [responsibility and
governance](https://www.apache.org/foundation/governance/pmcs.html) for their
top level project. The PMC is the vehicle through which decision-making power
and responsibility for oversight devolves to developers.
-
-While committers on a project have the ability to update the code, only the
PMC as a body has the authority to vote on formal releases of the project's
software. The PMC is also responsible for voting in new committers and PMC
members to the project, and following other policies as outlined in this
[document](https://www.apache.org/dev/pmc.html#policy).
-
-## Reference
-
-- https://community.apache.org/contributors
-- https://community.apache.org/contributors/becomingacommitter.html
-- https://www.apache.org/dev/pmc.html
diff --git a/community/team.json b/community/team.json
new file mode 100644
index 00000000..54b33ace
--- /dev/null
+++ b/community/team.json
@@ -0,0 +1,345 @@
+[
+ {
+ "title": "Podling PMC",
+ "type": "ppmc",
+ "users": [
+ {
+ "name": "chrisdutz",
+ "avatar": "https://avatars.githubusercontent.com/u/651105",
+ "github": "https://github.com/chrisdutz",
+ "role": "Mentor"
+ },
+ {
+ "name": "fenbox",
+ "avatar": "https://avatars.githubusercontent.com/u/360618",
+ "github": "https://github.com/fenbox",
+ "role": "Developer"
+ },
+ {
+ "name": "jiangbonadia",
+ "avatar": "https://avatars.githubusercontent.com/u/1227386",
+ "github": "https://github.com/jiangbonadia",
+ "role": "Developer"
+ },
+ {
+ "name": "joyqi",
+ "avatar": "https://avatars.githubusercontent.com/u/59437",
+ "github": "https://github.com/joyqi",
+ "role": "Developer"
+ },
+ {
+ "name": "justinmclean",
+ "avatar": "https://avatars.githubusercontent.com/u/144504",
+ "github": "https://github.com/justinmclean",
+ "role": "Mentor"
+ },
+ {
+ "name": "kumfo",
+ "avatar": "https://avatars.githubusercontent.com/u/7692591",
+ "github": "https://github.com/kumfo",
+ "role": "Developer"
+ },
+ {
+ "name": "LinkinStars",
+ "avatar": "https://avatars.githubusercontent.com/u/19712692",
+ "github": "https://github.com/LinkinStars",
+ "role": "Developer"
+ },
+ {
+ "name": "mingcheng",
+ "avatar": "https://avatars.githubusercontent.com/u/21816",
+ "github": "https://github.com/mingcheng",
+ "role": "Developer"
+ },
+ {
+ "name": "PrimmaAnna",
+ "avatar": "https://avatars.githubusercontent.com/u/131739771",
+ "github": "https://github.com/PrimmaAnna",
+ "role": "Developer"
+ },
+ {
+ "name": "robinv8",
+ "avatar": "https://avatars.githubusercontent.com/u/12277531",
+ "github": "https://github.com/robinv8",
+ "role": "Developer"
+ },
+ {
+ "name": "shuashuai",
+ "avatar": "https://avatars.githubusercontent.com/u/30591202",
+ "github": "https://github.com/shuashuai",
+ "role": "Developer"
+ },
+ {
+ "name": "tisonkun",
+ "avatar": "https://avatars.githubusercontent.com/u/18818196",
+ "github": "https://github.com/tisonkun",
+ "role": "Mentor"
+ },
+ {
+ "name": "WillemJiang",
+ "avatar": "https://avatars.githubusercontent.com/u/219644",
+ "github": "https://github.com/WillemJiang",
+ "role": "Mentor"
+ }
+ ]
+ },
+ {
+ "title": "Committer",
+ "type": "committer",
+ "users": [
+ {
+ "name": "aichy126",
+ "avatar": "https://avatars.githubusercontent.com/u/16996097",
+ "github": "https://github.com/aichy126",
+ "role": "Developer"
+ },
+ {
+ "name": "haitaojarvis",
+ "avatar": "https://avatars.githubusercontent.com/u/344142",
+ "github": "https://github.com/haitaojarvis",
+ "role": "Developer"
+ }
+ ]
+ },
+ {
+ "title": "Contributor",
+ "type": "contributor",
+ "users": [
+ {
+ "name": "alrs",
+ "github": "https://github.com/alrs",
+ "avatar": "https://avatars.githubusercontent.com/u/28523"
+ },
+ {
+ "name": "Apricity001",
+ "github": "https://github.com/Apricity001",
+ "avatar": "https://avatars.githubusercontent.com/u/75669303"
+ },
+ {
+ "name": "axisofentropy",
+ "github": "https://github.com/axisofentropy",
+ "avatar": "https://avatars.githubusercontent.com/u/66315"
+ },
+ {
+ "name": "bazingame",
+ "github": "https://github.com/bazingame",
+ "avatar": "https://avatars.githubusercontent.com/u/25435118"
+ },
+ {
+ "name": "benharvie",
+ "github": "https://github.com/benharvie",
+ "avatar": "https://avatars.githubusercontent.com/u/34353676"
+ },
+ {
+ "name": "buttercannfly",
+ "github": "https://github.com/buttercannfly",
+ "avatar": "https://avatars.githubusercontent.com/u/36593447"
+ },
+ {
+ "name": "carehart",
+ "github": "https://github.com/carehart",
+ "avatar": "https://avatars.githubusercontent.com/u/389746"
+ },
+ {
+ "name": "crashburn65",
+ "github": "https://github.com/crashburn65",
+ "avatar": "https://avatars.githubusercontent.com/u/68039"
+ },
+ {
+ "name": "edocevol",
+ "github": "https://github.com/edocevol",
+ "avatar": "https://avatars.githubusercontent.com/u/9777120"
+ },
+ {
+ "name": "ericyangpan",
+ "github": "https://github.com/ericyangpan",
+ "avatar": "https://avatars.githubusercontent.com/u/212329"
+ },
+ {
+ "name": "findmyhappy",
+ "github": "https://github.com/findmyhappy",
+ "avatar": "https://avatars.githubusercontent.com/u/167661649"
+ },
+ {
+ "name": "fyzhu",
+ "github": "https://github.com/fyzhu",
+ "avatar": "https://avatars.githubusercontent.com/u/5175751"
+ },
+ {
+ "name": "g0ne150",
+ "github": "https://github.com/g0ne150",
+ "avatar": "https://avatars.githubusercontent.com/u/8351695"
+ },
+ {
+ "name": "geekymv",
+ "github": "https://github.com/geekymv",
+ "avatar": "https://avatars.githubusercontent.com/u/4549602"
+ },
+ {
+ "name": "genment",
+ "github": "https://github.com/genment",
+ "avatar": "https://avatars.githubusercontent.com/u/5207957"
+ },
+ {
+ "name": "hbsciw",
+ "github": "https://github.com/hbsciw",
+ "avatar": "https://avatars.githubusercontent.com/u/7039555"
+ },
+ {
+ "name": "hgaol",
+ "github": "https://github.com/hgaol",
+ "avatar": "https://avatars.githubusercontent.com/u/11908658"
+ },
+ {
+ "name": "iamtun",
+ "github": "https://github.com/iamtun",
+ "avatar": "https://avatars.githubusercontent.com/u/62387480"
+ },
+ {
+ "name": "itamadev",
+ "github": "https://github.com/itamadev",
+ "avatar": "https://avatars.githubusercontent.com/u/37014285"
+ },
+ {
+ "name": "jozefrebjak",
+ "github": "https://github.com/jozefrebjak",
+ "avatar": "https://avatars.githubusercontent.com/u/36922215"
+ },
+ {
+ "name": "Juneezee",
+ "github": "https://github.com/Juneezee",
+ "avatar": "https://avatars.githubusercontent.com/u/20135478"
+ },
+ {
+ "name": "k8scat",
+ "github": "https://github.com/k8scat",
+ "avatar": "https://avatars.githubusercontent.com/u/55872984"
+ },
+ {
+ "name": "kelvinkuo",
+ "github": "https://github.com/kelvinkuo",
+ "avatar": "https://avatars.githubusercontent.com/u/2784354"
+ },
+ {
+ "name": "lnnt",
+ "github": "https://github.com/lnnt",
+ "avatar": "https://avatars.githubusercontent.com/u/22957642"
+ },
+ {
+ "name": "lzakharov",
+ "github": "https://github.com/lzakharov",
+ "avatar": "https://avatars.githubusercontent.com/u/26368218"
+ },
+ {
+ "name": "Mangon",
+ "github": "https://github.com/Mangon",
+ "avatar": "https://avatars.githubusercontent.com/u/8265430"
+ },
+ {
+ "name": "nicolabosco87",
+ "github": "https://github.com/nicolabosco87",
+ "avatar": "https://avatars.githubusercontent.com/u/3645878"
+ },
+ {
+ "name": "nonvis",
+ "github": "https://github.com/nonvis",
+ "avatar": "https://avatars.githubusercontent.com/u/26996635"
+ },
+ {
+ "name": "Octobug",
+ "github": "https://github.com/Octobug",
+ "avatar": "https://avatars.githubusercontent.com/u/8007022"
+ },
+ {
+ "name": "pkmq24",
+ "github": "https://github.com/pkmq24",
+ "avatar": "https://avatars.githubusercontent.com/u/54759734"
+ },
+ {
+ "name": "plant99",
+ "github": "https://github.com/plant99",
+ "avatar": "https://avatars.githubusercontent.com/u/22407757"
+ },
+ {
+ "name": "pontovinte",
+ "github": "https://github.com/pontovinte",
+ "avatar": "https://avatars.githubusercontent.com/u/72367088"
+ },
+ {
+ "name": "ppchart",
+ "github": "https://github.com/ppchart",
+ "avatar": "https://avatars.githubusercontent.com/u/99037010"
+ },
+ {
+ "name": "prithvidasgupta",
+ "github": "https://github.com/prithvidasgupta",
+ "avatar": "https://avatars.githubusercontent.com/u/106804681"
+ },
+ {
+ "name": "PurseChicken",
+ "github": "https://github.com/PurseChicken",
+ "avatar": "https://avatars.githubusercontent.com/u/29956166"
+ },
+ {
+ "name": "ready4god2513",
+ "github": "https://github.com/ready4god2513",
+ "avatar": "https://avatars.githubusercontent.com/u/121682"
+ },
+ {
+ "name": "realize096",
+ "github": "https://github.com/realize096",
+ "avatar": "https://avatars.githubusercontent.com/u/102856702"
+ },
+ {
+ "name": "realMorrisLiu",
+ "github": "https://github.com/realMorrisLiu",
+ "avatar": "https://avatars.githubusercontent.com/u/8832717"
+ },
+ {
+ "name": "saurabhchatterjee23",
+ "github": "https://github.com/saurabhchatterjee23",
+ "avatar": "https://avatars.githubusercontent.com/u/2438415"
+ },
+ {
+ "name": "ShrutiC-git",
+ "github": "https://github.com/ShrutiC-git",
+ "avatar": "https://avatars.githubusercontent.com/u/66940685"
+ },
+ {
+ "name": "surapuramakhil",
+ "github": "https://github.com/surapuramakhil",
+ "avatar": "https://avatars.githubusercontent.com/u/9161543"
+ },
+ {
+ "name": "sy-records",
+ "github": "https://github.com/sy-records",
+ "avatar": "https://avatars.githubusercontent.com/u/33931153"
+ },
+ {
+ "name": "taigrr",
+ "github": "https://github.com/taigrr",
+ "avatar": "https://avatars.githubusercontent.com/u/8261498"
+ },
+ {
+ "name": "verytrap",
+ "github": "https://github.com/verytrap",
+ "avatar": "https://avatars.githubusercontent.com/u/166317454"
+ },
+ {
+ "name": "xialeistudio",
+ "github": "https://github.com/xialeistudio",
+ "avatar": "https://avatars.githubusercontent.com/u/5136506"
+ },
+ {
+ "name": "zahash",
+ "github": "https://github.com/zahash",
+ "avatar": "https://avatars.githubusercontent.com/u/36153955"
+ },
+ {
+ "name": "zhuangbiaowei",
+ "github": "https://github.com/zhuangbiaowei",
+ "avatar": "https://avatars.githubusercontent.com/u/93194"
+ }
+ ]
+ }
+]
diff --git a/community/team.mdx b/community/team.mdx
new file mode 100644
index 00000000..55f59c74
--- /dev/null
+++ b/community/team.mdx
@@ -0,0 +1,80 @@
+---
+slug: /team
+---
+
+
+# Team
+
+The Apache Answer team works on the core functionality, plugins, as well as
the documentation website. Current members of the team are listed in
alphabetical order below.
+
+import UserData from './team.json';
+
+## Podling PMC
+
+Each Podling Project Management Committee (PPMC) helps its Podling learn how
to govern itself. It works like a PMC but reports to the Incubator PMC instead
of to the ASF Board. Initially, it is composed of the Podling’s mentors and the
initial committers. The PPMC is directly responsible for the oversight of the
podling, and it also decides who to add as a PPMC member.
+
+<div className="row">
+ {
+ UserData[0].users.map(u => {
+ return (
+ <div key={u.name} className="col-xl-3 col-lg-4 col-md-4 col-sm-6
col-12 d-flex mb-4">
+ <img src={u.avatar} width="48" height="48" className="rounded me-2
lh-normal" />
+ <div>
+ <a href={u.github} target="_blank" className="d-block
lh-base">{u.name}</a>
+ <div className="fs-14 text-secondary">{u.role}</div>
+ </div>
+ </div>
+ )
+ })
+ }
+</div>
+
+## Committer
+
+Committers have read-write access to the code repository, signed the CLA, and
use an `@apache.org` email. They can patch code or docs, with approval from the
PMC. There's no timeline or specific requirement to become a committer, but
active contributors are strong candidates. As a committer, you shape the
project's future by reviewing and merging code, testing release candidates,
participating in discussions, and contributing in various ways. Active
contributors may be invited to join the PMC.
+
+<div className="row">
+ {
+ UserData[1].users.map(u => {
+ return (
+ <div key={u.name} className="col-xl-3 col-lg-4 col-md-4 col-sm-6
col-12 d-flex mb-4">
+ <img src={u.avatar} width="48" height="48" className="rounded me-2
lh-normal" />
+ <div>
+ <a href={u.github} target="_blank" className="d-block
lh-base">{u.name}</a>
+ <div className="fs-14 text-secondary">{u.role}</div>
+ </div>
+ </div>
+ )
+ })
+ }
+</div>
+
+## Contributor
+
+Becoming a contributor means you are interested in and contribute to the
project, not just code. In Answer, there are ways of contribution, and you can
find out more [here](/community/contributing). As long as you contribute to the
Answer project, you are a recognized Answer Contributor. If you become a
valuable contributor to the project, the Project Management Committee (PMC) may
invite you to become a Committer.
+
+<div className="row mb-3">
+ {
+ UserData[2].users.map(u => {
+ return (
+ <div key={u.name} className="col-xl-3 col-lg-4 col-md-4 col-sm-6
col-12 d-flex mb-1">
+ <a href={u.github} target="_blank">{u.name}</a>
+ </div>
+ )
+ })
+ }
+</div>
+
+You can find all the code contributors on and translation contributors on
these pages:
+
+- [Contributors to
apache/incubator-answer](https://github.com/apache/incubator-answer/graphs/contributors)
+- [Contributors to
apache/incubator-answer-plugin](https://github.com/apache/incubator-answer-plugin/graphs/contributors)
+- [Contributors to
apache/incubator-answer-website](https://github.com/apache/incubator-answer-website/graphs/contributors)
+- [Contributors to
translation](https://crowdin.com/project/answer/reports/top-members)
+
+## Reference
+
+- https://community.apache.org/contributors
+- https://community.apache.org/contributors/becomingacommitter.html
+- https://incubator.apache.org/guides/ppmc.html
+- https://www.apache.org/dev/pmc.html
diff --git a/docusaurus.config.js b/docusaurus.config.js
index b326be1b..9bb1a6a7 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -128,8 +128,12 @@ const config = {
to: 'https://meta.answer.dev',
},
{
- label: 'About',
- to: 'community/about',
+ label: 'Team',
+ to: 'community/team',
+ },
+ {
+ label: 'Security',
+ to: 'community/security',
},
{
label: 'Contributing',
@@ -228,6 +232,10 @@ const config = {
to: '/community/support',
from: ['/contact', '/community'],
},
+ {
+ to: '/community/team',
+ from: '/community/about',
+ },
],
},
],
diff --git a/scripts/contributor.js b/scripts/contributor.js
new file mode 100644
index 00000000..684afdf9
--- /dev/null
+++ b/scripts/contributor.js
@@ -0,0 +1,44 @@
+// Usage: node scripts/contributor.js
+// get contributors from github reset api and save to team.json
+// Notice: per_page max is 100, so if contributors more than 100, need to
change page number
+
+var fs = require('fs');
+var path = require('path');
+
+var url =
'https://api.github.com/repos/apache/incubator-answer/contributors?page=1&per_page=100';
+var outputFile = path.resolve(__dirname, '../community/team.json');
+
+// ignore PPMC and committers members
+var ignoreList = ['PrimmaAnna', 'chrisdutz', 'fenbox', 'joyqi',
'justinmclean', 'kumfo', 'LinkinStars', 'mingcheng', 'jiangbonadia',
'WillemJiang', 'robinv8', 'shuashuai', 'aichy126', 'haitaojarvis'];
+
+fetch(url).then(function(res) {
+ return res.json();
+}).then(function(data) {
+ console.log('data', data.length);
+ var contributors = data.map(function(contributor) {
+ return {
+ name: contributor.login,
+ github: contributor.html_url,
+ avatar: contributor.avatar_url,
+ };
+ }).filter(function(contributor) {
+ return !ignoreList.includes(contributor.name);
+ });
+ // 按照name字段进行排序
+ contributors.sort(function(a, b) {
+ return a.name.localeCompare(b.name);
+ });
+
+ // read existing data from team.json
+ var existingData = fs.readFileSync(outputFile, 'utf8');
+ var jsonData = JSON.parse(existingData);
+ jsonData[2].users = contributors;
+ // save data to team.json
+ fs.writeFile(outputFile, JSON.stringify(jsonData, null, 2), function(err) {
+ if (err) {
+ console.error('write file err:', err);
+ }
+ });
+}).catch(function(err) {
+ console.log('err', err);
+});
diff --git a/sidebarsCommunity.js b/sidebarsCommunity.js
index d84015d1..4ae6b6b6 100644
--- a/sidebarsCommunity.js
+++ b/sidebarsCommunity.js
@@ -1,7 +1,7 @@
module.exports = {
community: [
'support',
- 'about',
+ 'team',
'security',
{
type: 'category',