Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
d0089df
Add Python bindings for jsartoolkitNFT and update .gitignore
kalwalt Feb 20, 2025
fcab895
improved test and solve issue with ARLog's
kalwalt Feb 21, 2025
a0d4d8d
fix for last missed escape characters
kalwalt Feb 21, 2025
85acf85
Update .gitignore and enhance setup.py to download and include libjpeg
kalwalt Feb 21, 2025
c040dc3
Add nftMarker class to Python bindings and enhance test script for NF…
kalwalt Feb 21, 2025
a208c46
Add GitHub Actions workflow for building and testing Python bindings
kalwalt Feb 21, 2025
9bf7d5f
Enhance GitHub Actions workflow by adding submodule update step for b…
kalwalt Feb 21, 2025
2deb11f
Add config.h generation to setup.py for AR video input configuration
kalwalt Feb 21, 2025
74eca3b
Update GitHub Actions workflow to install system dependencies for lib…
kalwalt Feb 21, 2025
0e7e63e
Refactor build process for libjpeg in setup.py and update workflow to…
kalwalt Feb 21, 2025
5e1dd79
Use absolute path for build directory in setup.py
kalwalt Feb 21, 2025
4dd58f3
Add installation of libjpeg9 in GitHub Actions workflow
kalwalt Feb 22, 2025
09b8ab2
Update Python dependencies in GitHub Actions workflow to include numpy
kalwalt Feb 22, 2025
e24726a
Add separate build jobs for Linux and Windows in GitHub Actions workflow
kalwalt Feb 22, 2025
67d1306
Update GitHub Actions workflow to install libjpeg-turbo instead of li…
kalwalt Feb 22, 2025
9b8fff2
Update GitHub Actions workflow to use bash for adding vcpkg to path
kalwalt Feb 22, 2025
0197900
Refactor setup.py to conditionally handle libjpeg build for Windows u…
kalwalt Feb 22, 2025
dfc40bf
Add zlib, libjpeg, and pthread libraries for Windows support; update …
kalwalt Feb 24, 2025
70deb15
Refactor setup.py to use conditional extra_compile_args for Windows b…
kalwalt Feb 24, 2025
7f157c7
Refactor setup.py to conditionally build libjpeg for Linux platforms
kalwalt Feb 24, 2025
efde8d7
Add jconfig.h and jversion.h for libjpeg-turbo support; update extra_…
kalwalt Feb 24, 2025
1f3d30f
Add caching for pip packages and vcpkg in GitHub Actions; update setu…
kalwalt Feb 24, 2025
0d4bdeb
Add pthreads installation to GitHub Actions and update setup.py for l…
kalwalt Feb 24, 2025
15e44b7
Add unit tests for jsartoolkitNFT and update GitHub Actions workflow
kalwalt Feb 24, 2025
36e44d3
Update expected values in unit tests for cameraId and id
kalwalt Feb 25, 2025
96b993e
Update GitHub Actions to use Windows 2022 and enhance unit tests for …
kalwalt Feb 25, 2025
d067b37
Upgrade GitHub Actions to Ubuntu 24.04, update Node.js setup, and mod…
kalwalt Feb 25, 2025
4b31bdd
Add installation of ChromiumHeadless in GitHub Actions workflow
kalwalt Feb 25, 2025
45faee6
Enhance unit tests for NFT data retrieval by adding marker ID checks …
kalwalt Feb 25, 2025
7ce0076
Refactor getNFTMarkerInfo to return a py::dict and update error handling
kalwalt Feb 25, 2025
e02dbd9
Add NFT marker detection and enhance unit tests for marker info retri…
kalwalt Feb 25, 2025
9ba59b7
Enhance output of getNFTMarkerInfo by adding detailed print statement…
kalwalt Feb 25, 2025
f83a027
a raw barebone for publishing to testPyPi
kalwalt Feb 26, 2025
b106927
Update license information in pyproject.toml and setup.py to specify …
kalwalt Feb 26, 2025
c94aab5
Refactor Python bindings structure, update version to 0.0.4, and clea…
kalwalt Feb 27, 2025
701dac7
Bump version to 0.0.5, remove deprecated artoolkitNFT.py, and update …
kalwalt Mar 1, 2025
8da05e0
Fix build workflow to separate wheel creation and installation steps
kalwalt Mar 1, 2025
e5fe97d
Update build workflow to install specific wheel version for consistency
kalwalt Mar 1, 2025
af67ef5
Refactor build workflow to streamline wheel installation process
kalwalt Mar 1, 2025
7468b00
Enhance build workflow by adding pytest for testing, updating package…
kalwalt Mar 2, 2025
0dc37ef
Rename package to 'artoolkitnft', update version to 0.0.6, and add AR…
kalwalt Mar 2, 2025
106b58f
fix for github action issue
kalwalt Mar 2, 2025
c103546
Fix library extension for Windows and clean up library list for non-W…
kalwalt Mar 2, 2025
e9730da
Bump version to 0.0.8 and update setup configuration for zlib depende…
kalwalt Mar 2, 2025
33d681a
Update README for TestPyPI publishing instructions and bump version t…
kalwalt Mar 2, 2025
7eaf2ca
Update README to include TestPyPI installation instructions
kalwalt Mar 2, 2025
11c1018
Update GitHub Actions workflow to dynamically install the wheel based…
kalwalt Mar 3, 2025
05d3aba
Fix syntax for version extraction in GitHub Actions workflow
kalwalt Mar 3, 2025
f249ced
Fix PowerShell syntax for version extraction in GitHub Actions workflow
kalwalt Mar 3, 2025
c8c46ce
Fix PowerShell variable assignment syntax in GitHub Actions workflow
kalwalt Mar 3, 2025
8faef29
Add echo statement for clarity before installing wheel in GitHub Acti…
kalwalt Mar 3, 2025
8af2180
Remove dynamic versioning for wheel installation in GitHub Actions wo…
kalwalt Mar 3, 2025
bd84ca4
Update GitHub Actions workflow to use Python 3.11 and latest action v…
kalwalt Mar 3, 2025
dcdd9e6
Update wheel installation to use Python 3.11 compatible version
kalwalt Mar 3, 2025
feaaa5f
Merge branch 'dev' into feature-pyton-bindings
kalwalt Mar 6, 2025
3356c88
fix for issue https://github.com/webarkit/jsartoolkitNFT/issues/430 i…
kalwalt Mar 6, 2025
c27983a
Refactor ARToolKitNFT_py.cpp to use smart pointers for memory manage…
kalwalt Mar 6, 2025
853ff0b
Enhance ARControllerNFT to support grayscale conversion and improve i…
kalwalt Mar 7, 2025
e6c2d4c
Add image processing test and new test image for ARControllerNFT
kalwalt Mar 7, 2025
9a29dc0
Update Python dependencies and modify test command in CI workflow
kalwalt Mar 7, 2025
ae7d62d
Enhance ARControllerNFT example to support higher resolution and imag…
kalwalt Mar 7, 2025
19157ea
some more tests with the example
kalwalt Mar 7, 2025
9cdd192
fox for codeql script
kalwalt Nov 9, 2025
3886f5a
fix for wrong codeql config path
kalwalt Nov 9, 2025
609a245
chore: update version to 1.7.6, add ES6 Karma configurations, and imp…
kalwalt Nov 9, 2025
b2db9a8
chore: add GitHub Actions workflow for publishing to npm
kalwalt Nov 9, 2025
ec6ff05
merging last changes in feature-python-bindings
kalwalt Nov 9, 2025
d01133e
using zlib version 1.2.11
kalwalt Nov 9, 2025
9d7e065
feat: enhance setup script to support tool installation via winget an…
kalwalt Nov 10, 2025
34d3bf9
trying to debug the issue
kalwalt Nov 11, 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
10 changes: 10 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Source - https://stackoverflow.com/a/78835420
# Posted by sclarson
# Retrieved 2025-11-09, License - CC BY-SA 4.0

paths:
- 'src'
- 'js'
paths-ignore:
- 'dist'
- 'build'
119 changes: 119 additions & 0 deletions .github/workflows/build-python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Build and Test Python Bindings

on:
push:
pull_request:

jobs:
build-linux:
runs-on: ubuntu-24.04

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

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

- name: Cache pip packages
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt', '**/setup.py') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libjpeg9

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install numpy setuptools wheel pybind11 pytest pillow

- name: Update submodules
run: git submodule update --init

- name: Build the Python bindings
run: |
cd python-bindings
python setup.py bdist_wheel && pip install dist/*.whl

- name: Test the build
run: |
cd python-bindings
python example.py

- name: Run unit tests
run: npm run python-tests

build-windows:
runs-on: windows-2022

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

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

- name: Cache pip packages
uses: actions/cache@v4
with:
path: ~\AppData\Local\pip\Cache
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt', '**/setup.py') }}
restore-keys: |
${{ runner.os }}-pip-

- name: Cache vcpkg
uses: actions/cache@v4
with:
path: |
vcpkg
!vcpkg/.git
key: ${{ runner.os }}-vcpkg-${{ hashFiles('vcpkg.json') }}

- name: Install vcpkg
run: |
git clone https://github.com/microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat

- name: Install libjpeg-turbo
run: .\vcpkg\vcpkg install libjpeg-turbo

- name: Install pthreads
run: .\vcpkg\vcpkg install pthreads

- name: Add vcpkg to path
shell: bash
run: echo "vcpkg/installed/x64-windows/bin" >> $GITHUB_PATH

- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install numpy setuptools wheel pybind11 pytest pillow

- name: Update submodules
run: git submodule update --init

- name: Build the Python bindings
shell: pwsh
run: |
cd python-bindings
python setup.py bdist_wheel
$version = (python setup.py --version).Trim()
pip install dist/artoolkitnft-0.0.10-cp311-cp311-win_amd64.whl

- name: Test the build
run: |
cd python-bindings
python example.py

- name: Run unit tests
run: npm run python-tests
1 change: 1 addition & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ jobs:
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql/codeql-config.yml
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Publish to npm

on:
push:
tags:
- '*.*.*' # e.g. 1.2.3
workflow_dispatch:
inputs:
tag:
description: Existing tag to publish (e.g. 1.2.3)
required: true

permissions:
contents: read
id-token: write # required for npm provenance

jobs:
publish:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 22.15.1
registry-url: https://registry.npmjs.org
cache: npm

- name: Install
run: npm ci

- name: Test
run: npm test
env:
CI: true

- name: Build
run: npm run build --if-present

- name: Verify npm auth
run: npm whoami
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Publish
run: |
# For public scoped packages add --access public
# For private packages omit --access or use --access restricted
npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,13 @@ build/*.a
node_modules
docs/*
emscripten/build
python-bindings/build
python-bindings/dist
python-bindings/emscripten
python-bindings/*.so
python-bindings/deps/libjpeg/*
python-bindings/__pycache__
python-bindings/*.egg-info
python-bindings/src/*.egg-info
.vscode
.idea
2 changes: 1 addition & 1 deletion emscripten/zlib
Submodule zlib updated from 839cb7 to cacf7f
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@webarkit/jsartoolkit-nft",
"version": "1.7.6",
"version": "1.7.2",
"main": "dist/ARToolkitNFT.js",
"types": "types/src/index.d.ts",
"description": "Emscripten port of ARToolKit5 to JavaScript. It is a lighter version of Jsartoolkit5 with only NFT markerless support",
Expand Down Expand Up @@ -72,6 +72,8 @@
"test:es6": "cross-env BUILD_TARGET_ES6=artoolkitNFT_ES6_wasm.js karma start karma-es6.conf.js",
"test:es6-simd": "cross-env BUILD_TARGET_ES6=artoolkitNFT_ES6_wasm.simd.js karma start karma-es6.conf.js",
"test:all": "npm run test:min && npm run test:debug && npm run test:wasm && npm run test:simd && npm run test:embed-es6 && npm run test:es6 && npm run test:es6-simd",
"build-python-bindings": "cd python-bindings && python setup.py build_ext --inplace",
"python-tests": "cd python-bindings && pytest test_arcontrollerNFT.py",
"watch": "./node_modules/.bin/watch 'npm run build' ./js/",
"format-check": "prettier --check .",
"format": "prettier --write .",
Expand Down
Loading
Loading