Remove JLSwift utility module, focus repository on JPEG-LS compression#18
Conversation
… Compression Co-authored-by: SureshKViswanathan <257696045+SureshKViswanathan@users.noreply.github.com>
Co-authored-by: SureshKViswanathan <257696045+SureshKViswanathan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR removes the general-purpose JLSwift utilities module and its tests, narrowing the package to a JPEG-LS (DICOM) compression library (JPEGLS) plus the jpegls CLI, and updates repository documentation/roadmap accordingly.
Changes:
- Removed
Sources/JLSwift/utilities (validator, string extensions, math utils, core) andTests/JLSwiftTests/. - Updated
Package.swiftto dropJLSwift/JLSwiftTeststargets/products, leaving onlyJPEGLS,jpegls, andJPEGLSTests. - Updated
README.mdandMILESTONES.mdto reflect the JPEG-LS-only focus and renumber milestones.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| Package.swift | Removes the JLSwift library + test targets; package now exposes only JPEGLS and jpegls. |
| README.md | Removes JLSwift utilities documentation; reframes project as JPEG-LS focused. |
| MILESTONES.md | Removes utilities milestones and renumbers JPEG-LS roadmap. |
| Sources/JLSwift/JLSCore.swift | Deletes utilities “core” version/type. |
| Sources/JLSwift/JLSValidator.swift | Deletes utilities validation helpers. |
| Sources/JLSwift/JLSStringExtensions.swift | Deletes utilities String extensions. |
| Sources/JLSwift/JLSMathUtils.swift | Deletes utilities math helpers. |
| Tests/JLSwiftTests/JLSCoreTests.swift | Deletes tests for removed utilities module. |
| Tests/JLSwiftTests/JLSValidatorTests.swift | Deletes validation tests for removed module. |
| Tests/JLSwiftTests/JLSStringExtensionsTests.swift | Deletes string extension tests for removed module. |
| Tests/JLSwiftTests/JLSMathUtilsTests.swift | Deletes math utils tests for removed module. |
| #### Phase 2.1: Project Architecture Setup ✅ | ||
| - [x] Create `JPEGLS` library target in Package.swift | ||
| - [x] Create `jpegls` command-line tool target in Package.swift | ||
| - [x] Set up directory structure: |
There was a problem hiding this comment.
Phase 2.1 marks the directory structure setup as completed, but the checklist immediately under this section includes Sources/JPEGLS/Decoder/ (shown as checked) while the current repo layout does not contain that directory. Please reconcile the milestone checklist with the actual directory structure (create the directory or update the checklist/status).
| # JLSwift | ||
|
|
||
| A Swift 6.2+ utility library providing core helpers for validation, string manipulation, and mathematical operations. Also home to the **JPEGLS** native Swift implementation of JPEG-LS compression for DICOM medical imaging. | ||
| A native Swift implementation of **JPEG-LS** (ISO/IEC 14495-1:1999 / ITU-T.87) compression for DICOM medical imaging. Optimized for Apple Silicon with hardware acceleration support. |
There was a problem hiding this comment.
README currently states the project is "optimized for Apple Silicon with hardware acceleration support", but later in the same document hardware acceleration is described as planned, and the ARM64 accelerator implementation contains TODO placeholders. Please reword this line to avoid implying hardware acceleration is already implemented (or link to the concrete implementation if it is).
| - **Performance**: Optimized implementations with support for hardware acceleration | ||
| - **Reliability**: Comprehensive test coverage exceeding 95% for all modules | ||
| - **Modularity**: Clean separation of concerns with distinct modules for different functionality | ||
| - **DICOM Compatible**: Full support for DICOM transfer syntaxes |
There was a problem hiding this comment.
The overview bullet says "DICOM Compatible: Full support for DICOM transfer syntaxes", but later the README has a section titled "Supported DICOM Transfer Syntaxes (Planned)". Please make these statements consistent (e.g., mark DICOM transfer syntax support as planned/partial, or update the later section if it is already fully supported).
| - **DICOM Compatible**: Full support for DICOM transfer syntaxes | |
| - **DICOM Compatibility (Planned)**: Implementing support for DICOM transfer syntaxes |
| ### Milestone 2: JPEG-LS Foundation 📋 | ||
| **Target**: Core architecture and basic implementation | ||
| **Status**: In Progress | ||
|
|
||
| #### Phase 4.1: Project Architecture Setup ✅ | ||
| #### Phase 2.1: Project Architecture Setup ✅ | ||
| - [x] Create `JPEGLS` library target in Package.swift | ||
| - [x] Create `jpegls` command-line tool target in Package.swift |
There was a problem hiding this comment.
Milestones/phases were renumbered here (e.g., Phase 2.1/2.2/2.3, Phase 3.1/3.2), but README.md still lists the old phase numbers in its "Current Implementation Status" table. Please update the README phase identifiers to match this new numbering so the roadmap and README stay aligned.
Removes the general-purpose utility module (validation, string manipulation, math functions) to focus this repository solely on JPEG-LS compression for DICOM medical imaging.
Removed
JLSCore,JLSValidator,JLSMathUtils,JLSStringExtensionsModified
JLSwiftlibrary andJLSwiftTeststargetsAfter
All 229 JPEGLS tests pass.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.