slides/index.html
2024-01-05 14:29:27 +01:00

242 lines
6.7 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>how to contribute to the Rust project</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/black.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section>how to contribute to the Rust project</section>
<section>
<h2>whoami</h2>
<div style="display: flex;">
<div>
<div>Nilstrieb</div>
<ul>
<li>contributing since 2022</li>
<li>compiler contributors team since 2023</li>
</ul>
<br>
</div>
<div>
<img src="me.png" height="300">
</div>
</div>
</section>
<section>
<h2>made in collaboration with</h2>
<div>you who sees this right now</div>
<div>and you</div>
<div>and you too</div>
</section>
<section data-markdown>
<textarea data-template>
## i want to contribute
- don't need to be an expert!
- time and interest
</textarea>
</section>
<section data-markdown>
<textarea data-template>
# what to contribute?
</textarea>
</section>
<section data-markdown>
<textarea data-template>
# not writing code
</textarea>
</section>
<section>
<h2>thanks.rust-lang.org</h2>
<img src="thanks-rlo.png">
</section>
<section data-markdown>
<textarea data-template>
## triaging issues
easy to get started
- labelling
- minimization
- bisecting
- adding tests
</textarea>
</section>
<section>
<h2>labelling</h2>
<img src="triage-issue-description.png">
</section>
<section>
<h2>labelling</h2>
<img src="triage-labels.png">
<a href="https://forge.rust-lang.org/release/issue-triaging.html">https://forge.rust-lang.org/release/issue-triaging.html</a>
</section>
<section>
<h2 style="display: flex; justify-content: center; align-items: center;">bisection <img src="E-needs-bisection.png" height="60"></h2>
<img src="triage-bisect-issue.png">
</section>
<section>
<h2>bisection</h2>
<pre><code data-triM>
$ cargo new bisect
Created binary (application) `bisect` package
$ cd bisect
$ vim src/main.rs
$ cargo-bisect-rustc --access github --regress ice \
--start 2023-01-01 --end 2023-12-19
</code></pre>
<a href="https://github.com/rust-lang/cargo-bisect-rustc">https://github.com/rust-lang/cargo-bisect-rustc</a>
</section>
<section>
<h2 style="display: flex; justify-content: center; align-items: center;">minimization <img src="E-needs-mcve.png" height="60"></h2>
<img src="triage-min-issue.png">
</section>
<section>
<h2>minimization</h2>
<p>I minimized that issue to 60 lines in 2 hours</p>
<a href="https://github.com/Nilstrieb/ice-104649">https://github.com/Nilstrieb/ice-104649</a>
<a href="http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/">http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/</a>
<br>
<a href="https://github.com/Nilstrieb/cargo-minimize">https://github.com/Nilstrieb/cargo-minimize</a>
</section>
<section>
<h2 style="display: flex; justify-content: center; align-items: center;">adding tests <img src="E-needs-test.png" height="60"></h2>
<p>bug has been fixed, but no test added</p>
<p>just commit a test to close the issue!</p>
</section>
<section data-markdown>
<textarea data-template>
## existing unstable features
high value, very needed
- stabilize
- close
</textarea>
</section>
<section>
<h2 style="display: flex; justify-content: center; align-items: center;">tracking issues<img src="C-tracking-issue.png" height="60"></h2>
<p>tracking the state of a feature</p>
<p>719 issues (2023-01-03)</p>
<p>new issues aren't ready yet</p>
<p>really old issues often have problems</p>
<p>go to golden middle :)</p>
</section>
<section>
<h2>summarize,</h2>
<p>aggregate <b>open</b> questions</p>
<p>aggregate <b>resolved</b> questions</p>
<p>propose next steps</p>
</section>
<section>
<h2>stabilize...</h2>
<img src="stabilize-report.png">
</section>
<section>
<h2>...or close</h2>
</section>
<section>
<h2>final comment periods</h2>
<img src="stabilize-fcp.png">
</section>
<section data-markdown>
<textarea data-template>
# writing code
</textarea>
</section>
<section data-markdown>
<textarea data-template>
## official tooling
always in need of help!
- rustfmt
- rustup
- clippy
- cargo
</textarea>
</section>
<section data-markdown>
<textarea data-template>
## standard library
limited review bandwidth!
- performance improvements
- bug fixes
</textarea>
</section>
<section data-markdown>
<textarea data-template>
## compiler contributions
- diagnostics are a great starting point
- internal compiler error fixes
</textarea>
</section>
<section>
<h2>diagnostics</h2>
<img src="my-first.png">
</section>
<section>
<h2>how to</h2>
<img src="A-diagnostics.png">
<br>
<a href="https://rustc-dev-guide.rust-lang.org/">https://rustc-dev-guide.rust-lang.org/</a>
<p>zulip.rust-lang.org, #t-compiler/help</p>
</section>
<section data-markdown>
<textarea data-template>
## reviews
- leave review comments on random PRs
</textarea>
</section>
<section data-markdown>
<textarea data-template>
# to remember
</textarea>
</section>
<section data-markdown>
<textarea data-template>
## review times
- volunteers
- weeks
- rust-lang/rust: ping if >2 weeks
</textarea>
</section>
<section>
<h2>see you on GitHub!</h2>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});
</script>
</body>
</html>