Drop hero_admin_lib alias — standardize on hero_website_lib #5

Closed
opened 2026-05-18 12:37:11 +00:00 by timur · 2 comments
Owner

Issue

There is exactly one crate in this repo: crates/hero_website_lib/. But hero_proc/Cargo.toml:49 declares it as:

hero_admin_lib = { git = "https://forge.ourworld.tf/lhumina_code/hero_website_framework.git", branch = "development" }

hero_osis does the same. Two names for the same crate makes the framework's surface confusing and means searching the codebase for one name misses half the consumers.

Decision needed

Two options:

A. (Recommended) Drop the alias. Everyone imports hero_website_lib. Single name, single search, simpler skills. Action items:

  • Update hero_proc/Cargo.toml and source — rename alias hero_admin_libhero_website_lib.
  • Update hero_osis/Cargo.toml and source — same.
  • Audit other repos for stray aliases (grep "hero_admin_lib").
  • Add a note in hero_website_framework/README.md: "The crate is named hero_website_lib. Older code may alias it as hero_admin_lib — drop the alias on next touch."

B. Actually split. Extract an hero_admin_lib sub-crate from hero_website_lib containing only admin-surface code (admin templates, auth, /admin/rpc dispatch). Public website code (blog, docs, contacts) stays in hero_website_lib. Justification would be: admin-only consumers don't want public blog routes compiled in. But: the framework is small enough today that the compile-time saving is negligible, and the public/admin split is fuzzy.

My recommendation: option A. Cleaner, fewer moving parts. If a split is ever needed later, do it then with a real reason.

Comment with your call.

Acceptance

  • Grep across all lhumina_code repos for hero_admin_lib returns zero hits (or all hits are in the hero_website_framework/README.md historical note).
  • cargo build of hero_proc and hero_osis still succeed.
  • #hoist-components (do this first so consumers re-importing land on the new name)
## Issue There is exactly one crate in this repo: `crates/hero_website_lib/`. But `hero_proc/Cargo.toml:49` declares it as: ```toml hero_admin_lib = { git = "https://forge.ourworld.tf/lhumina_code/hero_website_framework.git", branch = "development" } ``` `hero_osis` does the same. Two names for the same crate makes the framework's surface confusing and means searching the codebase for one name misses half the consumers. ## Decision needed Two options: **A. (Recommended) Drop the alias.** Everyone imports `hero_website_lib`. Single name, single search, simpler skills. Action items: - Update `hero_proc/Cargo.toml` and source — rename alias `hero_admin_lib` → `hero_website_lib`. - Update `hero_osis/Cargo.toml` and source — same. - Audit other repos for stray aliases (grep `"hero_admin_lib"`). - Add a note in `hero_website_framework/README.md`: "The crate is named `hero_website_lib`. Older code may alias it as `hero_admin_lib` — drop the alias on next touch." **B. Actually split.** Extract an `hero_admin_lib` sub-crate from `hero_website_lib` containing only admin-surface code (admin templates, auth, /admin/rpc dispatch). Public website code (blog, docs, contacts) stays in `hero_website_lib`. Justification would be: admin-only consumers don't want public blog routes compiled in. But: the framework is small enough today that the compile-time saving is negligible, and the public/admin split is fuzzy. **My recommendation: option A.** Cleaner, fewer moving parts. If a split is ever needed later, do it then with a real reason. Comment with your call. ## Acceptance - Grep across all lhumina_code repos for `hero_admin_lib` returns zero hits (or all hits are in the `hero_website_framework/README.md` historical note). - `cargo build` of hero_proc and hero_osis still succeed. ## Related - #hoist-components (do this first so consumers re-importing land on the new name)
Author
Owner

Parent / context tracker: hero_skills#262 — read it before starting work on this issue. Locked decisions, reference materials, and execution order live there. Iterate via comments here; consolidation passes on the body only after feedback settles.

Parent / context tracker: [hero_skills#262](https://forge.ourworld.tf/lhumina_code/hero_skills/issues/262) — read it before starting work on this issue. Locked decisions, reference materials, and execution order live there. Iterate via comments here; consolidation passes on the body only after feedback settles.
Author
Owner

Closing — wrong premise

I drafted this from a stale snapshot of the repo. On latest development, hero_admin_lib and hero_website_lib are two intentionally separate crates with different purposes:

Crate Purpose Stack Consumers
hero_admin_lib Admin-dashboard shared assets, middleware, routes, socket helpers Axum, rust-embed (no Tera, no SQLite) hero_proc_admin, hero_osis_admin
hero_website_lib Full public-facing website framework Tera, SQLite, auth, blog, docs demo_website only (inside this repo)

Original issue was based on hero_proc/Cargo.toml:49 using hero_admin_lib = { git = ... } which I (wrongly) assumed was an alias. It's the real crate.

Closing this. No alias to drop. The split is correct as-is.

## Closing — wrong premise I drafted this from a stale snapshot of the repo. On latest `development`, `hero_admin_lib` and `hero_website_lib` are **two intentionally separate crates** with different purposes: | Crate | Purpose | Stack | Consumers | |---|---|---|---| | [`hero_admin_lib`](https://forge.ourworld.tf/lhumina_code/hero_website_framework/src/branch/development/crates/hero_admin_lib) | Admin-dashboard shared assets, middleware, routes, socket helpers | Axum, rust-embed (no Tera, no SQLite) | `hero_proc_admin`, `hero_osis_admin` | | [`hero_website_lib`](https://forge.ourworld.tf/lhumina_code/hero_website_framework/src/branch/development/crates/hero_website_lib) | Full public-facing website framework | Tera, SQLite, auth, blog, docs | `demo_website` only (inside this repo) | Original issue was based on `hero_proc/Cargo.toml:49` using `hero_admin_lib = { git = ... }` which I (wrongly) assumed was an alias. It's the real crate. Closing this. No alias to drop. The split is correct as-is.
timur closed this issue 2026-05-18 14:54:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_website_framework#5
No description provided.