Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
46d2d65
fix: dev: restore tox workflows that are using doorstop
sarnold Jun 14, 2025
5416f52
Merge pull request #713 from VCTLabs/add-tox-exclude
jacebrowning Jun 14, 2025
2261115
Merge branch 'master' into develop
jacebrowning Jun 16, 2025
7252e27
Bump requests from 2.32.2 to 2.32.4
dependabot[bot] Jun 16, 2025
0fb42d4
Merge pull request #712 from doorstop-dev/dependabot/pip/requests-2.32.4
jacebrowning Jun 19, 2025
af62f38
Bump urllib3 from 2.2.1 to 2.5.0
dependabot[bot] Jun 19, 2025
13ffca9
Remove duplicate coverage job
jacebrowning Jun 19, 2025
faced0b
Merge pull request #716 from doorstop-dev/consolidate-coverage
jacebrowning Jun 19, 2025
4a7130b
Merge pull request #715 from doorstop-dev/dependabot/pip/urllib3-2.5.0
jacebrowning Jun 19, 2025
0c06d95
add two github projects that are consuming doorstop
sarnold Jun 26, 2025
cd307a9
Merge pull request #718 from VCTLabs/more-examples
jacebrowning Jun 26, 2025
46ae49a
Bump urllib3 from 2.5.0 to 2.6.0
dependabot[bot] Dec 6, 2025
ab9d226
Merge pull request #740 from doorstop-dev/dependabot/pip/urllib3-2.6.0
jacebrowning Dec 6, 2025
8a5fc1d
Drop support for end-of-life Python 3.9
jacebrowning Jan 31, 2026
63a3e2a
Upgrade macOS runners
jacebrowning Jan 31, 2026
6a5f578
Exclude Python 3.10 from CI due to missing dependency
jacebrowning Jan 31, 2026
456eccc
Merge pull request #743 from doorstop-dev/drop-python-3.9
jacebrowning Jan 31, 2026
6200d2a
Add Python 3.14 to the test matrix
jacebrowning Jan 31, 2026
5542d5b
Upgrade pytest to support Python 3.14
jacebrowning Jan 31, 2026
239f9a0
Merge pull request #744 from doorstop-dev/add-python-3.14
jacebrowning Jan 31, 2026
545fd7a
Bump urllib3 from 2.6.0 to 2.6.3
dependabot[bot] Jan 31, 2026
4f6e85c
Merge pull request #741 from doorstop-dev/dependabot/pip/urllib3-2.6.3
jacebrowning Jan 31, 2026
a4098ce
Bump version to 3.1
jacebrowning Jan 31, 2026
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
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Execute tests
name: Common

on:
workflow_call:
inputs:
Expand All @@ -19,8 +20,10 @@ jobs:
test:
runs-on: ${{ inputs.os }}
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
# Python 3.10 is excluded because macOS is missing gettext
python-version: ["3.11", "3.12", "3.13", "3.14"]
name: Python ${{ matrix.python-version }}

defaults:
Expand Down Expand Up @@ -63,7 +66,7 @@ jobs:

- name: Upload coverage
uses: codecov/codecov-action@v4
if: ${{ inputs.os == 'ubuntu-latest' && matrix.python-version == '3.9' && (github.event_name == 'push' && !startsWith(github.ref, 'refs/heads/dependabot/') || (github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork)) }}
if: ${{ inputs.os == 'ubuntu-latest' && matrix.python-version == '3.9' && (github.event_name == 'push' || (github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork)) }}
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
Expand Down
48 changes: 0 additions & 48 deletions .github/workflows/change-coverage.yml

This file was deleted.

9 changes: 1 addition & 8 deletions .github/workflows/test-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,8 @@ on:
branches: [ develop ]

jobs:
Coverage:
uses: ./.github/workflows/change-coverage.yml
with:
os: "ubuntu-latest"
workpath: "/home/runner/work/doorstop/doorstop"
if: github.event_name == 'pull_request'

Test:
uses: ./.github/workflows/execute-tests.yml
uses: ./.github/workflows/_common.yml
with:
os: "ubuntu-latest"
workpath: "/home/runner/work/doorstop/doorstop"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-osx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ on:

jobs:
Test:
uses: ./.github/workflows/execute-tests.yml
uses: ./.github/workflows/_common.yml
with:
os: "macos-13"
os: "macos-14"
workpath: "/Users/runner/work/doorstop/doorstop"
secrets:
CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}}
2 changes: 1 addition & 1 deletion .github/workflows/test-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
Test:
uses: ./.github/workflows/execute-tests.yml
uses: ./.github/workflows/_common.yml
with:
basepath: 'D:\'
os: "windows-latest"
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version: 2
build:
os: "ubuntu-22.04"
tools:
python: "3.9"
python: "3.10"
jobs:
post_create_environment:
# Install poetry
Expand Down
4 changes: 2 additions & 2 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
python 3.13.3
poetry 2.1.1
python 3.14.2
poetry 2.3.0
4 changes: 2 additions & 2 deletions .verchew.ini
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ version = GNU Make
[Python]

cli = python
version = 3.9 || 3.10 || 3.11 || 3.12 || 3.13
version = 3

[Poetry]

Expand All @@ -17,6 +17,6 @@ version = 2

cli = dot
cli_version_arg = -V
version = 9 || 10 || 11 || 12
version = 14
optional = true
message = This is only needed to generate UML diagrams for documentation.
2 changes: 2 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,12 @@
"pydocstyle",
"pyficache",
"pygments",
"pyinotify",
"pyinstaller",
"pylint",
"pync",
"pytest",
"pywin",
"pyyaml",
"quickstart",
"sargs",
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# 3.1 (2026-01-31)

- Dropped support for Python 3.9 and added support for Python 3.14.

# 3.0.2 (2025-06-16)

- Upgraded `bottle` to fix import errors.
Expand Down
8 changes: 7 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,15 @@ demo: install

# SYSTEM DEPENDENCIES #########################################################

.PHONY: bootstrap
bootstrap: ## Attempt to install system dependencies
asdf plugin add python
asdf plugin add poetry
asdf install

.PHONY: doctor
doctor: ## Confirm system dependencies are available
bin/verchew
bin/verchew --exit-code

# PROJECT DEPENDENCIES ########################################################

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Additional references:

## Requirements

- Python 3.9+
- Python 3.10+
- A version control system for requirements storage

## Installation
Expand Down
2 changes: 2 additions & 0 deletions docs/examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Running `doorstop` in Docker: [tlwt/doorstop-docker](https://github.com/tlwt/doo

- **[ros-safety/requirements-playground](https://github.com/ros-safety/requirements-playground)**: This is a small repo for demonstrating how Doorstop can be used to manage requirements in a C++ project.
- **[urbasus/literate-programming-in-doorstop](https://github.com/urbasus/literate-programming-in-doorstop)**: Proof-of-concept for combining Doorstop and Literate Programming.
- **[sarnold/doorstop-to-mermaid](https://github.com/sarnold/doorstop-to-mermaid)**: Proof-of-concept for generating Doorstop diagrams in Mermaid.
- **[sarnold/pyserv](https://github.com/sarnold/pyserv)**: Python project using Doorstop and Mermaid with Sphinx to smush Markdown and reStructuredText.

# 3rd-Party Clients

Expand Down
2 changes: 1 addition & 1 deletion doorstop/core/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def build(cwd=None, root=None, request_next_number=None) -> Tree:
skip_file_name = ".doorstop.skip-all"
if not os.path.isfile(os.path.join(root, skip_file_name)):
_document_from_path(root, root, documents)
exclude_dirnames = {".git", ".venv", "venv"}
exclude_dirnames = {".git", ".tox", ".venv", "venv"}
if not os.path.isfile(os.path.join(root, skip_file_name)):
for dirpath, dirnames, _ in os.walk(root, topdown=True):
whilelist_dirnames = []
Expand Down
Loading