Skip to content

Refactor: Restructure extensions and Unicode modules following module philosophy#440

Merged
ocots merged 1 commit into
developfrom
feat/module-philosophy
Jun 8, 2026
Merged

Refactor: Restructure extensions and Unicode modules following module philosophy#440
ocots merged 1 commit into
developfrom
feat/module-philosophy

Conversation

@ocots

@ocots ocots commented Jun 8, 2026

Copy link
Copy Markdown
Member

This PR restructures the codebase to follow the module philosophy outlined in dev/philosophy/PHILOSOPHY.md.

Changes

Extension Structure

  • Moved extensions from ext/*.jl to ext/ExtensionName/ subdirectories with proper entry_point.jl pattern
  • Moved extension implementations to src/Extensions/ submodules:
    • coverage_postprocessing.jl
    • documenter_reference.jl
    • test_runner.jl

Unicode Module

  • Split Unicode module into submodules:
    • src/Unicode/subscripts.jl
    • src/Unicode/superscripts.jl

Qualified Imports

  • Updated all imports to use qualified paths:
    • CTBase.Extensions.run_tests (was CTBase.run_tests)
    • Unicode.ctindices, Unicode.ctupperscripts, etc.
  • Updated documentation to reflect new qualified import paths

Test Organization

  • Restructured test files to follow new module organization
  • Removed redundant test files:
    • test/suite/unicode/test_utils.jl (consolidated into test_unicode_enriched.jl)
    • test/suite/exceptions/test_display.jl (consolidated into test_exception_display.jl)

Documentation Updates

  • Updated BREAKINGS.md, CHANGELOGS.md with new qualified paths
  • Updated docs/src/guide/test-runner.md and docs/src/index.md

All changes maintain backward compatibility while enforcing the qualified import convention.

… philosophy

- Move extensions from ext/*.jl to ext/ExtensionName/ subdirectories with proper entry_point.jl pattern
- Move extension implementations to src/Extensions/ submodules (coverage_postprocessing.jl, documenter_reference.jl, test_runner.jl)
- Split Unicode module into subscripts.jl and superscripts.jl submodules
- Update all imports to use qualified paths (CTBase.Extensions.run_tests, Unicode.ctindices, etc.)
- Update documentation to reflect new qualified import paths
- Restructure test files to follow new module organization
- Remove redundant test files (test_utils.jl, test_display.jl) and consolidate into enriched test files
@ocots

ocots commented Jun 8, 2026

Copy link
Copy Markdown
Member Author

This PR implements the module philosophy refactoring outlined in dev/philosophy/PHILOSOPHY.md. The main changes are:

  1. Extension structure: Moved from flat ext/*.jl files to proper ext/ExtensionName/ subdirectories with entry_point.jl pattern, following the established convention for weak dependencies.

  2. Implementation relocation: Extension implementations moved from ext/ to src/Extensions/ submodules (coverage_postprocessing.jl, documenter_reference.jl, test_runner.jl) to keep source code in src/.

  3. Unicode module split: Split the Unicode module into subscripts.jl and superscripts.jl submodules for better organization.

  4. Qualified imports enforcement: Updated all imports to use qualified paths (e.g., CTBase.Extensions.run_tests instead of CTBase.run_tests, Unicode.ctindices instead of CTBase.ctindices). This enforces the "no top-level exports" convention.

  5. Documentation updates: Updated BREAKINGS.md, CHANGELOGS.md, and all guide documentation to reflect the new qualified import paths.

  6. Test consolidation: Removed redundant test files and consolidated tests to follow the new module organization.

All changes maintain backward compatibility while strictly following the module philosophy conventions.

@ocots
ocots merged commit 5139714 into develop Jun 8, 2026
6 checks passed
@ocots
ocots deleted the feat/module-philosophy branch June 8, 2026 21:07
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