Skip to content

ci: add icc session helper - #1944

Merged
xsscx merged 3 commits into
masterfrom
ci-qa-pr-docker-testing
Aug 1, 2026
Merged

ci: add icc session helper#1944
xsscx merged 3 commits into
masterfrom
ci-qa-pr-docker-testing

Conversation

@xsscx

@xsscx xsscx commented Aug 1, 2026

Copy link
Copy Markdown
Member

PR Summary

#1943

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 1, 2026
@xsscx
xsscx requested review from ChrisCoxArt and dwtza as code owners August 1, 2026 22:22
@xsscx xsscx linked an issue Aug 1, 2026 that may be closed by this pull request
@github-actions github-actions Bot added Scripts Shell, PowerShell, or repository automation scripts Windows Windows, MSVC, clang-cl, or PowerShell scope labels Aug 1, 2026
@xsscx
xsscx requested a review from Copilot August 1, 2026 22:22
@github-actions github-actions Bot added the failed One or more CI checks failed label Aug 1, 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 new PowerShell helper under .github/scripts/ to create a dated work-session directory name (DD-mmm-YYYY-NNN), and updates repository guidance/attributes so the helper is discoverable and checked out with consistent line endings.

Changes:

  • Added .github/scripts/icc-session.ps1 session-directory creator with an icc-session alias.
  • Documented the helper in .github/copilot-instructions.md.
  • Expanded .gitattributes to enforce LF line endings for additional source/script extensions (including .ps1).

Reviewed changes

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

File Description
.github/scripts/icc-session.ps1 New PowerShell session helper script and alias for creating dated workspace directories.
.github/copilot-instructions.md Adds a short usage pointer for the new Windows session helper.
.gitattributes Enforces LF EOL for common source and script extensions, including the new .ps1 helper.
Suppressed comments (1)

.github/scripts/icc-session.ps1:110

  • If the script-level parameters are renamed to avoid clobbering the caller scope when dot-sourced, the direct-invocation call site must be updated to pass the renamed variables. As written, it still references $Root/$Suffix/$Date/$NoLocation, so the script will stop accepting arguments after the rename.
if ($MyInvocation.InvocationName -ne ".") {
  New-IccSession -Root $Root -Suffix $Suffix -Date $Date -NoLocation:$NoLocation
}

Comment thread .github/scripts/icc-session.ps1
Comment thread .github/copilot-instructions.md Outdated
@github-actions github-actions Bot added pending CI checks still running and removed failed One or more CI checks failed labels Aug 1, 2026
@xsscx
xsscx requested a review from Copilot August 1, 2026 22: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 3 out of 3 changed files in this pull request and generated no new comments.

Suppressed comments (3)

.github/scripts/icc-session.ps1:92

  • New-Item uses -Path here as well, which applies wildcard expansion. If the resolved root contains wildcard characters, the child session directory creation may target the wrong location. Prefer -LiteralPath for filesystem paths that should be treated verbatim.
    $path = Join-Path $resolvedRoot $name
    try {
      New-Item -ItemType Directory -Path $path -ErrorAction Stop | Out-Null
      break

.github/scripts/icc-session.ps1:110

  • Set-Alias -Scope Global is executed unconditionally, but New-IccSession only exists in the script scope unless the file is dot-sourced. If a user runs the script directly in an interactive session, this can leave a persistent icc-session alias that points to a non-existent command after the script exits.
Set-Alias -Name icc-session -Value New-IccSession -Scope Global

if ($MyInvocation.InvocationName -ne ".") {
  New-IccSession -Root $Root -Suffix $Suffix -Date $Date -NoLocation:$NoLocation
}

.github/scripts/icc-session.ps1:66

  • New-Item is called with -Path when creating the root directory. In PowerShell -Path applies wildcard expansion, so roots containing wildcard characters (e.g. [, ]) can be misinterpreted. Using -LiteralPath also matches later Get-ChildItem -LiteralPath usage and adding -ErrorAction Stop makes failures explicit.

This issue also appears on line 89 of the same file.

  $resolvedRoot = [System.IO.Path]::GetFullPath($Root)
  New-Item -ItemType Directory -Path $resolvedRoot -Force | Out-Null

@xsscx
xsscx force-pushed the ci-qa-pr-docker-testing branch from 9525bf5 to 6e9b935 Compare August 1, 2026 22:50
@xsscx

xsscx commented Aug 1, 2026

Copy link
Copy Markdown
Member Author

PR Status

2026-08-01 23:03:18 UTC

Addressed the Suppressed Comments in 6e9b935 and skipped another Copilot Review.

Intent

Merge

@xsscx
xsscx merged commit c95a834 into master Aug 1, 2026
35 checks passed
@xsscx
xsscx deleted the ci-qa-pr-docker-testing branch August 1, 2026 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pending CI checks still running Scripts Shell, PowerShell, or repository automation scripts Windows Windows, MSVC, clang-cl, or PowerShell scope

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: Add Windows Session Helper | Docker Images

2 participants