This is a devlog for 2023-09-01—2023-09-30, or, in other words, the month of September. This is mostly a log for myself so that I remember that I did things, but you may be interested in reading it too, for whatever reason.

Triage bot

Rust has a github bot account that helps with management of issues and pull requests (@rustbot, rustc dev guide page, docs). And it’s pretty cool actually. Here are some of my favorite features in no particular order:

  • triagebot claim which allows to assign oneself to an issue, without being a member of the org
  • triagebot label which allows to add or remove configured labels to issues and PRs
  • The bot can autolabel PRs based on changed files
  • triagebot ready/triagebot author that allow you to switch status labels (S-waiting-on-review, S-waiting-on-author)

The last one is especially handy. Having status labels makes the responsibility clear — “who needs to do work here right now?” becomes a trivial question. Moreover having explicit comments for “this is ready for review” and “I reviewed enough here, do changes” is also nice.

But the other features (including unmentioned here) are also cool, they all either empower contributors (but not members) to do stuff or lift some tedious managing work off of maintainers. Both of those are very appreciated by me.

The nice thing is, triage bot is open source! You can just host your own instance and configure it for your project! This is exactly what I did (teloxide/teloxide/941).

GitHub event: teloxidebot added C-core, C-main and S-waiting-on-review tags

Granted, triagebot is currently hardcoded in a lot of ways to the Rust’s use cases and the bot, but it’s still nice to have a bot like this. (and I’m also trying to un-hardcode it in PRs like rust-lang/triagebot/1734).

Meetings

Rust’s language team has weekly triage and design meetings, which are open. I don’t exactly remember how, but in September I remembered/rediscovered that those are indeed open and decided to try attending them. Luckily in the first meeting I attended one of the discussed topics was a PR I nominated for the discussion, so I was able to provide useful context for it. That was quite a positive experience and so I’m now attending the meetings regularly, trying to help T-lang where I can :)

🐸

As a reminder, this was a few months ago, so details might be slightly wrong here, due to the nature of human memory.

  • T-lang Triage meeting 2023-09-12 (minutes)
  • T-lang Triage meeting 2023-09-19 (minutes)
  • T-lang Design meeting 2023-09-20: Add f16 and f128 float types RFC read (minutes)
  • T-lang Design meeting 2023-09-27: MaybeDangling RFC read (minutes)

Other stuff

  • rust-lang/compiler-team/670 — Allow overriding default codegen backend on a per-target basis
    • (This is a Major (Change|Compiler) Proposal)
    • This is something we needed at my {dayjob} and that we wanted to upstream :)
  • teloxide/teloxide/938 — Improve graceful shutdown
    • This is hilarious, because the graceful shutdown code was written in a very dumb way (I’m allowed to say that, I’m the author), we were wasting a lot of time for nothing
    • No really, this was a known issue for years (I think?) and it actually was (relatively) easily fixable all that time
    • (we need to cut a release that includes this PR, ugh…)
  • rust-lang/rust/115547 — Simplify core::hint::spin_loop
  • rust-lang/rust/116205 — Stabilize [const_]pointer_byte_offsets
    • Hell yeah!
    • <*const _>::byte_offset & co coming to stable December 28!
  • rust-lang/rust/116254 — Assorted improvements for rustc_middle::mir::traversal
  • rust-lang/rust-analyzer/15609 — internal: Remove most of the duplication from Semantics{,Impl} via deref
  • rust-lang/futures-rs/2774 — Remove an outdated comment from docs
  • teloxide/teloxide/943 — Update nightly Rust
  • teloxide/teloxide/940 — Add missing {Update,Message}::filter_* functions (issue)
    • This is a call for contributions, that is moreover still not implemented/claimed, you can work on it!
  • teloxide/teloxide/939 — Implement support for TBA 6.5 (issue)
  • rust-lang/rust/115939 — Tracking Issue for cmp::minmax{_by,_by_key} (issue)
    • Have you ever wanted to sort 2 elements? Now there is a function for that!
    • Seriously though, I think those are nice functions and this actually comes up in real code
    • Also yeah, the implementation PR predates my devlogs (by a week), but it only got merged in September

Discussions answered

  • teloxide/teloxide/926teloxide::update_listeners::polling > Failed to get webhook info
  • teloxide/teloxide/930 — How to check if user sending message is privileged (the owner or an administrator of the chat)?

Reviews

Summary

This actually makes me feel better, seeing that I actually did stuff (because it felt like I didn’t (and also the previous devlog…)).