Release notes v0.0.138

We had 14 releases without release notes, so there must be big breaking changes.

Code gen

The code generator got a few small improvements

  • router: nicely catch invalid encoded path params and throw a 400 error
  • sql: improve performance of oneToMany queryBuilder calls by 10 to 15 percent
  • validator: add mimeTypes support to T.file(), this allows for setting things like: T.file().mimeTypes("image/jpg", "image/png"). This is only validated on the server after parsing posted body.

Migrations

The previous migration system with namespaces support had various issues when namespaces where dropped or added. The production environments would work fine, since the migration system allows for missing migrations files, but when resetting the development database, migration files were missing when a package was removed. This causes migration files to become invalid. When a package is added, you would like the migrations of the package to follow in time with the application migrations, but that's complex to pull off.

To ease all this we decided to drop namespaces support and instead enforce you to 'vendor' migrations from packages. This is a big braking change, but here are the steps:

  • Vendor the @compas/store migrations per the migration docs
  • Vender migrations of the packages you use following their docs
  • Update the migrate commands to yarn compas docker migrate
  • Stop the migration service and do a deploy
  • Manually do a yarn compas docker migrate rebuild
  • Start the migration service back up.

In closing

We are somehow getting to a pretty stable point. The docs however, are quite lacking. Between this and the previous release I added docs about environment variables and migrations. It's a slow and tedious process. Please submit doc request issues as well in the Compas issue tracker.