feat!: update module to be compatible with saucebase 2.0#8
Merged
Conversation
Implement Roadmap module with CRUD and voting system
…ions to a new vue/app.ts file
Restructure Roadmap module and bump version
There was a problem hiding this comment.
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/, legacymodule.jsonremoval). - 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 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 on lines
4
to
+6
| "type": "saucebase-module", | ||
| "license": "proprietary", | ||
| "version": "0.3.4", |
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.
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
composer.jsonto include module metadata, set the license to proprietary, specify the version, add theRoadmapServiceProviderto the Laravel providers, and adjust autoload paths to point tosrc/instead ofapp/. Also added support directories for seeders and tests, and set minimum stability to stable. [1] [2]module.jsonfile in favor of usingcomposer.jsonfor module metadata and provider registration.RoadmapServiceProviderandRouteServiceProviderclasses fromapp/Providers/, as provider registration now happens throughcomposer.jsonand the codebase is being reorganized. [1] [2]Naming and path conventions
roadmap) across workflow files, test commands, and code generation scripts for consistency. [1] [2]Database seeding
db:seedtask toTaskfile.ymlfor seeding the Roadmap module database.DatabaseSeederclass indatabase/seeders/to centralize seeding logic for the module.Frontend entrypoint refactor
resources/js/app.tstoresources/js/vue/app.ts, and updated the export to re-export from the new file. This improves organization and maintainability. [1] [2]Miscellaneous
LICENSEto 2026.routes/web.phpfor better clarity and security. [1] [2]composer.jsonas the version file instead of the removedmodule.json.These changes modernize the module's structure, improve maintainability, and align it with best practices for Laravel package development.