Skip to content

docs(rfc): propose base/ namespace for shared layer#239

Draft
behinddwalls wants to merge 1 commit into
mainfrom
rename-core
Draft

docs(rfc): propose base/ namespace for shared layer#239
behinddwalls wants to merge 1 commit into
mainfrom
rename-core

Conversation

@behinddwalls

@behinddwalls behinddwalls commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

Why?

The repo's shared cross-domain packages (core/, entity/, extension/) use the same bare names, at the same nesting level, as each domain's own packages (submitqueue/core/, submitqueue/entity/, ...). The domain side is namespaced by its domain folder and reads unambiguously; the shared side is the unqualified one, so a bare "core" or "entity" in a review, commit, or search is ambiguous. The collision is structural, not a problem with any one word — renaming a single package (e.g. core/base/) does not generalize to entity/extension and would leave an inconsistent, half-fixed scheme.

What?

Adds doc/rfc/shared-layer-namespace.md proposing that the three shared packages move under one umbrella namespace, base/ (base/core, base/entity, base/extension), leaving every domain's bare core/entity/extension untouched. The RFC recommends base, names shared as the close runner-up, records why internal (Go visibility breaks example/+test/ imports) and per-package renames were rejected, and scopes the change as a mechanical no-op rename to land in a follow-up PR. Also links the RFC from doc/rfc/index.md under Shared.

The final umbrella word is the main open question for reviewers.

@behinddwalls behinddwalls force-pushed the rename-core branch 2 times, most recently from 091810d to e93652f Compare June 12, 2026 16:16
## Summary

### Why?

The repo's shared cross-domain packages (`core/`, `entity/`, `extension/`) use the same bare names, at the same nesting level, as each domain's own packages (`submitqueue/core/`, `submitqueue/entity/`, ...). The domain side is namespaced by its domain folder and reads unambiguously; the shared side is the unqualified one, so a bare "core" or "entity" in a review, commit, or search is ambiguous. The collision is structural, not a problem with any one word — renaming a single package (e.g. `core/` → `base/`) does not generalize to `entity`/`extension` and would leave an inconsistent, half-fixed scheme.

### What?

Adds `doc/rfc/shared-layer-namespace.md` proposing that the three shared packages move under one umbrella namespace, `base/` (`base/core`, `base/entity`, `base/extension`), leaving every domain's bare `core`/`entity`/`extension` untouched. The RFC recommends `base`, names `shared` as the close runner-up, records why `internal` (Go visibility breaks `example/`+`test/` imports) and per-package renames were rejected, and scopes the change as a mechanical no-op rename to land in a follow-up PR. Also links the RFC from `doc/rfc/index.md` under Shared.

The final umbrella word is the main open question for reviewers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant