Skip to content

Ci qa issue 2276 - #2286

Merged
xsscx merged 6 commits into
masterfrom
ci-qa-issue-2276
Aug 24, 2026
Merged

Ci qa issue 2276#2286
xsscx merged 6 commits into
masterfrom
ci-qa-issue-2276

Conversation

@xsscx

@xsscx xsscx commented Aug 24, 2026

Copy link
Copy Markdown
Member

PR Summary

#2278

Checklist

  • Signed all Commits in PR
  • Built locally according to docs/build.md
  • Followed the guidelines in Contributing document
  • Ran relevant CTest/profile tests from docs/ctest.md
  • Updated documentation for user-visible behavior changes
  • Ran sanitizer coverage for memory-safety or parser changes
  • Added or updated regression coverage for behavior changes
  • For Python package changes, followed docs/python-packaging-release.md for PR and merge requirements
  • Did not change maintainer-owned workflow, CTest, CPack, sanitizer, release, or security infrastructure unless requested by an iccDEV maintainer
  • 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 Aug 24, 2026
@xsscx
xsscx requested a lite review from Copilot and removed request for ChrisCoxArt, colourbill-ctrl, dwtza and maxderhak August 24, 2026 11:40
@github-actions github-actions Bot added Documentation Documentation-only or documentation-related change Testing CTest, regression, or test coverage Configuration Repository, CMake, YAML, JSON, or tool configuration Build Build system, CMake, compiler, or packaging Python Python, Cython, PyPI, pip, or packaging scope labels Aug 24, 2026
@github-actions github-actions Bot added the failed One or more CI checks failed label Aug 24, 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

Adds a Python-accessible in-process ICC profile validation surface and wires it into the iccdev-mcp server/REST dashboard, aligning with #2278’s goal of exposing the C-only validation header/ABI for Python consumers.

Changes:

  • Added validate_profile() / validate_profile_file() plus ValidationStatus / ValidationResult to the iccdev Python bindings (Cython + stubs) with corresponding tests/docs.
  • Added a new validate_profile Python-native tool to iccdev-mcp (MCP + REST endpoint + dashboard inventory), including health-reporting and tests.
  • Updated build/test/docs infrastructure to cover the validation ABI (CMake regression target behavior, Docker image sanity check, Doxygen inputs, cross-linking docs).

Reviewed changes

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

Show a summary per file
File Description
README.md Links top-level docs to the Python bindings README.
python/tests/test_iccdev.py Adds binding-level tests for validation status and basic validate workflows.
python/README.md Documents validation feature and new convenience APIs.
python/iccdev/cicc_wrapper.pxd Exposes the IccCValidation.h ABI to Cython via size_t + icc_validate_profile.
python/iccdev/_iccdev.pyx Implements ValidationStatus and validate_profile* in the Cython module.
python/iccdev/_iccdev.pyi Adds type stubs for validation enums/results and new functions.
python/iccdev/init.py Re-exports validation symbols/functions in the public Python API.
iccdev-mcp/tests/test_server.py Adds MCP tool-level test for validate_profile; updates tool-count expectation.
iccdev-mcp/tests/test_rest_api.py Adds REST endpoint tests for /api/validate-profile and updates tool inventories/counts.
iccdev-mcp/README.md Updates tool inventory/docs to include validate_profile and shared-library requirements.
iccdev-mcp/iccdev/init.py Adds ctypes-based dynamic loading of the validation ABI in the bundled shim iccdev.
iccdev-mcp/iccdev_mcp/server.py Adds MCP tool validate_profile and reports validation availability in health.
iccdev-mcp/iccdev_mcp/rest_api.py Adds REST endpoint /api/validate-profile and dashboard wiring/inventory updates.
iccdev-mcp/iccdev_mcp/init.py Updates package-level documentation to reflect 26 tools / 7 Python-native.
iccdev-mcp/docs/INDEX.md Updates REST inventory documentation for the new tool count.
docs/c-api-validation.md Documents how the Python binding uses the in-process C validation API.
Dockerfile.mcp Adds a container build-time sanity check for native validation; sets ICCDEV_BUILD_DIR.
Build/Cmake/Testing/CMakeLists.txt Adjusts the C validation dlopen regression target compile options for Clang.
.github/ci/doxygen/Doxyfile Adds the C validation example to Doxygen inputs.

Comment thread Build/Cmake/Testing/CMakeLists.txt
Comment thread iccdev-mcp/README.md Outdated
Comment thread python/iccdev/_iccdev.pyx
@github-actions github-actions Bot added pending CI checks still running and removed failed One or more CI checks failed labels Aug 24, 2026
@xsscx
xsscx requested a lite review from Copilot August 24, 2026 11:57

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 19 out of 19 changed files in this pull request and generated 2 comments.

Suppressed comments (1)

python/tests/test_iccdev.py:139

  • The validation C API does not guarantee the report string is non-empty for malformed inputs; requiring a truthy report makes the test brittle across platforms/versions. Assert that a string is returned instead.
    def test_rejects_malformed_input(self):
        result = validate_profile(b"\x00\x01\x02\x03")
        assert result.status is ValidationStatus.CRITICAL_ERROR
        assert result.report

Comment thread python/iccdev/_iccdev.pyx
Comment thread python/tests/test_iccdev.py

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 19 out of 19 changed files in this pull request and generated 1 comment.

Comment thread Dockerfile.mcp Outdated
@github-actions github-actions Bot added passed All CI checks passed and removed pending CI checks still running labels Aug 24, 2026
@xsscx
xsscx requested a lite review from Copilot August 24, 2026 12:55
@github-actions github-actions Bot added pending CI checks still running and removed passed All CI checks passed labels Aug 24, 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

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

@xsscx
xsscx merged commit d2787c0 into master Aug 24, 2026
23 checks passed
@xsscx
xsscx deleted the ci-qa-issue-2276 branch August 24, 2026 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build Build system, CMake, compiler, or packaging Configuration Repository, CMake, YAML, JSON, or tool configuration Documentation Documentation-only or documentation-related change pending CI checks still running Python Python, Cython, PyPI, pip, or packaging scope Testing CTest, regression, or test coverage

Projects

None yet

2 participants