Skip to content

Releases: area17/twill

Twill 2.0

06 Mar 18:48
Compare
Choose a tag to compare

We're really excited to release Twill 2.0 after a few months of focus to really set the project up for success. We've responded to the community pain points, supporting both Laravel 6 and 7, removing the need to build blocks and assets, improving documentation, introducing automated testing, and many more updates and bug fixes you can read more about below.

We were also very positively surprised by the number and quality of external contributions. Twill now has 42 contributors, twice as much as our previous release, and community members are starting to provide excellent support to other developers from their experience working with it. Thanks a lot to everyone involved! Twill also surpassed 20k installs recently!

We also want to note we understood the concerns shared by the community about our lack of releases in the past few months, and hope that this release will make you love working with Twill even more after patiently waiting for it. Our support for Laravel 6 took time to perfect, with dependencies going deprecated. Our changes to the frontend build or to the repositories traits needed to be challenged in different codebases. Stability is key for our users and it was important for us to take the time to make it right.

We could have tagged Laravel 6 support earlier though, that's entirely true, and that's something we want to address moving forward. We will now commit to releasing at least once every month. We might not want to be as quick as Laravel with a major release every 6 months, but we will be more actively releasing even if it is for a few minor fixes, that's for sure. With that said, we also want to say thank you to all the developers that tested our changes on the master branch during the past few months. It's been incredibly helpful to get feedback and contributions from the community.

We hope you enjoy this release, it is quite a big one. We're already excited about the next one!

Changed

Added

And more...

Check out more features, fixes and improvements in our full changelog.

Twill 1.2.2

21 Aug 15:38
Compare
Choose a tag to compare

Twill just surpassed 10k installs and today, version 1.2.2 is available with a significant amount of improvements and bug fixes thanks to the efforts of 21 contributors: Amr Noman, Antoine Doury, Antonin Caudron, Antonio Carlos Ribeiro, Bram Mittendorff, Daniel Ramos, Dmitrii Larionov, Fernando Petrelli, Franca Winter, Gilbert Moufflet, Jarred Bishop, Lorren Gordon, Nikhil Trivedi, Pablo Barrios, Quentin Renard, Rafael Milewski, Ray Tri, Riaan Laubscher, Stevan Pavlović, Yanhao Li, Žiga Pavlin.

Glide support for local image rendering

Glide is an open source image rendering service that integrates well with Twill and Laravel. It is a self-hosted option for local development and/or production websites and apps that have limited needs for image resizing and cropping. For image-heavy production websites and apps, we still recommend Imgix or a similar third party service, or at least setting up a CDN on top of your images.

The media and file libraries local endpoint type has also been completely reworked to work with Laravel default public storage location. Remember to run php artisan storage:link locally and as part of your deployment process if you are using local uploads rather than S3.

To try out Glide on a fresh Twill app, it is as simple as updating 2 environment variables:

MEDIA_LIBRARY_ENDPOINT_TYPE=local
MEDIA_LIBRARY_IMAGE_SERVICE=A17\Twill\Services\MediaLibrary\Glide

Of course, more configuration variables are available through the new glide key of Twill's configuration. See the default configuration here.

Making repeaters happy again

Repeaters had a couple of issues that are now fixed in this release:

  • repeaters in forms are now updating the initially created database record instead of needlessly creating a new record each time their parent model gets updated
  • repeaters in blocks are now restored correctly when restoring a past revision
  • medias and files fields support has been improved

Different images per language support

You can now globally enable the ability for your content editors to provide different images per language in the media form field using the media_library.translated_form_fields configuration key (defaults to false). The user experience is exactly the same as our other translatable field. When rendering in a template or API, you can fallback to the default language if no image has been selected for the current language.

Cleaning up internals

Lead by community member Stevan Pavlović, an effort to clean Twill internals begins with this release. Laravel helpers and facades are getting replaced by dependency injection or at least, for now, to avoid consequent breaking changes, by fully qualified imports.

And a lot more in the changelog below!

HOW TO UPDATE

To update, you will need to run composer update in your project and then run the new Twill provided artisan command: twill:update. This will generates new database migrations and invite you to migrate your database. Those new migrations are safe to run as they check for the existence (or inexistence) of tables and columns in your database before doing anything. If you are upgrading from an earlier version than 1.2, you will need to update your composer.json file first: "area17/twill": "1.2.*".

NOTE ABOUT UPCOMING LARAVEL 6 AND SEMANTIC VERSIONING

Laravel 6 upcoming release was announced a few weeks ago at Laracon US! Twill will of course support it soon after the official release, which should happen at the end of August at Laracon EU 🤞.

Taylor Otwell also explained why v6 instead of v5.9 since the next release is not a paradigm shift for the framework: Laravel is adopting semantic versioning (major.minor.patch) and for simplicity, we will make that shift as well.

Right now, Laravel and Twill are following romantic versioning (paradigm.major.minor). This is why Twill 1.2.2 is not just about patches but new features and improvements too.

Moving forward, once Laravel 6 is released, a release with breaking changes will be considered major, which would mean Twill 2.0.0 right now. A release with new features would be 1.3.0, and patches would be 1.2.3.

You can start using Composer's caret version range (^1.2.2) now if you'd like to benefit from new features without fearing breaking changes on your next composer update! If you'd rather stick to a stricter way of requiring Twill versions (fair enough, we do that in Twill's npm dependencies for your own safety), you will have to update your composer.json file to get new features rather than patches only.

Changelog

Added

Fixed

  • Fix media and file local libraries: local disk is now defined automatically by Twill, and configured to work seamlessly with Glide (10b9cc7, 52cabe3, ff1add8, 10aa2c5, 876c93a)
  • Fix repeaters issues with restoration, update, medias and files fields support (7ec4256, 6425a3f, c2703b2, 60a239b, 7e348f4)
  • Fix #32: markdown based mail notifications breaking in host Laravel apps (c0239ad)
  • Fix authorization gates conflicts (d2036f2, b08b121)
  • Fix default Quill.js WYSIWYG theme rendering (e593ac6)
  • Fix browser when a selected item is deleted (5e08513)
  • Fix global search input misbehavior (31fef7c)
  • Fix publish button label copy when publishing is not available (82ec2c8)
  • Fix Twill dev script console errors by disabling host check in hot script (0707f5b)
  • Fix Twill provided blocks validation rule (cc277f5)
  • Fix support for custom app namespace (#280) (eb780a5)
  • Fix canvas rendered cropped image no-cache hack (#261) (ebe4450)
  • Fix S3 uploader signature function calls (#259) (41828cd)
  • Fix missing header method exception in ValidateBackHistory middleware (#234) (2ee1080)
  • Fix media metadata helper issues (1b07f49)
  • Fix some documentation typos (df870b5, a6dda85)
  • Fix some styling bugs (faa4f89, 77e4d2d)
  • Fix dashboard settings: activity option was not used (f67ca2e)

Improved

Chore

  • Update composer dependencies (e1dfc11)
  • Update npm dependencies (06184c0)
  • Update docs to VuePress 1.0 (7221720)

Twill 1.2.1

15 Mar 10:15
Compare
Choose a tag to compare

Based on a bunch of community feedback and contribution, and after releasing several new sites using Twill, we've implemented many non-breaking additions, fixes, and improvements for 1.2.1.

Many of you have asked for a space to chat with us and other developers using Twill. We just launched Twill on Spectrum to do just that. We literally just created it so it's a bit of a graveyard right now – don't be shy and post away to help get things started.

Added

  • Laravel 5.8 support (#209)
  • CMS users 2 factor authentication (requires the php-imagick extension installed when enabled)
  • Media library custom fields
  • Browser field with multi-types
  • Medias, select and radio fields support in settings (#87)
  • Support for default values in input and wysiwyg fields
  • Add option to keep value inside connector field when toggled
  • Implement an easy way to check for images existence (#53)
  • Provide a way to disable the main content fieldset in forms
  • Add wide modal option to browser form field (#105)
  • Enable HTML rendering in browsers (#100)
  • Add a way to add pattern for the routes and domain of the admin

Fixed

  • Fix medias and files form fields conflicts (#72)
  • Fix login error state
  • Fix npm scripts in documentation
  • Correct documentation typos (#43)
  • Fix reference to hard-coded twill users table name by using config value
  • Fix wrong parameter order in fileObject helper (#99)
  • Fix settings for all types of translatable configuration
  • Fix select field value in settings for codebases with multiple languages
  • Update and block vue-select to last version (2.5.1). Update style and logic according to changes in vue-select
  • Fixed published scopes hook
  • Fix publication timeframe listing column
  • Fix CMS global search on translated titles
  • Fix for non existing crop settings
  • Fix default locale column length
  • Fix logged-in admin user privilege escalation through manually forged POST requests
  • Prevent unauthorized users from accessing CMS users listing
  • Fix translated file form field creating duplicate attached files after saving twice
  • Fix uploader showing duplicate on upload error

Improved

  • Update to Laravel Mix 4 (#113)
  • Address some install and build issues:
    • Publish compiled assets on install
    • Provide an experimental artisan based build command php artisan twill:build
    • Move npm documentation down as this is not needed to get started anymore, only when creating custom blocks
    • Fix npm scripts cp syntax once again, fixing #165
  • Update front language components to support large number of languages (#47)
  • Check database connection before twill:install (#66)
  • Improve create super admin command (#68)
  • Added default false value to published column on module's default migration (#93)
  • Wysiwyg - Default styling for the superscript
  • Update image styling in browser items list
  • Memoize translations to avoid querying the relationship multiple times when checking for active translations
  • Languages list in listings – show first 4 only
  • Allow main nav to scroll on overflow-x
  • Add repeaterName parameter to repository repeater relates functions (#129)
  • Remove unecessary check for empty value before saving text fields into vuex store
  • Improve usability of the full screen content editor on mobile
  • Various documentation improvements

Twill 1.2

24 Sep 06:27
Compare
Choose a tag to compare

It's been an exciting first few months for Twill, and along the way, we've been listening to your feedback. Today, we're excited to release Twill 1.2 with easier setup, improved documentation, and several improvements. We also happily welcomed our first external contribution from @yanhao-li and a lot of research on extensibility from @IllyaMoskvin!

Breaking changes have been kept to a minimum and we've provided configuration variables for backward compatibility.

Reminder: Twill's versioning scheme maintains the following convention: paradigm.major.minor, exactly like Laravel. Fun fact: this is called Romantic Versioning! When referencing Twill from your application, you should always use a version constraint such as 1.2.*, since major releases of Twill do include breaking changes.

Added

  • Support for Laravel 5.7 (4021012, f315683)
  • Package auto-discovery for Laravel >= 5.5 (1642477)
  • Documentation sources (VuePress project running at twill.io/docs)
  • Updated documentation sections:
    • Architecture concepts
    • Local environment requirements and installation
    • Configuration
    • Revisions and previewing
    • Dashboard
    • Global search setup
    • Settings sections
    • Imgix sources setup
  • Default CMS global search implementation (edac38a, b234170)
  • My drafts module in dashboard (70d89aa)
  • Option to enable the activity log when dashboard is disabled (3eb4b2a)
  • Support for browser field in repeaters (f1f68bc)
  • CMS users optional fields (title, description) (a75cb00)

Fixed

  • Revision restoration (e87a71b, eb9718a, 937bbd2)
  • Previewing repeaters in blocks (ffde802, 8d9f656, a6136cf, e0f3e70)
  • Cropped thumbnail rendering CORS issue (f9f6896)
  • Prevent undefined formFieldValue in input and wysiwyg fields (5211a44)
  • Uploader autoretry (342a79c)
  • CMS users permissions (publishers can't edit other users, admins can create new users) (1dd825c)
  • CMS users profile image cropping parameters (b9e22a6)
  • Irrelevant error during Twill setup (9458913)
  • Media library console errors on dashboard (e5f959a)

Improved

Changed

  • CMS users and their password reset tokens are now stored in twill_users and twill_password_resets tables by default, with options to provide custom table names in config/twill.php for backward compatibility (twill.users_table and twill.password_resets_table) (c6353e7)
  • Twill's exception handler is bound to all controllers, with an option to opt-out for extensibility (twill.bind_exception_handler) (43f27de)
  • Change default column in repository's listAll helper function to title (from name) (024be64)
  • Configuration enables dashboard, search and buckets features by default (a02c59c). You can disable them in the enabled configuration array of your config/twill.php file.

Twill 1.1 – Public release

05 Jul 11:34
4d58468
Compare
Choose a tag to compare

Added

  • Option to the browser field to disable sorting (228babb)
  • Option to the select form field to enable search (9f49c11)
  • Helper CMS image function that takes the first available attached image (3d573dc)
  • Block editor custom validation rule (57cceae)
  • Allow passing extra data when rendering blocks (e9a5f4d)
  • Save button inside the full screen content editor (615c168)
  • Configuration based CMS dashboard (81e8dfa, b1d17b3, 25f9419, 0ced2cd, 6753027, 4b125aa, b6cef76, c7a0bba)
  • UI warnings when deleting from the media library, listings, and blocks from the block editor (ff8cd77)

Fixed

  • Select options escaping (7180e63)
  • Form error when content revisions have no user anymore (2483120)
  • Support older Debugbar version for Laravel <5.5 (2efc9ff)
  • Slugs management on non translated models in a translated app (5c30e40)

Improved

Changed