Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9101ab4
chore: V2 migrate to uv (#239)
xSAVIKx Sep 30, 2024
d601888
fix: remove last mentions of py38 (#244)
PlugaruT Nov 14, 2024
a73c870
feat: base `CloudEvent` class as per v1 specs, including attribute va…
PlugaruT Nov 16, 2024
a9b9904
feat: implementation for JSON format. (#245)
PlugaruT Oct 17, 2025
44b0496
chore: drop support for PY3.19 and run tests for 3.13 and 3.14 (#252)
PlugaruT Nov 19, 2025
db71318
feat: implement http bindings (#251)
PlugaruT Nov 24, 2025
675c44b
feat(v2): full implementation for kafka bindings (#253)
PlugaruT Dec 15, 2025
06834b3
feat(v2): Full AMQP spec implementation (#254)
PlugaruT Dec 23, 2025
fd6f579
chore: provide simplified interface to read/write CE for both binary …
PlugaruT Dec 23, 2025
75c0373
chore: v2 upgrade tooling (#257)
xSAVIKx Dec 23, 2025
d313d33
feat(pypi): add support for `v2` branch in release workflow and strea…
xSAVIKx Dec 23, 2025
7001341
fix(workflow): update PyPI release commands for clarity and efficiency
xSAVIKx Dec 23, 2025
91b092b
chore: simplified interface to read/write CE using AMQP bindings. (#262)
PlugaruT Jan 10, 2026
0752f6f
feat(v2): add support for spec version 0.3 (#261)
PlugaruT Jan 12, 2026
4ba0d0f
chore: add migration.md file (#263)
PlugaruT Feb 14, 2026
07623f0
chore: add default values for `id`, `time` and `specversion` (#264)
PlugaruT Mar 1, 2026
20c6a65
fix(http): use spec-compliant percent-encoding for HTTP header valu…
PlugaruT Mar 7, 2026
778c2d1
fix(kafka): fix header encoding and partitionkey handling in binary m…
PlugaruT Mar 7, 2026
47b02d1
fix: correct isinstance check to include bytearray in kafka conversio…
archy-rock3t-cloud Mar 7, 2026
4c7e952
chore(cloudevents): bump version to 2.0.0-alpha2
xSAVIKx Mar 12, 2026
ec20c7b
chore(CHANGELOG): add missing PR link
xSAVIKx Mar 12, 2026
a35def5
Update samples (#272)
xSAVIKx Mar 14, 2026
c4b7320
chore: accept latest v1 changes
xSAVIKx Mar 14, 2026
3f7b50a
chore(CHANGELOG): update for CloudEvents v2 readiness (PR #273)
xSAVIKx Mar 14, 2026
9a670f7
Merge pull request #274 from cloudevents/v2-sync-histories
xSAVIKx Mar 22, 2026
aea397a
Ensure spec compatibility - fix 2 edge cases (#275)
xSAVIKx Mar 22, 2026
4da9e4b
Fix v1 compatibility layer and update docs (#276)
xSAVIKx Mar 22, 2026
b3b66fc
Update tooling (#278)
xSAVIKx Mar 22, 2026
6cf9fbb
Prepare v2 (#279)
xSAVIKx Mar 23, 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
39 changes: 34 additions & 5 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,39 @@
Fixes #<issuelink>
<!--
Thank you for contributing to the project!

## Changes
Please make sure to read the `CONTRIBUTING.md` file for our contribution guidelines:
https://github.com/cloudevents/sdk-python/blob/main/CONTRIBUTING.md
-->

<!--
Please provide a clear and concise description of the pull request.
-->

## One line description for the changelog
**Related Issue:** #<issue_number>

**Type of change:**
<!--
Please select one of the following options and delete the others.
-->
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing functionality to not work as expected)
- This change requires a documentation update
- Other (please describe):

- [ ] Tests pass
- [ ] Appropriate changes to README are included in PR
**Description:**
<!--
Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context.
List any dependencies that are required for this change.
-->

---

**Pre-submission checklist:**
- [ ] I have read the [CONTRIBUTING.md](https://github.com/cloudevents/sdk-python/blob/main/CONTRIBUTING.md) file.
- [ ] I have signed off my commits using `git commit --signoff`.
- [ ] I have added tests that prove my fix is effective or that my feature works.
- [ ] I have updated the documentation (`README.md`, `CHANGELOG.md`, etc.) as necessary.
- [ ] I have run `pre-commit` and `tox` and all checks pass.
- [ ] This pull request is ready to be reviewed.
43 changes: 22 additions & 21 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,38 @@ name: CI
on: [push, pull_request]

jobs:

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: '3.12'
cache: 'pip'
cache-dependency-path: 'requirements/*.txt'
- name: Install dev dependencies
run: python -m pip install -r requirements/dev.txt
- name: Run linting
run: python -m tox -e lint,mypy,mypy-samples-image,mypy-samples-json
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Set up Python
run: uv python install 3.12
- name: Install the project
run: uv sync --all-extras --dev
- name: Lint
run: uv run ruff check --select I

test:
strategy:
matrix:
python: ['3.9', '3.10', '3.11', '3.12', '3.13']
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
- uses: actions/checkout@v6
- name: Install uv
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python }}
cache: 'pip'
cache-dependency-path: 'requirements/*.txt'
- name: Install dev dependencies
run: python -m pip install -r requirements/dev.txt
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install the project
run: uv sync --all-extras --dev
- name: Run tests
run: python -m tox -e py # Run tox using the version of Python in `PATH`
run: uv run pytest tests
52 changes: 30 additions & 22 deletions .github/workflows/pypi-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,50 +10,58 @@ on:
jobs:
build_dist:
name: Build source distribution
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Set up Python
run: uv python install 3.12
- name: Install the project
run: uv sync --all-extras --dev

- name: Build SDist and wheel
run: pipx run build
run: uv build

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: artifact
path: dist/*

- name: Check metadata
run: pipx run twine check dist/*
run: uvx twine check dist/*
publish:
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
if: github.event_name == 'push'
needs: [ build_dist ]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
- uses: actions/download-artifact@v7
with:
python-version: "3.12"
cache: 'pip'
- name: Install build dependencies
run: pip install -U setuptools wheel build
- uses: actions/download-artifact@v4
with:
# unpacks default artifact into dist/
# if `name: artifact` is omitted, the action will create extra parent dir
name: artifact
path: dist
- name: Publish
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.pypi_password }}
attestations: false
- name: Install GitPython and cloudevents for pypi_packaging
run: pip install -U -r requirements/publish.txt
- name: Create Tag
run: python pypi_packaging.py
tag:
runs-on: ubuntu-24.04
needs: [ publish ]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Extract version
id: version
run: |
echo "version=$(grep -oP '__version__ = \"\K[^\"]+' src/cloudevents/__init__.py)" >> $GITHUB_OUTPUT
- name: Create and push tag
uses: pxpm/github-tag-action@1.0.1
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
tag: ${{ steps.version.outputs.version }}
29 changes: 13 additions & 16 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,24 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-toml
- repo: https://github.com/pycqa/isort
rev: 6.0.1
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.15.7
hooks:
- id: isort
args: [ "--profile", "black", "--filter-files" ]
- repo: https://github.com/psf/black
rev: 25.1.0
hooks:
- id: black
language_version: python3.11
# Run the linter.
- id: ruff
# Run the formatter.
- id: ruff-format
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.16.0
rev: v1.19.1
hooks:
- id: mypy
files: ^(cloudevents/)
exclude: ^(cloudevents/tests/)
types: [ python ]
args: [ ]
files: ^(src/cloudevents/|tests/)
exclude: ^(src/cloudevents/v1/|tests/test_v1_compat/)
types: [python]
args: ["--config-file=pyproject.toml"]
additional_dependencies:
- "pydantic~=2.7"
- types-python-dateutil>=2.9.0.20260305
37 changes: 36 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [2.0.0]

### Changed

- Released stable v2.0.0. See [migration](./MIGRATION.md) for details and migration
guidelines. ([#279])

## [2.0.0.alpha6]

### Changed

- Updated tooling and workflows. ([#278])

### Fixed

- Fixed the v1 compatibility layer. ([#276])

## [2.0.0.alpha5]

### Changed

- Improved spec compatibility of attributes processing. ([#275])

## [2.0.0.alpha4]

### Changed

- CloudEvents v2 is ready to become the main version. ([#273])

## [1.12.1]

### Changed

- CloudEvents v1 moved to security fixes support stage.
CloudEvents v2 is a rewrite with ongoing development ([])
CloudEvents v2 is a rewrite with ongoing development ([#271])

## [1.12.0]

Expand Down Expand Up @@ -309,3 +338,9 @@ CloudEvents v2 is a rewrite with ongoing development ([])
[#240]: https://github.com/cloudevents/sdk-python/pull/240
[#248]: https://github.com/cloudevents/sdk-python/pull/248
[#249]: https://github.com/cloudevents/sdk-python/pull/249
[#271]: https://github.com/cloudevents/sdk-python/pull/271
[#273]: https://github.com/cloudevents/sdk-python/pull/273
[#275]: https://github.com/cloudevents/sdk-python/pull/275
[#276]: https://github.com/cloudevents/sdk-python/pull/276
[#278]: https://github.com/cloudevents/sdk-python/pull/278
[#279]: https://github.com/cloudevents/sdk-python/pull/279
Loading
Loading