docs: initial comparison document
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: Ic50cc37d50c50ef279f65e87011d252f6a6a6964
This commit is contained in:
parent
62f8cdf4de
commit
593203dcd0
1 changed files with 41 additions and 0 deletions
41
docs/COMPARISON.md
Normal file
41
docs/COMPARISON.md
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
<!--markdownlint-disable MD013-->
|
||||||
|
|
||||||
|
# FC vs Hydra
|
||||||
|
|
||||||
|
FC is not exactly a competitor, but a direct replacement to Hydra with a limited
|
||||||
|
set of features that are prioritized. While FC hopes to be a complete
|
||||||
|
replacement, not everything can be considered in-scope for a team of FOSS
|
||||||
|
developers without funding. _Should_ you create any issues, your feature may or
|
||||||
|
may not be implemented depending on our own needs. Please keep that in mind.
|
||||||
|
|
||||||
|
Below document contains a "feature matrix" of concepts and features that we've
|
||||||
|
decided to think about. Not all of them will be fully implemented (i.e., we are
|
||||||
|
a-okay with being less powerful in some regards) but FC _does_ aim to be better
|
||||||
|
than Hydra in the long term, through different means; reliability, UX and
|
||||||
|
performance.
|
||||||
|
|
||||||
|
## Executive Summary
|
||||||
|
|
||||||
|
FC currently implements more or less 50% of Hydra's core features, and has
|
||||||
|
various improvements over Hydra's architecture. As of writing, some gaps (such
|
||||||
|
as the plugin architecture, VCS diversity and notification integrations) remain.
|
||||||
|
|
||||||
|
### Strengths
|
||||||
|
|
||||||
|
- Modern Rust codebase with better error handling
|
||||||
|
- Simpler, more maintainable architecture (5 Rust crates vs Perl & C++ monolith)
|
||||||
|
- Better API-first design with proper REST structure
|
||||||
|
- User management with argon2 password hashing and granular RBAC
|
||||||
|
- Cleaner database schema (16 tables vs 70+)
|
||||||
|
- Better Nix Flake support from day one
|
||||||
|
- Improved & tested declarative jobsets
|
||||||
|
|
||||||
|
### Weaknesses
|
||||||
|
|
||||||
|
- Limited VCS support (Git only in FC vs 6 types in Hydra)
|
||||||
|
- No plugin architecture for extensibility
|
||||||
|
- Missing several notification integrations (Slack, BitBucket, etc.)
|
||||||
|
- No declarative project specification (coming soon)
|
||||||
|
- No coverage/build metrics collection
|
||||||
|
|
||||||
|
TODO: add a better comparison matrix
|
||||||
Loading…
Add table
Add a link
Reference in a new issue