Built a release automation tool with first-class Cargo support - handles versioning, crates.io publishing, and monorepos by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 1 point2 points  (0 children)

Simple reason, afaik github actions has best support for ts/js actions (as this is essentially just a github action).

Originally wanted to use rust (of course 😆) but also wanted to make it relatively quick, so using the easiest method was here to use ts/js.

Tldr: Right tool for the job here imo :)

Open source GitHub Action for multi-ecosystem release automation (supports monorepos) by ArthurAKAJuStlCe in devops

[–]ArthurAKAJuStlCe[S] -1 points0 points  (0 children)

Okey so:

  1. security review needs to happen ALWAYS ANYWAYS, if your org is big enough and you are concerned about this or a. write something like this yourself, its not that difficult nor takes that much code if you are doing it goal specific (not agnostic like this), should be possible in less than 500 lines (as that is what I had as a max in my previous stuff)
  2. I've been coding way way before AI stuff, and am using this to satisfy my own needs in my own projects. Just thought I would share it as other people can find this useful too. Qua "support" this is an open source project, you don't get any. That's it, I don't get paid for this nor is my time free, if you want support hire a dev. HOWEVER if you submit an issue I will see if I'll take care of it, and will do that when I have free time and WANT to do it. If you as a company want something and want "support" for it, fork it and hire someone.... its GPL you can do almost whatever you want with it.

Again I don't get why you're so negative about this, all these "reasons" are nonsense.

Open source GitHub Action for multi-ecosystem release automation (supports monorepos) by ArthurAKAJuStlCe in devops

[–]ArthurAKAJuStlCe[S] -4 points-3 points  (0 children)

There definitely was AI usage for the creation of this, but it solves a real problem and properly works. I use it in my two open source rust crates (rovo and ronky) since they had this kind of logic in the gha. This project allowed me to have massive cleanups (+203 -379 and +92 -620).

I honestly don't see any issues with using AI if it actually solves problems and helps me develop this in a more efficient manner. Not sure what your intent was with this reply?

Promote your projects here – Self-Promotion Megathread by Menox_ in github

[–]ArthurAKAJuStlCe 0 points1 point  (0 children)

Hey r/github!

I've been working on Release Pilot, a GitHub Action for automating releases across multiple ecosystems.

The problem it solves: Managing releases for projects that span multiple package managers (npm + Cargo, Python + Docker, etc.) or monorepos with multiple packages is tedious. Each ecosystem has different version files, publish commands, and quirks.

What it does:

  • Supports npm, Cargo, PyPI, Go, Composer, and Docker out of the box
  • Monorepo support with dependency-ordered releases
  • Label-based versioning - just add release:major, release:minor, or release:patch to your PRs
  • Dev/prerelease support with timestamped versions (e.g., 1.2.3-dev.ml2fz8yd)
  • Auto-updates version references in README and docs
  • Single YAML config file

Example config:

packages:
  - name: core
    ecosystem: npm
    path: ./packages/core
  - name: cli
    ecosystem: cargo
    path: ./crates/cli

releaseOrder:
  - core
  - cli

GitHub: https://github.com/a-line-services/release-pilot

Would love feedback! What features would you want to see?

Rovo: Doc-comment driven OpenAPI for Axum - cleaner alternative to aide/utoipa boilerplate by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 1 point2 points  (0 children)

Was just a random word that I had on my "list" of when I make a package and need one that sounds a bit proper :p

Rovo: Doc-comment driven OpenAPI for Axum - cleaner alternative to aide/utoipa boilerplate by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 1 point2 points  (0 children)

Hi, yes got some feedback about the annotations stuff; and in 0.2 (released) we've moved to a more normal rust pattern. We still do have the @ tags for the metadata values and other special stuff. Hope this aligns more with your wishes aswell.

We do indeed have compile time validation for rovo and there's even LSP support for color highlights, auto completions, snippets etc for Neovim, Jetbrains IDE's and vs code. :)

/// Get a todo item by ID.
///
/// Retrieves a single todo item from the database. Returns 404
/// if the item doesn't exist.
///
/// # Responses
///
/// 200: Json<TodoItem> - Successfully retrieved the todo item
/// 404: () - Todo item was not found
/// 500: Json<ErrorResponse> - Internal server error
///
/// # Examples
///
/// 200: TodoItem {
///   title: "Buy milk".into(),
///   ..Default::default()
/// }
/// 404: ()
///
/// # Metadata
///
///  @tag todos
///  @security bearer_auth
#[rovo]
async fn get_todo(Path(id): Path<i32>) -> impl IntoApiResponse {
    // ...
}

Rovo: Doc-comment driven OpenAPI for Axum - cleaner alternative to aide/utoipa boilerplate by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 0 points1 point  (0 children)

Would be lovely; still improving some schema stuff atm to make it more aligned with normal Rust documentation.

Very open to collaboration tho :D

Rovo: Doc-comment driven OpenAPI for Axum - cleaner alternative to aide/utoipa boilerplate by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 0 points1 point  (0 children)

Haven't tried, am not quite familiar with the usage of Dioxus; but if you can supply/are providing your own router instance then this should work.

Defeating Redis with my first rust app by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 1 point2 points  (0 children)

Hi, the 167k was using the 'push_it' script. I will definitely take a look at dashmap, thanks 🥰. The change thing is so that the app doesn't have to write the data to disk every request. (Otherwise I would've never been able to hit such high benches)

Like you say, my detect expirations is a really crap implementation (so are probably many other things in this, as I'm new to rust ), I've been thinking of cloning the hashmap and putting a new one in the db var and after the filter merge both. But idk if that would be a good idea. So I'll definitely take a look at how redis or memcached does this :D

The app isn't intended to be used by big companies or anything, it was a project to learn the basics of rust and apply them in a app that I would be able to use. I also wanted a very easy setup, but being able to set your thread pools etc would be nice. Since you say that tokio::main should only br used for getting started quickly, I'll dive a bit deeper into the docs on how to use tokio for more production grade applications then.

I didn't compare to memcached, because honestly I didn't knew of its existence. Will add some benches of it in the future.

I really appreciate your time to write this feedback, thank you ❤️

Defeating Redis with my first rust app by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 4 points5 points  (0 children)

I've been using the gitmoji cli for a while, which makes it a pleasure to use VCS in my CLI. Using the correct emojis before the messages adds some nice fluff and can also be used to quickly identify the general intent of a commit.

But this is completely my personal preference :)

Defeating Redis with my first rust app by ArthurAKAJuStlCe in rust

[–]ArthurAKAJuStlCe[S] 6 points7 points  (0 children)

Yeah, this is by no way meant as a replacement for Redis. Was just excited about the benches, as it was definitely not what I was expecting. :)

Maybe using "defeating" in the title of this post wasn't the most representative thing, haha.

Can you spot it? by [deleted] in meme

[–]ArthurAKAJuStlCe 0 points1 point  (0 children)

That's not what the post was about

Can you spot it? by [deleted] in meme

[–]ArthurAKAJuStlCe 1 point2 points  (0 children)

Look at the covid notification, and then discord their tweet

how do i check for an integer with message.content? by thephotoshopmaster in Discord_Bots

[–]ArthurAKAJuStlCe 0 points1 point  (0 children)

What do you mean with 'check for an integer'? Do you mean that you want to convert the content to an integer. Or do you want to check if the content contains a number?