Sign in

Marco Ieni

@ieni.dev
598 followers 172 following 198 posts

Infrastructure Engineer at @rustfoundation.org 🎙️ Podcast host ieni.dev/rustship 🦀 Maintainer @release-plz.dev 🐘 Mastodon @MarcoIeni@hachyderm.io 🌐 Website ieni.dev

PostsRepliesMedia
Marco Ieni @ieni.dev · 11h
I’m now team leader of the Rust Infrastructure team! I’ll keep shipping, but I’ll also pay more attention to the load, health, and overall direction of the team.
https://rust-lang.org/governance/teams/infra/
3717
Marco Ieni @ieni.dev · 21/09/2026
This is the most sustainable way I found to keep maintaining release-plz in my spare time. It seems like it's working. In the last month: - 39 PRs merged in main excluding automations such as renovate. - closed 18 issues. Lots of bug fixes!
Dashboard summarizing GitHub activity over a month.
100
Marco Ieni @ieni.dev · 21/09/2026
I changed the Pull Request template of release-plz. I realized I don't care if you used AI to write code, or how you used AI, or which model you used. I just want to make sure you reviewed the code before submitting it. 🧵
Screenshot of PR https://github.com/release-plz/.github/pull/2
120
Marco Ieni @ieni.dev · 19/09/2026
TIL you can checkout pull requests locally in one click with the VSCode "GitHub Pull Requests" extension.
A screenshot of VSCode showing open GitHub pull requests thanks to the extension. An arrow button allows to checkout the pull request.
000
Marco Ieni @ieni.dev · 03/09/2026
Updating my website
Code snippet showing a text update.

Before:
     <p>I always code with elegance and simplicity in mind.</p>

After:
      <p>I always code with elegance and simplicity in mind. Except when I don't.</p>
040
Marco Ieni @ieni.dev · 29/08/2026
Demo time!
120
Marco Ieni @ieni.dev · 29/08/2026
READMEmaxxing
README of https://github.com/marcoieni/chatgato
030
Marco Ieni @ieni.dev · 29/08/2026
I'm building a ChatGPT Desktop Elgato Stream Deck plugin. Here is the progress I made with the icons.
Grid of colorful icons representing task statuses and actions, including "DONE," "WORKING," "ALLOW," and "SUBMIT."A grid of icons indicating tasks for a ChatGPT plugin, showing statuses like "working," "approval," and "done," with action buttons.
010
Marco Ieni @ieni.dev · 11/08/2026
I still got it 😎 I have no issues with vibe coding side projects, but for critical systems like the crates-io CDN, I still want to refine the code generated by AI.
my prompt:
I did some changes manually to your version. Do you like it more? Is it more efficient now?

AI:
Yes—I like your version more. It’s also slightly more efficient than mine.
240
Marco Ieni @ieni.dev · 09/07/2026
New Raycast snippet, useful when writing docs
Snippet:

<details>
<summary><i>{argument name="Title"}</i></summary>
{cursor}
</details>
000
Marco Ieni @ieni.dev · 09/06/2026
My new AI policy is working great 😂 I just received a PR named "main" from a bot user adding 1400 lines of codes with unchecked " I have read the AI policy".
Github screenshot. A PR with two files changed in a project adding 1400 lines of codes from a bot that doesn't confirm reading the AI policy and contributing guidelines.
110
Marco Ieni @ieni.dev · 02/06/2026
Proof that I use the `—` symbol myself: I set up a Raycast snippet for it long ago.
Raycast screenshot
000
Marco Ieni @ieni.dev · 12/05/2026
Your Slack workspace needs a zizmor.sh emoji
A colorful rainbow emoji is displayed, showing two reactions in a Slack workspace.
010
Marco Ieni @ieni.dev · 07/05/2026
While preparing a talk I found this blog post from Google (Nov 25) sharing their experience in adopting Rust in the Android codebase. Crazy numbers! 📉 "Instead of moving fast and then later fixing the mess, we can move faster *while* fixing things." blog.google/security/ru...
000
Marco Ieni @ieni.dev · 29/04/2026
⚠️ New VSCode default you might want to disable
VS Code now automatically includes Copilot as a Git co-author for file changes, with an option to modify this setting: git.addAICoAuthor
031
Marco Ieni @ieni.dev · 09/04/2026
Code readability still matters in rust-lang projects! 😎
                .map(|(idx, protection)| {
                    let mut ruleset = construct_ruleset(protection);
                    ruleset.id = Some(idx as i64);
                    ruleset
                })

vs 

                .map(|(idx, protection)| Ruleset {
                    id: Some(idx as i64),
                    ..construct_ruleset(protection)
                })
1100
Marco Ieni @ieni.dev · 23/03/2026
I just published a new version of the crates-io-auth-action GitHub Action! 📦 github.com/rust-lang/c...
Version 1.0.4 update notes list changes including node version update to 24 and actions core update to 3.
010
Marco Ieni @ieni.dev · 20/03/2026
Since I'm editing GitHub settings in an automated way, I need to take a lot of screenshots as a backup. I created a small CLI that takes a list of URLs and captures full-size screenshots using playwrite. 📸 github.com/marcoieni/m...
Multicheese logo: A cartoon mouse wearing an orange scarf holds a camera, smiling cheerfully in a circular design.
120
Marco Ieni @ieni.dev · 16/02/2026
Trying to take the pragmatic solution over the perfect one
Code snippet discussing the use of the `cargo info` command to check package publication status:

/// Check if the package is published via `cargo info`.
///
/// `cargo info` shouldn't be used by a machine because its output is not a stable API.
/// However, checking if a package is published by using other methods is annoying, so
/// we accept that release-plz might not work with future cargo versions and we will fix
/// it when that happens.
///
/// Returns whether the package is published.
pub async fn is_published(

Also, another image shows lines of code changed:
+324
-1,256Displays numerical values with a positive increase of 324 and a negative decrease of 1,256 alongside four colored status indicators.
020
Marco Ieni @ieni.dev · 15/01/2026
End of an era for #rustlang contributors. The merge queue used by the rust repository itself was rewritten in Rust! You can find it at github.com/rust-lang/b...
GitHub repository header for rust-lang/homu showing a banner: "This repository was archived by the owner on Jan 15, 2026. It is now read-only," with repo stats.
1324
Marco Ieni @ieni.dev · 26/11/2025
Worried about API tokens leak? In crates-io you can now specify that your crate can only be published through trusted publishing 😎
Dashboard panel showing a GitHub trusted publisher entry with repository details, workflow, environment, a Remove button and a checkbox to require trusted publishing for new versions.
180
Marco Ieni @ieni.dev · 25/11/2025
A simple way of handling errors in Rust using the anyhow crate
Rust code snippet showing nested functions using anyhow::Result and with_context chaining, printing an error stack with "hello", "world", and "!!!!" causes.

Code:
use anyhow::Context;

fn main() {
    let res = hello2().unwrap_err();

    println!("{res:?}")
}

fn hello2() -> anyhow::Result<()> {
    hello1().with_context(|| "hello")
}

fn hello1() -> anyhow::Result<()> {
    hello0().with_context(|| "world")
}

fn hello0() -> anyhow::Result<()> {
    anyhow::bail!("!!!!")
}

Shell output:
$ cargo -q run
hello

Caused by:
    0: world
    1: !!!!
041
Marco Ieni @ieni.dev · 16/10/2025
The #rustlang infra team just published a new blog post to summarize the most important achievements of Q3 and what we plan to do in Q4. The highest priority is hiring a new Infrastructure Engineer. If you are interested, check out the Rust Foundation careers page: 10 days left to apply!
152
Marco Ieni @ieni.dev · 14/09/2025
If you use release-plz and trusted publishing, you don't need to use the crates-io-auth-action anymore, as that logic is implemented into release-plz itself now 👍 Advantage: your CI will request a token only when a release is needed 🥳
Workflow of release-plz that deleted the crates-io-auth-action. You don't need to pass the cargo_registry_token anymore, too. For more info, see the release-plz docs!
082
Marco Ieni @ieni.dev · 01/09/2025
Friendly reminder that I'll be at @rustconf.com, which is starting tomorrow! Feel free to say hi or discuss #rustlang infrastructure 🦀
Special RustConf 2025 Ferris plushie on top of my RustConf 2025 speaker t-shirt
060
Marco Ieni @ieni.dev · 30/08/2025
One of the most positive feedback I received about @release-plz.dev: "Yes you can work without it, but you would be very stupid to even try."
screenshot of https://github.com/release-plz/release-plz/discussions/1028#discussioncomment-14261119
Content: "Just want to give a big thank you! I realized that my CI runs on release-plz for well over two years and never failed once. In fact, it's so reliable that every single release was a non-event. This project is a bit like git. Yes you can work without it, but you would be very stupid to even try... Keep up the good work and recognize, your work keeps countless projects running.💪"
030
Marco Ieni @ieni.dev · 11/07/2025
Crates-io implemented trusted publishing! It allows to publish from GitHub Actions without the need of a crates-io token! Here's what you need to change in your release-plz workflow to migrate to it. Learn more at: blog.rust-lang.org/2025/07/11/...
add permissions id-token: write, and use the github action to generate the crates-io token, as explained in crates.io docs.
064
Marco Ieni @ieni.dev · 11/06/2025
I'm speaking at @rustconf.com, hosted by the @rustfoundation.org in Seattle this September 🥳 See you there!
Browse the speaker list featuring my talk + many others @ rustconf.com/speakers
RustConf is happening September2-5, 2025 in Seattle and Online.
040
Marco Ieni @ieni.dev · 27/05/2025
Fixing C compiler errors in the rustc test suite definitely wasn't in the job description for Rust Infrastructure Engineer, but here we are 😂 Jokes aside, I love that I get to work on so many different things and luckily I have nice team mates helping along the way ❤️
GitHub PR diff showing small changes such as missing header files include and different function arguments types
250
Marco Ieni @ieni.dev · 27/03/2025
We did it, 1000 GitHub ⭐ What a milestone, thank you all 😁
Release-plz GitHub screenshot showing 1000 stars
0111
Marco Ieni @ieni.dev · 17/03/2025
I finally found some time to review all the rustc "Allowed-by-default Lints". I tested them in release-plz and added a bunch of those in my workspace Cargo.toml 🎉 Learn more at doc.rust-lang.org/rustc/lints...
[workspace.lints.rust] ambiguous_negative_literals = "warn" closure_returning_async_block = "warn" explicit_outlives_requirements = "warn" if_let_rescope = "warn" impl_trait_overcaptures = "warn" impl_trait_redundant_captures = "warn" let_underscore_drop = "warn" macro_use_extern_crate = "warn" missing_debug_implementations = "warn" non_ascii_idents = "warn" redundant_imports = "warn" redundant_lifetimes = "warn" single_use_lifetimes = "warn" trivial_casts = "warn" trivial_numeric_casts = "warn" unit_bindings = "warn" unsafe_attr_outside_unsafe = "warn" unused = "warn" unused_import_braces = "warn"
160
Marco Ieni @ieni.dev · 07/03/2025
Compile time speed of the Rust compiler stable versions over time (from 2018 to today). More data and info at perf.rust-lang.org/dashboard.html
Screenshot from https://perf.rust-lang.org/dashboard.html What took 8.6 seconds in rust 1.28 now takes 3 seconds.
2234
Marco Ieni @ieni.dev · 21/02/2025
Luciano Mammino and James Eastham at Rust Global just showed how easy and convenient it is to develop AWS Lambdas in #rustlang 🙌
Luciano Mammino speaking at Rust Global
052
Marco Ieni @ieni.dev · 21/02/2025
#rustlang in the Amazon Prime Video stack
Presentation at Rust Global
190
Marco Ieni @ieni.dev · 21/02/2025
Ciara at Rust Global just made a really good point: if a local community you care about is becoming inactive, prepare a presentation yourself and propose it to the organizers!
Ciara presenting at Rust Global in TrueLayer office, London
0110
Marco Ieni @ieni.dev · 20/02/2025
David Hewitt is talking about PyO3 at Rust Nation. Great to see Rust getting used more and more in the Python ecosystem!
020
Marco Ieni @ieni.dev · 18/02/2025
See you in London this week at Rust London, Rust Nation and Rust Global. 👋 Say hi and let's talk about all things #rustlang
Me at the Crastaceans section of the Natural History Museum
030
Marco Ieni @ieni.dev · 11/02/2025
TIL `terraform init -upgrade` only updates the latest number of the version. E.g. from "6.2.3" terraform will only update to 6.2.x (e.g. 6.2.4). If you want to receive updates for 6.x (e.g. 6.3.0) you need to use "6.2". Coming from Rust this is unintuitive 😵
terraform {   required_providers {     github = {       source  = "integrations/github"       version = "~> 6.2"     }   } }
000
Marco Ieni @ieni.dev · 30/01/2025
Finally! aws.amazon.com/about-aws/w...
120
Marco Ieni @ieni.dev · 25/01/2025
Yesterday I shown how to "publish software in one click" with #ReleasePlz at #Coderful. It was so refreshing to see a dev conference like this in Sicily. So many people willing to learn new things, interested both in automating releases and Rust in general! 😁
Me speaking at coderfulStaff + speakers at CoderfulCoderful audience
1101
Marco Ieni @ieni.dev · 13/01/2025
I just counted.. #ReleasePlz has 41 unique configuration options 🤯 I'm glad I implemented json output in the binary and in the GitHub Action, so that people can customize their workflows without the need for release-plz to complicate its config file format even more 👍
Configuration options listed in https://release-plz.dev/docs/config
010
Marco Ieni @ieni.dev · 10/01/2025
One does not simply writes slides without filling them with memes
The image is a meme with the text "releasing a new version" and spongebob that looks very tired
100
Marco Ieni @ieni.dev · 07/01/2025
It's very important to always write descriptive commit messages. I would never setup the "CMD + ENTER" shortcut in my IDE to stage all changes and commit them with the message "wip".
tasks.json in the vscode User folder: {   // See https://go.microsoft.com/fwlink/?LinkId=733558   // for the documentation about the tasks.json format   "version": "2.0.0",   "tasks": [     {       "label": "Git commit wip",       "type": "shell",       "command": "git add . && git commit -m wip",       "problemMatcher": [],       "presentation": {         "reveal": "silent"       }     }   ] }. Keybindings.json file:   {       "key": "cmd+enter",       "command": "workbench.action.tasks.runTask",       "args": "Git commit wip"   }
020
Marco Ieni @ieni.dev · 20/12/2024
Crates-io just surpassed 100 billion downloads. More than double with respect to last year! #rustlang
crates.io homepage screenshot showing downloads number
1152
Marco Ieni @ieni.dev · 18/12/2024
🎧 #RustShip #10 with @timclicks.dev is now available on your favorite podcast client! Tune in to hear Tim's tips on teaching and learning Rust effectively, plus insights on his work with his company (Accelerant) and "Rust Forge," a new Rust conference in New Zealand. 👉 ieni.dev/rustship
Thumbnail: Teaching and Learning Rust with TimMcNamara.
040
Marco Ieni @ieni.dev · 12/12/2024
Here's where the developers who starred #ReleasePlz are located 🌍 You can find more info like this about release-plz or any other open source project at ossinsight.io/analyze/rel...
Distribution of people who starred release-plz in the world. More info at https://ossinsight.io/analyze/release-plz/release-plz#people
030
Marco Ieni @ieni.dev · 11/12/2024
Did you know GitHub has a public roadmap? It's useful if you want to see when they plan to release the features you need. 👍 github.com/orgs/github...
Roadmap screenshot
030
Marco Ieni @ieni.dev · 08/12/2024
📣 On Monday, 9 December, at 19 UTC, join me and Tim McNamara for #RustShip episode 10 to talk about how to teach and learn Rust effectively. Tim will also share insights about his company (Accelerant) and "Rust Forge", a new Rust conference in New Zealand, happening in August. 🧵
Teaching and learning Rust with Tim McNamara. RustShip #10
141
Marco Ieni @ieni.dev · 07/12/2024
Ubuntu 20 reaches end of life in April. Time to update our GitHub Actions and Dockerfiles! Here's the announcement from GitHub. 👇
We are beginning the process of closing down the Ubuntu 20 hosted runner image, following our N-1 OS support policy. This image will be fully retired by April 1, 2025. We recommend updating workflows to use ubuntu-22.04, or ubuntu-24.04.
020
Marco Ieni @ieni.dev · 05/12/2024
The 2024 Rust annual survey is out 🎉 Let's all fill this, so that the Rust project has more data to understand how to serve the community better! 👉 blog.rust-lang.org/2024/12/05/...
extract from the blog post
0910