rfcbot-rs icon indicating copy to clipboard operation
rfcbot-rs copied to clipboard

Update rfcbot FCP proposal text to be less bad

Open anp opened this issue 7 years ago • 12 comments

@aturon, https://github.com/dikaiosune/rust-dashboard/issues/61#issuecomment-251527176:

Request: I'd like to change the text on the initial comment. Today it says:

FCP proposed with disposition to merge. Review requested from:

To make this more clear, can we say:

Team member {user} has proposed merging the RFC. The next step is review by the rest of the {team-names} team:

  • {reviewer list}

Once these reviewers reach consensus, the RFC will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

Yep! Can do.

anp avatar Oct 07 '16 05:10 anp

So one point I should raise here: rfcbot is being used in different contexts now, not all of which are RFCs (e.g. tracking issues, code PRs). Some of its behavior probably wants to change in these various settings. For example:

  • Whether "FCP" is even a thing (not true for code PRs)
  • The length of FCP (6 weeks for tracking issues)
  • What we'd want text as proposed in this issue to say

There are a couple ways we could deal with these differences:

  • Have a different command set for different contexts/use cases
    • I'm imagining all commands are supported anywhere, but the team members know to say "rfcbot fcp stabilize" for a tracking issue, or "rfcbot pr merge" for a PR. The core behavior for all of these is the same, in terms of dashboard, checklist, etc. What changes is just the above details.
  • Make the bot context-aware

I lean somewhat toward expanding the bot's vocab, and letting the humans drive these different processes by using different commands. For one thing, I think that ends up being clearer ("fcp merge" is a weird way to say "I want to merge this PR"), and I bet it ends up being easier to implement too.

aturon avatar Oct 07 '16 16:10 aturon

Definitely -- that makes a lot of sense. I think I also am leaning (perhaps more strongly) towards using command syntax to drive the variation. It would hopefully make the bot less brittle to process changes or use in even more contexts.

Do you see any strong advantages to making it context-sensitive to issue type and location aside from the small cognitive overhead of remembering what behavior one wants?

anp avatar Oct 07 '16 16:10 anp

Do you see any strong advantages to making it context-sensitive to issue type and location aside from the small cognitive overhead of remembering what behavior one wants?

Nope -- the more I think about it, the more I think it should all be command syntax-driven.

aturon avatar Oct 07 '16 16:10 aturon

I want to bump the priority of the text changes -- people keep getting confused with the current text. We should go ahead and change, even if adding the new commands takes longer.

aturon avatar Oct 13 '16 18:10 aturon

I've updated the text (with some slight modification because a) tech debt is a thing and b) it's a little more generic until I can specialize code paths for RFCs vs. PRs vs. tracking issues). Let me know if that needs further tweaking.

I've included it in the docs, but rfcbot pr merge is for now just an alias for rfcbot fcp merge.

TODO:

  1. Add stabilize subcommand to fcp.
  2. Add field to FcpProposal model and table to track which kind of FCP is needed (none at all for PRs, 1 week for RFCs, 6 weeks for stabilization).
  3. Differentiate status comments and tagging behavior based on consensus type.

anp avatar Oct 17 '16 06:10 anp

@aturon the interim text has been used in a few places now, for example https://github.com/rust-lang/rfcs/pull/1721#issuecomment-251570901.

I still intend to allow this to be specialized based on the chosen command, but do you think this will work for now?

anp avatar Oct 18 '16 18:10 anp

Looks good for now, thanks!

On Tue, Oct 18, 2016 at 11:07 AM, Adam Perry [email protected] wrote:

@aturon https://github.com/aturon the interim text has been used in a few places now, for example rust-lang/rfcs#1721 (comment) https://github.com/rust-lang/rfcs/pull/1721#issuecomment-251570901.

I still intend to allow this to be specialized based on the chosen command, but do you think this will work for now?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/dikaiosune/rust-dashboard/issues/89#issuecomment-254590738, or mute the thread https://github.com/notifications/unsubscribe-auth/AArUr_AKvsxI8-_3bwlkBCg-2NV0L0w3ks5q1Qr5gaJpZM4KQsKb .

aturon avatar Oct 18 '16 18:10 aturon

@dikaiosune I'm labeling this P-high -- we're trying to lean more on the FCP for stabilization, and do so asynchronously, but we really need the bot to manage the timing for that to work.

As an aside, for tracking issues (B-unstable) we're now thinking the FCP length should be 3 weeks. That's because we intend to propose FCP on a rolling basis, and 3 weeks should be ample time for people to see them while still letting us fit a good number into a release cycle.

aturon avatar Nov 04 '16 23:11 aturon

@aturon got it.

To summarize, I'm picturing these commands:

(pr|fcp) (merge|close|postpone|stabilize) where:

  • pr doesn't have any FCP period, and fcp has variable FCP lengths
  • when invoked with fcp -- merge,close, postpone will all have 10 day FCPs, and stabilize will have 3 week FCPs
  • when invoking pr stabilize something somewhat sensible will occur but it's not expected that people will use it

Does that make sense and accurately reflect what was above?

anp avatar Nov 05 '16 01:11 anp

@dikaiosune

That looks great. The only thing missing: a deprecate command, akin to stabilize but for dropping features.

aturon avatar Nov 06 '16 23:11 aturon

@aturon so deprecate and stabilize would just do the same thing, correct? Or would they need to have separate FCP lengths?

anp avatar Nov 07 '16 02:11 anp

They'd be the same, yes.

aturon avatar Nov 07 '16 17:11 aturon