Skip to content

Commit

Permalink
Merge branch 'main' into slots2024
Browse files Browse the repository at this point in the history
  • Loading branch information
stevepiercy authored Feb 26, 2024
2 parents 70708ec + a078c6e commit 7030258
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 5 deletions.
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,15 +130,12 @@ To ensure your website gets the greatest exposure, add it both to [Awesome Volto
- [Lanku](https://www.lanku.eus) (Website for Lanku Kultur Zerbitzuak, a company offering cultural services and improvised Basque verse singing sessions across the Basque Country, developed by [CodeSyntax](https://www.codesyntax.com/en), 2023)
- [Leibniz Institute for Science and Mathematics Education (IPN)](https://www.leibniz-ipn.de/de) (Website of the IPN, a research institute dedicated to issues related to learning and teaching of science, mathematics and computer science in and outside of schools, developed by [Starzel](https://www.starzel.de), 2023)
- [MEDICE Webseite](https://medice.com/de-de) (Website for MEDICE Arzneimittel Pütter GmbH & Co. KG), developed by [Werkbank GmbH](https://werkbank.de/), 2020)
- [Memori](https://memori.ai/en) (Corporate website for Memori, startup specializing in technologies applied to the experience of memory through the development of Artificial Intelligences. Developed by [Nicola Zambello](https://nzambello.dev), 2021)
- [MemoryTwin](https://memorytwin.com/en) (Product website, MemoryTwin allows you to create your personal artificial intelligence, able to remember and speak. Developed by [Nicola Zambello](https://nzambello.dev), 2022)
- [Nuova Voce Ecologista](https://nuovavoceecologista.it) (Website of Nuova Voce Ecologista, an Italian green Party, 2020)
- [Osaka University](https://www.osaka-u.ac.jp/en) (Osaka University is considered one of the most prestigious universities in Japan. Developed by [CMScom](https://www.cmscom.jp), 2021)
- [ResOU](https://resou.osaka-u.ac.jp/ja) (ResOU is introducing official researched releases by the University of Osaka, Japan. Developed by [CMScom](https://www.cmscom.jp), 2020)
- [Stradanove](https://www.stradanove.it/) (Website of the Department of Youth Policies of the Municipality of Modena, developed by [RedTurtle](https://www.redturtle.it), 2020)
- [Study guide at University of Jyväskylä](https://studyguide.jyu.fi/2020/en/) (Static website where [Volto is used as a headless CMS for authoring additional content](https://tech.blog.jyu.fi/2020/06/plone-volto-hasura-gatsbyjs-mashup/), 2020)
- [Talke Carrer Website](https://karriere.talke.com/) (Carrer website for [Talke](https://www.talke.com), one of the leading a chemical and petrochemical logistics companies in Germany, developed by [kitconcept GmbH](https://kitconcept.com), 2020)
- [TwinCreator](https://twincreator.com/en) (TwinCreator allows you to design and train multiple AI’s through simple conversation through NLP. Developed by [Nicola Zambello](https://nzambello.dev), 2021)
- [UEU](https://www.ueu.eus) (Website for Udako Euskal Unibertsitatea, a non-profit University offering all its service only in Basque: courses, publications, ... developed by [CodeSyntax](https://www.codesyntax.com/en), 2023)
- [Unione dei Comuni della Val Bisenzio](https://www.bisenzio.it/) (Website of the Municipality union of Val Bisenzio. Developed by [RedTurtle](https://www.redturtle.it), 2021)
- [VHS Ehrenamtsportal](https://vhs-ehrenamtsportal.de) (Website to help volunteers that help refugees for the [German Adult Education Association](https://www.volkshochschule.de/), developed by [kitconcept GmbH](https://kitconcept.com), 2018)
Expand Down
1 change: 1 addition & 0 deletions docs/source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ upgrade-guide/index
user-manual/index
contributing/index
release-notes/index
release-management-notes/index
```

% Only check change log entries in Volto documentation—not when it is included in the main Plone documentation—to ensure links work and do not redirect.
Expand Down
87 changes: 87 additions & 0 deletions docs/source/release-management-notes/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
---
myst:
html_meta:
"description": "Release management notes for Volto"
"property=og:description": "Release management notes for Volto"
"property=og:title": "Volto release management notes"
"keywords": "Volto, Plone, frontend, Release Notes, change log, changelog, change history"
---

# Release management notes

This chapter describes how maintainers manage the releases of Volto.

```{seealso}
Read the [Plone Release Schedule](https://plone.org/download/release-schedule) for details of how Volto's release management works in Plone.
```


## Definition of breaking

A breaking change refers to a modification, enhancement, or update made to Volto's code base that has the potential to disrupt or "break" an existing Volto-based project's functionality, tests, or customizations.

Breaking changes typically require users or contributors to update their code base, configurations, or customizations of their Volto projects to accommodate the new changes, as they may no longer be compatible with the updated Volto version.

It is essential for maintainers to communicate and document breaking changes clearly to help users and collaborators understand the impact and take appropriate actions to adapt to the new version of the project.
This is why Volto's {ref}`volto-upgrade-guide` exists.

We define a {ref}`release-management-public-api` and a {ref}`release-management-private-api` to classify the types of changes in Volto.


(release-management-public-api)=

## Public API

The public API is composed of the following Volto components:

- Public Components (`./src/components/theme`)
- Current list of {ref}`default blocks <default-block-types-label>` included in Volto
- Volto helpers (`./src/helpers`)


### DOM structure and default styling

Any change to the {term}`Document Object Model` (DOM) structure of any Volto component that renders HTML is considered a breaking change.
This is because Volto projects rely on the DOM of the stable version for styling and look and feel customizations.

The removal of any property or tag is also considered a breaking change.
This especially includes `className` props that would cause existing CSS to fail.

The addition of DOM elements is also considered a breaking change, because it could result in delivering unstyled or uncustomized content in a Volto project.

```{note}
It is not considered a breaking change when the change to the DOM is the addition or introduction of a property, such as the addition of a class name to a component or tag.
```


(release-management-private-api)=

## Private API

The private API is everything that is considered "internal" to Volto, and it is intended only to be used by Volto itself.
Therefore, changes to the private API are non-breaking changes.

The following Volto components are considered private API:

- {term}`CMS` user interface fundamental components (`./src/components/manage`)
- CMS user interface control panels
- Libraries used by Volto

```{note}
In general, the CMS user interface is not considered public API, but is private API, because the customization or modification in a project is not usual, and the overall experience is tied to these components.
Thus we give preference to maintaining a good user experience over not backporting changes that could be breaking to the product but could be beneficial for the vast majority of use cases.
For example, if a bug is fixed in the CMS user interface and it would be declared as breaking, it would never get backported to older versions.
Similarly for a useful improvement to any CMS user interface feature, or a new feature, they would never get backported to older versions.
```


### Examples

If there is a change in the CMS user interface that implies either a change of behavior or change of markup that improves the overall user experience, it's a non-breaking change.
It will be properly identified in the {doc}`../release-notes/index` as a minor change.

Any change to a control panel is a non-breaking change.

If a bug is found in the text block, and the solution involves an upgrade of the Slate library, then it is a non-breaking change.
This is true, even if that upgrade implies a breaking change in itself.
1 change: 1 addition & 0 deletions packages/volto/news/5358.documentation
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added Release Management Notes. @sneridagh @stevepiercy
1 change: 1 addition & 0 deletions packages/volto/news/5796.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Enhance findBlocks to check for blocks also in data for add-ons such as @eeacms/volto-tabs-block. @ichim-david
1 change: 1 addition & 0 deletions packages/volto/news/5802.documentation
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Removed Memori and TwinCreator websites from README.md no longer made using Volto and giving 404 error. @ichim-david
7 changes: 5 additions & 2 deletions packages/volto/src/helpers/Blocks/Blocks.js
Original file line number Diff line number Diff line change
Expand Up @@ -701,10 +701,13 @@ export function findBlocks(blocks, types, result = []) {

Object.keys(blocks).forEach((blockId) => {
const block = blocks[blockId];
// check blocks from data as well since some add-ons use that
// such as @eeacms/volto-tabs-block
const child_blocks = block.blocks || block.data?.blocks;
if (types.includes(block['@type'])) {
result.push(blockId);
} else if (containerBlockTypes.includes(block['@type']) || block.blocks) {
findBlocks(block.blocks, types, result);
} else if (containerBlockTypes.includes(block['@type']) || child_blocks) {
findBlocks(child_blocks, types, result);
}
});

Expand Down

0 comments on commit 7030258

Please sign in to comment.