All Projects → rust-lang → rfcbot-rs

rust-lang / rfcbot-rs

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
Coordinates asynchronous decision making on Rust repositories. Status of tracked issues and PRs can be viewed at https://rfcbot.rs.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to rfcbot-rs

rocket-rest-api-with-jwt
A Rusty Rocket fuelled with Diesel and secured by JWT
Stars: ✭ 62 (-56.64%)
Mutual labels:  rocket-rs, diesel-rs
shorty
High-performance link shortener
Stars: ✭ 48 (-66.43%)
Mutual labels:  rocket-rs, diesel-rs
risso
A comment server written in Rust
Stars: ✭ 16 (-88.81%)
Mutual labels:  diesel-rs
converse
A simple forum software
Stars: ✭ 17 (-88.11%)
Mutual labels:  diesel-rs
reason-rust-scraper
🦀 Scraping & crawling websites using Rust, and ReasonML
Stars: ✭ 21 (-85.31%)
Mutual labels:  rocket-rs
rusty-bunny
a tool that lets you write smart bookmarks
Stars: ✭ 20 (-86.01%)
Mutual labels:  rocket-rs
rust-for-backend-development
SWITCH TO RUST AND STOP WASTING YOUR TIME WITH JAVASCRIPT RUNTIME EXCEPTIONS
Stars: ✭ 30 (-79.02%)
Mutual labels:  rocket-rs
Rfcs
RFCs for changes to Rust
Stars: ✭ 4,029 (+2717.48%)
Mutual labels:  rfc-process
asciidoctor-rfc
AsciiRFC: an AsciiDoc/asciidoctor backend to produce RFC XML v3 (RFC 7991) and v2 (RFC 7749)
Stars: ✭ 14 (-90.21%)
Mutual labels:  rfc-process
auth-rs
Simple username/password authentication system for Rocket
Stars: ✭ 19 (-86.71%)
Mutual labels:  rocket-rs
rocket-yew-starter-pack
Example boilerplate for websites in pure Rust
Stars: ✭ 77 (-46.15%)
Mutual labels:  rocket-rs
rowdy
A Rocket based JSON Web Token authentication server.
Stars: ✭ 33 (-76.92%)
Mutual labels:  rocket-rs
auth0-rocket-rust-example
Rocket app that authenticates users with Auth0
Stars: ✭ 30 (-79.02%)
Mutual labels:  rocket-rs
Webapp.rs
A web application completely written in Rust. 🌍
Stars: ✭ 1,888 (+1220.28%)
Mutual labels:  diesel-rs
weather-station
Everything you need to run and monitor your own open source weather station. ⛅
Stars: ✭ 38 (-73.43%)
Mutual labels:  diesel-rs

rfcbot

rfcbot manages asynchronous decision making on Rust issues and PRs. Status of Final Comment Periods can be viewed on the relevant dashboard page.

It listens for commands on all repositories owned by the rust-lang, rust-lang-nursery, and rust-lang-deprecated organizations.

While its intended usage is for RFCs, you can use its tracking on any issue or pull request which needs an async review/decision cycle.

Usage

rfcbot accepts commands in GitHub comments. All commands take the form:

@rfcbot COMMAND [PARAMS]

Each command must start on its own line, but otherwise the bot doesn't care if there's other text in the comment. This is valid:

TEXT
TEXT
@rfcbot fcp merge
TEXT TEXT
TEXT

But this is not:

TEXT @rfcbot fcp merge
TEXT

Both of these commands will be registered:

@rfcbot concern FOO
@rfcbot concern BAR

Examples are in each section.

Command grammar

rfcbot accepts roughly the following grammar:

merge ::= "merge" | "merged" | "merging" | "merges" ;
close ::= "close" | "closed" | "closing" | "closes" ;
postpone ::= "postpone" | "postponed" | "postponing" | "postpones" ;
cancel ::= "cancel" | "canceled" | "canceling" | "cancels" ;
review ::= "reviewed" | "review" | "reviewing" | "reviews" ;
concern ::= "concern" | "concerned" | "concerning" | "concerns" ;
resolve ::= "resolve" | "resolved" | "resolving" | "resolves" ;
poll ::= "ask" | "asked" | "asking" | "asks" |
         "poll" | "polled" | "polling" | "polls" |
         "query" | "queried" | "querying" | "queries" |
         "inquire" | "inquired" | "inquiring" | "inquires" |
         "quiz" | "quizzed" | "quizzing" | "quizzes" |
         "survey" | "surveyed" | "surveying" | "surveys" ;

team_label ::= "T-lang" | .. ;
team_label_simple ::= "lang" | .. ;
team_ping ::= "@"? "rust-lang/lang" | ..;
team_target ::= team_label | team_label_simple | team_ping ;

line_remainder ::= .+$ ;
ws_separated ::= ... ;

subcommand ::= merge | close | postpone | cancel | review
             | concern line_remainder
             | resolve line_remainder
             | poll [team_target]* line_remainder
             ;

invocation ::= "fcp" subcommand
             | "pr" subcommand
             | "f?" ws_separated
             | subcommand
             ;

grammar ::= "@rfcbot" ":"? invocation ;

Multiple occurrences of grammar are allowed in each comment you make on GitHub. This means that the following is OK:

@rfcbot merge

Some stuff you want to say...

@rfcbot concern foobar

Explain the concern...

Final Comment Period

Before proposing a final comment period on an issue/PR/RFC, please double check to make sure that the correct team label(s) has been applied to the issue. As of 9/17/16, rfcbot recognizes these labels:

  • Core: T-core
  • Language: T-lang
  • Libraries: T-libs
  • Compiler: T-compiler
  • Tools: T-tools
  • Documentation: T-doc

Proposing FCP

To propose an FCP, use @rfcbot fcp DISPOSITION where disposition is one of [merge|close|postpone]. You can also use @rfcbot pr DISPOSITION, which will be used in the future to improve the quality of status comments from the bot.

If the proposer is on one of the tagged subteams, rfcbot will create a tracking comment with a checklist of review requests. Once all review requests have been satisfied and any concerns have been resolved, it will post a comment to that effect. One week after the "FCP start" comment, it will post another follow-up comment saying that one week has passed.

rfcbot will only request reviews from members of the tagged team(s), and as of right now only supports reviews from teams that are tagged at the time an FCP is proposed.

Cancelling FCP

To cancel an FCP proposal after it's started, use @rfcbot fcp cancel. This will delete all records of the FCP, including any concerns raised (although their comments will remain).

Reviewing

To indicate that you've reviewed the FCP proposal, either check the box next to your name on the tracking comment, or use the command @rfcbot reviewed.

Concerns

To register blocking concerns on the FCP proposal, use @rfcbot concern NAME_OF_CONCERN. The bot will parse up until the first newline after the command for the concern's name, and add it to the list of concerns in the tracking comment.

To indicate that your concern has been resolved, use @rfcbot resolved NAME_OF_CONCERN. Note that as of this writing, only the original author can mark their concern as resolved.

Note that only one concern per comment is allowed.

Feedback Requests

To request feedback from a user not on the tagged team(s), use @rfcbot f? @username. This will create an entry in the database which will be marked as resolved once that user has commented on the issue/PR. Note that these feedback requests will not block start/end of an FCP. If you need to block FCP on that user's feedback, you may want to create a new concern that you can resolve.

In a future update, the UI for the dashboard will be updated to display these feedback requests, but they don't show up anywhere right now.

Contributing, Code of Conduct, License

Please see CONTRIBUTING.md.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].