1 Commits

Author SHA1 Message Date
Xuwznln
824b99635e Bump version: 0.0.6 → 0.1.0 2025-09-05 01:28:19 +08:00
8 changed files with 65 additions and 45 deletions

View File

@@ -1,5 +1,5 @@
[bumpversion] [bumpversion]
current_version = 0.1.4 current_version = 0.1.0
commit = True commit = True
tag = True tag = True
tag_name = v{new_version} tag_name = v{new_version}

View File

@@ -16,10 +16,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: "3.10" # Use minimum version for consistency python-version: "3.10" # Use minimum version for consistency
@@ -40,10 +40,10 @@ jobs:
needs: [code-format] # Only run after code formatting passes needs: [code-format] # Only run after code formatting passes
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Set up Python 3.10 - name: Set up Python 3.10
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: "3.10" python-version: "3.10"
@@ -72,7 +72,7 @@ jobs:
needs: [basic-build] # Only run after basic build passes needs: [basic-build] # Only run after basic build passes
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Setup Miniconda - name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3 uses: conda-incubator/setup-miniconda@v3
@@ -112,14 +112,20 @@ jobs:
needs: [basic-build] # Run in parallel with ROS2 test after basic build needs: [basic-build] # Run in parallel with ROS2 test after basic build
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Run Safety CLI to check for vulnerabilities - name: Set up Python
uses: pyupio/safety-action@v1 uses: actions/setup-python@v5
with: with:
api-key: ${{ secrets.SAFETY_CHECK }} python-version: "3.10" # Use minimum version for consistency
output-format: json
args: --detailed-output --output-format json - name: Install security tools
run: |
python -m pip install --upgrade pip
pip install "safety>=3.0.0" "typer<0.12.0" "marshmallow<4.0.0"
- name: Run safety security scan
run: safety check --output json > safety-report.json
- name: Upload security reports - name: Upload security reports
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@@ -136,10 +142,10 @@ jobs:
needs: [basic-build] # Run in parallel with other checks needs: [basic-build] # Run in parallel with other checks
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: "3.10" # Use minimum version for consistency python-version: "3.10" # Use minimum version for consistency
@@ -176,10 +182,10 @@ jobs:
python-version: "3.10" python-version: "3.10"
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
@@ -195,9 +201,20 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
python -m pip install pytest python -m pip install flake8 pytest
pip install -e .[dev] pip install -e .[dev]
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-line-length=200 --extend-ignore=E203,W503,F401,E402,E721,F841 --statistics
- name: Type checking with mypy
run: |
mypy msgcenterpy --disable-error-code=unused-ignore
- name: Test with pytest - name: Test with pytest
run: | run: |
pytest pytest

View File

@@ -36,12 +36,12 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v5 uses: actions/checkout@v4
with: with:
ref: ${{ github.event.inputs.branch || github.ref }} ref: ${{ github.event.inputs.branch || github.ref }}
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: "3.10" python-version: "3.10"
@@ -55,7 +55,7 @@ jobs:
- name: Setup Pages - name: Setup Pages
id: pages id: pages
uses: actions/configure-pages@v5 uses: actions/configure-pages@v4
if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_pages == 'true') if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_pages == 'true')
- name: Build Sphinx documentation - name: Build Sphinx documentation
@@ -64,7 +64,7 @@ jobs:
make html make html
- name: Upload artifact - name: Upload artifact
uses: actions/upload-pages-artifact@v4 uses: actions/upload-pages-artifact@v3
if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_pages == 'true') if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && github.event.inputs.deploy_to_pages == 'true')
with: with:
path: docs/_build/html path: docs/_build/html

View File

@@ -29,10 +29,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: "3.10" # Use minimum version for consistency python-version: "3.10" # Use minimum version for consistency
@@ -53,10 +53,10 @@ jobs:
needs: [code-format] # Only run after code formatting passes needs: [code-format] # Only run after code formatting passes
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Set up Python 3.10 - name: Set up Python 3.10
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: "3.10" python-version: "3.10"
@@ -85,7 +85,7 @@ jobs:
needs: [basic-build] # Only run after basic build passes needs: [basic-build] # Only run after basic build passes
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Setup Miniconda - name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3 uses: conda-incubator/setup-miniconda@v3
@@ -125,14 +125,20 @@ jobs:
needs: [basic-build] # Run in parallel with ROS2 test after basic build needs: [basic-build] # Run in parallel with ROS2 test after basic build
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Run Safety CLI to check for vulnerabilities - name: Set up Python
uses: pyupio/safety-action@v1 uses: actions/setup-python@v5
with: with:
api-key: ${{ secrets.SAFETY_CHECK }} python-version: "3.10" # Use minimum version for consistency
output-format: json
args: --detailed-output --output-format json - name: Install security tools
run: |
python -m pip install --upgrade pip
pip install "safety>=3.0.0" "typer<0.12.0" "marshmallow<4.0.0"
- name: Run safety security scan
run: safety check --output json > safety-report.json
- name: Upload security reports - name: Upload security reports
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
@@ -148,10 +154,10 @@ jobs:
needs: [test-with-ros2] needs: [test-with-ros2]
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: "3.10" # Use minimum version for consistency python-version: "3.10" # Use minimum version for consistency
@@ -217,7 +223,7 @@ jobs:
steps: steps:
- name: Retrieve release distributions - name: Retrieve release distributions
uses: actions/download-artifact@v5 uses: actions/download-artifact@v4
with: with:
name: release-dists name: release-dists
path: dist/ path: dist/
@@ -240,7 +246,7 @@ jobs:
steps: steps:
- name: Retrieve release distributions - name: Retrieve release distributions
uses: actions/download-artifact@v5 uses: actions/download-artifact@v4
with: with:
name: release-dists name: release-dists
path: dist/ path: dist/
@@ -260,13 +266,13 @@ jobs:
steps: steps:
- name: Retrieve release distributions - name: Retrieve release distributions
uses: actions/download-artifact@v5 uses: actions/download-artifact@v4
with: with:
name: release-dists name: release-dists
path: dist/ path: dist/
- name: Upload release assets - name: Upload release assets
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v1
with: with:
files: dist/* files: dist/*
env: env:
@@ -279,7 +285,7 @@ jobs:
if: always() && (needs.pypi-publish.result == 'success' || needs.test-pypi-publish.result == 'success') if: always() && (needs.pypi-publish.result == 'success' || needs.test-pypi-publish.result == 'success')
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v4
- name: Create deployment summary - name: Create deployment summary
run: | run: |

3
.gitignore vendored
View File

@@ -48,9 +48,6 @@ docs/_static/
# Visual Studio Code # Visual Studio Code
.vscode/ .vscode/
.cursor/
.cursorignore
pyrightconfig.json
# ================================ # ================================
# Operating System files # Operating System files

View File

@@ -184,7 +184,7 @@
same "printed page" as the copyright notice for easier same "printed page" as the copyright notice for easier
identification within third-party archives. identification within third-party archives.
Copyright 2025 ZGCA-Forge/MsgCenterPy Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.

View File

@@ -5,7 +5,7 @@ A multi-format message conversion system supporting seamless conversion
between ROS2, Pydantic, Dataclass, JSON, Dict, YAML and JSON Schema. between ROS2, Pydantic, Dataclass, JSON, Dict, YAML and JSON Schema.
""" """
__version__ = "0.1.4" __version__ = "0.1.0"
__license__ = "Apache-2.0" __license__ = "Apache-2.0"
from msgcenterpy.core.envelope import MessageEnvelope, create_envelope from msgcenterpy.core.envelope import MessageEnvelope, create_envelope

View File

@@ -72,7 +72,7 @@ version = {attr = "msgcenterpy.__version__"}
[tool.black] [tool.black]
line-length = 120 line-length = 120
target-version = ['py310', 'py311', 'py312'] target-version = ['py310']
[tool.isort] [tool.isort]
profile = "black" profile = "black"