-
Notifications
You must be signed in to change notification settings - Fork 2
feat: Drop loco clean #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR represents a major architectural refactoring that removes the loco-rs framework dependency and migrates to rama directly. The key changes include making database backends (SQLite vs PostgreSQL) mutually exclusive at compile time, changing the GemMetadata.platform field from Option<String> to String, removing the admin dashboard's sea-orm migrations, and introducing a new Fallout 4 terminal-inspired theme.
Key Changes:
- Removed loco-rs framework and axum dependencies, migrating admin dashboard to pure rama with SSE support
- Changed database backend architecture from runtime enum dispatch to compile-time type aliases
- Converted
GemMetadata.platformfrom optional to required field with "ruby" as default - Introduced new Fallout 4 terminal theme with Datastar for reactive UI
Reviewed changes
Copilot reviewed 82 out of 83 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
src/gem_metadata/version_req.rs |
New Ruby version requirement parser with pessimistic version constraints |
src/gem_metadata/sbom.rs |
Enhanced SBOM generation with recursive dependency resolution |
src/gem_metadata/parser.rs |
Platform field now defaults to "ruby" instead of None |
crates/vein-adapter/src/lib.rs |
Compile-time feature checks for mutually exclusive backends |
crates/vein-adapter/src/cache/types.rs |
Platform field changed from Option to String |
crates/vein-adapter/src/cache.rs |
CacheBackendKind enum removed, replaced with CacheBackendTrait |
crates/vein-admin/src/main.rs |
Complete rewrite removing loco-rs, using rama directly |
crates/vein-admin/src/router.rs |
New file defining rama-based routing |
crates/vein-admin/src/controllers/*.rs |
Controllers rewritten for rama's IntoResponse pattern |
crates/vein-admin/assets/css/terminal.css |
New Fallout 4-inspired terminal theme (889 lines) |
Due to reaching the iteration limit, I was unable to complete a full detailed review. The PR contains significant architectural changes that would benefit from thorough testing and validation, particularly around the type system changes (platform field), database backend selection mechanism, and the new admin UI implementation.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…s) in favor of rama re-exports
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 87 out of 88 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
In this PR , there are lot of changes i had locally, that i better push upstream before i lose/forget about them.
1 ) removed loco-rs and moved to rama directly.
why ? because i had to fight and convert request between axium and rama, and that code was not even authored by me. (used Claude), the current code is more aligned with clean coding.
Removed the multiple adapter support. Vein must be either compiled for postgresql or sqlite3 (default will be sqlite3), if someone want to switch database, they have to recompile. (I plan to have binaries ready later)
This allow us to build features that are specialized for the database backend instead of using postgresql as a distributed sqlite3.
New theme. Fallout 4 style i had laying around from another project. Because building boring dashboard is not fun.
Still working on finishing the SBOM network. It pretty complicated, because of the version resolution.
The proxying still works, the mess is in the admin dashboard. that many people didn't even know existed.
I will get roast by copilot, address what is helpfull, and continue.