Skip to content

docs: add v1.17.4 and v1.18.1 upgrade notes - #200

Open
goravel-coder wants to merge 3 commits into
masterfrom
upgrade/v1.17.4-v1.18.1
Open

docs: add v1.17.4 and v1.18.1 upgrade notes#200
goravel-coder wants to merge 3 commits into
masterfrom
upgrade/v1.17.4-v1.18.1

Conversation

@goravel-coder

@goravel-coder goravel-coder commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Why

These upgrade notes record two patch releases, v1.17.4 and v1.18.1, that ship two user-facing bug fixes. The note for goravel/goravel#987 (goravel/framework#1544 and goravel/framework#1545) was originally written from the perspective of the internal code change and has been rewritten to describe the real user issue. When two or more migrations in the same batch declare the same non-default connection, the second migration's ledger row was recorded on that connection instead of the default one, so the migration failed with a table doesn't exist error because no migrations table existed on the non-default connection:

package migrations

// M20260826160940CreateUsersTable runs on the non-default "mysql" connection.
func (r *M20260826160940CreateUsersTable) Connection() string {
	return "mysql"
}

// M20260826161140CreateUserTokensTable declares the same non-default connection.
func (r *M20260826161140CreateUserTokensTable) Connection() string {
	return "mysql"
}

After the fix each migration still runs on its declared connection, while its ledger row is recorded on the default connection — matching Laravel's behavior — so the migration batch completes without the table doesn't exist failure.

The same releases also fix goravel/goravel#989 in the Gin and Fiber drivers (goravel/gin#243 and goravel/fiber#297): the default template set used to be compiled when the route engine was built — before service providers boot — so views registered through LoadViewsFrom() in a provider's Boot() were missing from the compiled set:

// In an extension package's service_provider.go
func (r *ServiceProvider) Boot(app foundation.Application) {
	facades.View().LoadViewsFrom("/path/to/package/views")
}

Rendering those package views at request time previously failed. The drivers now compile the default template set lazily on the first serve call (Run/Listen/ServeHTTP), after all providers have booted, so LoadViewsFrom()-registered views are rendered correctly.

Comment thread en/upgrade/v1.17.md Outdated

## v1.17.4

- [Fix Orm.Connection() cached path poisoning dbConfig](#fix-orm-connection-cached-path-poisoning-dbconfig)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

You described this issue based on the actual code, but I want you to describe this based on the real user issue.

Comment thread en/upgrade/v1.18.md
## v1.18.1

- [Fix Orm.Connection() cached path poisoning dbConfig](#fix-orm-connection-cached-path-poisoning-dbconfig)
- [Fix package views registered in Boot() not rendering](#fix-package-views-registered-in-boot-not-rendering)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto

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.

View.LoadViewsFrom() has no effect — gin driver compiles templates before the provider Boot phase

2 participants