Skip to content

Commit

Permalink
Merge branch '6.0' into chapter-zodb-v2
Browse files Browse the repository at this point in the history
  • Loading branch information
jensens authored Mar 6, 2025
2 parents 99989b0 + fce4dda commit 3baa55b
Show file tree
Hide file tree
Showing 126 changed files with 5,644 additions and 3,976 deletions.
133 changes: 133 additions & 0 deletions .github/boring-cyborg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
# 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: >
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)
and [Contribute to documentation](https://6.docs.plone.org/contributing/documentation/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://github.com/plone/documentation/issues?q=is%3Aissue%20state%3Aopen%20sort%3Areactions-%2B1-desc%20).
<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
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
Binary file added .github/images/congratulations.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions .github/workflows/build_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ jobs:
with:
node-version: ${{ env.node-version }}

- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: 8
run_install: false
- name: Enable corepack
shell: bash
run: |
npm i -g corepack@latest
corepack enable
- name: Get pnpm store directory
shell: bash
Expand Down
12 changes: 4 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,15 @@
# Dependencies
/bin
/include
/lib
/lib64
/venv

# Generated files
pyvenv.cfg
/_build
/styles/Microsoft
/share
/styles/Microsoft

# symlinked from submodule
docs/volto
docs/plone.restapi
docs/plone.api
docs/plone.restapi
docs/volto

# editor files
.vscode
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@
[submodule "submodules/plone.api"]
path = submodules/plone.api
url = https://github.com/plone/plone.api.git
branch = master
branch = main
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# See https://docs.readthedocs.com/platform/stable/config-file/v2.html for details

# Required
version: 2
Expand Down
5 changes: 5 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"[markdown]": {
"editor.formatOnSave": false
}
}
75 changes: 32 additions & 43 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ SHELL = bash
# You can set these variables from the command line.
SPHINXOPTS ?=
PAPER ?=
VALEOPTS ?=

# Internal variables.
SPHINXBUILD = "$(realpath bin/sphinx-build)"
SPHINXAUTOBUILD = "$(realpath bin/sphinx-autobuild)"
SPHINXBUILD = "$(realpath venv/bin/sphinx-build)"
SPHINXAUTOBUILD = "$(realpath venv/bin/sphinx-autobuild)"
DOCS_DIR = ./docs/
BUILDDIR = ../_build
PAPEROPT_a4 = -D latex_paper_size=a4
Expand All @@ -29,40 +30,45 @@ clean: ## Clean docs build directory
cd $(DOCS_DIR) && rm -rf $(BUILDDIR)/

.PHONY: distclean
distclean: ## Clean docs build directory and Python virtual environment
cd $(DOCS_DIR) && rm -rf $(BUILDDIR)/
rm -rf ./bin/ ./lib/ ./lib64 ./include ./pyvenv.cfg

distclean: clean ## Clean docs build directory, Python virtual environment, and symlinks
rm -rf venv
rm docs/plone.api
rm docs/plone.restapi
rm docs/volto
@echo
@echo "Cleaned docs build directory, Python virtual environment, and symlinks."

bin/python:
python3 -m venv .
bin/pip install -r requirements-initial.txt
bin/pip install -r requirements.txt
venv/bin/python: ## Setup up Python virtual environment and install requirements
python3 -m venv venv
venv/bin/pip install -r requirements-initial.txt
venv/bin/pip install -r requirements.txt
@echo
@echo "Installation of requirements completed."

docs/plone.api:
git submodule init; \
git submodule update; \
bin/pip install -e submodules/plone.api/"[test]"; \
docs/plone.api: ## Setup plone.api docs
git submodule init
git submodule update
venv/bin/pip install -e submodules/plone.api/"[test]"
ln -s ../submodules/plone.api/docs ./docs/plone.api
@echo
@echo "Documentation of plone.api initialized."

docs/plone.restapi:
git submodule init; \
git submodule update; \
docs/plone.restapi: ## Setup plone.restapi docs
git submodule init
git submodule update
ln -s ../submodules/plone.restapi ./docs/plone.restapi
@echo
@echo "Documentation of plone.restapi initialized."

docs/volto:
git submodule init; \
git submodule update; \
docs/volto: ## Setup Volto docs
git submodule init
git submodule update
ln -s ../submodules/volto/docs/source ./docs/volto
@echo
@echo "Documentation of volto initialized."

.PHONY: deps
deps: bin/python docs/volto docs/plone.restapi docs/plone.api ## Create Python virtual environment, install requirements, initialize or update the volto, plone.restapi, and plone.api submodules, and finally create symlinks to the source files.
deps: venv/bin/python docs/volto docs/plone.restapi docs/plone.api ## Create Python virtual environment, install requirements, initialize or update the volto, plone.restapi, and plone.api submodules, and finally create symlinks to the source files.


.PHONY: html
Expand Down Expand Up @@ -106,26 +112,6 @@ htmlhelp: deps
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."

.PHONY: qthelp
qthelp: deps
cd $(DOCS_DIR) && $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MasteringPlone.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MasteringPlone.qhc"

.PHONY: devhelp
devhelp: deps
cd $(DOCS_DIR) && $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/MasteringPlone"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MasteringPlone"
@echo "# devhelp"

.PHONY: epub
epub: deps
cd $(DOCS_DIR) && $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
Expand Down Expand Up @@ -196,8 +182,8 @@ linkcheckbroken: deps ## Run linkcheck and show only broken links

.PHONY: vale
vale: deps ## Run Vale style, grammar, and spell checks
bin/vale sync
bin/vale --no-wrap $(VALEFILES)
venv/bin/vale sync
venv/bin/vale --no-wrap $(VALEOPTS) $(VALEFILES)
@echo
@echo "Vale is finished; look for any errors in the above output."

Expand All @@ -222,6 +208,9 @@ livehtml: deps ## Rebuild Sphinx documentation on changes, with live-reload in
cd "$(DOCS_DIR)" && ${SPHINXAUTOBUILD} \
--ignore "*.swp" \
--port 8050 \
--watch volto \
--watch plone.api \
--watch plone.restapi \
-b html . "$(BUILDDIR)/html" $(SPHINXOPTS) $(O)

.PHONY: rtd-pr-preview
Expand Down
15 changes: 15 additions & 0 deletions docs/_inc/_create-classic-ui-instance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

Your instance starts in foreground mode.
This should be used only for troubleshooting or local demonstration purposes.

Now you can visit `http://localhost:8080` in your browser.
Click the button {guilabel}`Create Classic UI Plone site`.

Enter {guilabel}`username` of `admin`, and {guilabel}`password` of `admin`.

Enter values in the form, and click the button {guilabel}`Create Plone Site`.

You will be redirected to your new Classic UI Plone site.

To stop the Plone instance in foreground mode, type {kbd}`ctrl-c`.

19 changes: 19 additions & 0 deletions docs/_inc/_hardware-requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
The hardware requirements below give a rough estimate of the minimum hardware setup needed for a Plone server.

A single Plone installation is able to run many Plone sites.

- Installation of the Plone backend and Classic UI frontend requires a minimum of 256 MB of RAM and 2GB of disk swap space.
- Installation of the Volto frontend requires a minimum of 2GB of RAM.
- After installation, running Plone requires a minimum of 256 MB RAM and 512 MB of disk swap space per Plone site.
2 GB or more RAM per Plone site is recommended.
- Minimum 512 MB hard disk space is required.
40 GB or more hard disk space is recommended.


````{warning}
{term}`Add-on` products and caching solutions may also increase RAM and disk swap space requirements.
To avoid RAM and disk swap limitations, we recommend either temporarily resizing your remote machine to accommodate the build, or build your images locally and upload them to an image store, such as [Docker Hub](https://hub.docker.com/) or [GitHub Actions](https://github.com/features/actions).
```{seealso}
[How much RAM is required to build a Volto front end?](https://community.plone.org/t/how-much-ram-is-required-to-build-a-volto-front-end/17949) and [Dealing with heap exhaustion while building Volto 17 on limited-RAM host](https://community.plone.org/t/dealing-with-heap-exhaustion-while-building-volto-17-on-limited-ram-host/18078).
```
````
16 changes: 16 additions & 0 deletions docs/_inc/_install-browser-reqs-classic-ui.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
You can view the list of supported browsers for Classic UI at [Browserslist](https://browsersl.ist/#q=%3E%3D+0.5%25%0Alast+2+major+versions%0Anot+dead%0AChrome+%3E%3D+60%0AFirefox+%3E%3D+60%0AFirefox+ESR%0AiOS+%3E%3D+12%0ASafari+%3E%3D+12%0Anot+Explorer+%3C%3D+11).

The supported web browsers for Classic UI are set according to [Bootstrap](https://getbootstrap.com/docs/5.3/getting-started/browsers-devices/#supported-browsers).
The following code snippet is the [browserslist configuration for Bootstrap 5.3.3](https://github.com/twbs/bootstrap/blob/v5.3.3/.browserslistrc).

```shell
>= 0.5%
last 2 major versions
not dead
Chrome >= 60
Firefox >= 60
Firefox ESR
iOS >= 12
Safari >= 12
not Explorer <= 11
```
Loading

0 comments on commit 3baa55b

Please sign in to comment.