Skip to content

Commit

Permalink
Merge branch '6.0' into playwright-robottests
Browse files Browse the repository at this point in the history
  • Loading branch information
stevepiercy authored Nov 13, 2024
2 parents 7465b18 + 7f75e8b commit 9220dcd
Show file tree
Hide file tree
Showing 14 changed files with 112 additions and 36 deletions.
6 changes: 1 addition & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
# Dependencies
/bin
/include
/lib
/lib64
/venv

# Generated files
pyvenv.cfg
/_build
/styles/Microsoft
/share
Expand Down
32 changes: 19 additions & 13 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,20 +30,25 @@ clean: ## Clean docs build directory
cd $(DOCS_DIR) && rm -rf $(BUILDDIR)/

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

python3 -m venv venv --clear
venv/bin/pip install -r requirements-initial.txt
venv/bin/pip install -r requirements.txt
@echo
@echo "Installation of requirements completed."

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]"; \
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."
Expand All @@ -62,7 +68,7 @@ docs/volto:
@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 @@ -196,8 +202,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 Down
2 changes: 1 addition & 1 deletion docs/admin-guide/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ myst:

# Admin guide

In this part of the documentation, you can find how to install, operate, configure, and deploy Plone.
In this part of the documentation, you can find how to install, operate, and configure Plone.


```{toctree}
Expand Down
15 changes: 12 additions & 3 deletions docs/admin-guide/install-buildout.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ For other installation options, see {ref}`get-started-install-label`.
## Prerequisites for installation

- For Plone 6.0, Python {SUPPORTED_PYTHON_VERSIONS_PLONE60}
% TODO: These instructions install Plone 6.0.x. Uncomment next line and change the subsequent include when Plone 6.1 is released and "latest".
% TODO: These instructions install Plone 6.0.x. Uncomment next line and change the subsequent include when Plone 6.1 is released and "latest".
% - For Plone 6.1, Python {SUPPORTED_PYTHON_VERSIONS_PLONE61}


Expand All @@ -47,15 +47,17 @@ cd <my_projects>/plone
Create a Python virtual environment.

```shell
python3 -m venv .
python3 -m venv venv
```

Install the minimal Python packages needed in order to run Buildout.

```shell
bin/pip install -r https://dist.plone.org/release/6-latest/requirements.txt
venv/bin/pip install -r https://dist.plone.org/release/6-latest/requirements.txt
```



Create a {file}`buildout.cfg` file in your directory with the following contents.

```cfg
Expand All @@ -75,6 +77,12 @@ eggs =
Plone
```

Use Buildout's [`bootstrap` command](https://www.buildout.org/en/latest/topics/bootstrapping.html) to install a local `buildout` script in the {file}`bin` directory.

```shell
venv/bin/buildout bootstrap
```

Run Buildout.

```shell
Expand All @@ -83,6 +91,7 @@ bin/buildout

This may take a few minutes.

Whenever you change the Buildout configuration, run `./bin/buildout` again.

## Start Plone in foreground mode

Expand Down
6 changes: 3 additions & 3 deletions docs/admin-guide/install-pip.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ For other installation options, see {ref}`get-started-install-label`.
## Prerequisites for installation

- For Plone 6.0, Python {SUPPORTED_PYTHON_VERSIONS_PLONE60}
% TODO: These instructions install Plone 6.0.x. Uncomment next line and change the subsequent include when Plone 6.1 is released and "latest".
% TODO: These instructions install Plone 6.0.x. Uncomment next line and change the subsequent include when Plone 6.1 is released and "latest".
% - For Plone 6.1, Python {SUPPORTED_PYTHON_VERSIONS_PLONE61}


Expand All @@ -47,13 +47,13 @@ cd <my_projects>/plone
Create a Python virtual environment.

```shell
python3 -m venv .
python3 -m venv venv
```

Install Plone and a helper package, {term}`pipx`.

```shell
bin/pip install -c https://dist.plone.org/release/6.0-latest/constraints.txt Plone pipx
venv/bin/pip install -c https://dist.plone.org/release/6.0-latest/constraints.txt Plone pipx
```


Expand Down
1 change: 1 addition & 0 deletions docs/admin-guide/run-plone.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ There are different commands to run Plone, depending on which method you used to

Running Plone in foreground mode will show output in the terminal.
This is recommended while developing a Plone site.
The command you use depends on the installation method you used.

Cookieplone:
: ```shell
Expand Down
22 changes: 18 additions & 4 deletions docs/backend/search.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,30 @@
---
myst:
html_meta:
"description": ""
"property=og:description": ""
"property=og:title": ""
"keywords": ""
"description": "How to index and search content in Plone"
"property=og:description": "How to index and search content in Plone"
"property=og:title": "Search"
"keywords": "Plone, search, index, querystring, catalog"
---

(backend-search-label)=

# Search

To index and search content in Plone, see the Plone 5 documentation {doc}`plone5:develop/plone/searching_and_indexing/index`.

Alternatively, you can integrate any open source search engine with your Plone site.

- [Solr](https://solr.apache.org/) - See the add-on [`collective.solr`](https://github.com/collective/collective.solr) and its [documentation](https://collectivesolr.readthedocs.io/en/latest/).
- [`collective.elasticsearch`](https://github.com/collective/collective.elasticsearch)
- [`collective.elastic.plone`](https://github.com/collective/collective.elastic.plone)

You can find a comprehensive list of search options in [Awesome Plone - Searching and Categorizing](https://github.com/collective/awesome-plone?tab=readme-ov-file#searching-and-categorizing)


```{todo}
Help us [Migrate content from v5 "Queries, Search And Indexing" #1730](https://github.com/plone/documentation/issues/1730).
```

(backend-search-catalog-label)=

Expand Down
38 changes: 38 additions & 0 deletions docs/conceptual-guides/compare-buildout-pip.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
myst:
html_meta:
"description": "Compare Plone Classic UI's installation tools, Buildout and pip"
"property=og:description": "Compare Plone Classic UI's installation tools, Buildout and pip"
"property=og:title": "Compare Buildout and pip"
"keywords": "Plone 6, Conceptual guides, Classic UI, Buildout, pip, install"
---

# Compare Buildout and pip

This guide explains the differences between two tools, {term}`Buildout` and {term}`pip`, to install Plone and its Classic UI user interface, helping to inform your choice when developing your new project in Plone.

The choice of installation tool has implications for admins and developers.

````{grid} 1 1 1 2
:gutter: 1
:margin: 0
:padding: 0
```{grid-item-card} Buildout
- You can create recipes to automate development and production installations.
- Maintained and used primarily by the small Plone community.
- May have problems resolving dependencies when a new pip or setuptools version is released.
- Source checkouts managed through {term}`mr.developer`.
```
```{grid-item-card} pip
- Installs or uninstalls packages only.
- Maintained and used by the large Python community.
- Changes in dependency resolution are well-documented.
- Source checkouts managed through {term}`mxdev`.
```
````

```{seealso}
[Proposal: Use pip constraints as canonical version location #3670](https://github.com/plone/Products.CMFPlone/issues/3670)
```
3 changes: 3 additions & 0 deletions docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,9 @@ TC39
They established a [process](https://tc39.es/process-document/) where the proposals are discussed, developed, and eventually approved (or dropped).
The process has five Stages (0 to 4) where reaching the Stage 4 means the proposal is finished, and it becomes part of the JavaScript specification.
`mr.developer`
[`mr.developer`](https://pypi.org/project/mr.developer/) is a {term}`Buildout` extension that makes it easy to work with buildouts containing lots of packages, where you only want to develop a few of them.
`mrs-developer`
Also called "missdev", a tool similar to buildout's `mr.developer`.
It automatically downloads and keeps up to date copies of software and add-ons under development based on definitions stored in `mrs.developer.json`.
Expand Down
10 changes: 5 additions & 5 deletions docs/install/containers/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ Although there are many container engine tools for developing, managing, and run

The system requirements include those required by Docker itself.

- [Linux](https://docs.docker.com/desktop/install/linux/)
- [macOS](https://docs.docker.com/desktop/install/mac-install/)
- [Windows](https://docs.docker.com/desktop/install/windows-install/)
- [Linux](https://docs.docker.com/desktop/setup/install/linux/)
- [macOS](https://docs.docker.com/desktop/setup/install/mac-install/)
- [Windows](https://docs.docker.com/desktop/setup/install/windows-install/)

Plone 6 itself requires memory and disk space in addition to those of Docker alone.
See its {ref}`install-packages-hardware-requirements-label`.
Expand All @@ -66,13 +66,13 @@ Docker Desktop includes all Docker tools.
First start the Plone Backend, naming it `plone6-backend` and creating a site with its default configuration, using the following command.

```shell
docker run --name plone6-backend -e SITE=Plone -e CORS_ALLOW_ORIGIN='*' -d -p 8080:8080 plone/plone-backend:{PLONE_BACKEND_MINOR_VERSION}
docker run --name plone6-backend -e SITE=Plone -d -p 8080:8080 plone/plone-backend:{PLONE_BACKEND_MINOR_VERSION}
```

Now start the Plone Frontend, linking it to the `plone6-backend`:

```shell
docker run --name plone6-frontend --link plone6-backend:backend -e RAZZLE_API_PATH=http://localhost:8080/Plone -e RAZZLE_INTERNAL_API_PATH=http://backend:8080/Plone -d -p 3000:3000 plone/plone-frontend:latest
docker run --name plone6-frontend --link plone6-backend:backend -e RAZZLE_DEV_PROXY_API_PATH=http://backend:8080/Plone -d -p 3000:3000 plone/plone-frontend:latest
```


Expand Down
7 changes: 7 additions & 0 deletions docs/install/create-project-cookieplone.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,16 @@ For other installation options, see {ref}`get-started-install-label`.
Plone 6 has both hardware requirements and software prerequisites.


(create-project-cookieplone-hardware-requirements-label)=

### Hardware requirements

```{include} /_inc/_hardware-requirements.md
```


(create-project-cookieplone-prerequisites-for-installation-label)=

### Prerequisites for installation

```{include} ../volto/contributing/install-operating-system.md
Expand Down Expand Up @@ -96,6 +101,8 @@ pip install pipx
```


(create-project-cookieplone-generate-the-project-label)=

## Generate the project

After satisfying the prerequisites and having activated an LTS version of Node,
Expand Down
2 changes: 2 additions & 0 deletions docs/install/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ https://demo.plone.org/
First, choose a Plone user interface, or frontend.
You can read {doc}`/conceptual-guides/choose-user-interface` to help inform your choice between Volto and Classic UI.

If you choose Classic UI, then you can read {doc}`/conceptual-guides/compare-buildout-pip` to help inform your choice between Buildout and pip for an installation method.

Then choose one of the following installation methods.
If you are following a [Plone training](https://training.plone.org/), it should specify which option to choose.

Expand Down

0 comments on commit 9220dcd

Please sign in to comment.