Skip to content

docs: add /maintenance/team page #8057

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
819fd77
docs: add /maintenance/team page
JoshuaKGoldberg Dec 12, 2023
ea98bb7
Apply Brad's requested changes
JoshuaKGoldberg Jan 7, 2024
f635a2d
Styles and social links
JoshuaKGoldberg Jan 7, 2024
a709171
Merge branch 'main'
JoshuaKGoldberg Jan 7, 2024
696bbb9
Mentioned Contributor Tiers
JoshuaKGoldberg Jan 7, 2024
a008e59
Added Sponsor Us section
JoshuaKGoldberg Jan 7, 2024
c16f935
chore(deps): update dependency eslint-plugin-jest to v27.6.3 (#230)
renovate[bot] Jan 31, 2024
c490591
chore(deps): update dependency netlify to v13.1.13 (#231)
renovate[bot] Jan 31, 2024
2e98db7
chore(deps): update dependency yargs to v17.7.2 (#233)
renovate[bot] Jan 31, 2024
2e541ed
chore(deps): update dependency @prettier/sync to v0.5.0 (#235)
renovate[bot] Jan 31, 2024
c411581
chore(deps): update dependency @types/node to v20.11.9 (#236)
renovate[bot] Jan 31, 2024
d88cbf0
chore(deps): update dependency chai to v4.4.1 (#237)
renovate[bot] Jan 31, 2024
9c4ce35
chore(deps): update dependency @swc/core to v1.3.107 (#238)
renovate[bot] Jan 31, 2024
9da9f21
chore(deps): update dependency esbuild to ~0.20.0 (#240)
renovate[bot] Jan 31, 2024
675ec80
Merge branch 'main' into maintenance-team-page
JoshuaKGoldberg Feb 1, 2024
a12896d
Alphabetized CSS (sorry StyleShit 😛)
JoshuaKGoldberg Feb 1, 2024
afff12a
Update packages/website/src/components/team/TeamBio.module.css
JoshuaKGoldberg Feb 1, 2024
6a6a6c8
The rest of .serviceIconLink
JoshuaKGoldberg Feb 1, 2024
be1ac3c
<hr />
JoshuaKGoldberg Feb 1, 2024
f8a4853
Shrunk images and used my newer colors
JoshuaKGoldberg Feb 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
"bivariant",
"blockless",
"blurple",
"bradzacher",
"camelcase",
"Cena",
"codebases",
Expand All @@ -88,13 +89,16 @@
"IDE's",
"IIFE",
"IIFEs",
"jameshenry",
"joshuakgoldberg",
"linebreaks",
"lzstring",
"markdownlint",
"metastring",
"necroing",
"nocheck",
"noninteractive",
"Nrwl",
"nullish",
"onboarded",
"OOM",
Expand Down
98 changes: 98 additions & 0 deletions docs/maintenance/Team.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
---
id: team
title: Team
---

import { TeamBioDivider } from '@site/src/components/team/TeamBioDivider';
import { TeamBioList } from '@site/src/components/team/TeamBioList';

The typescript-eslint organization is an independent open source project. Its
members are volunteer open source developers dedicated to making the
TypeScript linting experience great.

<TeamBioDivider />

## Maintainers

<TeamBioList
bios={[
{
description:
'Computer scientist. Cider drinker. Linting enthusiast. Australian.',
links: [
['twitter', 'https://twitter.com/bradzacher'],
['mastodon', 'https://mastodon.online/@bradzacher'],
['www', 'https://zacher.com.au'],
],
name: 'Brad Zacher',
username: 'bradzacher',
},
{
description:
'Director of Engineering Nrwl. 5x Microsoft MVP for TypeScript.',
links: [
['twitter', 'https://twitter.com/MrJamesHenry'],
['www', 'https://jameshenry.blog'],
],
name: 'James Henry',
username: 'jameshenry',
},
{
description: 'Full time open source maintainer. Likes cats. 🐈‍⬛',
links: [
['twitter', 'https://twitter.com/JoshuaKGoldberg'],
['mastodon', 'https://fosstodon.org/@JoshuaKGoldberg'],
['www', 'https://joshuakgoldberg.com'],
],
name: 'Josh Goldberg',
username: 'joshuakgoldberg',
},
]}
description="Leaders stewarding the direction of the project."
explanation="In addition to committer tasks, maintainers work on the processes behind the project, relationships with neighboring ecosystem projects, and manage regular releases."
/>

<TeamBioDivider />

## Committers

<TeamBioList
bios={[
{
description: 'Hello 🐱.',
name: 'Armano2',
username: 'armano2',
},
{
description: 'I care about languages!',
links: [
['www', 'https://joshcena.com'],
['twitter', 'https://twitter.com/SidaChen63'],
],
name: 'Joshua Chen',
username: 'josh-cena',
},
]}
description="Code committers who regularly work on the code in the repository."
explanation="Committers triage issues, review pull requests, and write code to push the project's functionality and stability forward."
/>

<TeamBioDivider />

## Join Us

We're always looking for developers to add to the team.
If you're interest in becoming a committer, go ahead and get started with our [Contributing guide](../Contributing.mdx).
[Contributor Tiers](./Contributor_Tiers.mdx) describes the expectations for entering and then staying at any contributor tier.

<TeamBioDivider />

## Sponsor Us

As an independent open source project, funding for our work comes from the community.
We're eternally grateful to every individual and organization able to help us keep working.

See [`.github/SPONSORSHIPS.md`](https://github.com/typescript-eslint/typescript-eslint/blob/main/.github/SPONSORSHIPS.md) for documentation on how and why to sponsor us.

You can find our biggest sponsors on [typescript-eslint.io > Financial Contributors](https://typescript-eslint.io/#financial-contributors).
More can be found on [our Open Collective](https://opencollective.com/typescript-eslint).
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@
"tslint": "^6.1.3",
"tsx": "^4.6.2",
"typescript": ">=4.3.5 <5.4.0",
"yargs": "17.7.1"
"yargs": "17.7.2"
},
"resolutions": {
"@jest/create-cache-key-function": "^29",
Expand Down
2 changes: 1 addition & 1 deletion packages/website-eslint/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"@typescript-eslint/scope-manager": "6.20.0",
"@typescript-eslint/typescript-estree": "6.20.0",
"@typescript-eslint/visitor-keys": "6.20.0",
"esbuild": "~0.19.0",
"esbuild": "~0.20.0",
"eslint": "*",
"esquery": "*",
"prettier": "^3.0.3",
Expand Down
1 change: 1 addition & 0 deletions packages/website/sidebars/sidebar.base.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ module.exports = {
},
type: 'category',
},
'maintenance/team',
],
label: 'Maintenance',
link: {
Expand Down
50 changes: 50 additions & 0 deletions packages/website/src/components/team/TeamBio.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
.teamBio {
--square-size: 9rem;

display: flex;
flex-direction: column;
max-width: var(--square-size);
}

.profilePhoto {
height: var(--square-size);
width: var(--square-size);
}

.texts {
display: flex;
flex-direction: column;
gap: 0.5rem;
margin-top: 0.75rem;
}

.name {
font-size: 0.9rem;
}

.description {
font-size: 0.85rem;
}

.services {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
list-style-type: none;
padding-left: 0;
}

.serviceIconLink {
transition: opacity 200ms;
}

.serviceIconLink:not(:focus, :hover) {
opacity: 0.7;
}

.serviceIcon {
--size: 1.25rem;

height: var(--size);
width: var(--size);
}
46 changes: 46 additions & 0 deletions packages/website/src/components/team/TeamBio.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
import React from 'react';

import styles from './TeamBio.module.css';

export interface BioEntry {
description: string;
links?: [string, string][];
name: string;
username: string;
}

export function TeamBio({
description,
links = [],
name,
username,
}: BioEntry): React.JSX.Element {
return (
<li className={styles.teamBio}>
<img
alt=""
className={styles.profilePhoto}
src={`/img/team/${username}.jpg`}
/>
<div className={styles.texts}>
<strong className={styles.name}>{name}</strong>
<p className={styles.description}> {description}</p>
</div>
<ol className={styles.services}>
{[['github', `https://github.com/${username}`] as const, ...links]
.sort(([a], [b]) => a.localeCompare(b))
.map(([service, url]) => (
<li key={service}>
<a className={styles.serviceIconLink} href={url} target="_blank">
<img
alt={service}
className={styles.serviceIcon}
src={`/img/${service}.svg`}
/>
</a>
</li>
))}
</ol>
</li>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.teamBioDivider {
border-bottom: 1px solid var(--ifm-color-emphasis-200);
margin: 3rem 0;
}
7 changes: 7 additions & 0 deletions packages/website/src/components/team/TeamBioDivider.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import React from 'react';

import styles from './TeamBioDivider.module.css';

export function TeamBioDivider(): React.JSX.Element {
return <hr className={styles.teamBioDivider} />;
}
29 changes: 29 additions & 0 deletions packages/website/src/components/team/TeamBioList.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.description {
font-size: 1.25rem;
}

.bios {
--ifm-list-item-margin: 0;

display: flex;
gap: 1.5rem;
padding-left: 0;
}

@media screen and (width >= 1200px) {
.teamBioList {
display: flex;
gap: clamp(2rem, 2.5vw, 5rem);
}

.texts {
width: clamp(20rem, 35vw, 35rem);
}

.bios {
flex-wrap: wrap;
gap: clamp(1rem, 2.5vw, 3rem);
width: 100%;
margin-top: -3.5rem;
}
}
31 changes: 31 additions & 0 deletions packages/website/src/components/team/TeamBioList.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import React from 'react';

import type { BioEntry } from './TeamBio';
import { TeamBio } from './TeamBio';
import styles from './TeamBioList.module.css';

export interface TeamBioListProps {
bios: BioEntry[];
description: string;
explanation: string;
}

export function TeamBioList({
bios,
description,
explanation,
}: TeamBioListProps): React.JSX.Element {
return (
<div className={styles.teamBioList}>
<div className={styles.texts}>
<p className={styles.description}>{description}</p>
<p className={styles.explanation}>{explanation}</p>
</div>
<ul className={styles.bios}>
{bios.map(bio => (
<TeamBio {...bio} key={bio.name} />
))}
</ul>
</div>
);
}
Binary file added packages/website/static/img/team/armano2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added packages/website/static/img/team/bradzacher.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added packages/website/static/img/team/jameshenry.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added packages/website/static/img/team/josh-cena.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions packages/website/static/img/www.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading