🚀 This is a huge release laying the foundation for Alchemy being a API first CMS for static site generators. While we truly believe in server site rendered HTML and will always support this, we also think that statically generated sites talking via APIs to the backend (aka the "JAM Stack") can be a huge improvement for modern frontends. That's why we made major changes to the internals of Alchemy that help you to better serialize your content and remove weirdness from the code base.
🚀 Before we begin thanks for all the contributions that made this release possible:
👍 You really help to make Alchemy better every day.
🍱 Thanks for that ❤️
- ✂ Removed the single root page from the page tree
Alchemy always had a single root page under which all other pages were nested. Even the layout pages were nested under hidden layout root pages. This was very confusing and prevents us from making changes to the internal structure of Alchemy for features coming in the near future.
| Root Page / \ Language Root Layout Root ├ Page 1 ├ Header | \ └ Footer | ├ Page 2 | └ Page 3 ├ Page 4 └ Page 5
This has now been changed to a easier to understand page structure
| | | Language Root Header Footer ├ Page 1 | \ | ├ Page 2 | └ Page 3 ├ Page 4 └ Page 5
✂ Remove Page visible attribute
🚚 The page visible attribute was one of the most confusing attribute in Alchemy. It did way more things than you might have expected. Did you know that it also changed how URLs got created? Probably not. And that's why removed it.
Want to make a page appear in the navigation? Create a Menu instead and put pages into it.
⚡️ In order to help with the upgrade make sure to update to Alchemy 4.6 first and use Menus and Tags instead to re-organize your pages if your page tree does not reflect the URL hierarchy.
A rake task to help with the migration is available.
Always create nested urls
🚚 With the introduction of Menus and the removal of the Page visible flag we now completely separated the page tree from generating the navigation. That's why we now always generate a nested URL. Don't want to nest a pages URL? Just move it up in the tree.
🔧 Configurable edit page preview per site
🏗 This is a true benefit for all static sites running Alchemy as it's API. On a per site basis you can configure the host (and basic auth) to your static site and Alchemy will preview it in the build in page edit preview.
📦 Add a
Modern ES6 is everywhere. We started to work on the transition to a more modern JS stack. This is the first step.
➕ Add an On-Boarding Flow
🚚 We removed the implicit creation of the sites and default languages. We now do this via the UI instead letting admins decide what to create instead.
✂ Removed element editor partials
🚚 After being deprecated we removed the support for element editor partials. Alchemy now renders them for you. If you rely on passing custom options into element editors and the content editors please consider to use the
settingshash on the
contentsdefinition of your elements or using a custom essence.
Other minor changes
- Render nodes #1831 (mamhoff)
- ➕ Add error flash to resource controller #1827 (mamhoff)
- Translated root menus #1825 (mamhoff)
- ➕ Add a quick Node select #1821 (mamhoff)
- 👉 Make page language mandatory #1818 (tvdeyen)
- Multi language menus #1774 (rmparr)
- ⚡️ Update Fontawesome #1759 (tvdeyen)
- Sortable resources tables #1744 (tvdeyen)
Other breaking changes
🚀 This release also removes all deprecated methods and classes from 4.6. In order to be able to smoothly upgrade please make sure to update to Alchemy 4.6 and remove all deprecations from your code base, then upgrade to Alchemy 5 and run the
- Remove active_record_5_1? method #1854 (tvdeyen)
- ✂ Remove old 4.4 upgrader class #1814 (tvdeyen)
- Remove Page.ancestors_for #1813 (tvdeyen)
- ✂ Remove legacy element serializer #1810 (tvdeyen)
- ✂ Remove timestamps from essences and contents #1809 (tvdeyen)
- ✂ Remove stamper from contents #1808 (tvdeyen)
- ✂ Remove Site ID from nodes #1807 (mamhoff)
- Remove enforce_ssl #1804 (tvdeyen)
- ✂ Remove stamper from essences #1802 (tvdeyen)
- Remove acts_as_list from Content #1798 (tvdeyen)
- ✂ Remove Tasks::Helper module #1754 (mamhoff)
- ✂ Remove old upgrade tasks #1687 (tvdeyen)
- ✂ Remove deprecated features #1686 (tvdeyen)
- ✂ Remove deprecations #1656 (tvdeyen)
List of all changes
🚀 Have a look into the Changelog for a list of all PRs merged into this release.
v5.0.0.rc2July 14, 2020
v5.0.0.rc1July 14, 2020
v5.0.0.beta2June 25, 2020
v5.0.0.beta1June 11, 2020
- 🛠 Fix 4.6 upgrader
🚀 In preparation for the 5.0 release this release adds a lot of deprecations. Fix them and you should be ready to upgrade to Alchemy 5.0 without any further ado.
- ⚡️ Use apt update instead of apt-get in GH action #1865 (tvdeyen)
- Use depth for page tree serializer root_or_leaf #1864 (tvdeyen)
- 🛠 Fix sitemap wrapper height #1861 (tvdeyen)
- Do not return the root page with API responses. #1860 (tvdeyen)
- Introduce page.url_path and use it for alchemyPageSelect #1859 (tvdeyen)
- ⚡️ Update Urlname translation #1857 (tvdeyen)
- 👉 Show url name in Page tree #1856 (tvdeyen)
- 🗄 Deprecate Page#visible attribute #1855 (tvdeyen)
- 4.6: Re-add
auto_logout_timeconfiguration option #1852 (mamhoff)
- 🚚 Backport ContentEditor to 4.6, deprecate removed methods on
- Deprecate auto_logout_time (4.6) #1843 (tvdeyen)
- Deprecate require_ssl (4.6) #1842 (tvdeyen)
- 🔧 Deprecate url_nesting configuration (4.6) #1841 (tvdeyen)
- 👍 Allow page visible toggle (4.6) #1838 (tvdeyen)