Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: plone/volto
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0d684c2c8104bfeaf70690d711e9931a4ac349a6
Choose a base ref
..
head repository: plone/volto
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: da0f8fe28023ca26ade7df9f734e4d9b9e21b69f
Choose a head ref
Showing with 5,363 additions and 509 deletions.
  1. +7 −7 .github/ISSUE_TEMPLATE/{bug_report.md → 1_bug_report.md}
  2. 0 .github/ISSUE_TEMPLATE/{feature_request.md → 2_feature_request.md}
  3. 0 .github/ISSUE_TEMPLATE/{PLIP.md → 3_PLIP.md}
  4. +8 −0 .github/ISSUE_TEMPLATE/config.yml
  5. +6 −0 .github/PULL_REQUEST_TEMPLATE.md
  6. +139 −0 .github/boring-cyborg.yml
  7. +48 −0 .github/workflows/acceptance.yml
  8. +10 −0 .github/workflows/changelog.yml
  9. +66 −0 .github/workflows/cookieplone.yml
  10. +26 −0 .github/workflows/docs-rtd-pr-preview-registry.yml
  11. +5 −3 .github/workflows/{docs-rtd-pr-preview.yml → docs-rtd-pr-preview-volto.yml}
  12. +0 −18 .lintstagedrc
  13. +23 −25 .readthedocs.yaml
  14. +37 −0 Makefile
  15. +4 −3 PACKAGES.md
  16. +18 −3 docs/source/_inc/_branch-policy.md
  17. +6 −0 docs/source/_inc/_semantic-ui-deprecation.md
  18. +17 −6 docs/source/conf.py
  19. +7 −0 docs/source/contributing/index.md
  20. +27 −14 docs/source/contributing/version-policy.md
  21. +23 −0 docs/source/release-notes/index.md
  22. +3 −0 docs/source/theming/about-semantic.md
  23. +3 −0 docs/source/theming/custom-styling.md
  24. +2 −0 docs/source/theming/index.md
  25. +3 −0 docs/source/theming/semanticui-theming.md
  26. +3 −0 docs/source/theming/theming-engine.md
  27. +3 −0 docs/source/theming/theming-strategy.md
  28. +98 −96 docs/source/upgrade-guide/index.md
  29. +31 −0 lint-staged.config.js
  30. +7 −3 package.json
  31. +2 −2 packages/blocks/.eslintrc.cjs
  32. +14 −0 packages/blocks/CHANGELOG.md
  33. +2 −2 packages/blocks/RenderBlocks/BlockWrapper.tsx
  34. +1 −1 packages/blocks/RenderBlocks/RenderBlocks.tsx
  35. +1 −0 packages/blocks/index.ts
  36. +0 −1 packages/blocks/news/6409.feature
  37. +0 −1 packages/blocks/news/6536.internal
  38. +6 −1 packages/blocks/package.json
  39. +3 −0 packages/blocks/setupTesting.ts
  40. +14 −0 packages/blocks/vitest.config.ts
  41. +6 −0 packages/client/CHANGELOG.md
  42. +1 −1 packages/client/README.md
  43. +1 −1 packages/client/package.json
  44. +34 −0 packages/eslintconfig/README.md
  45. +17 −0 packages/eslintconfig/addons.js
  46. +9 −0 packages/eslintconfig/package.json
  47. +6 −0 packages/helpers/CHANGELOG.md
  48. +0 −1 packages/helpers/news/6536.internal
  49. +1 −1 packages/helpers/package.json
  50. +6 −0 packages/providers/CHANGELOG.md
  51. +0 −1 packages/providers/news/6536.internal
  52. +1 −1 packages/providers/package.json
  53. +2 −0 packages/react-router/.gitignore
  54. +6 −0 packages/react-router/.npmignore
  55. +28 −0 packages/react-router/.release-it.json
  56. +66 −0 packages/react-router/CHANGELOG.md
  57. +188 −0 packages/react-router/README.md
  58. 0 packages/react-router/news/.gitkeep
  59. +77 −0 packages/react-router/package.json
  60. +93 −0 packages/react-router/src/index.test.ts
  61. +77 −0 packages/react-router/src/index.ts
  62. +33 −0 packages/react-router/towncrier.toml
  63. +13 −0 packages/react-router/tsconfig.json
  64. +9 −0 packages/react-router/tsup.config.ts
  65. +13 −2 packages/registry/.readthedocs.yaml
  66. +10 −0 packages/registry/CHANGELOG.md
  67. +1 −0 packages/registry/docs/how-to-guides/instantiate-registry.md
  68. +55 −0 packages/registry/docs/how-to-guides/register-routes.md
  69. +2 −1 packages/registry/docs/index.md
  70. +0 −1 packages/registry/news/6600.feature
  71. +1 −1 packages/registry/package.json
  72. +88 −0 packages/seven/.eslintrc.cjs
  73. +7 −0 packages/seven/.gitignore
  74. +26 −0 packages/seven/.release-it.json
  75. +11 −0 packages/seven/CHANGELOG.md
  76. +274 −0 packages/seven/Makefile
  77. +33 −0 packages/seven/README.md
  78. +32 −0 packages/seven/app/config.server.ts
  79. +11 −0 packages/seven/app/config.ts
  80. +56 −0 packages/seven/app/content.tsx
  81. +5 −0 packages/seven/app/okroute.tsx
  82. +191 −0 packages/seven/app/root.tsx
  83. +17 −0 packages/seven/app/routes.ts
  84. +20 −0 packages/seven/app/utils.ts
  85. +13 −0 packages/seven/cypress.config.js
  86. +2 −0 packages/seven/cypress/add-commands.js
  87. +27 −0 packages/seven/cypress/docker/seamless-rules.yml
  88. +24 −0 packages/seven/cypress/docker/seamless.yml
  89. BIN packages/seven/cypress/fixtures/broccoli.jpg
  90. +5 −0 packages/seven/cypress/fixtures/example.json
  91. BIN packages/seven/cypress/fixtures/file.pdf
  92. BIN packages/seven/cypress/fixtures/halfdome2022.jpg
  93. BIN packages/seven/cypress/fixtures/image.png
  94. +13 −0 packages/seven/cypress/helpers/index.js
  95. +969 −0 packages/seven/cypress/support/commands.js
  96. +1 −0 packages/seven/cypress/support/constants.js
  97. +53 −0 packages/seven/cypress/support/e2e.js
  98. +73 −0 packages/seven/cypress/support/guillotina.js
  99. +1 −0 packages/seven/cypress/support/helpers.js
  100. +43 −0 packages/seven/cypress/support/reset-fixture.js
  101. +82 −0 packages/seven/cypress/support/upgradetests.js
  102. +81 −0 packages/seven/cypress/support/volto-slate.js
  103. +12 −0 packages/seven/cypress/tests/core/basic/basic.cy.ts
  104. +8 −0 packages/seven/cypress/tsconfig.json
  105. 0 packages/seven/news/.gitkeep
  106. +1 −0 packages/seven/news/6599.feature
  107. +47 −0 packages/seven/package.json
  108. BIN packages/seven/public/favicon.ico
  109. +7 −0 packages/seven/react-router.config.ts
  110. +4 −0 packages/seven/registry.config.ts
  111. +33 −0 packages/seven/towncrier.toml
  112. +33 −0 packages/seven/tsconfig.json
  113. +31 −0 packages/seven/vite.config.ts
  114. +2 −8 packages/slots/.eslintrc.cjs
  115. +1 −1 packages/slots/.storybook/preview.ts
  116. +11 −0 packages/slots/CHANGELOG.md
  117. +0 −1 packages/slots/news/6409.internal
  118. +0 −1 packages/slots/news/6536.internal
  119. +5 −1 packages/slots/package.json
  120. +4 −0 packages/theming/.eslintrc.cjs
  121. +11 −0 packages/theming/CHANGELOG.md
  122. +0 −1 packages/theming/news/6409.internal
  123. +0 −1 packages/theming/news/6536.internal
  124. +1 −1 packages/theming/package.json
  125. 0 packages/theming/styles/main.css.map
  126. +6 −0 packages/types/CHANGELOG.md
  127. +0 −1 packages/types/news/6600.feature
  128. +1 −1 packages/types/package.json
  129. +6 −0 packages/volto-slate/CHANGELOG.md
  130. +0 −1 packages/volto-slate/news/6588.feature
  131. +1 −1 packages/volto-slate/package.json
  132. +23 −0 packages/volto/CHANGELOG.md
  133. +4 −4 packages/volto/Makefile
  134. +22 −0 packages/volto/cypress/support/commands.js
  135. +1 −0 packages/volto/news/5580.feature
  136. +2 −0 packages/volto/news/6541.documentation
  137. +0 −1 packages/volto/news/6576.bugfix
  138. +0 −1 packages/volto/news/6585.bugfix
  139. +0 −1 packages/volto/news/6591.feature
  140. +1 −0 packages/volto/news/6613.internal
  141. +1 −0 packages/volto/news/6617.internal
  142. +1 −1 packages/volto/package.json
  143. +0 −2 packages/volto/public/robots.txt
  144. +23 −0 packages/volto/src/components/theme/AlternateHrefLangs/AlternateHrefLangs.jsx
  145. +135 −0 packages/volto/src/components/theme/AlternateHrefLangs/AlternateHrefLangs.test.jsx
  146. +2 −0 packages/volto/src/components/theme/View/View.jsx
  147. +0 −1 packages/volto/src/config/ControlPanels.js
  148. +4 −5 packages/volto/src/express-middleware/robotstxt.js
  149. +1 −1 packages/volto/src/helpers/Api/Api.js
  150. +12 −31 packages/volto/src/helpers/Robots/Robots.js
  151. +1 −0 packages/volto/types/components/manage/Widgets/ObjectBrowserWidget.d.ts
  152. +1 −0 packages/volto/types/components/theme/AlternateHrefLangs/AlternateHrefLangs.d.ts
  153. +1 −0 packages/volto/types/components/theme/AlternateHrefLangs/AlternateHrefLangs.test.d.ts
  154. +1,316 −245 pnpm-lock.yaml
Original file line number Diff line number Diff line change
@@ -13,23 +13,23 @@ A clear and concise description of what the bug is.
Steps to reproduce the behavior:

1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
2. Click on '...'
3. Scroll down to '...'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.
If applicable, add screenshots or videos to help explain your problem.

**Software (please complete the following information):**

- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Volto Version [e.g. 8.5.0]
- Plone Version [e.g. 5.2.2]
- Plone REST API Version [e.g. 7.0.1]
- Browser [e.g. firefox, chrome, safari]
- Volto Version [e.g. 18.4.0]
- Plone Version [e.g. 6.1.0]
- Plone REST API Version [e.g. 9.1.0]

**Additional context**
Add any other context about the problem here.
File renamed without changes.
File renamed without changes.
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Get support
url: https://community.plone.org/
about: Get support for Plone in the Community Forum.
- name: Chat
url: https://discord.gg/zFY3EBbjaj
about: Chat on Discord.
6 changes: 6 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
> [!CAUTION]
The Volto Team has suspended its review of new pull requests from first-time contributors until the [release of Plone 7](https://plone.org/download/release-schedule), which is preliminarily scheduled for the second quarter of 2026.
> [Read details](https://6.docs.plone.org/volto/contributing/index.html).
-----

- [ ] I signed and returned the [Plone Contributor Agreement](https://plone.org/foundation/contributors-agreement), and received and accepted an invitation to join a team in the Plone GitHub organization.
- [ ] I verified there aren't other open [pull requests](https://github.com/plone/volto/pulls) for the same change.
- [ ] I followed the guidelines in [Contributing to Volto](https://6.docs.plone.org/volto/contributing/index.html).
139 changes: 139 additions & 0 deletions .github/boring-cyborg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# boring-cyborg.yml
# https://probot.github.io/apps/boring-cyborg/

##### Labeler ##########################################################################################################
## Enable "labeler" for your PR that would add labels to PRs based on the paths that are modified in the PR.
#labelPRBasedOnFilePath:
# # Add 'label1' to any changes within 'example' folder or any subfolders
# label1:
# - example/**/*
#
# # Add 'label2' to any file changes within 'example2' folder
# label2:
# - example2/*
#
# # Complex: Add 'area/core' label to any change within the 'core' package
# area/core:
# - src/core/*
# - src/core/**/*
#
# # Add 'test' label to any change to *.spec.js files within the source dir
# test:
# - src/**/*.spec.js
#
# Various Flags to control behaviour of the "Labeler"
#labelerFlags:
# # If this flag is changed to 'false', labels would only be added when the PR is first created and not when existing
# # PR is updated.
# # The default is 'true' which means the labels would be added when PR is updated even if they were removed by the user
# labelOnPRUpdates: true

##### Reviewer #########################################################################################################
# Enable "Reviewer" for your PR that would add reviewers to PRs based on the labels that exist on the PR.
# You have the option to set a default reviewer that gets added to every PR, or you can omit that config variable to skip it.
#addReviewerBasedOnLabel:
# add list of reviewers to add by default to all PRs
# defaultReviewers:
# - stevepiercy
# specify PR labels that you want to auto assign reviewers based on
# labels:
# label1:
# - tyler-mairose-sp
# - jordan-violet-sp
# label2:
# - kaxil

##### Greetings ########################################################################################################
# Comment to be posted to welcome users when they open their first PR
firstPRWelcomeComment: >
> [!CAUTION]
> The Volto Team has suspended its review of new pull requests from first-time contributors until the [release of Plone 7](https://plone.org/download/release-schedule), which is preliminarily scheduled for the second quarter of 2026.
> [Read details](https://6.docs.plone.org/volto/contributing/index.html).
Thanks for submitting your first pull request! You are awesome! :hugs:
<br>If you haven't done so already, read
[Plone's Code of Conduct](https://plone.org/foundation/about/materials/foundation-resolutions/code-of-conduct),
[Contributing to Plone](https://6.docs.plone.org/contributing/index.html),
[First-time contributors](https://6.docs.plone.org/contributing/first-time.html), and
[Contributing to Volto](https://6.docs.plone.org/volto/contributing/index.html),
as this will greatly help the review process.
<br>Welcome to the Plone community! :tada:
# Comment to be posted to congratulate user on their first merged PR
firstPRMergeComment: >
Congratulations on your first merged pull request in this project! :tada:
![Congratulations](https://raw.githubusercontent.com/plone/documentation/fda4eadee4b0b71c4bcd0da739847444f74d3fc5/.github/images/congratulations.jpg)
<br>Thank you for contributing, we are very proud of you! :heart:
# Comment to be posted to on first time issues
firstIssueWelcomeComment: >
Thanks for opening your first issue here!
Your engagement is essential for open source projects, including Plone. :hugs:
<br>If you haven't done so already,
read [Plone's Code of Conduct](https://plone.org/foundation/about/materials/foundation-resolutions/code-of-conduct).
Also please follow the issue template, as it helps both you and other community members contribute more effectively.
<br>If your issue is a feature request, others may raise its prominence through
[feature voting](https://6.docs.plone.org/contributing/documentation/index.html#github-menu).
<br>Welcome to the Plone community! :tada:
###### IssueLink Adder #################################################################################################
# Insert Issue (Jira/Github etc) link in PR description based on the Issue ID in PR title.
#insertIssueLinkInPrDescription:
# # specify the placeholder for the issue link that should be present in the description
# descriptionIssuePlaceholderRegexp: "^Issue link: (.*)$"
# matchers:
# # you can have several matches - for different types of issues
# # only the first matching entry is replaced
# jiraIssueMatch:
# # specify the regexp of issue id that you can find in the title of the PR
# # the match groups can be used to build the issue id (${1}, ${2}, etc.).
# titleIssueIdRegexp: \[(AIRFLOW-[0-9]{4})\]
# # the issue link to be added. ${1}, ${2} ... are replaced with the match groups from the
# # title match (remember to use quotes)
# descriptionIssueLink: "[${1}](https://issues.apache.org/jira/browse/${1}/)"
# docOnlyIssueMatch:
# titleIssueIdRegexp: \[(AIRFLOW-X{4})\]
# descriptionIssueLink: "`Document only change, no JIRA issue`"
#
###### Title Validator #################################################################################################
# Verifies if commit/PR titles match the regexp specified
#verifyTitles:
# # Regular expression that should be matched by titles of commits or PR
# titleRegexp: ^\[AIRFLOW-[0-9]{4}\].*$|^\[AIRFLOW-XXXX\].*$
# # If set to true, it will always check the PR title (as opposed to the individual commits).
# alwaysUsePrTitle: true
# # If set to true, it will only check the commit in case there is a single commit.
# # In case of multiple commits it will check PR title.
# # This reflects the standard behaviour of Github that for `Squash & Merge` GitHub
# # uses the PR title rather than commit messages for the squashed commit ¯\_(ツ)_/¯
# # For single-commit PRs it takes the squashed commit message from the commit as expected.
# #
# # If set to false it will check all commit messages. This is useful when you do not squash commits at merge.
# validateEitherPrOrSingleCommitTitle: true
# # The title the GitHub status should appear from.
# statusTitle: "Title Validator"
# # A custom message to be displayed when the title passes validation.
# successMessage: "Validation successful!"
# # A custom message to be displayed when the title fails validation.
# # Allows insertion of ${type} (commit/PR), ${title} (the title validated) and ${regex} (the titleRegexp above).
# failureMessage: "Wrong ${type} title: ${title}"
#
###### PR/Branch Up-To-Date Checker ####################################################################################
## Check if the branch is up to date with master when certain files are modified
#checkUpToDate:
# # The default branch is "master", change the branch if you want to check against a different target branch
# targetBranch: master
# files:
# # File paths that you want to check for
# # In this example, it checks if the branch is up to date when alembic migrations are modified in the PR.
# # It helps avoid multiple heads in alembic migrations in a collaborative development project.
# - airflow/migrations/*
# - airflow/migrations/**/*
# - airflow/alembic.ini
48 changes: 48 additions & 0 deletions .github/workflows/acceptance.yml
Original file line number Diff line number Diff line change
@@ -691,3 +691,51 @@ jobs:
with:
name: cypress-videos
path: packages/volto/cypress/videos

seven:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
name: Seven
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
node-version: [22.x]
steps:
- uses: actions/checkout@v4

- name: Set up Node.js environment
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ matrix.node-version }}

- name: Cypress acceptance tests
uses: cypress-io/github-action@v6
env:
BABEL_ENV: production
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
working-directory: packages/seven
browser: chrome
spec: cypress/tests/core/basic/**/*.cy.ts
start: |
make ci-acceptance-backend-start
make acceptance-frontend-prod-start
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'

# Upload Cypress screenshots
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: packages/seven/cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-videos
path: packages/seven/cypress/videos
10 changes: 10 additions & 0 deletions .github/workflows/changelog.yml
Original file line number Diff line number Diff line change
@@ -48,6 +48,8 @@ jobs:
- 'packages/slots/**'
theming:
- 'packages/theming/**'
seven:
- 'packages/seven/**'
wrongNews:
- added|modified: 'news/**'
@@ -150,6 +152,14 @@ jobs:
env:
BASE_BRANCH: ${{ github.base_ref }}

- name: seven changelog check
if: steps.filter.outputs.seven == 'true'
run: |
git fetch --no-tags origin main
towncrier check --compare-with origin/main --dir packages/seven
env:
BASE_BRANCH: ${{ github.base_ref }}

- name: Wrong location of news changelog check
if: steps.filter.outputs.wrongNews == 'true'
run: echo "News items should be moved from the repository root to the appropriate package root in `packages/package-name`." && exit 1
66 changes: 66 additions & 0 deletions .github/workflows/cookieplone.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Cookieplone
on: [push, pull_request]

env:
PYTHON_VERSION: "3.13"

jobs:
seven:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
name: Seven Cookieplone
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
node-version: [22.x]
steps:
- uses: actions/checkout@v4
- run: echo "Current branch is ${GITHUB_REF#refs/heads/}"
- name: Set up Node.js environment
uses: ./.github/actions/node_env_setup
with:
node-version: ${{ matrix.node-version }}

- name: Generate Cookieplone-based frontend addon
run: |
pipx install cookieplone
COOKIEPLONE_REPOSITORY_TAG=seventemplate pipx run --no-cache cookieplone seven_addon --no-input
- name: Install generated package
working-directory: seven-add-on
run: |
pnpm dlx mrs-developer missdev --no-config --fetch-https
(cd core && git fetch --depth 1 origin ${GITHUB_REF#refs/heads/}:${GITHUB_REF#refs/heads/} && git checkout ${GITHUB_REF#refs/heads/})
pnpm i
- name: Cypress acceptance tests
uses: cypress-io/github-action@v6
env:
BABEL_ENV: production
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
working-directory: seven-add-on/core/packages/seven
browser: chrome
spec: cypress/tests/core/basic/**/*.cy.ts
start: |
make ci-acceptance-backend-start
make project-acceptance-frontend-prod-start
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'

# Upload Cypress screenshots
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-screenshots
path: packages/seven/cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v4
if: failure()
with:
name: cypress-videos
path: packages/seven/cypress/videos
26 changes: 26 additions & 0 deletions .github/workflows/docs-rtd-pr-preview-registry.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# .github/workflows/docs-rtd-pr-preview-registry.yml
name: readthedocs/actions
on:
pull_request_target:
types:
- opened
# Execute this action only on PRs that touch
# documentation files for @plone/registry.
branches:
- main
paths:
- .readthedocs.yaml
- requirements-docs.txt
- "packages/registry/docs/**"

permissions:
pull-requests: write

jobs:
documentation-links:
runs-on: ubuntu-latest
steps:
- uses: readthedocs/actions/preview@v1
with:
project-slug: "plone-registry"
single-version: "true"
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
# .github/workflows/docs-rtd-pr-preview.yml
# .github/workflows/docs-rtd-pr-preview-volto.yml
name: readthedocs/actions
on:
pull_request_target:
types:
- opened
# Execute this action only on PRs that touch
# documentation files.
# documentation files for Volto.
branches:
- main
paths:
- "docs/source/**"
- "packages/volto/.storybook/**"
- .readthedocs.yaml
- requirements-docs.txt
- "packages/registry/docs/**"

permissions:
pull-requests: write
Loading