Skip to content

Add: pip-install-iccdev#1701

Merged
xsscx merged 15 commits into
masterfrom
pip-install-iccdev
Jul 8, 2026
Merged

Add: pip-install-iccdev#1701
xsscx merged 15 commits into
masterfrom
pip-install-iccdev

Conversation

@xsscx

@xsscx xsscx commented Jul 8, 2026

Copy link
Copy Markdown
Member

PR Summary

#765

Checklist

  • Signed all Commits in PR
  • Built locally according to docs/build.md
  • Followed the guidelines in Contributing document
  • New source files include the ICC copyright and BSD 3-Clause license header
  • Code style matches nearby code: 2-space indent, K&R braces, m_ members

Legal Requirements

All official software projects hosted by the International Color Consoritum (ICC)
follows the open source software best practice policies. The International Color Consoritum IP policy governs ICC specification development and contributions to ICC open source software. Software contributions are also covered by the Contributor License Agreement (CLA).

Contributor License Agreements

Developers who wish to contribute code to be considered for inclusion
in ICC software must first complete a Contributor License Agreement
(CLA)
.

There is no cost or membership requirement to sign the ICC Contributor License Agreement (CLA). Please note that this is different from membership in the International Color Consortium (ICC). If your organization relies on our projects, please become a member. Membership dues are an essential source of funding and investment for these projects.

  • If you are an individual writing the code on your own time and you are SURE you are the sole owner of any intellectual property you contribute, you can sign the CLA as an individual contributor.

  • If you are writing the code as part of your job, or if there is any possibility that your employer might think they own any intellectual property you create, then you should use the Corporate Contributor Licence Agreement

License

ICC software is licensed under the BSD 3-Clause "New" or "Revised" License. Contributions to ICC software projects should abide by that license unless otherwised specified or approved by the ICC.

Copyright Notices

All new source files must begin with the ICC Copyright notice and include or reference the BSD 3-Clause "New" or "Revised" License.

INTELLECTUAL PROPERTY & PATENTS

Participation in ICC's development activities is subject to ICC's Patent Policy.

Maintainer Review Required

If you have questions, contact a listed Maintainer.

@xsscx xsscx self-assigned this Jul 8, 2026
@xsscx
xsscx requested a review from maxderhak as a code owner July 8, 2026 03:59
@xsscx xsscx linked an issue Jul 8, 2026 that may be closed by this pull request
@xsscx xsscx added this to the v2.3.2.2 milestone Jul 8, 2026
@xsscx
xsscx requested a review from Copilot July 8, 2026 04:00
@xsscx xsscx added the Copilot Copilot use indicated by Maintainer label Jul 8, 2026
@github-actions github-actions Bot added the pending CI checks still running label Jul 8, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR significantly expands iccDEV’s “consumer-facing” surface by adding a pip-installable Python package (with tests and CI), MATLAB MEX wrapper examples, and a browser-based WASM tool UI suite, while also tightening/aligning core library exports (IccConnect/IccJSON) across CMake, vcpkg, Docker, and CI.

Changes:

  • Add Python packaging + parity tests, plus supporting CI workflow(s) and build documentation.
  • Add MATLAB MEX OOP wrapper layer and example scripts.
  • Add WASM HTML front-ends for multiple CLI tools and supporting docs, alongside C++/CMake export/linkage updates for JSON/Connect libraries.

Reviewed changes

Copilot reviewed 134 out of 138 changed files in this pull request and generated 19 comments.

Show a summary per file
File Description
wasm/toxml.html WASM UI page for iccToXml
wasm/tojson.html WASM UI page for iccToJson
wasm/tiffdump.html WASM UI page for iccTiffDump
wasm/search.html WASM UI page for iccApplySearch
wasm/roundtrip.html WASM UI page for iccRoundTrip
wasm/README.md WASM tool suite documentation
wasm/pngdump.html WASM UI page for iccPngDump
wasm/jpegdump.html WASM UI page for iccJpegDump
wasm/fromxml.html WASM UI page for iccFromXml
wasm/fromjson.html WASM UI page for iccFromJson
wasm/fromcube.html WASM UI page for iccFromCube
wasm/dump.html WASM UI page for iccDumpProfile
Tools/CmdLine/IccApplyToLink/Readme.md CLI doc updates for ApplyToLink args
Testing/Readme.md Document CI round-trip classification
Testing/expected-invalid-fromxml.tsv Manifest of expected invalid fromxml fixtures
python/vendor_iccproflib.py Script to vendor sources for sdist
python/tests/test_xml_json_parity.py XML/JSON parity + helper tests
python/tests/test_proflib_parity.py Proflib/CMM parity + CLI smoke tests
python/tests/conftest.py Installed-package import guard
python/tests/init.py Test package marker
python/pyproject.toml Python package metadata/build config
python/MANIFEST.in sdist inclusion rules
python/iccdev/py.typed PEP 561 typing marker
python/iccdev/init.py Python package exports/version
python/examples/read_profile.py Python example: header inspection
python/examples/color_transform.py Python example: CMM transform
ports/iccdev/vcpkg.json vcpkg feature description tweak
ports/iccdev/usage vcpkg usage adds IccConnect targets
matlab/examples/read_profile.m MATLAB example: header inspection
matlab/examples/color_transform.m MATLAB example: transforms/perf
matlab/+iccdev/sig_to_str.m MATLAB utility for ICC signatures
matlab/+iccdev/RenderingIntent.m MATLAB intent constants
matlab/+iccdev/Interpolation.m MATLAB interpolation constants
matlab/+iccdev/IccProfile.m MATLAB profile wrapper class
matlab/+iccdev/IccCmm.m MATLAB CMM wrapper class
matlab/+iccdev/IccApply.m MATLAB thread-safe apply handle
matlab/+iccdev/ColorSpace.m MATLAB colorspace constants
IccXML/CmdLine/IccToXml/IccToXml.cpp Tool exit codes use EXIT_SUCCESS/FAILURE
IccXML/CmdLine/IccFromXml/IccFromXml.cpp Tool exit codes use EXIT_SUCCESS/FAILURE
IccProfLib/IccWrapper.cpp Fix apply-handle ownership semantics
IccProfLib/IccUtil.cpp Copyright header cleanup
IccProfLib/IccProfLibConf.h Cross-compiler export macro updates
IccProfLib/IccPcc.cpp PCC observer helper adjustment
IccProfLib/IccMpeSpectral.cpp Spectral Describe safety/limits
IccProfLib/IccColorimetry.cpp Safer vector fill helper
IccProfLib/IccCmmThread.cpp Whitespace/style cleanup
IccProfLib/IccCmmSearch.cpp Fix interp/lut selection for dst leg
IccProfLib/IccCmm.cpp Adjust abs-to-rel PCS scaling logic
IccJSON/IccLibJSON/IccUtilJson.h Include path cleanup for JSON types
IccJSON/IccLibJSON/IccTagJson.h Include path cleanup for JSON types
IccJSON/IccLibJSON/IccProfileJson.h Exported destructor declaration
IccJSON/IccLibJSON/IccProfileJson.cpp Exported destructor definition
IccJSON/IccLibJSON/IccMpeJson.h Include path cleanup for JSON types
IccJSON/CmdLine/IccToJson/IccToJson.cpp Tool exit codes use EXIT_SUCCESS/FAILURE
IccJSON/CmdLine/IccFromJson/IccFromJson.cpp Return EXIT_SUCCESS
IccConnect/IccLibConnect/IccJsonUtil.h Include path cleanup for Connect
docs/tools-cli-reference.md CLI reference update for ApplyToLink
docs/regression-workflow-governance.md Governance doc tightening
docs/index.md Docs index links python release doc
docs/build.md Add Python wheel validation section
Dockerfile.nixos Include IccConnect in checks/paths
Dockerfile.mcp New MCP runtime Docker image
Dockerfile.ci-regression CI regression container tweak (GIT_COMMIT env)
Dockerfile Include IccConnect runtime/lib paths
Build/Cmake/Tools/IccIisIsapi/CMakeLists.txt Link/export anchoring notes updated
Build/Cmake/Tools/IccDEVCmm/CMakeLists.txt Switch to target_precompile_headers
Build/Cmake/Testing/RunWindowsIccJsonExportTest.cmake New Windows JSON export regression
Build/Cmake/Testing/RunWindowsBatchTest.cmake Safer bounded PATH composition
Build/Cmake/RefIccMAXConfig.cmake.in Expose IccConnect targets/aliases
Build/Cmake/IccXML/CMakeLists.txt Shared-build symbol visibility tweaks
Build/Cmake/IccProfLib/CMakeLists.txt Install JSON types header + wrapper source
Build/Cmake/IccConnect/CMakeLists.txt Install/export targets + disable LTO for static
Build/Cmake/CMakeLists.txt GCC auto-detect includes newer versions
AGENTS.md Add pointers to new instructions/skills
.gitignore Ignore Python + MATLAB build artifacts
.github/workflows/ci-vcpkg-ports.yml vcpkg CI validates Connect + ApplyNamedCmm
.github/workflows/ci-preflight-safety.yml Resolve additional CodeQL query pack
.github/workflows/ci-pr-unix.yml Ensure Connect static lib presence
.github/workflows/ci-json-python.yml New Python CI orchestrator workflow
.github/workflows/ci-docker.yml Add push trigger + safer git log handling
.github/skills/wasm-build-test/SKILL.md WASM build/test guidance doc
.github/skills/python-bindings-test/SKILL.md Python bindings build/test guidance doc
.github/skills/pre-pr-security-cycle/SKILL.md Add conservative review loop notes
.github/skills/maintainer-ci-ctest/SKILL.md Add guidance to grep key counts
.github/scripts/preflight-safety-checks.sh Tighten cache policy canaries
.github/scripts/iccdev-tool-coverage-baseline.sh Expand ApplyToLink regression checks
.github/scripts/iccdev-json-parser-regression-tests.sh Fail-closed regression assertion fix
.github/scripts/iccdev-classify-fromxml-logs.sh New fromxml log classification helper
.github/scripts/check-workflow-cache-policy.sh Rework cache-policy scanner parsing
.github/pull_request_template.md Add maintainer/test checklist items
.github/prompts/vcpkg-port-debug.prompt.md Update vcpkg debug prompt for Connect/tool
.github/prompts/debug-python-bindings.prompt.md New Python/Cython debug prompt
.github/prompts/debug-mcp-subprocess.prompt.md New MCP subprocess debug prompt
.github/prompts/bisect-regression.prompt.md Include JSON/Connect in LD_LIBRARY_PATH
.github/prompts/audit-workflow-governance.prompt.md Expand audit guidance (Docker/zizmor/etc.)
.github/instructions/workflow-governance.instructions.md Mention MCP + extra CodeQL pack
.github/instructions/vcpkg-port.instructions.md Document Connect via json feature
.github/instructions/testing.instructions.md Document issue-1009 suite + PATH bounding
.github/instructions/python-bindings.instructions.md New python path-specific instructions
.github/instructions/matlab-mex.instructions.md New matlab path-specific instructions
.github/copilot-instructions.md Register python/matlab instructions + skills
.github/codeql-config.yml Switch to explicit query suite files
.github/ci/regression/README.md Register new Connect regression tests
.github/ci/regression/iccconnect-config-parser.cpp New Connect config parser regression helper
.dockerignore Broaden exclusions; include Connect artifacts

Comment thread wasm/toxml.html Outdated
Comment thread wasm/tojson.html Outdated
Comment thread wasm/fromxml.html Outdated
Comment thread wasm/fromjson.html Outdated
Comment thread wasm/fromcube.html Outdated
Comment thread wasm/pngdump.html Outdated
Comment thread wasm/jpegdump.html Outdated
Comment thread wasm/tiffdump.html Outdated
Comment thread IccProfLib/IccPcc.cpp Outdated
Comment thread IccProfLib/IccMpeSpectral.cpp
Copilot AI review requested due to automatic review settings July 8, 2026 04:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 133 out of 137 changed files in this pull request and generated 6 comments.

Comment thread .github/workflows/ci-json-python.yml
Comment thread Dockerfile.ci-regression
Comment thread .github/scripts/preflight-safety-checks.sh
Comment thread matlab/+iccdev/IccProfile.m
Comment thread .github/skills/wasm-build-test/SKILL.md
Comment thread Build/Cmake/IccProfLib/CMakeLists.txt
Copilot AI review requested due to automatic review settings July 8, 2026 04:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 133 out of 137 changed files in this pull request and generated 5 comments.

Comment thread IccProfLib/IccMpeSpectral.cpp Outdated
Comment thread Build/Cmake/IccXML/CMakeLists.txt Outdated
Comment thread Build/Cmake/IccProfLib/CMakeLists.txt Outdated
Comment thread wasm/search.html Outdated
Comment thread wasm/namedcmm.html
Copilot AI review requested due to automatic review settings July 8, 2026 04:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 133 out of 137 changed files in this pull request and generated 4 comments.

Comment thread .github/scripts/preflight-safety-checks.sh
Comment thread Dockerfile.ci-regression
Comment thread .github/skills/wasm-build-test/SKILL.md
Comment thread wasm/README.md
Copilot AI review requested due to automatic review settings July 8, 2026 04:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 133 out of 137 changed files in this pull request and generated 11 comments.

Comment thread wasm/toxml.html
Comment thread wasm/tojson.html
Comment thread wasm/fromxml.html
Comment thread wasm/fromjson.html
Comment thread wasm/fromcube.html
Comment thread wasm/namedcmm.html Outdated
Comment thread wasm/search.html Outdated
Comment thread wasm/specsep.html Outdated
Comment thread python/examples/color_transform.py Outdated
Comment thread IccProfLib/IccMpeSpectral.cpp
Copilot AI review requested due to automatic review settings July 8, 2026 14:32
@xsscx

xsscx commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

PR Author Comment

2026-07-08 14:34:09 UTC

Copilot Review is useless.

  1. Too much friction
  2. Unsynchronized with other Copilot review Processes

If this were to be a requirement for any PR I would not waste my time.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 133 out of 137 changed files in this pull request and generated 4 comments.

Comment thread python/vendor_iccproflib.py
Comment thread python/examples/read_profile.py
Comment thread python/examples/color_transform.py
Comment thread python/tests/test_xml_json_parity.py Outdated
@xsscx

xsscx commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

PR Author Comment (2)

2026-07-08 14:41:33 UTC

I'm done with the Copilot Review and will not subject any other potential Contributor to the process.

This PR is Merge Ready

Copilot AI review requested due to automatic review settings July 8, 2026 14:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 134 out of 137 changed files in this pull request and generated 1 comment.

Comment thread .github/scripts/iccdev-tool-coverage-baseline.sh
Copilot AI review requested due to automatic review settings July 8, 2026 15:22

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 134 out of 137 changed files in this pull request and generated 3 comments.

Comment thread wasm/search.html
Comment thread wasm/specsep.html
Comment thread wasm/README.md
Copilot AI review requested due to automatic review settings July 8, 2026 15:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 134 out of 137 changed files in this pull request and generated 2 comments.

Comment thread python/pyproject.toml
Comment thread wasm/README.md
Copilot AI review requested due to automatic review settings July 8, 2026 15:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 134 out of 137 changed files in this pull request and generated 5 comments.

Comment thread wasm/fromcube.html Outdated
Comment thread wasm/link.html Outdated
Comment thread wasm/apply.html Outdated
Comment thread wasm/specsep.html Outdated
Comment thread wasm/v5dsp.html Outdated
Copilot AI review requested due to automatic review settings July 8, 2026 16:08

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 134 out of 137 changed files in this pull request and generated no new comments.

@xsscx

xsscx commented Jul 8, 2026

Copy link
Copy Markdown
Member Author

PR Author comment (3)

2026-07-08 16:24:33 UTC

The Copilot Review Process is absolutely absurd. Whoever designed that should be fired.

@github-actions github-actions Bot added passed All CI checks passed and removed pending CI checks still running labels Jul 8, 2026
@xsscx
xsscx merged commit a820b37 into master Jul 8, 2026
45 checks passed
@xsscx
xsscx deleted the pip-install-iccdev branch July 8, 2026 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Copilot Copilot use indicated by Maintainer passed All CI checks passed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add: Python & MATLAB Examples

2 participants