From 04622413e772b92cb6dca7616f8c0c9f87ac3381 Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Fri, 21 Aug 2026 08:24:54 -0700 Subject: [PATCH 1/4] docs: Update Versions file with the communication of releases (box/box-codegen#979) --- .codegen.json | 2 +- VERSIONS.md | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.codegen.json b/.codegen.json index 17bd26f82..74d8385fd 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "fafa70b", "specHash": "86fcc6c", "version": "10.16.0" } +{ "engineHash": "a50b08a", "specHash": "86fcc6c", "version": "10.16.0" } diff --git a/VERSIONS.md b/VERSIONS.md index 06f2a9e5a..41e01ac3a 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -10,9 +10,15 @@ When a new feature set comes online or a small breaking change is introduced, th The MAJOR version is used to indicate the family of technology represented by the library. Breaking changes that require extensive reworking of code will cause the MAJOR version to be incremented by one, and the MINOR and PATCH versions will be reset to zero. Since frequent major updates can be very disruptive, we will only introduce this type of breaking change when absolutely necessary. -New MAJOR versions will be communicated in advance via: +## Support lifecycle -- Box SDK documentation, such as API reference documentation, user guides, SDK product marketing pages, and GitHub readme(s) are updated to indicate the campaign timeline and provide guidance on upgrading affected applications. +Each Box SDK README publishes a **[Version schedule](README.md#version-schedule)** table. That table is the source of truth for which **major versions** are **Supported**, when each was first released, and when each reaches **end of life (EOL)**. + +After a major version reaches EOL it no longer receives new features, bug fixes, or security patches. Existing applications that pin that version continue to run, but you should plan to upgrade. The version is then marked `EOL` in the README schedule. + +Major version releases, breaking changes, and EOL dates are announced through public channels via: + +- Box developer documentation, such as the API reference, user guides, and GitHub READMEs. - Deprecation warnings are added to the SDKs, outlining the path to end-of-support and linking to the SDK documentation. Deprecations are introduced in minor releases. We will not introduce new deprecations in patch releases. These deprecations will preserve the existing behaviour while emitting a warning that provide guidance on: From 6bcc0665cccf1f4a1e7d5babb10c1edc574b961e Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Tue, 25 Aug 2026 01:55:38 -0700 Subject: [PATCH 2/4] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index 74d8385fd..6197a0f36 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a50b08a", "specHash": "86fcc6c", "version": "10.16.0" } +{ "engineHash": "a50b08a", "specHash": "3599cec", "version": "10.16.0" } From f3d096f6b46165dde7c98256f8a19379ba3f238a Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Tue, 25 Aug 2026 01:58:22 -0700 Subject: [PATCH 3/4] fix: avoid null chunk when file size is a multiple of part size (box/box-codegen#980) --- .codegen.json | 2 +- .../sdkgen/internal/utils/UtilsManager.java | 46 ++++++++++++------- 2 files changed, 31 insertions(+), 17 deletions(-) diff --git a/.codegen.json b/.codegen.json index 6197a0f36..f4cb98b30 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "a50b08a", "specHash": "3599cec", "version": "10.16.0" } +{ "engineHash": "1cfd1c4", "specHash": "3599cec", "version": "10.16.0" } diff --git a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java index 665c23722..7832c8dcd 100644 --- a/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java +++ b/src/main/java/com/box/sdkgen/internal/utils/UtilsManager.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.NoSuchElementException; import java.util.Objects; import java.util.Set; import java.util.UUID; @@ -311,15 +312,14 @@ public static String hexToBase64(String hex) { public static Iterator iterateChunks( InputStream stream, long chunkSize, long fileSize) { return new Iterator() { - private boolean streamIsFinished = false; + private InputStream nextChunk; + private boolean isNextChunkPrepared = false; - @Override - public boolean hasNext() { - return !streamIsFinished; - } - - @Override - public InputStream next() { + private void prepareNext() { + if (isNextChunkPrepared) { + return; + } + isNextChunkPrepared = true; try { byte[] buffer = new byte[(int) chunkSize]; int bytesRead = 0; @@ -327,25 +327,39 @@ public InputStream next() { while (bytesRead < chunkSize) { int read = stream.read(buffer, bytesRead, (int) (chunkSize - bytesRead)); if (read == -1) { - // End of stream - streamIsFinished = true; break; } bytesRead += read; } if (bytesRead == 0) { - // No more data to yield - streamIsFinished = true; - return null; + nextChunk = null; + return; } - // Return the chunk as a ByteArrayInputStream - return new ByteArrayInputStream(buffer, 0, bytesRead); - } catch (Exception e) { + nextChunk = new ByteArrayInputStream(buffer, 0, bytesRead); + } catch (IOException e) { throw new RuntimeException("Error reading from stream", e); } } + + @Override + public boolean hasNext() { + prepareNext(); + return nextChunk != null; + } + + @Override + public InputStream next() { + prepareNext(); + if (nextChunk == null) { + throw new NoSuchElementException(); + } + InputStream result = nextChunk; + nextChunk = null; + isNextChunkPrepared = false; + return result; + } }; } From c4a8ddcb5c32129eecd0f7fd872c6ae7f598998c Mon Sep 17 00:00:00 2001 From: box-sdk-build Date: Wed, 26 Aug 2026 02:23:07 -0700 Subject: [PATCH 4/4] chore: Update `.codegen.json` with commit hash of `codegen` and `openapi` spec [skip ci] --- .codegen.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codegen.json b/.codegen.json index f4cb98b30..5d1b4ba41 100644 --- a/.codegen.json +++ b/.codegen.json @@ -1 +1 @@ -{ "engineHash": "1cfd1c4", "specHash": "3599cec", "version": "10.16.0" } +{ "engineHash": "af01b67", "specHash": "3599cec", "version": "10.16.0" }