Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Development guide as a primary navigation item and entry point #1731

Closed
wants to merge 8 commits into from
47 changes: 47 additions & 0 deletions docs/development-guide/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
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 Plone functions as expected, and that changes to the code base during development don't break anything.


### Volto

- {doc}`Volto acceptance tests </volto/contributing/acceptance-tests>`
- {doc}`Volto unit tests </volto/contributing/testing>`


### Backend

- {doc}`Plone REST API tests </plone.restapi/docs/source/contributing/index>`
- {doc}`plone.api tests </plone.api/contribute>`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The above 2 lines are about how to contribute to Plone itself, not how to develop your own projects based on Plone. They belong in the "Contributing to Plone" section, not the development guide.

There's a bunch of other stuff that should go in a development guide... how to use ZCML, GenericSetup, write content type schemas, register views, register API services, the various topics under https://6.docs.plone.org/volto/development/index.html ... should we try to tackle some of that now, or just merge this info on tests as the first step, and then continue later?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, the testing standards are higher for contributing, but what else do we have to demonstrate how to write and run tests?

I will add empty headings for the stuff you mentioned, create issues for each to expose our needs, and add a todo in the docs with a link to the issue for each thing. Please feel free to list other concepts, and I'll add them. I'm fine with creating the outline, and adding content as time allows.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a few headings and references for the backend to get us started.

I think that the much of the content in the Backend folder will eventually end up under Development as a subdirectory. After that is done, I would break out the explanation and other non-how-to content into an appropriate section.

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

```{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 testing the Plone backend, except for the explicitly listed backend packages above.
```
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