Skip to content

Releases: payloadcms/payload

v3.0.0-beta.42

06 Jun 16:23
Compare
Choose a tag to compare
v3.0.0-beta.42 Pre-release
Pre-release

v3.0.0-beta.42 (2024-06-06)

Bug Fixes

  • ui: global documents disabled after save (#6652) (267c236)

Contributors

v2.19.2

06 Jun 16:09
Compare
Choose a tag to compare

2.19.2 (2024-06-06)

Bug Fixes

  • cascade draft arg when querying globals with graphql (#6651) (ac8c209)
  • filtered out disableListColumn fields reappeared after toggling other fields (#6636) (626be15)
  • resizing animated images (#6621) (67c0b0e), closes #2181 #6146

v3.0.0-beta.41

05 Jun 20:27
626be15
Compare
Choose a tag to compare
v3.0.0-beta.41 Pre-release
Pre-release

v3.0.0-beta.41 (2024-06-05)

Features

  • support Next.js basePath config property (#6628) (b2751f7)
  • ui: expose RowLabelProps (#6627) (1afd221)
  • richtext-lexical: upgrade lexical from 0.15.0 to 0.16.0 and port over relevant playground changes (#6620) (da35afb)

Bug Fixes

  • db-postgres: create predefined migration missing json schema output (#6641) (ff82bb5)
  • update file-type dependency and fix dependency version mismatch (#6638) (2077da8)
  • translations: explicitly declare date-fns v3 as a dependency (#6626) (aeb4df8)
  • resizing animated images (#6623) (bcd277e)
  • migration file cannot be imported (#6616) (cafc13a)

BREAKING CHANGES

  • db-postgres: create predefined migration missing json schema output (#6641) (ff82bb5)

Fixes #6630

This only applies to you if you using db-postgres and have created the
v2-v3-relationships migration released in
v3.0.0-beta.39
from @payloadcms/db-postgres <= v3.0.0-beta.40.

Steps to fix

  • Delete the existing v2-v3-relationships migration file.
  • If changes were made to your config since the previous migration was
    made, you will need to revert those by checking out a previous commit in
    your version control.
  • Recreate the migration using payload migrate:create --file @payloadcms/db-postgres/relationships-v2-v3 to make the migration with
    the snapshot .json file.
  • richtext-lexical: upgrade lexical from 0.15.0 to 0.16.0 and port over relevant playground changes (#6620) (da35afb)

BREAKING:

  • This upgrades the required version of lexical from 0.15.0 to 0.16.0.
    If you are using lexical directly in your project, possibly due to
    custom features, there might be breaking changes for you. Please consult
    the lexical 0.16.0 changelog:
    https://github.com/facebook/lexical/releases/tag/v0.16.0

Contributors

v3.0.0-beta.40

04 Jun 02:38
4a54aa7
Compare
Choose a tag to compare
v3.0.0-beta.40 Pre-release
Pre-release

v3.0.0-beta.40 (2024-06-04)

Features

  • match next.js env file loading behavior in bin scripts & importConfig, clean up installed packages & mismatching package versions (#6601) (59cde0d)
  • richtext-lexical: configurable fixed toolbar (#6560) (f41bb05)

Bug Fixes

  • pin ajv to 8.14.0, as 8.15.0 is broken (#6606) (45b02d8)
  • plugin-form-builder: fix bug with optional chain operator in field overrides logic (#6602) (1aece39)
  • db-postgres: type issue in migratePostgresV2toV3 call if ts strict mode is enabled (#6585) (c3589de)
  • richtext-lexical: minor design improvements (#6575) (c7fbd76)
  • critical getPredefinedMigration dependency error (#6578) (6b9c796)
  • richtext-*: fix client features were not loaded properly, improve performance of LexicalProvider, slate cell component was non-functional, support richtext adapter Cell RSCs (#6573) (5cb49c3)

BREAKING CHANGES

  • richtext-lexical: configurable fixed toolbar (#6560) (f41bb05)

BREAKING: useEditorFocusProvider has been removed and merged with
useEditorConfigContext. You can now find information about the focused
editor, parent editors and child editors within useEditorConfigContext

Contributors

v2.19.1

04 Jun 15:17
Compare
Choose a tag to compare

2.19.1 (2024-06-04)

Bug Fixes

  • payload/bundler-webpack: override ajv dependency version to 8.14.0 wherever possible (#6618) (e44ce81)

v2.19.0

04 Jun 02:51
Compare
Choose a tag to compare

2.19.0 (2024-06-04)

Features

  • translations: update Turkish translations (#5738) (4fddea8)

Bug Fixes

  • pin ajv to 8.14.0, as 8.15.0 is broken (#6607) (4a54aa7)
  • adds new userEmailAlreadyRegistered translations (#6549) (56c6700), closes #6535
  • adjusts sizing of remove/add buttons to be same size (#6527) (a352ebc), closes #6098
  • focalPoint undefined handling (#6552) (fcfc3c5)
  • pagination on polymorphic relationship field requesting entries with page parameter set to NaN (#5366) (547acfe)
  • safely evaluates field.admin in WhereBuilder (#6534) (4f9d78d)
  • separate sort and search fields when looking up relationship. (#5964) (c009219), closes #4815 #5222
  • ui field validation error with admin.disableListColumn property (#6530) (eeddece), closes #6521
  • ui: blocks browser save dialog from opening when hotkey used with no changes (#6365) (8f03cd7), closes #214

v3.0.0-beta.39

30 May 18:29
Compare
Choose a tag to compare
v3.0.0-beta.39 Pre-release
Pre-release

v3.0.0-beta.39 (2024-05-30)

Features

Bug Fixes

  • next: ssr live preview was not dispatching document save events (#6572) (e603c83)

BREAKING CHANGES 💥

Moves upload field and relationship fields with hasMany: false & relationTo: string from the many-to-many _rels join table to simple columns. This only affects Postgres database users.

TL;DR

We have dramatically simplified the storage of simple relationships in relational databases to boost performance and align with more expected relational paradigms. If you are using the beta Postgres adapter, and you need to keep simple relationship data, you'll need to run a migration script that we provide you.

Background

For example, prior to this update, a collection of "posts" with a simple hasMany: false and relationTo: 'categories' field would have a posts_rels table where the category relations would be stored.

This was somewhat unnecessary as simple relations like this can be expressed with a category_id column which is configured as a foreign key. This also introduced added complexity for dealing directly with the database if all you have are simple relations.

Who needs to migrate

You need to migrate if you are using the beta Postgres database adapter and any of the following applies to you.

  • If you have versions enabled on any collection / global
  • If you use the upload field
  • If you have relationship fields that are hasMany: false (default) and relationTo to a single category (has one) relations

We have a migration for you

Even though the Postgres adapter is in beta, we've prepared a predefined migration that will work out of the box for you to migrate from an earlier version of the adapter to the most recent version easily.

It makes the schema changes in step with actually moving the data from the old locations to the new before adding any null constraints and dropping the old columns and tables.

How to migrate

The steps to preserve your data while making this update are as follows. These steps are the same whether you are moving from Payload v2 to v3 or a previous version of v3 beta to the most recent v3 beta.

Important: during these steps, don't start the dev server unless you have push: false set on your Postgres adapter.

⚠️ Step 1 - backup

Always back up your database before performing big changes, especially in production cases.

⚠️ Step 2 - create a pre-update migration

Before updating to new Payload and Postgres adapter versions, run payload migrate:create without any other config changes to have a prior snapshot of the schema from the previous adapter version

⚠️ Step 3 - if you're migrating a dev DB, delete the dev push row from your payload_migrations table

If you're migrating a dev database where you have the default setting to push database changes directly to your DB, and you need to preserve data in your development database, then you need to delete a dev migration record from your database.

Connect directly to your database in any tool you'd like and delete the dev push record from the payload_migrations table using the following SQL statement:

DELETE FROM payload_migrations where batch = -1

⚠️ Step 4 - update Payload and Postgres versions to most recent

Update packages, making sure you have matching versions across all @payloadcms/* and payload packages (including @payloadcms/db-postgres)

⚠️ Step 5 - create the predefined migration

Run the following command to create the predefined migration we've provided:

payload migrate:create --file @payloadcms/db-postgres/relationships-v2-v3

⚠️ Step 6 - migrate!

Run migrations with the following command:

payload migrate

Assuming the migration worked, you can proceed to commit this change and distribute it to be run on all other environments.

Note that if two servers connect to the same database, only one should be running migrations to avoid transaction conflicts.

Related discussion:
#4163

Contributors

v3.0.0-beta.38

30 May 15:26
56c6700
Compare
Choose a tag to compare
v3.0.0-beta.38 Pre-release
Pre-release

v3.0.0-beta.38 (2024-05-30)

Features

  • next,ui: improves loading states (#6434) (92f458d)
  • extracts buildFormState logic from endpoint for reuse (#6501) (321e97f)

Bug Fixes

  • cpa: safer command exists check (#6569) (4884f0d)
  • ui: adjusts sizing of remove/add buttons to be same size (#6529) (f1db24e)
  • ui field validation error with admin.disableListColumn property (#6531) (7f15147)
  • translations: adds new userEmailAlreadyRegistered translations (#6550) (e0a6db7)
  • cpa: more package manager detection improvements (#6566) (0d7d3e5)
  • duplicate options appearing in relationship where builder (#6557) (3474642)
  • plugin-search: Render error on custom UI component (#6562) (aa02801)
  • ensure relationship field pills respect isSortable property (#6561) (425576b)
  • ability to query relationships not equal to ID (#6555) (043a91d)

Contributors

v3.0.0-beta.37

29 May 14:57
Compare
Choose a tag to compare
v3.0.0-beta.37 Pre-release
Pre-release

v3.0.0-beta.37 (2024-05-29)

Features

  • richtext-lexical: link markdown transformers (#6543) (33d5312)
  • richtext-lexical: i18n (#6542) (a8000f6)
  • plugin-form-builder: update form builder plugin field overrides to use a function instead (#6497) (7d0e909)
  • cpa: update existing payload installation (#6193) (10c94b3)
  • richtext-lexical: i18n support (#6524) (c383f39)
  • richtext-lexical: update validation of custom URLs to include relative and anchor links (#6525) (8a91a7a)

Bug Fixes

  • cpa: improve package manager detection (#6546) (8506385)
  • multi value draggable/sortable pills (#6500) (e749529)
  • richtext-lexical: various html converter fixes (#6544) (4a51f4d)
  • richtext-lexical: user-defined html converters not taking precedence, and shared default html converters doubling in size after every field initialization (2c283bc)
  • richtext-lexical: list converters and nodes being added duplicatively (a2e9bcd)
  • richtext-lexical: link html converter: serialize newTab to target="_blank" (#6350) (e0b201c)
  • deps: proper location for scheduler peer dep (#6537) (2ddd50e)
  • Add missing He lang export in payload/i18n (#6484) (6f5d86e)
  • next: unable to pass custom view client components (#6513) (eff5129)
  • separate collection docs with same ids were excluded in selectable (#6499) (18bc4b7)
  • richtext-lexical: localized sub-fields were omitted from the API output (#6489) (7a76814)
  • ui: where builder issues (#6478) (42222cd)

BREAKING CHANGES

  • plugin-form-builder: update form builder plugin field overrides to use a function instead (#6497) (7d0e909)

Changes the fields override for form builder plugin to use a function
instead so that we can actually override existing fields which currently
will not work.

//before
fields: [
  {
    name: 'custom',
    type: 'text',
  }
]

// current
fields: ({ defaultFields }) => {
  return [
    ...defaultFields,
    {
      name: 'custom',
      type: 'text',
    },
  ]
}

Contributors

v3.0.0-beta.36

23 May 17:38
Compare
Choose a tag to compare
v3.0.0-beta.36 Pre-release
Pre-release

v3.0.0-beta.36 (2024-05-23)

Features

  • next.js 15, react 19, react compiler support (#6429) (35f961f)
  • add website template (#6470) (85bfca7)
  • ui: split up Select component into Select and SelectInput (#6471) (661a4a0)
  • richtext-lexical: various UX and performance improvements (#6467) (78579ed)
  • richtext-lexical: improve block dragging UX (6b45cf3)
  • next: server-side theme detection (#6452) (1fe9790)
  • translations: add Hebrew translation (#6428) (3c0853a)
  • richtext-lexical: various gutter, error states & add/drag handle improvements (#6448) (6c95287)

Bug Fixes

  • adds host to initPage req creation (#6476) (72c0534)
  • isHotkey webpack error (#6466) (73d0b20)
  • richtext-lexical: order of add/drag handles was inconsistent between gutter and no-gutter mode (c93752b)
  • ui: field errors aren't red in light mode (7a4dd58)
  • next,ui: fixes global doc permissions and optimizes publish access data loading (#6451) (2b941b7)
  • richtext-lexical: link drawer sending too many form state requests for actions unrelated to links (0bfbf9c)
  • ui: disableListColumn fields not hidden in table columns (#6445) (bcc506b)

BREAKING CHANGES

  • next.js 15, react 19, react compiler support (#6429) (35f961f)

BREAKING:

Issues

  • Bunch of todos for our react-select package which is having type
    issues. Works fine, just type issues. Their type defs are importing JSX
    in a weird way, we likely just have to wait until they fix them in a
    future update.
  • ui: uses consistent button naming conventions (#6444) (af7e12a)

Description

Renames the Save to SaveButton, etc. to match the already
established convention of the PreviewButton, etc. This matches the
imports with their respective component and type names, and also gives
these components more context to the developer whenever they're
rendered, i.e. its clearly just a button and not an entire block or
complex component.

BREAKING:

Import paths for these components have changed, if you were previously
importing these components into your own projects to customize, change
the import paths accordingly:

Old:

import { PublishButton } from '@payloadcms/ui/elements/Publish'
import { SaveButton } from '@payloadcms/ui/elements/Save'
import { SaveDraftButton } from '@payloadcms/ui/elements/SaveDraft'

New:

import { PublishButton } from '@payloadcms/ui/elements/PublishButton'
import { SaveButton } from '@payloadcms/ui/elements/SaveButton'
import { SaveDraftButton } from '@payloadcms/ui/elements/SaveDraftButton'
  • I have read and understand the
    CONTRIBUTING.md
    document in this repository.

Contributors