Skip to content

Now with 100% More Iron: Project Update and a New Beginning #123

@aleiepure

Description

@aleiepure

TLDR at the end.

Hello everyone,

I want to share an update on the current state and future direction of this project.

First and foremost (as I’ve said many times already), thank you to everyone who has contributed over the last three years. Every idea, piece of code, translated string, issue report, or feature suggestion has been greatly appreciated. What started as a simple project unexpectedly grew into something many people care about, and I’m genuinely grateful for that.

Slow Releases and Dependency Rabbit Hole

In the past, releases have often been quite far apart. This wasn’t intentional neglect on my part: university, moving internationally, and work all took significantly more time and energy than I expected. On top of that, the Python codebase became increasingly difficult to maintain over time.

With each platform update, the Python version was bumped as well, which often translated directly into multiple broken dependencies. The latest Flatpak runtime introduced Python 3.14, which broke several dependencies for which I could not find suitable replacements, effectively leaving the project stuck on an older version.

The Next Chapter

Earlier this year, I was strongly encouraged to use Rust for a university course. I had never used it before, but it quickly became love at first sight. It provides many of the benefits of C (performance, explicitness, strong guarantees, etc.) without the pitfalls that made me dislike it so much (mainly manual memory management and unclear compilation errors). Combined with its very active and rich library ecosystem (crates), it felt like the perfect choice for a fresh start.

Over the past week, I’ve started a complete rewrite of the app in Rust (branch v2.0-rs). This is not a line-by-line rewrite, but a full do-over, with a focus on:

  • cleaning up decisions that were made early on by a much more inexperienced version of myself
  • fixing long-standing annoyances and limitations buried deep in the old code
  • improving future maintainability
  • ideally reducing dependency breakage going forward

Reaching feature parity with the Python version will take some time. I’m still a full-time student, and my studies will always take precedence. That said, I hope this effort will lead to a much more robust and sustainable codebase in the long run.

Transition period

During this transition period:

  • Please refrain from opening new pull requests against the Python codebase, which is now effectively in “maintenance mode”
  • Bug reports, suggestions, and improvement ideas are still very welcome, especially if they help guide the new version
  • Once the rewrite reaches feature parity with the current public release, new features will again be actively considered and implemented where possible

Closing

Thank you once again to past contributors, current users, and future contributors for your patience and support. This project has always been a learning experience, and this next chapter is part of that journey.

I’ll post further updates here as progress continues.

TLDR: This app is being rewritten in Rust (branch v2.0-rs). Please bear with me during this process and avoid opening PRs targeting Python code. Bug reports and suggestions are still welcome and will be evaluated as soon as feature parity with the current public release (v1.3.0) is reached.

— Alessandro

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions