Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
5595880
including poetry on quality.txt
Feb 2, 2024
578e2f3
fix import pyx2cscope on test scripts
Feb 2, 2024
6327cc5
excluding csv files from example folder
Feb 16, 2024
2faf00d
including sphinx autodoc
Feb 27, 2024
25c0e73
Github action for github pages
MarkWendler Feb 27, 2024
59f8434
Move github action to the correct dir
MarkWendler Feb 27, 2024
7713470
Do action on any branch
MarkWendler Feb 27, 2024
8d9507c
Github action dependency fix python version
MarkWendler Feb 27, 2024
da2d0b0
Fix: Removed old dependency pylnet
MarkWendler Feb 27, 2024
21b921c
Fix python version for doc generation action
MarkWendler Feb 27, 2024
fee1bc5
Updated actions with black
MarkWendler Mar 12, 2024
680efb7
Black
MarkWendler Mar 12, 2024
641e869
Fix action
MarkWendler Mar 12, 2024
7f93297
Fix sphinx-build arguments
MarkWendler Mar 12, 2024
3a0131b
Adding static code analysis ruff, pylint, isort
MarkWendler Mar 12, 2024
62000d8
Revert "Adding static code analysis ruff, pylint, isort"
MarkWendler Mar 12, 2024
aefb3ab
Added isort check and static analysis pylint and ruff
MarkWendler Mar 12, 2024
576a470
Fixing code structure and éinter errors, plus isort and black
MarkWendler Mar 12, 2024
180bdf6
Fix isort and black compatibility
MarkWendler Mar 12, 2024
e89e8a7
restructure versioning
MarkWendler Mar 12, 2024
9f7de32
Updated sphinx doc style, updated LOGO and index
MarkWendler Mar 13, 2024
ced4357
adding pytest and initial tests
Mar 13, 2024
cb485b0
Added tests action
MarkWendler Mar 13, 2024
ceb0f4e
Fix versioning, fix package install for pytest
MarkWendler Mar 13, 2024
5d8f0a7
Fixing linter errors
MarkWendler Mar 13, 2024
edf4fac
Updated doc
MarkWendler Mar 13, 2024
3ba5a39
Added sphinx auto api and updated doc index
MarkWendler Mar 14, 2024
491e8fe
Added favico and isort,black
MarkWendler Mar 14, 2024
e99c45d
added runConfiguration to VCS (.idea)
Mar 15, 2024
6a29725
Updated actions to release and document the project
MarkWendler Mar 19, 2024
ecda10d
Merge pull request #17 from X2Cscope/fix-documentation
X2Cscope Mar 19, 2024
e9c2240
fix documentation action
MarkWendler Mar 19, 2024
d0ac3c8
Merge pull request #18 from X2Cscope/fix-release-action
X2Cscope Mar 19, 2024
1307044
Adding verbose to poetry publish
MarkWendler Mar 28, 2024
27fd7bf
Merge pull request #19 from X2Cscope/fix_action_release_poetry
X2Cscope Mar 28, 2024
bdfb627
Feat array support (#20)
yashagarwal-314 May 13, 2024
aa37915
Including X2C Web interface (#23)
edras Jun 20, 2024
98cec82
Update documentation, bugfixes, and minor enhancements
X2Cscope Jun 21, 2024
bd3133a
Fix dependencies (#31)
MarkWendler Jun 25, 2024
29399c8
Milestone v0.3.0 (#52)
yashagarwal-314 Oct 1, 2024
01b5edf
Bugfix/doc/images (#54)
yashagarwal-314 Oct 1, 2024
baa32fd
Bugfix dependencies (#56)
MarkWendler Oct 1, 2024
eb532ea
fix pip install --user pyx2cscope (#57)
MarkWendler Oct 1, 2024
ab9b99a
Fix documentation pip install --user (#59)
MarkWendler Oct 1, 2024
a34783a
Milestone 0.4 (#78)
X2Cscope Dec 12, 2024
380814d
Milestone 0.4 - minor update to 0.4.1 (#90)
MarkWendler Feb 20, 2025
a37e7c2
Milestone 0.4.2 - minor update elf parser supports structure, enums a…
MarkWendler May 14, 2025
ab885e8
Milestone v0.4.3 - minor update, bit size variables and enhancements …
edras Jun 23, 2025
d20aa1c
bump v0.4.4
edras Jun 26, 2025
2b70107
Milestone v0.5.0 (#102)
X2Cscope Nov 19, 2025
407b003
Version 0.5.1 (#103)
edras Nov 24, 2025
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
77 changes: 77 additions & 0 deletions .github/workflows/buildexe.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Build PyInstaller Executable

on:
workflow_dispatch:
jobs:
buildwindows:
runs-on: windows-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -r quality.txt

- name: Build executable
run: |
pyinstaller --noconfirm .\pyx2cscope_win.spec

- name: Create startWebInterface.bat
shell: cmd
run: |
echo pyX2Cscope.exe -w > dist\pyx2cscope\startWebInterface.bat

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: pyX2Cscope-windows
path: dist/pyX2Cscope


buildlinux:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -r quality.txt
sudo apt install libxcb-xinerama0

- name: Build executable
run: |
pyinstaller --noconfirm ./pyx2cscope_linux.spec

- name: Create startWebInterface.sh
run: |
echo '#!/bin/bash' > dist/pyX2Cscope_linux/startWebInterface.sh
echo './pyX2Cscope_linux -w' >> dist/pyX2Cscope_linux/startWebInterface.sh
chmod +x dist/pyX2Cscope_linux/startWebInterface.sh

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: pyX2Cscope-linux
path: dist/pyX2Cscope_linux
136 changes: 136 additions & 0 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: Run format, Build Sphinx Documentation, tests

on:
[pull_request]

jobs:

format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r quality.txt

- name: Code Format Check
run: |
ruff check .

# static-analysis:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Set up Python
# uses: actions/setup-python@v5
# with:
# python-version: "3.10"
# - name: Install dependencies
# run: |
# python -m pip install --upgrade pip
# pip install -r quality.txt
# - name: Check code with ruff
# run: |
# ruff ./pyx2cscope
# - name: Check code with pylint
# run: |
# pylint ./pyx2cscope

tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"

# Since we moved to generic parser, we don't need to install the xc-16 compiler anymore,
# because generic parser is based on pyelftools.
#
# - name: Set up Microchip XC16 v2.10 compiler
# run: |
# wget -nv -O /tmp/xc16 https://ww1.microchip.com/downloads/aemDocuments/documents/DEV/ProductDocuments/SoftwareTools/xc16-v2.10-full-install-linux64-installer.run && \
# chmod +x /tmp/xc16 && \
# sudo /tmp/xc16 --mode unattended --unattendedmodeui none --netservername localhost --LicenseType FreeMode --prefix /opt/microchip/xc16/v2.10 && \
# rm /tmp/xc16
# echo "/opt/microchip/xc16/v2.10/bin" >> $GITHUB_PATH

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r quality.txt
pip install -e .

- name: Run tests
run: |
pytest

docs:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r quality.txt
pip install -e .

- name: Build documentation
run: |
sphinx-build -M html doc build --keep-going

version-check:
runs-on: ubuntu-latest
if: github.base_ref == 'main'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check version consistency
run: |
# Get version from pyproject.toml
PYPROJECT_VERSION=$(grep -oP 'version\s*=\s*"\K[^"]+' pyproject.toml)
# Get version from __init__.py
INIT_VERSION=$(grep -oP '__version__\s*=\s*["\x27]\K[^"\x27]+' pyx2cscope/__init__.py)

if [ "$PYPROJECT_VERSION" != "$INIT_VERSION" ]; then
echo "❌ Version mismatch between pyproject.toml ($PYPROJECT_VERSION) and __init__.py ($INIT_VERSION)"
echo "Run 'python scripts/update_version.py' to synchronize versions"
exit 1
fi
echo "✅ Version consistency verified: $PYPROJECT_VERSION"

- name: Check version has been updated
if: github.base_ref == 'main'
run: |
# Get PR version
PR_VERSION=$(grep -oP 'version\s*=\s*"\K[^"]+' pyproject.toml)

# Get main branch version
git fetch origin main:main
MAIN_VERSION=$(git show main:pyproject.toml | grep -oP 'version\s*=\s*"\K[^"]+')

if [ "$PR_VERSION" == "$MAIN_VERSION" ]; then
echo "❌ ERROR: Version in PR ($PR_VERSION) is the same as in main branch ($MAIN_VERSION)"
echo "Please update the version in pyproject.toml"
exit 1
fi
echo "✅ Version check passed: $PR_VERSION (PR) vs $MAIN_VERSION (main)"
41 changes: 41 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Deploy documentation and package
on:
push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r quality.txt
pip install -e .

- name: Build documentation
run: |
sphinx-build -M html doc build --keep-going

- name: Deploy documentation
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./build/html

- name: Release to pypi with poetry
run: |
poetry config pypi-token.pypi ${{ secrets.PYX2CSCOPE_PYPI }}
poetry publish -vvv --build


11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,13 @@ dmypy.json
.vscode

# pycharm
.idea
.idea
!.idea/runConfigurations/*.xml
/pyx2cscope/examples/scope_data.csv
/doc/_build/
/doc/source/
**/web/upload/
**/config.ini

#backup files
.bkp
10 changes: 10 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
repos:
- repo: local
hooks:
- id: update-version
name: Update version in __init__.py
entry: python scripts/update_version.py
language: python
files: ^pyproject.toml$
types: [toml]
always_run: true
Loading