George Kalpakas | Twitter: https://twitter.com/gkalpakas
Νotes for the "theoretical" part of the 2nd Angular Athens workshop on contributing to Angular (and OSS in general).
Table of contents
Good resources on OSS:
There are many different ways to contribute to OSS (in general) and the Angular project (in particular), including (but not limited to):
For PRs in particular, there can be several types (with varying degrees of complexity):
IMPORTANT:
Before spending significant time on a PR, coordinate with the team.
The Angular project comprises several repositories. Choose where to contribute based on your interests:
@angular/*
packages (such as core
, forms
, router
, animations
, etc.).@angular/cli
package and all @angular-devkit/*
packages.@nguniversal/*
packages.@angular/cdk
and @angular/material
packages (plus some other packages related to CDK/Material).angular-material
package (i.e. Material design for AngularJS v1.x).For contributions that do not involve submitting a PR, the process is simple:
If you want to create a reproduction for an issue, you have two options:
NOTE:
Generally, StackBlitz is preferable as a reproduction medium, but there are some issues that cannot be reproduced on StackBlitz. For example, issues involving ServiceWorkers, server-side rendering, custom build configurations, etc.
Below is an overview of the process of creating and submitting a PR. For more details, check out CONTRIBUTING.md.
NOTE:
For simple PRs that only affect a single file (and no tests), one can work directly in their browser and submit a PR using the GitHub UI .
[ ] 1. Ensure the following tools are installed and available on the PATH
:
[ ] 2. Fork the angular/angular repo. (instructions)
[ ] 3. Clone your fork locally. (instructions)
[ ] 4. Pick an issue to work on.
For the workshop, you can pick from our curated list.
[ ] 5. Write one or more failing tests (if applicable).
[ ] 6. Implement the fix or feature.
[ ] 7. Submit a PR. (Also sign the CLA if not already signed.)
[ ] 8. Address any review feedback.
[ ] 9. :tada:
You can freely choose what kind of contribution you want to work on.
(For the workshop, we are sticking to the angular/angular
repo.)
Issues labelled as hotlist: community-help are good candidates for contributions from the community.
Since there are currently over 2500 issues on angular/angular
(:sweat_smile:), we have put together a curated list of issues that we consider suitable for first-time contributors.
There are basically 4 types of issues on the list:
[ ] support:
[ ] documentation:
[ ] docs-infra:
[ ] bug:
@angular/*
packages).NOTE: There is currently only one issue of this type, because such issues tend to be more challenging (and thus not suitable for a first-time contributor).
Depending on the type of issue, there are different commands one can run to prepare their environment before starting with the actual work.
support
: N/Adocumentation
or docs-infra
: yarn --cwd=aio setup
bug
: yarn install
:computer: Happy hacking! :rocket: