Skip to content
Draft
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
76 changes: 56 additions & 20 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,30 +10,66 @@ name: Upload Python Package

on:
release:
types: [published]
types: [ published ]

env:
PYTHON_VERSION_DEFAULT: "3.14"

permissions:
contents: read

jobs:
deploy:

quick-test:
name: QuickTest
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build
- name: Publish package
uses: pypa/gh-action-pypi-publish@27b31702a0e7fc50959f5ad993c78deac1bdfc29
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Python Environment
# see https://github.com/actions/setup-python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: ${{ env.PYTHON_VERSION_DEFAULT }}
architecture: 'x64'
- name: Validate Python Environment
shell: python
run: |
import sys
print('Python %s on %s in %s' % (sys.version, sys.platform, sys.getdefaultencoding()))
- name: Install env dependencies
run: python -m pip install --upgrade pip
- name: Install project
run: python -m pip install --user -e ".[testing]"
- name: Run Tests
run: python -m pytest tests
publish:
name: Publish
needs:
- quick-test
runs-on: ubuntu-latest
permissions:
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
steps:
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Python Environment
# see https://github.com/actions/setup-python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: ${{ env.PYTHON_VERSION_DEFAULT }}
architecture: 'x64'
- name: Install env dependencies
run: |
python -m pip install --upgrade pip
python -m pip install build
- name: Build package
run: python -m build
- name: Publish package
# see https://github.com/pypa/gh-action-pypi-publish
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
79 changes: 79 additions & 0 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.


name: Python CI

on:
workflow_dispatch:
pull_request:
push:
tags: [ 'v*' ] # run again on release tags to have tools mark them
branches: [ 'main', 'next' ]
schedule:
# schedule daily tests, since some dependencies are not intended to be pinned
# this means: at 23:42 every day
- cron: '42 23 * * *'

env:
PYTHON_VERSION_DEFAULT: "3.14"

permissions:
contents: read

jobs:
build-and-test:
name: Test (${{ matrix.os }} py${{ matrix.python-version }} ${{ matrix.toxenv-factors }})
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
python-version:
- "3.14" # highest supported
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9" # lowest supported
exclude:
- os: macos-latest # macos-latest is incompatible with some PY versions
python-version: "3.10"
- os: macos-latest # macos-latest is incompatible with some PY versions
python-version: "3.9"
steps:
- name: Disabled Git auto EOL CRLF transforms
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Setup Python Environment
# see https://github.com/actions/setup-python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
- name: Validate Python Environment
shell: python
run: |
import sys
print('Python %s on %s in %s' % (sys.version, sys.platform, sys.getdefaultencoding()))
- name: Install env dependencies
run: python -m pip install --upgrade pip
- name: Install project
run: pip install --user -e ".[testing]"
- name: Run Tests
run: python -m pytest tests
44 changes: 44 additions & 0 deletions .github/workflows/zizmor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Analyzes all GitHub Actions workflows for security issues using zizmor.
# docs: https://docs.zizmor.sh/
name: Zizmor

on:
push:
branches: ['master', 'main']
pull_request:
branches: ['**']
workflow_dispatch:
schedule:
- cron: '0 0 * * 6'

permissions: {}

concurrency:
group: '${{ github.workflow }}-${{ github.ref }}'
cancel-in-progress: true

jobs:
zizmor:
name: Zizmor
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
steps:
- name: Checkout
# see https://github.com/actions/checkout
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Run zizmor 🌈
# see https://github.com/zizmorcore/zizmor-action
uses: zizmorcore/zizmor-action@192e21d79ab29983730a13d1382995c2307fbcaa # v0.5.7
with:
# advanced-security: false => emit findings as workflow-command annotations (::error file=…) rather than
# uploading a SARIF report to GitHub's Security tab.
# Uploading SARIF requires `security-events: write` and GitHub Advanced Security (GHAS),
# both of which are unnecessary here and would violate the least-privilege policy.
# The two modes are mutually exclusive: advanced-security must be false for
# annotations to take effect.
advanced-security: false
annotations: true
31 changes: 31 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Changelog

All notable changes to this project will be documented in this file.

## Unreleased

<!-- unreleased things below this line -->

## v1.1.1 - 2026-07-14

### Fork release `rfc3987-syntax2`
- Forked from [`willynilly/rfc3987-syntax`](https://github.com/willynilly/rfc3987-syntax).
- Published this project as an independently maintained package under the new distribution name `rfc3987-syntax2`.
- Preserved upstream functionality as the baseline for this initial fork release.

### Notes for `rfc3987-syntax2`
- This is the first release of the fork.
- No intentional behavioral changes from upstream are introduced in this release unless explicitly listed above.

## v1.1.0 - 2025-07-18

Original release: <https://github.com/willynilly/rfc3987-syntax/releases/tag/v1.1.0>

* Features
* Added add support for IRI-reference and absolute-IRI
* Bugs
* Fixed single quote sub-delimiter

## v1.0.0 - 2025-05-18

Original release: <https://github.com/willynilly/rfc3987-syntax/releases/tag/v1.0.0>
71 changes: 0 additions & 71 deletions CITATION.cff

This file was deleted.

1 change: 1 addition & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
MIT License

Copyright (c) 2025 Will Riley
Copyright (c) 2026 Jan Kowalleck — modifications and maintenance.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading
Loading