Skip to content

feat!: update module to be compatible with saucebase 2.0#8

Merged
sauce-base merged 7 commits into
mainfrom
dev-v2
Jun 4, 2026
Merged

feat!: update module to be compatible with saucebase 2.0#8
sauce-base merged 7 commits into
mainfrom
dev-v2

Conversation

@roble

@roble roble commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

This pull request makes significant structural and configuration changes to the Roadmap module, focusing on standardizing naming conventions, updating the module's autoloading and provider setup, and improving database seeding and testing workflows. It also cleans up legacy files and refines the frontend entrypoint structure.

Module configuration and structure

  • Updated composer.json to include module metadata, set the license to proprietary, specify the version, add the RoadmapServiceProvider to the Laravel providers, and adjust autoload paths to point to src/ instead of app/. Also added support directories for seeders and tests, and set minimum stability to stable. [1] [2]
  • Removed the legacy module.json file in favor of using composer.json for module metadata and provider registration.
  • Removed the RoadmapServiceProvider and RouteServiceProvider classes from app/Providers/, as provider registration now happens through composer.json and the codebase is being reorganized. [1] [2]

Naming and path conventions

  • Standardized the module's name to lowercase (roadmap) across workflow files, test commands, and code generation scripts for consistency. [1] [2]
  • Updated Playwright test project and code generation commands to use the lowercase module name.

Database seeding

  • Added a db:seed task to Taskfile.yml for seeding the Roadmap module database.
  • Added a new DatabaseSeeder class in database/seeders/ to centralize seeding logic for the module.

Frontend entrypoint refactor

  • Refactored the frontend entrypoint by moving the module setup logic from resources/js/app.ts to resources/js/vue/app.ts, and updated the export to re-export from the new file. This improves organization and maintainability. [1] [2]

Miscellaneous

  • Updated the copyright year in LICENSE to 2026.
  • Improved navigation route registration by making the route URL lazy-evaluated and adjusting middleware groupings in routes/web.php for better clarity and security. [1] [2]
  • Updated the release workflow to use composer.json as the version file instead of the removed module.json.

These changes modernize the module's structure, improve maintainability, and align it with best practices for Laravel package development.

Copilot AI review requested due to automatic review settings June 3, 2026 18:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR modernizes the Roadmap module for Saucebase 2.0 by restructuring it into a src/-based package layout, moving module metadata/provider registration into composer.json, and refining database seeding, routing, and the frontend entrypoint/page implementation.

Changes:

  • Convert the module to a composer-driven package structure (provider registration, PSR-4 autoload to src/, legacy module.json removal).
  • Add/organize core module functionality (models, controllers, enums, Filament resources, status-change notification flow).
  • Refactor frontend entrypoint and add the Inertia/Vue roadmap page; update workflows/tasks and add a db seeding task.

Reviewed changes

Copilot reviewed 15 out of 32 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Taskfile.yml Updates module naming usage and adds a database seed task.
src/Providers/RoadmapServiceProvider.php Introduces the module service provider in the new src/ structure.
src/Notifications/RoadmapItemStatusChangedNotification.php Adds notification email for roadmap item status changes.
src/Models/RoadmapVote.php Adds vote model with enum casting and relations.
src/Models/RoadmapItem.php Adds roadmap item model with enums, slugging, vote counts, and status-change event dispatch.
src/Listeners/NotifySubmitter.php Adds queued listener to notify submitter on status change.
src/Http/Controllers/RoadmapVoteController.php Adds voting endpoint with transactional toggle/update behavior.
src/Http/Controllers/RoadmapController.php Adds index/store endpoints and Inertia payload shaping.
src/Filament/RoadmapPlugin.php Adds Filament plugin wiring for the module.
src/Filament/Resources/Roadmap/Tables/RoadmapItemsTable.php Adds Filament table configuration for roadmap items management.
src/Filament/Resources/Roadmap/Schemas/RoadmapItemForm.php Adds Filament form schema for roadmap items.
src/Filament/Resources/Roadmap/RoadmapItemResource.php Adjusts Filament navigation ordering and ties together schema/table/pages.
src/Filament/Resources/Roadmap/Pages/ListRoadmapItems.php Adds Filament list page for roadmap items.
src/Filament/Resources/Roadmap/Pages/EditRoadmapItem.php Adds Filament edit page for roadmap items.
src/Filament/Resources/Roadmap/Pages/CreateRoadmapItem.php Adds Filament create page for roadmap items.
src/Events/StatusChanged.php Adds status-changed domain event.
src/Enums/VoteType.php Adds vote type enum.
src/Enums/RoadmapType.php Adds roadmap type enum (labels/colors + TS export attribute).
src/Enums/RoadmapStatus.php Adds roadmap status enum (labels/colors + “public statuses”).
routes/web.php Refactors route middleware grouping for roadmap endpoints.
routes/navigation.php Makes navigation route generation lazy via closure.
resources/js/vue/pages/Index.vue Adds the Roadmap Inertia/Vue page with grouping, sorting, and optimistic voting UI.
resources/js/vue/app.ts Moves module setup/afterMount logic to a dedicated Vue entrypoint.
resources/js/app.ts Re-exports the module entrypoint from the new location.
module.json Removes legacy module metadata file.
LICENSE Updates copyright year.
database/seeders/DatabaseSeeder.php Adds module-level database seeder delegating to RoadmapDatabaseSeeder.
composer.json Adds module metadata/provider registration and updates autoload paths to src/.
app/Providers/RouteServiceProvider.php Removes legacy route service provider (no longer needed in new structure).
app/Providers/RoadmapServiceProvider.php Removes legacy service provider from old app/ location.
.github/workflows/test.yml Standardizes module name casing for the shared test workflow.
.github/workflows/release.yml Switches version source from removed module.json to composer.json.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread resources/js/vue/app.ts
Comment on lines +10 to +22
export function setup() {
console.debug('Roadmap module loaded');

registerIcon('roadmap', IconMap);
}

/**
* Roadmap module after mount logic
* Called after the app has been mounted
*/
export function afterMount() {
console.debug('Roadmap module after mount logic executed');
}
Comment thread composer.json
Comment on lines 4 to +6
"type": "saucebase-module",
"license": "proprietary",
"version": "0.3.4",
@sauce-base sauce-base merged commit a152cf8 into main Jun 4, 2026
4 of 5 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.

3 participants