bluetape4k-image의 주요 변경 사항을 이 파일에 기록한다.
형식은 Keep a Changelog를 따른다. 이 project는 Semantic Versioning을 따른다.
- Issue #638 trusted PaddleOCR producer workflow와 strict evidence contract를 추가했다. 동일 digest의 image·SBOM·provenance·signature·public evidence를 read-back하고, producer PASS와 adoption 결정을 분리한다.
1.0.0정식 배포 후 다음 minor 개발선을1.1.0-SNAPSHOT으로 열었다.
- privacy pipeline의 runtime 객체와 Spring storage/CDN collaborator에서 허위
Serializable계약을 제거하고, Jackson 3 기반schemaVersion=1snapshot codec, bounded stream decode, 방어적 byte/collection copy를 추가했다. 기존 runtime Java serialization 사용자는PrivacyDerivativePayload/report/batch snapshot으로 migration해야 한다 (#481). - AI/ML backend 연구 umbrella #513와
PaddleOCR child #169를
각각
OPEN / Backlog / BACKLOG / DEFERRED와Backlog / DEFERRED로 보존한다. Tesseract/Tess4J baseline은 기본 OCR 경로로 유지하고, PaddleOCR model download, ONNX production backend, benchmark adoption은 license·immutable artifact·producer provenance·offline receipt가 확보될 때까지 활성화하지 않는다 (#543, #544, #545, #609, #611). 최종 PaddleOCR adoption gate #547의 현재 결정은DEFER이며, 재개 증거는 새로운 결정의 입력으로만 사용한다.
- Provider-neutral barcode extraction contract와 pure-JVM ZXing provider를 추가하고, deterministic fixture와 capability matrix를 문서화했다 (#244, #245, #247).
- 재현 가능한 ZXing extraction benchmark와 Spring Boot 4 barcode API quickstart를 추가했다. Quickstart는 bounded multipart input과 decoded-image input을 다룬다 (#272, #273).
- Production ML runtime을 도입하지 않고 backend-neutral image detection model, sensitive-content result model, moderation policy decision, privacy-safe derivative generation, deterministic workflow example을 추가했다 (#2, #214, PR #237, PR #238, PR #239).
- 기존 plain-text extraction API를 유지하면서 structured OCR page, block, line, word result를 추가했다 (PR #240, PR #241).
- EXIF, IPTC, XMP, format-specific metadata extraction을 제한된 형태로 제공하는 public-safe extended image metadata report를 추가했다 (#213).
- Java 21 JNI와 Java 25 FFM vips backend를 위한 stable/incubating WebP, HEIC, AVIF codec capability report를 추가했다 (#212).
- 측정됨, 건너뜀, 미지원, experimental 조합을 재현 가능한 evidence로 구분하는 codec/runtime matrix benchmark를 추가했다 (#208).
- Development train에 맞춰 managed catalog를
bluetape4k-bom:1.11.1-SNAPSHOT,bluetape4k-aws-bom:0.5.0-SNAPSHOT, catalog refcatalog/2026-07-08-00과 정렬했다 (PR #268, PR #269). - Binding-neutral vips API를 scrimage/Java2D implementation stack에서 분리하고 consumer migration boundary를 문서화했다 (#202).
- Large-streaming benchmark가 equivalent backend work를 비교하도록 정리하고, natural-photo 결과와 재현 가능한 vips benchmark command를 갱신했다 (#197, #200, #201).
- Vips dependency coordinate를 바로잡고 Spring Boot consumer를 위한 BOM 또는 explicit-version guidance를 추가했다 (#198, #199).
- Build-logic 변경 시 affected module test가 실행되고 publication 전에 OCR/vips full validation이 필요하도록 CI, snapshot, Maven Central workflow를 강화했다 (#184, #194, #195, #196).
- 미완료
0.4.0closeout과 Backlog로 미룬 작업이 분리되도록 roadmap을 갱신했다 (#271).
- Java 25 FFM derived-image ownership을 수정해 native memory가
VipsImage가 약속한 lifetime 동안 유효하도록 했다 (#190). - Oversized 또는 검증 불가능한 download에서 S3 storage가 fail closed 하도록 하고,
필요한
S3Operationssupport가 없을 때 fail fast 하도록 했다 (#191, #192). - Thumbnail/OCR processing 전에 bounded external-image decode와 decoded-dimension guardrail을 추가했다 (#193, #255).
- Local/S3 storage validation, CloudFront configuration, malformed Ktor thumbnail handling, vips path-input snapshot, in-memory CAPTCHA challenge retention을 강화했다 (#256, #257, #258, #259, #260, #261).
- Basic OCR, Spring Boot, Ktor adoption path를 위한 OCR module support와 runnable usage example을 추가했다 (#1, #171, #172, #173).
- Okio 기반 memory-conscious large-file image I/O API를 추가하고 large-image 및 streaming benchmark coverage를 확장했다 (#165, #166).
- Coordinated dependencies train을 위해 release line을
bluetape4k-bom:1.11.0,bluetape4k-aws-bom:0.4.0과 정렬했다. - Host-native OCR runtime compatibility를 평가하고
0.3.0line release documentation을 갱신했다 (#175).
- Image golden-chain Nightly coverage를 안정화하고 scheduled CI snapshot dependency read가 Central snapshot authentication과 retry failure에 더 강하도록 했다 (#144, #146, #148, #150, #152, #155, #158, #160, #177).
- CAPTCHA image challenge generation, refreshable challenge service, verification
service contract를 위한
images-captchamodule을 추가했다 (PR #88, PR #119, PR #127, closes #4, #101). - Shared
bluetape4k-ktor-*helper와 정렬된images-ktorCAPTCHA issue/verification route helper와 multipart thumbnail API를 추가했다 (PR #119, PR #127, PR #136, closes #118, #135). - Pure JVM processing, Spring Boot local storage, Ktor image API용 runnable example을 추가했다 (PR #128, PR #130, PR #131, closes #124, #125, #126).
- OCR, face/object detection, classification follow-up work를 위한 research-backed image AI dependency strategy를 기록했다 (PR #129, closes #83, #84, #85).
- Release line이
io.github.bluetape4k:bluetape4k-bom:1.10.0과 stableio.github.bluetape4k.aws:bluetape4k-aws-bom:0.3.0을 소비하도록 준비했다 (PR #92, PR #94, PR #134). - Vips/java21/java25 benchmark evidence, natural-photo fixture, chart, benchmark report regeneration guidance를 갱신했다 (PR #89, PR #117, PR #121, PR #122, closes #86, #103, #104, #105).
- AVIF/HEIC native codec boundary, libvips runtime setup, CAPTCHA lifecycle ownership, 완료된 0.2.0 roadmap 상태를 문서화했다 (PR #87, PR #120, PR #95, closes #111, #112, #113, #114).
0.2.0에서 removal 예정으로 deprecated 되었던ImmutableImage.useGraphics(...),hammingDistance(...)compatibility shim을 제거했다. 대신ImmutableImage.withGraphics { }와HashDistance.hamming(a, b)를 사용한다 (#61).
- Optional S3/CDN auto-configuration fallback behavior와 release workflow catalog selection을 강화했다 (PR #97, PR #119, closes #109).
- AVIF/HEIC capability-gated read/write support, double-close, use-after-close, codec capability, failed creation path를 포함해 native vips lifecycle과 FFM arena cleanup contract를 방어했다 (PR #115, PR #116, closes #100, #107, #108).
- Repository automation의 workflow token permission을 제한했다 (PR #132).
- Release line이
io.github.bluetape4k:bluetape4k-bom:1.9.1, shared bluetape4k dependency catalog,io.github.bluetape4k.aws:bluetape4k-aws-bom:0.2.1을 소비하도록 준비했다 (PR #77, PR #78, PR #80). - Tag-triggered 및 manual release dispatch를 위해 release workflow catalog ref selection을 parameterize했다 (PR #79).
images-spring-bootmodule을 추가했다. Spring Boot 4 image storage, CDN signing, reactive health, Micrometer metrics auto-configuration을 제공하며LocalImageStorage,S3ImageStorage,S3PreSignedUrlSigner,CloudFrontUrlSigner, 다섯 auto-configuration phase를 포함한다 (PR #42, closes #5).- Root README hero image와 project-purpose/feature entrypoint documentation을 갱신했다 (PR #27).
- Image library consumer를 위한
bluetape4k-image-bomBOM module을 추가했다 (PR #12). - Image BOM module의 English/Korean README를 추가했다 (PR #13).
- CI, nightly, snapshot, release, code-quality check용 GitHub Actions workflow를 추가했다 (PR #7).
imagesmodule test coverage를 batch processing, animated writer, filter DSL, utility function까지 확장했다 (PR #41).images-vips-java21와images-vips-java25의 VipsImage writer class unit test를 추가했다 (PR #40).images-vips-java25에FfmVipsRuntimeconcurrency test를 추가했다 (PR #39).0.1.1release line이io.github.bluetape4k:bluetape4k-bom:1.9.0과io.github.bluetape4k.aws:bluetape4k-aws-bom:0.2.0을 소비하도록 준비했다.- Nightly를 smoke/full lane으로 나누고 lessons, Kover, Dependabot, NMCP, compatibility-guard maintenance를 정규화했다 (PR #15, PR #16, PR #17, PR #18, PR #22, PR #24, PR #25, PR #26).
- JVips와 annotation을 포함한 image dependency catalog 및 관련 dependency bump를 갱신했다 (PR #14, PR #20, PR #21, PR #23).
- CI가 path filtering과 retry configuration을 사용하도록 했다 (PR #10).
- Test code를 Kluent에서
bluetape4k-assertions로 migration했다 (PR #11).
images의 pre-stabilization typo compatibility API인usingSuspend(...),SuspendPngWriter.NoComppression,ImageOuptputStreamSupportKtJava facade를 제거했다.ImmutableImage.useGraphics(...)와hammingDistance(...)는0.2.0removal까지 deprecated 상태로 남겼다 (#61).