From 2f7dcf5143e55ecb3639034aec5a489e27a515c8 Mon Sep 17 00:00:00 2001 From: Jimisola Laursen Date: Sat, 7 Mar 2026 15:25:40 +0100 Subject: [PATCH 1/6] docs: documentation overhaul - Standardize README.md with consistent badges and structure - Add CONTRIBUTING.md with repo-specific dev setup - Add/update Antora docs structure - Remove per-repo GitHub Pages workflow - Point documentation badge to central site Signed-off-by: jimisola --- .github/workflows/publish_gh_pages.yml | 47 -------------- CONTRIBUTING.md | 25 ++++++++ README.md | 84 ++++---------------------- docs/antora-playbook.yml | 1 + 4 files changed, 38 insertions(+), 119 deletions(-) delete mode 100644 .github/workflows/publish_gh_pages.yml create mode 100644 CONTRIBUTING.md diff --git a/.github/workflows/publish_gh_pages.yml b/.github/workflows/publish_gh_pages.yml deleted file mode 100644 index 11a457d..0000000 --- a/.github/workflows/publish_gh_pages.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Publish to GitHub Pages -on: - workflow_dispatch: - release: - types: [created] - push: - branches: - - main - -concurrency: - group: github-pages - cancel-in-progress: false -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write -jobs: - publish_gh_pages: - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - name: Checkout repository - uses: actions/checkout@v6 - - name: Configure Pages - uses: actions/configure-pages@v5 - - name: Install Node.js - uses: actions/setup-node@v6 - with: - node-version: "24" - - name: Install Antora - run: npm i antora - - name: Install Asciidoctor Kroki extension - run: npm i asciidoctor asciidoctor-kroki - - name: Generate Site - run: npx antora docs/antora-playbook.yml - - name: Create site folders - run: mkdir -p docs/build/site - - name: Upload Artifacts - uses: actions/upload-pages-artifact@v4 - with: - path: docs/build/site - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6a19108 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing to reqstool-python-poetry-plugin + +Thank you for your interest in contributing! + +For DCO sign-off, commit conventions, and code review process, see the organization-wide [CONTRIBUTING.md](https://github.com/reqstool/.github/blob/main/CONTRIBUTING.md). + +## Prerequisites + +- Python 3.13+ +- [Poetry](https://python-poetry.org/) + +## Setup + +```bash +git clone https://github.com/reqstool/reqstool-python-poetry-plugin.git +cd reqstool-python-poetry-plugin +poetry install +``` + +## Build & Test + +```bash +poetry build +poetry run pytest +``` diff --git a/README.md b/README.md index 12acb4a..7a9ee78 100644 --- a/README.md +++ b/README.md @@ -1,60 +1,25 @@ - [![Commit Activity](https://img.shields.io/github/commit-activity/m/reqstool/reqstool-python-poetry-plugin?label=commits&style=for-the-badge)](https://github.com/reqstool/reqstool-python-poetry-plugin/pulse) [![GitHub Issues](https://img.shields.io/github/issues/reqstool/reqstool-python-poetry-plugin?style=for-the-badge&logo=github)](https://github.com/reqstool/reqstool-python-poetry-plugin/issues) [![License](https://img.shields.io/github/license/reqstool/reqstool-python-poetry-plugin?style=for-the-badge&logo=opensourceinitiative)](https://opensource.org/license/mit/) [![Build](https://img.shields.io/github/actions/workflow/status/reqstool/reqstool-python-poetry-plugin/build.yml?style=for-the-badge&logo=github)](https://github.com/reqstool/reqstool-python-poetry-plugin/actions/workflows/build.yml) -[![Static Badge](https://img.shields.io/badge/Documentation-blue?style=for-the-badge&link=docs)](https://reqstool.github.io/reqstool-python-poetry-plugin/reqstool-python-poetry-plugin/0.0.2/index.html) +[![Documentation](https://img.shields.io/badge/Documentation-blue?style=for-the-badge&link=docs)](https://reqstool.github.io) # Reqstool Python Poetry Plugin > [!WARNING] > Poetry plugin support is currently untested. Functionality may be broken. Contributions welcome. -## Description - -This provides an application plugin for Poetry that runs during `poetry build` and `poetry install`. - -The plugin collects decorated code, formatting it and writing it to a annotations.yml file saved to the `build/reqstool/` folder, utilizing the `reqstool-python-decorators` package for the processing. - +Poetry build plugin for [reqstool](https://github.com/reqstool/reqstool-client) that collects decorated code and generates `annotations.yml` during `poetry build`. ## Installation -### Plugin - -The package name is `reqstool-python-poetry-plugin`. - -* Using poetry: - -``` -$poetry add reqstool-python-poetry-plugin -``` - -* pip install (unsure if working as intended): - -``` -$pip install reqstool-python-poetry-plugin -``` - -### Dependencies - -#### reqstool-decorators - -The plugin reads decorators available in the `reqstool-python-decorators` package. - -``` -$pip install reqstool-python-decorators -``` - -pyproject.toml - -``` -[tool.poetry.dependencies] -reqstool-python-decorators = "" +```bash +poetry add reqstool-python-poetry-plugin ``` -### Configuration +## Usage -The plugin is configured in the `pyproject.toml` file. +Configure the plugin in `pyproject.toml`: ```toml [tool.reqstool] @@ -64,41 +29,16 @@ dataset_directory = "docs/reqstool" output_directory = "build/reqstool" ``` -This specifies where the plugin should be applied: `sources`, where test reports are located: `test_results`, where reqstool files are located: `dataset_directory` and output directory: `output_directory`. - - -## Usage - -### Decorators - -Used to decorate your code as seen in the examples below, the decorator processing that runs during the build process collects data from the decorated code. - -Import decorators: - -``` -from reqstool-python-decorators.decorators.decorators import Requirements, SVCs -``` - -Example usage of the decorators: - -``` -@Requirements("REQ_111", "REQ_222") -def somefunction(): -``` - -``` -@SVCs("SVC_111", "SVC_222") -def test_somefunction(): -``` - -### Poetry build +The plugin uses [reqstool-python-decorators](https://github.com/reqstool/reqstool-python-decorators) for processing. -When running `$poetry build` the plugin will generate an `annotations.yml` file in the `build/reqstool/` folder and a `reqstool_config.yml` in the project root (which is bundled into the sdist and then removed after the build completes). +## Documentation -When running `$poetry install` the plugin will update `pyproject.toml` with the necessary `include` entries for reqstool files. +Full documentation can be found [here](https://reqstool.github.io). +## Contributing +See the organization-wide [CONTRIBUTING.md](https://github.com/reqstool/.github/blob/main/CONTRIBUTING.md). ## License -This project is licensed under the MIT License - see the LICENSE.md file for details. +MIT License. diff --git a/docs/antora-playbook.yml b/docs/antora-playbook.yml index 53e60f6..cf220c3 100644 --- a/docs/antora-playbook.yml +++ b/docs/antora-playbook.yml @@ -1,4 +1,5 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/asciidoctor/asciidoctor-intellij-plugin/main/src/main/resources/jsonSchemas/antoraPlaybookSchema.json +# For local development only. Published site: https://reqstool.github.io site: title: Reqstool Python Poetry Plugin Documentation From 75e61ae586906411606a58196b1505f79c12a4d9 Mon Sep 17 00:00:00 2001 From: Jimisola Laursen Date: Sat, 7 Mar 2026 16:19:00 +0100 Subject: [PATCH 2/6] docs: fix shell prompt prefix in install commands Signed-off-by: jimisola --- docs/modules/ROOT/pages/installation.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/ROOT/pages/installation.adoc b/docs/modules/ROOT/pages/installation.adoc index ea983bb..85cc1be 100644 --- a/docs/modules/ROOT/pages/installation.adoc +++ b/docs/modules/ROOT/pages/installation.adoc @@ -7,7 +7,7 @@ The package name is `reqstool-python-poetry-plugin`. * Using poetry: ``` -$poetry add reqstool-python-poetry-plugin +poetry add reqstool-python-poetry-plugin ``` === Dependencies @@ -17,7 +17,7 @@ $poetry add reqstool-python-poetry-plugin The plugin reads decorators available in the `reqstool-python-decorators` package. ``` -$pip install reqstool-python-decorators +pip install reqstool-python-decorators ``` pyproject.toml From ca1fb9817da27504e33361e558a2156273460a2d Mon Sep 17 00:00:00 2001 From: Jimisola Laursen Date: Sat, 7 Mar 2026 16:31:37 +0100 Subject: [PATCH 3/6] docs: rewrite Antora docs using unified plugin template - Add description with features, quick start, minimal setup, prerequisites - Rewrite installation.adoc as configuration reference - Rewrite usage with basic usage, decorator dependency, lifecycle - Simplify license to uniform format - Simplify nav to single Start entry Signed-off-by: jimisola --- docs/modules/ROOT/nav.adoc | 5 +- docs/modules/ROOT/pages/description.adoc | 50 +++++++++++++- docs/modules/ROOT/pages/index.adoc | 2 +- docs/modules/ROOT/pages/installation.adoc | 80 +++++++++++++++-------- docs/modules/ROOT/pages/usage.adoc | 56 ++++++++++------ 5 files changed, 139 insertions(+), 54 deletions(-) diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 0ed7914..7917907 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -1,4 +1 @@ -* xref:index.adoc[All] -* xref:description.adoc[Description] -* xref:installation.adoc[Installation] -* xref:usage.adoc[Usage] \ No newline at end of file +* xref:index.adoc[Start] diff --git a/docs/modules/ROOT/pages/description.adoc b/docs/modules/ROOT/pages/description.adoc index c4328c8..88c5f26 100644 --- a/docs/modules/ROOT/pages/description.adoc +++ b/docs/modules/ROOT/pages/description.adoc @@ -2,6 +2,52 @@ WARNING: Poetry plugin support is currently untested. Functionality may be broken. Contributions welcome. -This provides an application plugin for Poetry that runs during `poetry build` and `poetry install`. +This Poetry plugin generates annotations and assembles reqstool data during `poetry build` and `poetry install`. It collects decorated code using https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] and packages everything for consumption by the reqstool CLI. -The plugin collects decorated code, formatting it and writing it to a annotations.yml file saved to the `build/reqstool/` folder, utilizing the `reqstool-python-decorators` package for the processing. +=== Features + +* *Poetry integration*: Runs automatically during `poetry build` and `poetry install` +* *Combines annotations*: Collects `@Requirements` and `@SVCs` decorators from source and test code +* *Assembles package data*: Includes requirements, test results, and annotations in the built package +* *Generates config*: Creates a `reqstool_config.yml` with correct paths for the package structure + +=== Quick Start + +==== Add the Plugin + +[source,bash] +---- +poetry add --group dev reqstool-python-poetry-plugin +---- + +==== Default Behavior + +When running `poetry build` the plugin will: + +1. Scan source and test directories for `@Requirements` and `@SVCs` decorators +2. Generate an `annotations.yml` file in `build/reqstool/` +3. Create a `reqstool_config.yml` in the project root for inclusion in the sdist +4. Remove `reqstool_config.yml` from the project root after the build completes + +When running `poetry install` the plugin will update `pyproject.toml` with the necessary `include` entries so reqstool files are bundled into distributions. + +==== Minimal Setup + +[source] +---- +my-project/ +├── pyproject.toml +├── docs/ +│ └── reqstool/ +│ └── requirements.yml (mandatory) +├── src/ +└── tests/ +---- + +Run `poetry build` and the annotations will be generated automatically. + +=== Prerequisites + +* Python 3.10+ +* https://python-poetry.org/[Poetry] +* https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] as a project dependency diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index f1a7c46..3503811 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -8,4 +8,4 @@ include::usage.adoc[] == License -This project is licensed under the MIT License - see the LICENSE.md file for details. \ No newline at end of file +MIT License. diff --git a/docs/modules/ROOT/pages/installation.adoc b/docs/modules/ROOT/pages/installation.adoc index 85cc1be..46600a7 100644 --- a/docs/modules/ROOT/pages/installation.adoc +++ b/docs/modules/ROOT/pages/installation.adoc @@ -1,42 +1,70 @@ -== Installation +== Configuration -=== Plugin +The plugin is configured in your `pyproject.toml` file under `[tool.reqstool]`. -The package name is `reqstool-python-poetry-plugin`. +=== Complete Configuration Example -* Using poetry: +[source,toml] +---- +[tool.poetry.dependencies] +reqstool-python-decorators = "" + +[tool.reqstool] +# Directories to scan for decorators +# Default: ["src", "tests"] +sources = ["src", "tests"] -``` -poetry add reqstool-python-poetry-plugin -``` +# Test result file pattern(s) +# Default: ["build/**/junit.xml"] +test_results = ["build/**/junit.xml"] -=== Dependencies +# Directory containing requirements.yml and optional files +# Default: "docs/reqstool" +dataset_directory = "docs/reqstool" -==== reqstool-decorators +# Output directory for generated annotations +# Default: "build/reqstool" +output_directory = "build/reqstool" +---- -The plugin reads decorators available in the `reqstool-python-decorators` package. +=== Configuration Parameters -``` -pip install reqstool-python-decorators -``` +==== sources -pyproject.toml +Directories to scan for `@Requirements` and `@SVCs` decorators. +Defaults to `["src", "tests"]`. -``` -[tool.poetry.dependencies] -reqstool-python-decorators = "" -``` +[source,toml] +---- +sources = ["src", "tests"] +---- -==== Configuration +==== test_results -The plugin is configured in the `pyproject.toml` file. +Path or pattern(s) for test result files (JUnit XML). +Defaults to `["build/**/junit.xml"]`. -```toml -[tool.reqstool] -sources = ["src", "tests"] +[source,toml] +---- test_results = ["build/**/junit.xml"] +---- + +==== dataset_directory + +Directory containing `requirements.yml` and optional reqstool files (`software_verification_cases.yml`, `manual_verification_results.yml`). +Defaults to `"docs/reqstool"`. + +[source,toml] +---- dataset_directory = "docs/reqstool" -output_directory = "build/reqstool" -``` +---- + +==== output_directory -This specifies where the plugin should be applied: `sources`, where test reports are located: `test_results`, where reqstool files are located: `dataset_directory` and output directory: `output_directory`. +Output directory for the generated `annotations.yml`. +Defaults to `"build/reqstool"`. + +[source,toml] +---- +output_directory = "build/reqstool" +---- diff --git a/docs/modules/ROOT/pages/usage.adoc b/docs/modules/ROOT/pages/usage.adoc index 0787843..de14d17 100644 --- a/docs/modules/ROOT/pages/usage.adoc +++ b/docs/modules/ROOT/pages/usage.adoc @@ -1,33 +1,47 @@ == Usage -=== Decorators +=== Basic Usage -Used to decorate your code as seen in the examples below, the decorator processing that runs during the build process collects data from the decorated code. +Add the plugin and configure it in your `pyproject.toml`: -Import decorators: +[source,toml] +---- +[tool.poetry.dependencies] +reqstool-python-decorators = "" -``` -from reqstool_python_decorators.decorators.decorators import Requirements, SVCs -``` +[tool.reqstool] +sources = ["src", "tests"] +test_results = ["build/**/junit.xml"] +dataset_directory = "docs/reqstool" +output_directory = "build/reqstool" +---- -Example usage of the decorators: +=== Decorator Dependency -``` -@Requirements("REQ_111", "REQ_222") -def somefunction(): -``` +To use `@Requirements` and `@SVCs` decorators in your code, add the decorators package as a dependency: -``` -@SVCs("SVC_111", "SVC_222") -def test_somefunction(): -``` +[source,toml] +---- +[tool.poetry.dependencies] +reqstool-python-decorators = "" +---- -=== Poetry Build +See https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] for decorator usage. -When running `$poetry build` the plugin will: +=== Running the Build -1. Generate an `annotations.yml` file in the `build/reqstool/` folder containing formatted data on all decorated code found. -2. Generate a `reqstool_config.yml` in the project root for inclusion in the sdist. -3. Remove `reqstool_config.yml` from the project root after the build completes. +[source,bash] +---- +poetry build +---- -When running `$poetry install` the plugin will update `pyproject.toml` with the necessary `include` entries so reqstool files are bundled into distributions. +=== Default Lifecycle + +The plugin integrates into the Poetry build process: + +1. `poetry build` is invoked +2. The plugin scans `sources` directories for decorated code +3. An `annotations.yml` is generated in the `output_directory` +4. A `reqstool_config.yml` is created in the project root for sdist inclusion +5. Reqstool data is included in the built package +6. The temporary `reqstool_config.yml` is removed after the build completes From a6d1030f51e03d9cf951055b72581d0b5fc85eb9 Mon Sep 17 00:00:00 2001 From: Jimisola Laursen Date: Sat, 7 Mar 2026 16:42:16 +0100 Subject: [PATCH 4/6] docs: streamline nav and page structure - Separate nav items instead of single include-based page - Merge description.adoc content into index.adoc - Rename installation.adoc to configuration.adoc (matches actual content) - Add inline license to index.adoc - Change nav label from Start to Overview Signed-off-by: jimisola --- docs/modules/ROOT/nav.adoc | 4 +- .../{installation.adoc => configuration.adoc} | 0 docs/modules/ROOT/pages/description.adoc | 53 ------------------- docs/modules/ROOT/pages/index.adoc | 52 ++++++++++++++++-- 4 files changed, 52 insertions(+), 57 deletions(-) rename docs/modules/ROOT/pages/{installation.adoc => configuration.adoc} (100%) delete mode 100644 docs/modules/ROOT/pages/description.adoc diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 7917907..cfb3122 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -1 +1,3 @@ -* xref:index.adoc[Start] +* xref:index.adoc[Overview] +* xref:configuration.adoc[Configuration] +* xref:usage.adoc[Usage] diff --git a/docs/modules/ROOT/pages/installation.adoc b/docs/modules/ROOT/pages/configuration.adoc similarity index 100% rename from docs/modules/ROOT/pages/installation.adoc rename to docs/modules/ROOT/pages/configuration.adoc diff --git a/docs/modules/ROOT/pages/description.adoc b/docs/modules/ROOT/pages/description.adoc deleted file mode 100644 index 88c5f26..0000000 --- a/docs/modules/ROOT/pages/description.adoc +++ /dev/null @@ -1,53 +0,0 @@ -== Description - -WARNING: Poetry plugin support is currently untested. Functionality may be broken. Contributions welcome. - -This Poetry plugin generates annotations and assembles reqstool data during `poetry build` and `poetry install`. It collects decorated code using https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] and packages everything for consumption by the reqstool CLI. - -=== Features - -* *Poetry integration*: Runs automatically during `poetry build` and `poetry install` -* *Combines annotations*: Collects `@Requirements` and `@SVCs` decorators from source and test code -* *Assembles package data*: Includes requirements, test results, and annotations in the built package -* *Generates config*: Creates a `reqstool_config.yml` with correct paths for the package structure - -=== Quick Start - -==== Add the Plugin - -[source,bash] ----- -poetry add --group dev reqstool-python-poetry-plugin ----- - -==== Default Behavior - -When running `poetry build` the plugin will: - -1. Scan source and test directories for `@Requirements` and `@SVCs` decorators -2. Generate an `annotations.yml` file in `build/reqstool/` -3. Create a `reqstool_config.yml` in the project root for inclusion in the sdist -4. Remove `reqstool_config.yml` from the project root after the build completes - -When running `poetry install` the plugin will update `pyproject.toml` with the necessary `include` entries so reqstool files are bundled into distributions. - -==== Minimal Setup - -[source] ----- -my-project/ -├── pyproject.toml -├── docs/ -│ └── reqstool/ -│ └── requirements.yml (mandatory) -├── src/ -└── tests/ ----- - -Run `poetry build` and the annotations will be generated automatically. - -=== Prerequisites - -* Python 3.10+ -* https://python-poetry.org/[Poetry] -* https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] as a project dependency diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 3503811..99b7ca5 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -1,10 +1,56 @@ = Reqstool Python Poetry Plugin -include::description.adoc[] +WARNING: Poetry plugin support is currently untested. Functionality may be broken. Contributions welcome. -include::installation.adoc[] +This Poetry plugin generates annotations and assembles reqstool data during `poetry build` and `poetry install`. It collects decorated code using https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] and packages everything for consumption by the reqstool CLI. -include::usage.adoc[] +=== Features + +* *Poetry integration*: Runs automatically during `poetry build` and `poetry install` +* *Combines annotations*: Collects `@Requirements` and `@SVCs` decorators from source and test code +* *Assembles package data*: Includes requirements, test results, and annotations in the built package +* *Generates config*: Creates a `reqstool_config.yml` with correct paths for the package structure + +=== Quick Start + +==== Add the Plugin + +[source,bash] +---- +poetry add --group dev reqstool-python-poetry-plugin +---- + +==== Default Behavior + +When running `poetry build` the plugin will: + +1. Scan source and test directories for `@Requirements` and `@SVCs` decorators +2. Generate an `annotations.yml` file in `build/reqstool/` +3. Create a `reqstool_config.yml` in the project root for inclusion in the sdist +4. Remove `reqstool_config.yml` from the project root after the build completes + +When running `poetry install` the plugin will update `pyproject.toml` with the necessary `include` entries so reqstool files are bundled into distributions. + +==== Minimal Setup + +[source] +---- +my-project/ +├── pyproject.toml +├── docs/ +│ └── reqstool/ +│ └── requirements.yml (mandatory) +├── src/ +└── tests/ +---- + +Run `poetry build` and the annotations will be generated automatically. + +=== Prerequisites + +* Python 3.10+ +* https://python-poetry.org/[Poetry] +* https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] as a project dependency == License From a6da825483b670afa4cdccc8098066a87e36938d Mon Sep 17 00:00:00 2001 From: Jimisola Laursen Date: Sat, 7 Mar 2026 18:41:43 +0100 Subject: [PATCH 5/6] =?UTF-8?q?docs:=20fix=20Python=20prerequisite=203.10?= =?UTF-8?q?=20=E2=86=92=203.13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: jimisola --- docs/modules/ROOT/pages/index.adoc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 99b7ca5..b959fd6 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -4,23 +4,23 @@ WARNING: Poetry plugin support is currently untested. Functionality may be broke This Poetry plugin generates annotations and assembles reqstool data during `poetry build` and `poetry install`. It collects decorated code using https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] and packages everything for consumption by the reqstool CLI. -=== Features +== Features * *Poetry integration*: Runs automatically during `poetry build` and `poetry install` * *Combines annotations*: Collects `@Requirements` and `@SVCs` decorators from source and test code * *Assembles package data*: Includes requirements, test results, and annotations in the built package * *Generates config*: Creates a `reqstool_config.yml` with correct paths for the package structure -=== Quick Start +== Quick Start -==== Add the Plugin +== Add the Plugin [source,bash] ---- poetry add --group dev reqstool-python-poetry-plugin ---- -==== Default Behavior +== Default Behavior When running `poetry build` the plugin will: @@ -31,7 +31,7 @@ When running `poetry build` the plugin will: When running `poetry install` the plugin will update `pyproject.toml` with the necessary `include` entries so reqstool files are bundled into distributions. -==== Minimal Setup +== Minimal Setup [source] ---- @@ -46,9 +46,9 @@ my-project/ Run `poetry build` and the annotations will be generated automatically. -=== Prerequisites +== Prerequisites -* Python 3.10+ +* Python 3.13+ * https://python-poetry.org/[Poetry] * https://github.com/reqstool/reqstool-python-decorators[reqstool-python-decorators] as a project dependency From 5881322af657ca3384d01c40da9a64bfeaf1adba Mon Sep 17 00:00:00 2001 From: Jimisola Laursen Date: Sat, 7 Mar 2026 18:43:12 +0100 Subject: [PATCH 6/6] docs: use lowercase reqstool consistently Signed-off-by: jimisola --- docs/modules/ROOT/pages/index.adoc | 2 +- docs/modules/ROOT/pages/usage.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index b959fd6..a13ec3d 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -1,4 +1,4 @@ -= Reqstool Python Poetry Plugin += reqstool Python Poetry Plugin WARNING: Poetry plugin support is currently untested. Functionality may be broken. Contributions welcome. diff --git a/docs/modules/ROOT/pages/usage.adoc b/docs/modules/ROOT/pages/usage.adoc index de14d17..ad8d0b2 100644 --- a/docs/modules/ROOT/pages/usage.adoc +++ b/docs/modules/ROOT/pages/usage.adoc @@ -43,5 +43,5 @@ The plugin integrates into the Poetry build process: 2. The plugin scans `sources` directories for decorated code 3. An `annotations.yml` is generated in the `output_directory` 4. A `reqstool_config.yml` is created in the project root for sdist inclusion -5. Reqstool data is included in the built package +5. reqstool data is included in the built package 6. The temporary `reqstool_config.yml` is removed after the build completes