Skip to content

Commit cb24f0b

Browse files
jensensclaude
andcommitted
docs: join broken sentences (one sentence per line)
Join lines where a single sentence was broken across multiple lines. Per Plone style, each sentence should be exactly one line for clean diffs. Also fix code blocks in write-custom-templates.md that were incorrectly joined, and restore admonition formatting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent c61a7e9 commit cb24f0b

23 files changed

Lines changed: 136 additions & 310 deletions

docs/sources/explanation/architecture.md

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ myst:
1414
## Overview
1515

1616
plone.meta is a code generation tool.
17-
It reads per-repository configuration
18-
from {file}`.meta.toml`, renders Jinja2 templates, validates the output, and
19-
manages git operations.
17+
It reads per-repository configuration from {file}`.meta.toml`, renders Jinja2 templates, validates the output, and manages git operations.
2018

2119
## Components
2220

@@ -26,17 +24,13 @@ The core of plone.meta is a set of Jinja2 templates stored in
2624
{file}`src/plone/meta/default/`.
2725
Each template corresponds to a configuration file in the target repository.
2826

29-
Templates use `%(variable)s` style placeholders (Python string formatting
30-
syntax within the Jinja2 context) for inserting configuration values.
31-
The template engine has `trim_blocks` and `lstrip_blocks` enabled for clean
32-
output, and `keep_trailing_newline` preserves proper file endings.
27+
Templates use `%(variable)s` style placeholders (Python string formatting syntax within the Jinja2 context) for inserting configuration values.
28+
The template engine has `trim_blocks` and `lstrip_blocks` enabled for clean output, and `keep_trailing_newline` preserves proper file endings.
3329

3430
#### Modular tox templates
3531

36-
The {file}`tox.ini.j2` template uses a modular architecture with Jinja2
37-
`{% include %}` directives.
38-
Rather than a single monolithic template, the tox configuration is composed
39-
from focused sub-templates:
32+
The {file}`tox.ini.j2` template uses a modular architecture with Jinja2 `{% include %}` directives.
33+
Rather than a single monolithic template, the tox configuration is composed from focused sub-templates:
4034

4135
- {file}`tox-init.j2` -- tox initialization and configuration header
4236
- {file}`tox-base.j2` -- base test environment definition
@@ -49,8 +43,7 @@ This modular structure makes the templates easier to maintain and extend.
4943

5044
### PackageConfiguration class
5145

52-
The {file}`config_package.py` module contains the `PackageConfiguration` class,
53-
which orchestrates the entire process:
46+
The {file}`config_package.py` module contains the `PackageConfiguration` class, which orchestrates the entire process:
5447

5548
1. **Read** {file}`.meta.toml` from the target repository
5649
2. **Detect** whether the repository is GitHub or GitLab hosted
@@ -82,15 +75,11 @@ If validation fails, you are prompted to proceed or abort.
8275
2. Commits all changes with a descriptive message
8376
3. Optionally pushes to the remote
8477

85-
Branch names follow the pattern `config-with-<type>-template-<commit-hash>`,
86-
where the commit hash refers to the plone.meta repository, making it clear
87-
which version of the templates was used.
78+
Branch names follow the pattern `config-with-<type>-template-<commit-hash>`, where the commit hash refers to the plone.meta repository, making it clear which version of the templates was used.
8879

8980
## GitHub Actions workflow architecture
9081

91-
Rather than generating complete CI workflows inline, plone.meta generates
92-
a thin {file}`meta.yml` that uses GitHub's `workflow_call` to reference reusable
93-
workflows stored in the plone/meta repository itself.
82+
Rather than generating complete CI workflows inline, plone.meta generates a thin {file}`meta.yml` that uses GitHub's `workflow_call` to reference reusable workflows stored in the plone/meta repository itself.
9483
This means:
9584

9685
- Workflow logic is maintained in one place
@@ -101,10 +90,8 @@ This means:
10190
## Test matrix
10291

10392
A key architectural feature of plone.meta 2.x is the test matrix.
104-
Rather than testing against a single Python version, plone.meta generates
105-
test environments for all combinations of Plone versions and Python versions.
106-
The default matrix covers Plone 6.0, 6.1, and 6.2 across Python 3.10
107-
through 3.14.
93+
Rather than testing against a single Python version, plone.meta generates test environments for all combinations of Plone versions and Python versions.
94+
The default matrix covers Plone 6.0, 6.1, and 6.2 across Python 3.10 through 3.14.
10895

10996
The test matrix is reflected in multiple generated outputs:
11097

@@ -114,8 +101,7 @@ The test matrix is reflected in multiple generated outputs:
114101
matrix combinations in CI
115102
- **GitLab CI**: Matrix jobs are generated in {file}`.gitlab-ci.yml`
116103

117-
Each combination uses its own constraints file, allowing different Plone
118-
versions to pin different dependency versions.
104+
Each combination uses its own constraints file, allowing different Plone versions to pin different dependency versions.
119105

120106
## Data flow
121107

docs/sources/explanation/configuration-philosophy.md

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@ plone.meta is designed around two principles:
2020

2121
## The extra_lines approach
2222

23-
Rather than adding a configuration option for every possible customization,
24-
almost all generated files support an `extra_lines` key in {file}`.meta.toml`.
25-
This key accepts raw configuration text that is appended to the generated
26-
file.
23+
Rather than adding a configuration option for every possible customization, almost all generated files support an `extra_lines` key in {file}`.meta.toml`.
24+
This key accepts raw configuration text that is appended to the generated file.
2725

2826
This approach has several advantages:
2927

@@ -33,33 +31,24 @@ This approach has several advantages:
3331
- **Low maintenance:** New configuration options in tools (flake8, tox,
3432
isort, etc.) do not require changes to plone.meta itself.
3533

36-
The tradeoff is that `extra_lines` content is not validated against the
37-
template -- it is simply appended.
38-
But this is intentional: it keeps the tool simple and avoids becoming a
39-
configuration management framework.
34+
The tradeoff is that `extra_lines` content is not validated against the template -- it is simply appended.
35+
But this is intentional: it keeps the tool simple and avoids becoming a configuration management framework.
4036

4137
## When extra_lines is not enough
4238

43-
For cases where appending text is insufficient -- where the configuration
44-
needs to *change* the template output rather than extend it -- plone.meta
45-
provides specific configuration keys. Examples:
39+
For cases where appending text is insufficient -- where the configuration needs to *change* the template output rather than extend it -- plone.meta provides specific configuration keys. Examples:
4640

4741
- `test_runner` to switch between pytest and zope.testrunner
4842
- `constraints_file` to override the default pip constraints URL
4943
- `custom_image` to change the GitLab CI Docker image
5044
- `jobs` to select which CI jobs are enabled
5145

5246
These options are added conservatively.
53-
If you need a customization that
54-
plone.meta does not support, you can
55-
[request it](https://github.com/plone/meta/issues/new).
47+
If you need a customization that plone.meta does not support, you can [request it](https://github.com/plone/meta/issues/new).
5648

5749
## Don't edit generated files
5850

59-
This is the cardinal rule of plone.meta: **never directly edit the files
60-
that plone.meta manages.**
61-
Any changes will be overwritten the next time `config-package` runs.
51+
This is the cardinal rule of plone.meta: **never directly edit the files that plone.meta manages.** Any changes will be overwritten the next time `config-package` runs.
6252

6353
All customization goes through {file}`.meta.toml`.
64-
This single file captures the complete delta between the defaults and your
65-
repository's needs, making it easy to review, maintain, and update.
54+
This single file captures the complete delta between the defaults and your repository's needs, making it easy to review, maintain, and update.

docs/sources/explanation/index.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,21 @@ These pages help you understand *why* plone.meta works the way it does.
2121
:link: why-standardize
2222
:link-type: doc
2323

24-
The motivation behind plone.meta: what problems it solves, what it replaces,
25-
and why centralized configuration management matters for the Plone ecosystem.
24+
The motivation behind plone.meta: what problems it solves, what it replaces, and why centralized configuration management matters for the Plone ecosystem.
2625
:::
2726

2827
:::{grid-item-card} Architecture
2928
:link: architecture
3029
:link-type: doc
3130

32-
How plone.meta works internally: template rendering, file generation,
33-
validation, and the git workflow.
31+
How plone.meta works internally: template rendering, file generation, validation, and the git workflow.
3432
:::
3533

3634
:::{grid-item-card} Configuration Philosophy
3735
:link: configuration-philosophy
3836
:link-type: doc
3937

40-
The design principles behind the `extra_lines` approach: sane defaults
41-
with simple extensibility.
38+
The design principles behind the `extra_lines` approach: sane defaults with simple extensibility.
4239
:::
4340

4441
:::{grid-item-card} Scope and Limitations

docs/sources/explanation/scope.md

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ myst:
1313

1414
## What plone.meta covers
1515

16-
plone.meta manages configuration files for **single-package Python
17-
repositories** in the Plone ecosystem.
16+
plone.meta manages configuration files for **single-package Python repositories** in the Plone ecosystem.
1817
This includes:
1918

2019
- Development tool configuration (linting, formatting, editor settings)
@@ -28,38 +27,26 @@ This includes:
2827

2928
### JavaScript and frontend projects
3029

31-
Volto and other JavaScript-based projects have their own ecosystem with
32-
different tooling (ESLint, Prettier, Jest, etc.).
30+
Volto and other JavaScript-based projects have their own ecosystem with different tooling (ESLint, Prettier, Jest, etc.).
3331
plone.meta is strictly for Python projects.
3432

3533
### Monorepo projects
3634

37-
Repositories with both backend and frontend code bases -- such as those
38-
created by [Cookieplone](https://github.com/plone/cookieplone) -- are
39-
not supported.
35+
Repositories with both backend and frontend code bases -- such as those created by [Cookieplone](https://github.com/plone/cookieplone) -- are not supported.
4036
plone.meta expects a single Python package at the top level of the repository.
4137

4238
### Multi-version support
4339

44-
plone.meta allows testing against multiple Plone versions via the
45-
`test_matrix` configuration.
46-
However, it does not support maintaining
47-
entirely separate dependency sets or build configurations for different
48-
major Plone versions within a single branch.
40+
plone.meta allows testing against multiple Plone versions via the `test_matrix` configuration.
41+
However, it does not support maintaining entirely separate dependency sets or build configurations for different major Plone versions within a single branch.
4942

5043
### Package scaffolding
5144

5245
plone.meta does not create new packages.
5346
It configures existing ones.
54-
For creating new Plone packages, use
55-
[Cookieplone](https://github.com/plone/cookieplone) or
56-
[plonecli](https://pypi.org/project/plonecli/).
47+
For creating new Plone packages, use [Cookieplone](https://github.com/plone/cookieplone) or [plonecli](https://pypi.org/project/plonecli/).
5748

5849
### Custom CI logic
5950

6051
plone.meta generates standardized CI pipelines.
61-
If your package needs
62-
significantly custom CI logic (custom Docker builds, deployment steps,
63-
integration tests with external services), you can extend via `extra_lines`,
64-
but at some point it may make more sense to maintain CI configuration
65-
manually.
52+
If your package needs significantly custom CI logic (custom Docker builds, deployment steps, integration tests with external services), you can extend via `extra_lines`, but at some point it may make more sense to maintain CI configuration manually.

docs/sources/explanation/why-standardize.md

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ myst:
1313

1414
## The problem
1515

16-
The Plone ecosystem consists of over 100 Python packages, each maintained by
17-
different people at different times.
16+
The Plone ecosystem consists of over 100 Python packages, each maintained by different people at different times.
1817
Without coordination, each repository develops its own approach to:
1918

2019
- Test configuration and runners
@@ -25,15 +24,12 @@ Without coordination, each repository develops its own approach to:
2524
- Release processes
2625

2726
This leads to fragmentation.
28-
A developer picking up a new package has to figure out from scratch how to
29-
run tests, what formatting rules apply, and whether the CI pipeline is current.
30-
Contributions become harder because the answer to "how do I run the tests?"
31-
differs for every package.
27+
A developer picking up a new package has to figure out from scratch how to run tests, what formatting rules apply, and whether the CI pipeline is current.
28+
Contributions become harder because the answer to "how do I run the tests?" differs for every package.
3229

3330
## What plone.meta solves
3431

35-
By using plone.meta, every Plone package answers the same set of questions
36-
in the same way:
32+
By using plone.meta, every Plone package answers the same set of questions in the same way:
3733

3834
- **Do the tests pass?** `tox -e test`
3935
- **What's the test coverage?** `tox -e coverage`
@@ -51,12 +47,9 @@ Tooling evolves.
5147
Linting rules change.
5248
New Python versions are released.
5349
CI providers update their APIs.
54-
Without centralization, updating 100+
55-
repositories is impractical -- each one needs manual changes, review, and
56-
testing.
50+
Without centralization, updating 100+ repositories is impractical -- each one needs manual changes, review, and testing.
5751

58-
With plone.meta, a tooling update happens in one place (the templates),
59-
and is then rolled out to all packages via `config-package` or `multi-call`.
52+
With plone.meta, a tooling update happens in one place (the templates), and is then rolled out to all packages via `config-package` or `multi-call`.
6053
This makes it practical to:
6154

6255
- Adopt new tools (e.g., switching formatters)
@@ -65,8 +58,5 @@ This makes it practical to:
6558

6659
## Adoption
6760

68-
plone.meta is mandatory for repositories under the
69-
[GitHub Plone organization](https://github.com/plone).
70-
It is encouraged for repositories under the
71-
[collective Plone organization](https://github.com/collective) and for
72-
private packages.
61+
plone.meta is mandatory for repositories under the [GitHub Plone organization](https://github.com/plone).
62+
It is encouraged for repositories under the [collective Plone organization](https://github.com/collective) and for private packages.

docs/sources/how-to/configure-github-actions.md

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ myst:
1111

1212
<!-- diataxis: how-to -->
1313

14-
`plone.meta` generates a {file}`.github/workflows/meta.yml` file that references
15-
reusable workflows from the plone/meta repository.
14+
`plone.meta` generates a {file}`.github/workflows/meta.yml` file that references reusable workflows from the plone/meta repository.
1615

1716
## Select CI jobs
1817

@@ -30,9 +29,7 @@ jobs = [
3029
```
3130

3231
:::{note}
33-
The `"test"` job is no longer included in the default jobs list. Testing
34-
is now handled by the separate {file}`test-matrix.yml` workflow, which is
35-
generated automatically when `use_test_matrix` is enabled (the default).
32+
The `"test"` job is no longer included in the default jobs list. Testing is now handled by the separate {file}`test-matrix.yml` workflow, which is generated automatically when `use_test_matrix` is enabled (the default).
3633
:::
3734

3835
Available jobs:
@@ -88,8 +85,7 @@ os_dependencies = "git libxml2 libxslt1-dev"
8885

8986
## Add lines after OS dependency installation
9087

91-
Use `extra_lines_after_os_dependencies` to insert additional setup steps
92-
that run after the OS-level dependencies are installed but before tests:
88+
Use `extra_lines_after_os_dependencies` to insert additional setup steps that run after the OS-level dependencies are installed but before tests:
9389

9490
```toml
9591
[github]
@@ -101,9 +97,7 @@ extra_lines_after_os_dependencies = """
10197

10298
## Test matrix workflow
10399

104-
When `use_test_matrix` is enabled (the default), plone.meta generates a
105-
separate {file}`test-matrix.yml` workflow that tests all combinations of Plone
106-
versions and Python versions.
100+
When `use_test_matrix` is enabled (the default), plone.meta generates a separate {file}`test-matrix.yml` workflow that tests all combinations of Plone versions and Python versions.
107101
This replaces the old single-version `test` job.
108102

109103
The matrix is configured in the `[tox]` section:
@@ -114,17 +108,14 @@ use_test_matrix = true
114108
test_matrix = {"6.2" = ["3.14", "3.13", "3.12", "3.11", "3.10"], "6.1" = ["3.13", "3.12", "3.11", "3.10"]}
115109
```
116110

117-
Using `"*"` as shorthand includes all currently supported Python versions
118-
for a given Plone version:
111+
Using `"*"` as shorthand includes all currently supported Python versions for a given Plone version:
119112

120113
```toml
121114
[tox]
122115
test_matrix = {"6.2" = ["*"]}
123116
```
124117

125-
To disable the test matrix and fall back to a single test job, set
126-
`use_test_matrix = false` in the `[tox]` section and add `"test"` back to
127-
the `[github] jobs` list.
118+
To disable the test matrix and fall back to a single test job, set `use_test_matrix = false` in the `[tox]` section and add `"test"` back to the `[github] jobs` list.
128119

129120
## Add extra workflow jobs
130121

docs/sources/how-to/configure-gitlab-ci.md

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ myst:
1111

1212
<!-- diataxis: how-to -->
1313

14-
For repositories hosted on GitLab, `plone.meta` generates a {file}`.gitlab-ci.yml`
15-
file instead of GitHub Actions workflows.
14+
For repositories hosted on GitLab, `plone.meta` generates a {file}`.gitlab-ci.yml` file instead of GitHub Actions workflows.
1615

1716
## Select CI jobs
1817

@@ -30,16 +29,14 @@ jobs = [
3029

3130
## Use custom Docker images
3231

33-
Specify Docker images per Python version using the `custom_images`
34-
dictionary:
32+
Specify Docker images per Python version using the `custom_images` dictionary:
3533

3634
```toml
3735
[gitlab]
3836
custom_images = {"3.14" = "python:3.14-trixie", "3.13" = "python:3.13-trixie"}
3937
```
4038

41-
This allows different Python versions in the CI matrix to use appropriate
42-
base images (for example, Debian Trixie for Python 3.14 support).
39+
This allows different Python versions in the CI matrix to use appropriate base images (for example, Debian Trixie for Python 3.14 support).
4340

4441
## Install OS-level dependencies
4542

@@ -53,12 +50,9 @@ os_dependencies = """
5350
## Test matrix support
5451

5552
GitLab CI also benefits from the test matrix feature.
56-
When `use_test_matrix` is enabled (the default), the generated {file}`.gitlab-ci.yml`
57-
will include test jobs for each combination of Plone version and Python
58-
version defined in `[tox] test_matrix`.
53+
When `use_test_matrix` is enabled (the default), the generated {file}`.gitlab-ci.yml` will include test jobs for each combination of Plone version and Python version defined in `[tox] test_matrix`.
5954

60-
See {doc}`/how-to/customize-meta-toml` for details on configuring the
61-
test matrix.
55+
See {doc}`/how-to/customize-meta-toml` for details on configuring the test matrix.
6256

6357
## Add extra configuration
6458

docs/sources/how-to/custom-branch.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ myst:
1111

1212
<!-- diataxis: how-to -->
1313

14-
By default, `config-package` creates a branch named
15-
`config-with-default-template-<commit-hash>`.
14+
By default, `config-package` creates a branch named `config-with-default-template-<commit-hash>`.
1615
You can override this.
1716

1817
## Use a specific branch name
@@ -32,5 +31,4 @@ To apply changes without creating a new branch:
3231
venv/bin/config-package --branch current /path/to/package
3332
```
3433

35-
This is useful when you have already created a branch manually and want to
36-
update it with the latest configuration.
34+
This is useful when you have already created a branch manually and want to update it with the latest configuration.

0 commit comments

Comments
 (0)