Skip to content

refactor: move pkg/ to internal/ with root package facade#5

Merged
luigi-agosti merged 1 commit intomainfrom
refactor/internal-structure
Mar 25, 2026
Merged

refactor: move pkg/ to internal/ with root package facade#5
luigi-agosti merged 1 commit intomainfrom
refactor/internal-structure

Conversation

@luigiagent
Copy link
Copy Markdown
Collaborator

Summary

Modernises the project structure following Go conventions: implementation in internal/, clean public API at the root.

Changes

  • pkg/portal/internal/engine/ (all implementation hidden from importers)
  • pkg/quality/internal/quality/
  • New seaportal.go root facade — thin public API with type aliases and delegate functions
  • CLI updated to import github.com/pinchtab/seaportal (root package)

Before / After

// Before
import "github.com/pinchtab/seaportal/pkg/portal"
result := portal.FromURLWithOptions(url, portal.Options{})

// After
import "github.com/pinchtab/seaportal"
result := seaportal.FromURLWithOptions(url, seaportal.Options{})

What's in the root facade

Types: Result, Options, PageProfile, SnapshotNode, DedupeResult, etc. (all via type aliases)

Functions: FromURL, FromURLWithOptions, ExtractFromHTML, ClassifyPage, BuildSnapshot, Dedupe, CleanupMarkdown, ValidateExtraction, etc.

All tests passing.

- pkg/portal/ → internal/engine/ (all implementation hidden)
- pkg/quality/ → internal/quality/
- New seaportal.go root facade — thin public API with type aliases
- Consumers now: import "github.com/pinchtab/seaportal"
- CLI updated to use root package
- All tests passing
@luigiagent luigiagent force-pushed the refactor/internal-structure branch from 1eb284a to 6186904 Compare March 25, 2026 23:09
@luigi-agosti luigi-agosti merged commit b2652c8 into main Mar 25, 2026
8 checks passed
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.

2 participants