Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 47a54a6

Browse files
committedOct 25, 2024
WIP: a doc to help us run a code and learn event
1 parent 1e45c74 commit 47a54a6

File tree

1 file changed

+107
-0
lines changed

1 file changed

+107
-0
lines changed
 

‎docs/code-and-learn-agenda.md

+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Workshop: ExpressJS - Code & Learn
2+
3+
NOTE: this doc is for CityJS Medellin, but hosted here as an example for future events folks in the ecosystem might run.
4+
5+
Join us for a hands-on workshop where you’ll learn how to get involved and contribute to the ExpressJS repository and organization. We’ll walk through the best ways to participate,
6+
from joining the Security Working Group to the Triage team and engaging in discussions. You’ll also gain insights into the structure of the modules and priorities for the future.
7+
Get ready for a practical session where we’ll triage real issues and even open a pull request, giving you a direct path to becoming an ExpressJS contributor!
8+
9+
---
10+
## Introduction (5 min)
11+
12+
Introduce the folks running it, give a general overview of how we will spend the time. Ask people how much the know about the project and their technical skill levels.
13+
14+
## Introduction to Express (10-15 min)
15+
16+
Express is the original Node.js server framework. The [first commit was in 2009 by TJ
17+
Holowaychuk](https://github.com/expressjs/express/commit/9998490f93d3ad3d56c00d23c0aa13fac41c3f6b) and since has gon through a few different eras of leadership. These days, Express
18+
is an OpenJS Impact project, and is governed by an open model with a Technical Committee and many opportunities to get involved depending on your skills and available time. In
19+
today's Code and Learn we are going to go through some of those ways to get involved and help you all make meaningful contributions to the project.
20+
21+
The project is composed of 43 repos in 3 github orgs:
22+
23+
- `expressjs`: The primary org where the `express` repo lives. The other repos in this org are all directly part of `express` or dependent on `express` api's
24+
- `pillarjs`: This org is where generic but high level server components are hosted. Things like the `router` and `path-to-regexp` which can be used outside of `express` but are
25+
still high level.
26+
- `jshttp`: This org is where lower level `http` and protocol level packages are hosted. Things like `cookie` and `mime-db`.
27+
28+
Because we are so spread out, we use a repo in the `expressjs` org called `discussions` to have cross-cutting or project wide discussions. Often when deciding what to work on, this
29+
is the best place to start. More on that to come.
30+
31+
Lets talk a little bit about the project governance and leadership. We have a few roles which are great ways to start onboarding to the project:
32+
33+
- The triage team: this team focuses on helping answer the many questions which come into the project issue tracker, as well as how to best organize answers and update docs
34+
- The security working group: this group is in charge of helping us define and maintain our security model, docs, and reporting
35+
36+
Additionally we have roles for folks who are making technical contributions:
37+
38+
- Contributor: these are folks who have made a few contributions to code and are given commit access to land PRs and their own work
39+
- Repo Captains: these are folks who where contributors on a given repo but have demonstrated strong judgement and reliability who are also given publish permissions and more
40+
responsibility within the given repo
41+
42+
And finally we have the leadership group, which is the Technical Committee or as we call it, the TC. This group oversees the larger project direction and is there to help resolve conflicts or make
43+
important decisions.
44+
45+
## Questions
46+
47+
Does anyone have questions on the structure of the project?
48+
49+
## Project Goals (10 - 15 min)
50+
51+
Because the project is made up of individual volunteers with many different skills, we attempt to organize the priorities and work with a distributed consensus model. This means
52+
the goals are yours to set. That said, currently because the project is undergoing a revitalization effort, we are maintaining a central list of goals in the `discussions`
53+
repository.
54+
55+
### General Goals
56+
57+
https://github.com/expressjs/discussions
58+
59+
### Express 5 Goals
60+
61+
https://github.com/expressjs/discussions/issues/266
62+
63+
### Express 6 Goals
64+
65+
https://github.com/expressjs/discussions/issues/267
66+
67+
### Questions
68+
69+
Anyone have questions before we start contributing?
70+
71+
## Lets Start Contributing (1-1.5h)
72+
73+
We picked out three specific goals the project has which we think will make simple yet very helpful contributions today:
74+
75+
1. Documentation updates for v5: https://github.com/expressjs/expressjs.com/
76+
1. Updating dependencies to use `^`: ranges: https://github.com/expressjs/discussions/pull/290
77+
1. Adding engines fields to packages https://github.com/expressjs/discussions/pull/289
78+
1. Remove compat deps: ex. https://github.com/pillarjs/router/blob/master/package.json
79+
1. Triage issues: https://github.com/expressjs/express/blob/master/Triager-Guide.md
80+
81+
82+
### Demo one of each
83+
84+
1. Update a dep, show how to test it locally, then show how to push it up and open a PR.
85+
- (router -> parseurl) https://github.com/pillarjs/router/blob/878b0e02365047f34c66b4a252e91597f8056635/package.json
86+
87+
2. Update an engines field. Opening the PR and testing already demo'd.
88+
- (router) https://github.com/pillarjs/router/blob/master/package.json
89+
90+
3. Update a doc. Show how to run locally. Open a PR and show the preview URL.
91+
- https://github.com/expressjs/expressjs.com?tab=readme-ov-file#local-setup-using-docker
92+
93+
4. Triage an issue.
94+
- (bad) https://github.com/jshttp/cookie/pull/202
95+
- (spam) https://github.com/expressjs/express/pull/6083
96+
- (self resolved) https://github.com/expressjs/express/issues/6085
97+
- (typescript errors) https://github.com/expressjs/express/issues/6022
98+
- (maybe related?) https://github.com/expressjs/express/issues/6022
99+
- (java !== javascript) https://github.com/expressjs/express/issues/6022
100+
101+
### Working time
102+
103+
@TODO
104+
105+
## Wrapping up
106+
107+
@TODO?

0 commit comments

Comments
 (0)