00: Repo restructuring — split into primitive, widget, shell modules #32

Open
opened 2026-07-05 00:47:17 -06:00 by ppreeper · 0 comments
Owner

Objective

Split the current monolith into three independent Go modules:

Module Path PRD Issues
primitive go.preeper.org/ppreeper/primitive PRD-000 (core foundation) #1-#12
widget go.preeper.org/ppreeper/widget PRD-001 (simple composites) + PRD-002 (complex widgets) #13-#23
shell go.preeper.org/ppreeper/shell PRD-003 (application layout) #25-#31
webtemplate go.preeper.org/ppreeper/webtemplate Demo app using all 3 modules #24

Tasks

1. Create the 3 module repos

  • Create go.preeper.org/ppreeper/primitive
  • Create go.preeper.org/ppreeper/widget
  • Create go.preeper.org/ppreeper/shell

2. Move issues to correct repos

  • Issues #1-#12 → primitive repo
  • Issues #13-#23 → widget repo
  • Issues #25-#31 → shell repo

3. Seed each repo

  • Copy README from docs/modules/{name}/README.md → repo root
  • Copy PRD from docs/prd/{prd}.md → repo docs/
  • Copy TODO subset from docs/prd/TODO.md → repo docs/
  • Copy relevant Odoo analysis docs → repo docs/
  • Initialize go.mod with correct module path
  • Set up Tailwind CSS v4 config
  • Create .gitignore, LICENSE

4. Verify dependency chain

  • primitive → no deps (only stdlib + templ + tailwind)
  • widget → depends on primitive
  • shell → depends on primitive + widget

Files ready for seed

The README files and PRDs already exist in webtemplate:

  • docs/modules/primitive/README.md
  • docs/modules/widget/README.md
  • docs/modules/shell/README.md
  • docs/prd/000-core-foundation.md
  • docs/prd/001-simple-composites.md
  • docs/prd/002-complex-field-widgets.md
  • docs/prd/003-application-layout.md
  • docs/prd/TODO.md (master TODO with issue # cross-references)
  • docs/odoo_widgets.md
  • docs/odoo_widgets_code_review.md
  • docs/odoo_widget_subcomponents.md

After split

The webtemplate repo should:

  • Import all 3 modules
  • Build demo pages using components from each
  • Be the integration test ground
## Objective Split the current monolith into three independent Go modules: | Module | Path | PRD | Issues | |--------|------|-----|--------| | primitive | go.preeper.org/ppreeper/primitive | PRD-000 (core foundation) | #1-#12 | | widget | go.preeper.org/ppreeper/widget | PRD-001 (simple composites) + PRD-002 (complex widgets) | #13-#23 | | shell | go.preeper.org/ppreeper/shell | PRD-003 (application layout) | #25-#31 | | webtemplate | go.preeper.org/ppreeper/webtemplate | Demo app using all 3 modules | #24 | ## Tasks ### 1. Create the 3 module repos - [ ] Create go.preeper.org/ppreeper/primitive - [ ] Create go.preeper.org/ppreeper/widget - [ ] Create go.preeper.org/ppreeper/shell ### 2. Move issues to correct repos - [ ] Issues #1-#12 → primitive repo - [ ] Issues #13-#23 → widget repo - [ ] Issues #25-#31 → shell repo ### 3. Seed each repo - [ ] Copy README from docs/modules/{name}/README.md → repo root - [ ] Copy PRD from docs/prd/{prd}.md → repo docs/ - [ ] Copy TODO subset from docs/prd/TODO.md → repo docs/ - [ ] Copy relevant Odoo analysis docs → repo docs/ - [ ] Initialize go.mod with correct module path - [ ] Set up Tailwind CSS v4 config - [ ] Create .gitignore, LICENSE ### 4. Verify dependency chain - primitive → no deps (only stdlib + templ + tailwind) - widget → depends on primitive - shell → depends on primitive + widget ## Files ready for seed The README files and PRDs already exist in webtemplate: - docs/modules/primitive/README.md - docs/modules/widget/README.md - docs/modules/shell/README.md - docs/prd/000-core-foundation.md - docs/prd/001-simple-composites.md - docs/prd/002-complex-field-widgets.md - docs/prd/003-application-layout.md - docs/prd/TODO.md (master TODO with issue # cross-references) - docs/odoo_widgets.md - docs/odoo_widgets_code_review.md - docs/odoo_widget_subcomponents.md ## After split The webtemplate repo should: - Import all 3 modules - Build demo pages using components from each - Be the integration test ground
Sign in to join this conversation.
No labels
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
ppreeper/webtemplate#32
No description provided.