Extract Publishing, Entities, and AI modules into external packages - #449
Merged
Conversation
Remove all publishing source code, tests, and routes from the monorepo. Add css_sources/0 callback to PhoenixKit.Module behaviour for external module CSS source scanning. Update CSS installer to auto-discover and resolve plugin module source paths. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…al module support Remove Publishing from internal_modules and add to known_external_packages. Delete blog.ex routes (now provided by phoenix_kit_publishing via route_module). Add :phoenix_kit_optional_scope pipeline for admin edit buttons on public pages. Update integration.ex to discover route modules from external packages for both admin and public routes. Make sitemap, legal, languages, and shared components conditional on Publishing availability. Update tests and docs for new module count. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove all entities source code, tests, routes, mix tasks, and guides. Move HtmlSanitizer and Multilang utilities to PhoenixKit.Utils namespace. Guard Pages renderer EntityForm references with Code.ensure_loaded?. Add Entities to known_external_packages. Update dialyzer ignores, test counts, and Languages README for new namespaces. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove all AI source code, tests, and admin routes from the monorepo. Add AI to known_external_packages in module registry. Update test counts and remove AI-specific assertions across module, registry, and permissions tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
PhoenixKitEntities, PhoenixKitAI, PhoenixKitPosts, Multilang, and HtmlSanitizer are optional external modules that cannot be aliased at the top of invoking modules. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
These modules are used behind Code.ensure_loaded? guards and cannot be aliased at the top of invoking modules. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…_undefined Add @compile {:no_warn_undefined, ...} to all files that reference extracted Publishing, Entities, and AI modules so that --warnings-as-errors passes in CI prod builds. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ddon
added a commit
that referenced
this pull request
Mar 24, 2026
…extraction - Guard EntityForm render call with Code.ensure_loaded? check in Pages renderer - Add Logger.debug for CSS source discovery failures in installer - Document why ensure_compiled is used over ensure_loaded? in integration routes - Make module registry and permissions tests count-independent - Add PR review doc for #449 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PhoenixKit.Modules.Publishing→phoenix_kit_publishinghex packagePhoenixKit.Modules.Entities→phoenix_kit_entitieshex packagePhoenixKit.Modules.AI→phoenix_kit_aihex packageCode.ensure_loaded?for optional dependency supportcss_sources/0callback toPhoenixKit.Modulebehaviour for external module CSS scanning:phoenix_kit_optional_scopepipeline for admin edit buttons on public pagesroute_module/0for both admin and public routesknown_external_packagesin module registryHtmlSanitizerandMultilangutilities toPhoenixKit.UtilsnamespaceKey changes
route_module/0callbackcompile_external_admin_routesandcompile_external_public_routesnow discover routes from external modules automatically