[TWiR] Call for Participation

Hello Rustaceans,

Inspired by the "contributors wanted" wiki, starting issue 120 of This Week in Rust, there will be a new section "Call for Participation" which will highlight tasks from Rust community projects, specially to newcomers who want to get started with contributing to open-source projects.

If you are looking for contributors for your Rust project, please reply to this thread with a link to the task in your issue tracker.

Some guidelines to follow while submitting your task:

  • Ensure that your project has at least one open-source licence. (we've decided to not define the term "open-source" and it is left to your own interpretation).
  • Ensure that the issue tracker for your project is publicly accessible.
  • Create a new issue in your issue tracker and clearly describe the task. Also mention the difficulty level (easy/medium/hard/tedious), either as a tag/label or somewhere in the title/description.
  • If you have specific requirements for contributors (e.g., copyright waiver), it must be mentioned in the description of the task (preferably with a link to CONTRIBUTING.md).

Also take a look at Manish's great guide on making your open-source project newcomer-friendly.


Suggestions & feedbacks are welcome. I also welcome suggestions for a better section name.

35 Likes

Here are some recent mentored bugs for Rust that @Manishearth put together: Etherpad Mozilla

3 Likes

I've recently started adding new-contributor-friendly labels to the issues on cargo-edit. You can find open cargo-edit issues here.

If I understand correctly, you want me to link to one task? Okay, here it is:

2 Likes

I just added difficulty tags to buildengine5. It's a early prototype engine for 2d tile based top-down games like Space Station 13. Currently it only has basic networking capabilities, however I'm just starting to add a scripting engine.

One issue I'd like to highlight is #10. I've been stuck on it for way too long, and I'm sure it's some stupid thing I've overlooked.

https://github.com/tomaka/vulkano/issues/14

I'm looking for someone who could implement a memory pool struct in Vulkano. In other words, an implementation of a malloc algorithm but to allocate video memory instead of regular memory.

3 Likes

Here are two for rustup:

https://github.com/rust-lang-nursery/multirust-rs/issues/254

https://github.com/rust-lang-nursery/multirust-rs/issues/253

I've gone through my rexiv2 project (a library for working with media file metadata, such as photo Exif, XMP, and IPTC tags) to make it more newcomer-friendly. I've added setup instructions and a contributing guide, and tried to identify and tag issues in the tracker that would be good first bugs.

They're all listed under that tag, but if I had to pick just a couple, I'd recommend
https://github.com/felixc/rexiv2/issues/16
and
https://github.com/felixc/rexiv2/issues/14

I'm happy to help new contributors, whether new to just the project or to Free/Open Source software in general. The only caveat is that I myself am not particularly experienced in Rust, so for newcomers to the language I'll be figuring things out along with them.

I've carved out a ticket for decreasing the memory usage of the DFA in regex: decrease memory usage of DFA with variable width delta encoding of instruction pointers · Issue #199 · rust-lang/regex · GitHub --- Depending on past experience with FSAs, I'd put this at medium/hard.

@nasa42 Here's a new batch of easy rustup bugs. I believe I've given enough instructions to solve them.

https://github.com/rust-lang-nursery/rustup.rs/issues/411

https://github.com/rust-lang-nursery/rustup.rs/issues/390

1 Like

Here's one for tokei. The only work is knowing string literals in other languages.
https://github.com/Aaronepower/tokei/issues/52

Some work for Tera!

https://github.com/Keats/tera/issues/46

We need some help in SUPER for the next version :slight_smile: here are three issues that would greatly benefit from help from other contributors.

https://github.com/SUPERAndroidAnalyzer/super/issues/28
https://github.com/SUPERAndroidAnalyzer/super/issues/36
https://github.com/SUPERAndroidAnalyzer/super/issues/41

We have the medium difficulty written as D-Moderate in our labels. The rest should be the same. The D- prefix comes from difficulty.

I've got an easy task for Maud:

https://github.com/lfairy/maud/issues/51

I just published a small crate that can reverse strings in-place while correctly handling multi-byte and multi-codepoint graphemes. But it requires unsafe code, so I'd love help making sure my code coverage is adequate:

https://github.com/mbrubeck/unicode-reverse/issues/1

https://github.com/mbrubeck/unicode-reverse/issues/2

1 Like

Here again for Tera!

A few easy tasks:
https://github.com/Keats/tera/issues/79
https://github.com/Keats/tera/issues/72
https://github.com/Keats/tera/issues/62

A little harder:
https://github.com/Keats/tera/issues/39
https://github.com/Keats/tera/issues/74

I just file one easy, good first bug for gimli (a DWARF debugging information library).

https://github.com/gimli-rs/gimli/issues/163

Would love to mentor someone on this :slight_smile:

Compiling an Android package with cargo-apk mostly works technically, but many command line options are missing. For example right now you can't even compile a package that has multiple binaries because there's no way to specify the one you want.

If you are familiar with CLI libraries, I'm not against some help:

https://github.com/tomaka/android-rs-glue/issues/115

1 Like

Here is some work for tokei. It should be [easy-medium] depending on the package manager and how much work is actually involved.

https://github.com/Aaronepower/tokei/issues/92

For someone who is interested in implementing crypto hashes or block ciphers:
https://github.com/RustCrypto/hashes/issues/1
https://github.com/RustCrypto/block-ciphers/issues/1
Difficulty of straightforward implementation of one algorithm can vary, but i think will be around medium. Though writing optimized version can be quite hard.

There are a few "easy for newcomers" issues on diesel, e.g.:

https://github.com/diesel-rs/diesel/issues/376

https://github.com/diesel-rs/diesel/issues/521

https://github.com/diesel-rs/diesel/issues/563

You are very welcome to list these in TWIR and also have a look at the other open issues :slight_smile: