Skip to content

Commit 9d9994f

Browse files
authored
Merge branch '6.0' into dev-guide-create-a-backend-add-on
2 parents 7767c8b + 105395c commit 9d9994f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+583
-158
lines changed

.github/boring-cyborg.yml

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# boring-cyborg.yml
2+
# https://probot.github.io/apps/boring-cyborg/
3+
4+
##### Labeler ##########################################################################################################
5+
## Enable "labeler" for your PR that would add labels to PRs based on the paths that are modified in the PR.
6+
#labelPRBasedOnFilePath:
7+
# # Add 'label1' to any changes within 'example' folder or any subfolders
8+
# label1:
9+
# - example/**/*
10+
#
11+
# # Add 'label2' to any file changes within 'example2' folder
12+
# label2:
13+
# - example2/*
14+
#
15+
# # Complex: Add 'area/core' label to any change within the 'core' package
16+
# area/core:
17+
# - src/core/*
18+
# - src/core/**/*
19+
#
20+
# # Add 'test' label to any change to *.spec.js files within the source dir
21+
# test:
22+
# - src/**/*.spec.js
23+
#
24+
# Various Flags to control behaviour of the "Labeler"
25+
#labelerFlags:
26+
# # If this flag is changed to 'false', labels would only be added when the PR is first created and not when existing
27+
# # PR is updated.
28+
# # The default is 'true' which means the labels would be added when PR is updated even if they were removed by the user
29+
# labelOnPRUpdates: true
30+
31+
##### Reviewer #########################################################################################################
32+
# Enable "Reviewer" for your PR that would add reviewers to PRs based on the labels that exist on the PR.
33+
# 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.
34+
addReviewerBasedOnLabel:
35+
# add list of reviewers to add by default to all PRs
36+
defaultReviewers:
37+
- stevepiercy
38+
# specify PR labels that you want to auto assign reviewers based on
39+
# labels:
40+
# label1:
41+
# - tyler-mairose-sp
42+
# - jordan-violet-sp
43+
# label2:
44+
# - kaxil
45+
46+
##### Greetings ########################################################################################################
47+
# Comment to be posted to welcome users when they open their first PR
48+
firstPRWelcomeComment: >
49+
Thanks for submitting your first pull request! You are awesome! :hugs:
50+
51+
<br>If you haven't done so already, read
52+
[Plone's Code of Conduct](https://plone.org/foundation/about/materials/foundation-resolutions/code-of-conduct)
53+
and [Contribute to documentation](https://6.docs.plone.org/contributing/documentation/index.html),
54+
as this will greatly help the review process.
55+
56+
<br>Welcome to the Plone community! :tada:
57+
58+
# Comment to be posted to congratulate user on their first merged PR
59+
firstPRMergeComment: >
60+
Congratulations on your first merged pull request in this project! :tada:
61+
62+
![Congratulations](https://raw.githubusercontent.com/plone/documentation/fda4eadee4b0b71c4bcd0da739847444f74d3fc5/.github/images/congratulations.jpg)
63+
64+
<br>Thank you for contributing, we are very proud of you! :heart:
65+
66+
# Comment to be posted to on first time issues
67+
firstIssueWelcomeComment: >
68+
Thanks for opening your first issue here!
69+
Your engagement is essential for open source projects, including Plone. :hugs:
70+
71+
<br>If you haven't done so already,
72+
read [Plone's Code of Conduct](https://plone.org/foundation/about/materials/foundation-resolutions/code-of-conduct).
73+
Also please follow the issue template, as it helps both you and other community members contribute more effectively.
74+
75+
<br>If your issue is a feature request, others may raise its prominence through
76+
[feature voting](https://github.com/plone/documentation/issues?q=is%3Aissue%20state%3Aopen%20sort%3Areactions-%2B1-desc%20).
77+
78+
<br>Welcome to the Plone community! :tada:
79+
80+
###### IssueLink Adder #################################################################################################
81+
# Insert Issue (Jira/Github etc) link in PR description based on the Issue ID in PR title.
82+
#insertIssueLinkInPrDescription:
83+
# # specify the placeholder for the issue link that should be present in the description
84+
# descriptionIssuePlaceholderRegexp: "^Issue link: (.*)$"
85+
# matchers:
86+
# # you can have several matches - for different types of issues
87+
# # only the first matching entry is replaced
88+
# jiraIssueMatch:
89+
# # specify the regexp of issue id that you can find in the title of the PR
90+
# # the match groups can be used to build the issue id (${1}, ${2}, etc.).
91+
# titleIssueIdRegexp: \[(AIRFLOW-[0-9]{4})\]
92+
# # the issue link to be added. ${1}, ${2} ... are replaced with the match groups from the
93+
# # title match (remember to use quotes)
94+
# descriptionIssueLink: "[${1}](https://issues.apache.org/jira/browse/${1}/)"
95+
# docOnlyIssueMatch:
96+
# titleIssueIdRegexp: \[(AIRFLOW-X{4})\]
97+
# descriptionIssueLink: "`Document only change, no JIRA issue`"
98+
#
99+
###### Title Validator #################################################################################################
100+
# Verifies if commit/PR titles match the regexp specified
101+
#verifyTitles:
102+
# # Regular expression that should be matched by titles of commits or PR
103+
# titleRegexp: ^\[AIRFLOW-[0-9]{4}\].*$|^\[AIRFLOW-XXXX\].*$
104+
# # If set to true, it will always check the PR title (as opposed to the individual commits).
105+
# alwaysUsePrTitle: true
106+
# # If set to true, it will only check the commit in case there is a single commit.
107+
# # In case of multiple commits it will check PR title.
108+
# # This reflects the standard behaviour of Github that for `Squash & Merge` GitHub
109+
# # uses the PR title rather than commit messages for the squashed commit ¯\_(ツ)_/¯
110+
# # For single-commit PRs it takes the squashed commit message from the commit as expected.
111+
# #
112+
# # If set to false it will check all commit messages. This is useful when you do not squash commits at merge.
113+
# validateEitherPrOrSingleCommitTitle: true
114+
# # The title the GitHub status should appear from.
115+
# statusTitle: "Title Validator"
116+
# # A custom message to be displayed when the title passes validation.
117+
# successMessage: "Validation successful!"
118+
# # A custom message to be displayed when the title fails validation.
119+
# # Allows insertion of ${type} (commit/PR), ${title} (the title validated) and ${regex} (the titleRegexp above).
120+
# failureMessage: "Wrong ${type} title: ${title}"
121+
#
122+
###### PR/Branch Up-To-Date Checker ####################################################################################
123+
## Check if the branch is up to date with master when certain files are modified
124+
#checkUpToDate:
125+
# # The default branch is "master", change the branch if you want to check against a different target branch
126+
# targetBranch: master
127+
# files:
128+
# # File paths that you want to check for
129+
# # In this example, it checks if the branch is up to date when alembic migrations are modified in the PR.
130+
# # It helps avoid multiple heads in alembic migrations in a collaborative development project.
131+
# - airflow/migrations/*
132+
# - airflow/migrations/**/*
133+
# - airflow/alembic.ini

.github/images/congratulations.jpg

154 KB
Loading

.github/workflows/build_deploy.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ jobs:
4545

4646
- name: Enable corepack
4747
shell: bash
48-
run: corepack enable
48+
run: |
49+
npm i -g corepack@latest
50+
corepack enable
4951
5052
- name: Get pnpm store directory
5153
shell: bash

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@
99
[submodule "submodules/plone.api"]
1010
path = submodules/plone.api
1111
url = https://github.com/plone/plone.api.git
12-
branch = master
12+
branch = main

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# .readthedocs.yaml
22
# Read the Docs configuration file
3-
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3+
# See https://docs.readthedocs.com/platform/stable/config-file/v2.html for details
44

55
# Required
66
version: 2

Makefile

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -112,26 +112,6 @@ htmlhelp: deps
112112
@echo "Build finished; now you can run HTML Help Workshop with the" \
113113
".hhp project file in $(BUILDDIR)/htmlhelp."
114114

115-
.PHONY: qthelp
116-
qthelp: deps
117-
cd $(DOCS_DIR) && $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
118-
@echo
119-
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
120-
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
121-
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/MasteringPlone.qhcp"
122-
@echo "To view the help file:"
123-
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/MasteringPlone.qhc"
124-
125-
.PHONY: devhelp
126-
devhelp: deps
127-
cd $(DOCS_DIR) && $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
128-
@echo
129-
@echo "Build finished."
130-
@echo "To view the help file:"
131-
@echo "# mkdir -p $$HOME/.local/share/devhelp/MasteringPlone"
132-
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/MasteringPlone"
133-
@echo "# devhelp"
134-
135115
.PHONY: epub
136116
epub: deps
137117
cd $(DOCS_DIR) && $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub

docs/_inc/_install-python-plone60.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,19 @@ However, it is recommended to use a Python version manager, {term}`pyenv`, that
33

44
Plone 6.0 requires Python version {{SUPPORTED_PYTHON_VERSIONS_PLONE60}}.
55

6+
```{versionadded} Plone 6.0.14
7+
Support for Python 3.13.
8+
```
9+
10+
```{versionremoved} Plone 6.0.14
11+
Support for Python 3.8.
12+
```
13+
14+
```{warning}
15+
Python 3.9 will reach [end of life in October 2025](https://devguide.python.org/versions/).
16+
Do not create a new Plone project with Python 3.9.
17+
```
18+
619
```{warning}
720
Do not create or activate a Python virtual environment at this time.
821
The instructions below will create one.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Installing Python is beyond the scope of this documentation.
22
However, it is recommended to use a Python version manager, {term}`pyenv`, that allows you to install multiple versions of Python on your development environment without destroying your system's Python.
33

4-
Plone 6.1 requires Python version {{SUPPORTED_PYTHON_VERSIONS_PLONE61}}.
5-
64
```{warning}
75
Do not create or activate a Python virtual environment at this time.
86
The instructions below will create one.
9-
```
7+
```
8+
9+
Plone 6.1 requires Python version {{SUPPORTED_PYTHON_VERSIONS_PLONE61}}.

docs/admin-guide/export-import.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
---
2+
myst:
3+
html_meta:
4+
"description": "Export and import Plone site data with plone.exportimport"
5+
"property=og:description": "Export and import Plone site data with plone.exportimport"
6+
"property=og:title": "Export and import Plone site data with plone.exportimport"
7+
"keywords": "Plone 6, plone.exportimport, export, import, site, data, Content, Principals, Relations, Translations, Discussions, Redirects"
8+
---
9+
10+
(exportimport)=
11+
12+
# Export and import site data
13+
14+
The `plone.exportimport` package provides support to export and import all kinds of data from and to Plone sites using an intermediate JSON format.
15+
16+
Most features use {doc}`plone.restapi <../plone.restapi/docs/source/index>` to serialize and deserialize data.
17+
18+
19+
## Command line utilities
20+
21+
This package provides two command line utilities, `plone-exporter` and `plone-importer`.
22+
23+
### `plone-exporter`
24+
25+
Export content from a Plone site to a directory in the file system.
26+
You can call `plone-exporter` as shown.
27+
28+
```shell
29+
plone-exporter [--include-revisions] <path-to-zopeconf> <site-id> <path-to-export-data>
30+
```
31+
32+
The following command shows typical usage.
33+
34+
```shell
35+
plone-exporter instance/etc/zope.conf Plone /tmp/plone_data/
36+
```
37+
38+
By default, the revisions history (older versions of each content item) are not exported.
39+
If you do want them, add `--include-revisions` on the command line.
40+
41+
42+
### `plone-importer`
43+
44+
Import content from a file system directory into an existing Plone site.
45+
46+
You can call `plone-importer` as shown.
47+
48+
```shell
49+
plone-importer <path-to-zopeconf> <site-id> <path-to-import-data>
50+
```
51+
52+
The following command shows typical usage.
53+
54+
```shell
55+
plone-importer instance/etc/zope.conf Plone /tmp/plone_data/
56+
```
57+
58+
59+
## Supported data
60+
61+
- Content (Dexterity content items)
62+
- Ordering
63+
- Local roles
64+
- Versions (when using the `--include-revisions` command line option)
65+
- Default pages
66+
- Principals (members and groups)
67+
- Relations (relationships between content items)
68+
- Translations (translation groups)
69+
- Discussions (content comments)
70+
- Redirects (redirect information)
71+
72+
73+
## Exported data structure
74+
75+
Some goals of the new data structure are to:
76+
77+
- support diff of exported data, and
78+
- have blob files near the content item that uses it.
79+
80+
After exporting content, at the top level directory, the following objects exist.
81+
82+
| Name | Description |
83+
| --- | --- |
84+
| `content` | Directory containing content item information exported from the site |
85+
| `discussions.json` | JSON File with discussions (comments) exported from the site |
86+
| `principals.json` | JSON File with members and groups exported from the site |
87+
| `redirects.json` | JSON File with redirect information exported from the site |
88+
| `relations.json` | JSON File with content relations exported from the site |
89+
| `translations.json` | JSON File with translation groups exported from the site |
90+
91+
92+
### Content directory structure
93+
94+
The {file}`content` directory contains all content items exported from the site.
95+
Each content item has its own subdirectory, named with the UID of the content, including the serialized data and all blob files related to this content.
96+
97+
One special case is the directory for the `Plone Site` object, which is named `plone_site_root`.
98+
99+
| Name | Description |
100+
| --- | --- |
101+
| `content/__metadata__.json` | JSON File with metadata information about the exported content |
102+
| `content/<content uid>` | Directory with serialization for a content item |
103+
| `content/plone_site_root` | Directory with serialization for the Plone Site Root |
104+
105+
106+
#### Content item directory structure
107+
108+
Consider a File content item with UID `3e0dd7c4b2714eafa1d6fc6a1493f953` and a PDF file named {file}`plone.pdf` (added in the `file` field), the exported directory will have the following structure.
109+
110+
| Name | Description |
111+
| --- | --- |
112+
| `content/3e0dd7c4b2714eafa1d6fc6a1493f953/data.json` | JSON File with serialized representation of a content item |
113+
| `content/3e0dd7c4b2714eafa1d6fc6a1493f953/file/plone.pdf` | Blob file stored in the `file` field in the content item |

docs/admin-guide/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ run-plone
3232
add-site
3333
configure-zope
3434
add-ons
35+
export-import
3536
override-core
3637
/upgrade/index
3738
```

0 commit comments

Comments
 (0)