Skip to content
83 changes: 83 additions & 0 deletions docs/development-guide/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
myst:
html_meta:
"description": "Development guide for Plone 6"
"property=og:description": "Development guide for Plone 6"
"property=og:title": "Development guide for Plone 6"
"keywords": "Plone, development, guide, tests, Volto, frontend, REST API, plone.api, backend"
---

(development-guide-label)=

# Development guide

This part of Plone 6 documentation provides guidance for the development of Plone.

Development of Plone uses both the Python and JavaScript ecosystems.

- Volto, the default frontend for Plone 6, is based on the React JavaScript framework.
- Classic UI, the legacy frontend in Plone 6 and earlier versions, is based on the Twitter Bootstrap 5 framework and other JavaScript tools.
- The backend consists of dozens of Python packages.
Plone REST API and `plone.api` are two of the more prominent Python packages in the Plone backend.

Each frontend and backend package may have its own specific development methods.
This development guide points you, as a developer, to the appropriate resource.


## Tests

Tests ensure that your project functions as expected, and that changes to the code base during development don't break anything.



### Volto

```{note}
Frontend testing for Plone 6 is in the process of being written using Cookieplone and pytest.
Until it is complete, you can refer to the following guides and use tests in Volto core and add-ons for examples.
```

- {doc}`Volto acceptance tests </volto/contributing/acceptance-tests>`
- {doc}`Volto unit tests </volto/contributing/testing>`
- {ref}`testing-the-add-on-label`


### Backend

```{note}
Backend testing for Plone 6 is in the process of being written using Cookieplone and pytest.
Until it is complete, Plone 5 documentation is the authoritative source for writing tests for the Plone backend.
```

- {doc}`Backend tests <plone5:develop/testing/index>` (Plone 5)


## {term}`ZCA`

{doc}`plone5:develop/addons/components/index` (Plone 5)


## {term}`ZCML`

{doc}`plone5:develop/addons/components/zcml` (Plone 5)


## GenericSetup

{doc}`plone5:develop/addons/components/genericsetup` (Plone 5)


## Content type schemas

- {doc}`/backend/content-types/index`
- {doc}`plone5:develop/plone/content/index` (Plone 5)


## Register views

{doc}`plone5:develop/plone/views/index` (Plone 5)


## Register API services

{doc}`backend/configuration-registry`
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Read the [documentation for the previous version, Plone 5](https://5.docs.plone.

overview/index
install/index
development-guide/index
manage/index
upgrade/index
deployment/index
Expand Down
Loading