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

Add Create a backend add-on section in the Developer guide. #1757

Open
wants to merge 6 commits into
base: 6.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions docs/developer-guide/create-a-backend-add-on.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
myst:
html_meta:
"description": "How to create a backend add-on"
"property=og:description": "How to create a backend add-on"
"property=og:title": "Create a backend add-on"
"keywords": "Plone 6, backend, add-on"
---

(create-a-backend-add-on-label)=

# Create a backend add-on

This section explains how a developer can create an {term}`add-on` for the Plone backend.
You will use a framework called {term}`GenericSetup` and a tool called {term}`Buildout`.
Copy link
Member

Choose a reason for hiding this comment

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

I don't quite get your vision for this section yet.

Most of the documentation that can be written about how to create a backend add-on will be relevant regardless of how Plone was installed, and also regardless of whether the add-on was created from a Cookieplone template, bobtemplates.plone, or by hand.

So mentioning buildout here is off topic.

And learning about GenericSetup is a piece of what goes into creating an add-on, but it's certainly not the only or the most important piece.

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 created this file to jump start something for @petschki to work on. I have no vision about this whatsoever. If the snippets aren't needed, they can be tossed out.

I moved the snippets here from another document that had them as headings in a how-to guide, instead of in a conceptual guide. IOW no one does "How to Buildout and GenericSetup".


```{note}
This section for Plone 6 is in the process of being written.
Until it is complete, Plone 5 documentation is the authoritative source.
{doc}`plone5:develop/addons/components/genericsetup` (Plone 5)
```
5 changes: 2 additions & 3 deletions docs/developer-guide/create-a-distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,9 @@ For a conceptual guide, see {doc}`/conceptual-guides/distributions`.
```


## Create a backend add-on
## Use a backend add-on

These instructions assume that you already have created a Plone backend add-on package,
and now you want to add a distribution to it.
These instructions assume that you have already {doc}`created a Plone backend add-on package <create-a-backend-add-on>`, and now you want to add a distribution to it.

A Plone distribution exists inside a Python package that can be installed by `pip`.

Expand Down
85 changes: 77 additions & 8 deletions docs/developer-guide/index.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,94 @@
---
myst:
html_meta:
"description": "Plone developer guide"
"property=og:description": "Plone developer guide"
"property=og:title": "Developer guide"
"keywords": "Plone 6, developer guide, development"
"description": "Plone development guide"
"property=og:description": "Plone development guide"
"property=og:title": "Development guide"
"keywords": "Plone 6, development guide, developer, development"
---

# Developer guide
# Development guide

```{note}
This part of the documentation is under revision, consolidating documentation for development from its various locations into in one section.
Until then, you can use the [search feature](https://6.docs.plone.org/search.html?q=development).
You can also help with this effort, even if it is to report that something is missing, by [creating an issue](https://github.com/plone/documentation/issues/new?assignees=&labels=&projects=&template=new-issue-form.yml).
```

This part of the documentation provides information for how to develop in Plone.
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

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


### Classic UI

```{note}
This part of the documentation is under construction.
You can find documentation for development in various locations through the [search feature](https://6.docs.plone.org/search.html?q=development).
You can help consolidate all of development documentation here, even if it is to let us know what is missing, by [creating an issue](https://github.com/plone/documentation/issues/new?assignees=&labels=&projects=&template=new-issue-form.yml).
Classic UI testing for Plone 6 is in the process of being written.
```


### Backend

```{note}
Backend testing for Plone 6 is in the process of being written.
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)


## Create an add-on

- {doc}`create-a-backend-add-on`
- {doc}`/volto/development/add-ons/create-an-add-on-18`


## Create a Plone distribution

{doc}`create-a-distribution`


## Create content types

- {doc}`/backend/content-types/creating-content-types`
- {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`


## {term}`ZCA`
% TODO: This is a mixture of conceptual and how-to guides. Move its parts where they belong and rewrite.
{doc}`plone5:develop/addons/components/index` (Plone 5)


## {term}`ZCML`
% TODO: This is a mixture of conceptual and how-to guides. Move its parts where they belong and rewrite.
{doc}`plone5:develop/addons/components/zcml` (Plone 5)


```{toctree}
:maxdepth: 2
:hidden:

create-a-backend-add-on
create-a-distribution
```
4 changes: 4 additions & 0 deletions docs/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ Buildout
[Buildout](https://github.com/buildout/buildout/) is a Python-based tool for building and assembling applications from multiple parts, based on a configuration file.
It was the most common way of installing Plone 3, 4, and 5, and can still be used with Plone 6.

Usage of Buildout in Plone appears in various places in this documentation.
For a history and extended usage of Buildout, you can refer to the Plone 4 Documentation's section on [Buildout](https://4.docs.plone.org/old-reference-manuals/buildout/).
The Plone community authored this reference manual, as Buildout's own documentation is suboptimal.

CMS
Content Management System

Expand Down
4 changes: 2 additions & 2 deletions docs/i18n-l10n/translating-text-strings.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Information in the PO file headers is ignored.

[`i18ndude`](https://pypi.org/project/i18ndude/) should be used to create a script which searches particular packages for translation strings.

If you have created your add-on using [bobtemplates.plone](https://pypi.org/project/bobtemplates.plone/), then you will already have a script `update.sh` inside your package and a script `update_locale` in your buildout to extract the messages from your code.
If you have created your add-on using [bobtemplates.plone](https://pypi.org/project/bobtemplates.plone/), then you will already have a script `update.sh` inside your package and a script `update_locale` in your {term}`buildout` to extract the messages from your code.

After running that script, a new `domain.pot` file will be created in your `locales` directory where all the messages will be saved.

Expand Down Expand Up @@ -273,7 +273,7 @@ This script hooks into the release process and builds the MO files for you.

### Installing i18ndude

The recommended method is to have {term}`i18ndude` installed via your [buildout](https://www.buildout.org/en/latest/).
The recommended method is to have {term}`i18ndude` installed via your buildout.

Add the following to your `buildout.cfg`:

Expand Down
Loading