New Date/time behavior can now be customized on the fieldset level. You can choose to show, hide, or require those timestamps.

New Paginated links are now relative to make them more domain interchangeable. #1719

Fix Single field Bard sets get wrapped in a block with header and contextual buttons (so you can delete them). A single asset field is the only special one now. We really like how it looks so you'll need to complain a bit louder to get us to change it.

Fix Fix overflowing breadcrumbs. There comes a point in each and every persons life when they realize they have too many breadcrumbs in their pockets. We reached that point in ours. 🍞 #1834

Fix Asset fields inside Bard now show filenames. We thought it looked nicer without them, but were told that looks didn't matter, and that it's what is underneath that counts. We were inclined to agree.

Fix When the contents of the assets: array are removed from a container YAML file by hand, it would result in an empty string, causing an error. No more!

Fix When dealing with fantastically tall images, the focal point editor can now be scrolled all the way down to the bottom so you can, you know, find the save button. #1797

Fix Simplified the on-save flash message. It's less flashy, but just as informative. #1852

Fix The Live Preview button is disabled if static caching is enabled. #1636

Fix Fix issue where token is invalid on the first try when using full-site password protection. #1525

Fix Fix issue where users sometimes couldn't edit their own profile.

Fix Requests while the cache is being warmed will wait up to 10 seconds before returning the meta-refresh page. Ajax requests will return a 503 response. #1824

New We've given the Control Panel a delightful facelift. We've focused on consistency throughout all the nooks and crannies and think you're going to love the changes. We can't list them all, the list would be a gajillion lines long.

New You can now adjust and resize the Live Preview window sizes! (Oh yeah, we renamed Sneak Peek to Live Preview. It's more intuitive now.) #549

New You can now conditionally display fields! This is one of our most requested features. Simple conditions can be controlled through YAML or you can go hog-wild with your own custom Javascript methods. #562

New Added a Revealer fieldtype. A handy little button to conditionally display other fields.

New Replicator sets now show a little preview of their data when collapsed to help you differentiate them. #260

New Replicator opens sets one at a time unless you choose to expand all, and it'll remember your preference. It's a much better experience. #1492

The updater does makes a backup zip, but you should consider using git or testing the upgrade locally before deploying to production.

Asset IDs will be replaced by URLs. Taxonomy term IDs will be replaced by values. Asset and taxonomy configuration files will be relocated and adjusted. Taxonomy fields will be adjusted in your fieldsets.

This release adds some improved security suggestions to the sample server files (htaccess and nginx.conf) that you'll want to look at if you haven't already done so. Things like disallowing access to all. hidden files, not just .htaccess, and so on.

New Added a form fieldtype for choosing one (or more) of your forms.

Newget and url modifiers work with array by grabbing the first item.

New Added a Please facade. Does the exact same thing as Artisan.

Fix Fix an issue where some people would see an infinitely refreshing page as the cache warmed up.

Fix Search API methods will catch exceptions and log them instead of breaking the site with an error display.

Fix Fix issue where services.yaml would not be recognized.

Fix Add some rules for protecting hidden files to the sample htaccess and nginx.conf files.

Fix Removed the collection of entries from taxonomy terms when converting to an array. Fixes an Algolia error saying too much data is being sent.

Fix Fix the CP not updating all content types in the Stache correctly (inline taxonomy creation appeared to not work correctly. Which is, let's be honest, functionally the same thing as not working correctly).

New A stunningly large amount of Control Panel UI/UX improvements to tickle your fancy, and your neighbor. We can't list them all because we forgot most of them. Everything just looks better, and we'll leave it at that.

New You can now customize your entry and taxonomy listing table columns. #653

New Terms can now be created on the fly inside a taxonomy fieldtype, the way it was always meant to be. #283

New You can now manage permanent redirects (301) in your routes.

New Relate fieldtypes (taxonomy, collection, etc) now use a "tag" style UI by default.

New New Updater and Form widgets. Also souped up the Collection widget like a Fast & Furious sequel. It now has a button.

New The Collection Tag (and derivatives) now accepts a locale parameter.

New Collection Tags can be filtered by a locale, without falling back to the default locale. You asked, we delivered. #759

New Entries can now have a different route for each locale. (eg. /articles, /des-articles, etc)

New You are presented with a nice, helpful, and informative error message when a duplicate content ID is encountered. (Hint, if you see this error, go remove that ID. Just...delete it.)

New You can now pass variables into the contains modifier along with regular strings.

New Glide now supports external/remote images. Be nice to other people's sites though, okay?

New Login throttling has been added to the CP. Too many attempts in a short time will lock a user out for a minute, allowing them time to make coffee before trying again.

New Added a user.registering event that allows you to halt the registration process or modify the user data.

New Added a make:fieldset command that bakes you a small, delicate cupcake.

New Collection and Taxonomy tags can now use any date variable in since and until filters.

New Custom filter classes now have access to context and tag parameters.

New If you ever thought "Golly, I'd love to use a modifier outside of a template", get your smile out of your pocket. Now you can.

New Added $this->formOpen() into the Tags class.

New Arrays now get indexed when using the Zend search driver.

New Added Request::only() and Request::except() methods.

Fix Fix order inconsistency when using number based collections. The correct setting is order: number. For realsies. We made sure numeric works for backwards compatibility, but it's totally supposed to be number.

Fix Lured the debug bar home with a hot apple pie and a fan on our window sill. It worked so fast you would have laughed if you saw it... #763

Fix Third party fieldtypes no longer get dropped at the end of the fieldtype list like non-alphabetical outcasts.

Fix The cache key prefix can be modified with CACHE_KEY_PREFIX in your .env file. #730

Fix Fix issue where striptags modifier wasn't working. It should. Now it does.

Fix Fix issue where the asset selector is empty when used in Redactor or Markdown fields. #724

Fix RedirectExceptions use a 302 status by default. You probably don't care about this, but it was the right thing to do.

Fix Fixed a white screen error on the control panel login caused by an infinite loop when checking for super permissions which checks for a generic permission which checks for super permissions which checks for a generic permission which checks for super permissions which checks for a generic permission which checks for super permissions ...

New Forms now support file uploads! The uploaded files can even become actual Assets if you'd like.

New Asset containers can now have handles (e.g. logos or header_images. Using those UUIDs all over the place was super annoying when working with files. We're sorry it took so long to make this easier for you.

New The Asset Browser in an assets field now allows you to create and navigate subfolders. And there was much rejoicing! 🎉

New The Asset Browser will now remember if you left it in grid or table mode. If only it could remember where the Apple TV remote was. Maybe in 2.1.

New The Asset Browser now has a search field to help you find stuff. #623

New Added assets:find, assets:list, and assets:sync commands. Are you noticing a trend here?

New Added Asset::path() method to find assets matching a path.

New Added Assets::all() to get ALL THE ASSETS!

New Added a get modifier which grabs a single value from a relationship.

New Added an alt parameter to the theme:img tag. Useful when paired with tag="true", like cheese and wine.

New Added a URL::encode() method that's smarter than urlencode.

Fix Renamed Redwood's bundled asset container from 380dc8d9-481c-4d18-9162-ecd5688f98a8 to main because we're humans and we can remember words better than 90 million characters.