[GH-ISSUE #555] validate warns about empty whatsNew on initial v1.0 releases #151

Closed
opened 2026-02-26 21:33:48 +03:00 by kerem · 4 comments
Owner

Originally created by @danfry1 on GitHub (Feb 15, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/555

Description

The validate command warns about an empty whatsNew field on initial App Store releases (v1.0), but Apple doesn't support "What's New" for first submissions — only for updates.

Steps to Reproduce

  1. Have an app with an initial v1.0 in WAITING_FOR_REVIEW state
  2. Run asc validate --app "APP_ID" --version-id "VERSION_ID" --platform IOS --strict

Actual Behavior

│ warning │ metadata.required.whats_new │ en-US │ whatsNew │ ... │ what's new is empty │ Provide release notes for this localization │

With --strict, this causes a non-zero exit code.

Expected Behavior

The validate command should skip the whatsNew check for initial releases (v1.0), since Apple does not allow setting it.

Notes

The localizations upload command already handles this correctly — when uploading with a whatsNew value on a v1.0 release, it prints:

Warning: 'whatsNew' cannot be set for this version (initial releases have no What's New section). Retrying without it.

So the awareness is already there in the upload path, just not in the validate path.

Originally created by @danfry1 on GitHub (Feb 15, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/555 ## Description The `validate` command warns about an empty `whatsNew` field on initial App Store releases (v1.0), but Apple doesn't support "What's New" for first submissions — only for updates. ## Steps to Reproduce 1. Have an app with an initial v1.0 in WAITING_FOR_REVIEW state 2. Run `asc validate --app "APP_ID" --version-id "VERSION_ID" --platform IOS --strict` ## Actual Behavior ``` │ warning │ metadata.required.whats_new │ en-US │ whatsNew │ ... │ what's new is empty │ Provide release notes for this localization │ ``` With `--strict`, this causes a non-zero exit code. ## Expected Behavior The `validate` command should skip the `whatsNew` check for initial releases (v1.0), since Apple does not allow setting it. ## Notes The `localizations upload` command already handles this correctly — when uploading with a `whatsNew` value on a v1.0 release, it prints: ``` Warning: 'whatsNew' cannot be set for this version (initial releases have no What's New section). Retrying without it. ``` So the awareness is already there in the upload path, just not in the validate path.
kerem closed this issue 2026-02-26 21:33:48 +03:00
Author
Owner

@rudrankriyam commented on GitHub (Feb 15, 2026):

Yeah oops. I had made it optional for the exact reason but should do better handling

<!-- gh-comment-id:3904707766 --> @rudrankriyam commented on GitHub (Feb 15, 2026): Yeah oops. I had made it optional for the exact reason but should do better handling
Author
Owner

@rudrankriyam commented on GitHub (Feb 15, 2026):

@cursor please fix this and add any relevant tests

<!-- gh-comment-id:3904708533 --> @rudrankriyam commented on GitHub (Feb 15, 2026): @cursor please fix this and add any relevant tests
Author
Owner

@cursor[bot] commented on GitHub (Feb 15, 2026):

I fixed asc validate so it does not warn about an empty whatsNew on initial releases (detected via versionString being 1.0, 1.0.0, etc.). This prevents --strict from failing solely due to the “What’s New is empty” warning on first submissions.

Tests added:

  • internal/validation/required_fields_test.go: asserts metadata.required.whats_new is skipped for 1.0 and still warns for update versions like 1.0.1.
  • internal/cli/cmdtest/validate_test.go: regression test that asc validate --strict succeeds for a v1.0 version localization with missing/empty whatsNew.

Verification I ran:

  • make format
  • make lint
  • ASC_BYPASS_KEYCHAIN=1 make test
  • ASC_BYPASS_KEYCHAIN=1 go test -v ./internal/cli/cmdtest -run TestValidateSkipsWhatsNewOnInitialRelease

Changes are committed and pushed to cursor/v1-0-whatsnew-validation-17f2.

View PR

Open in Cursor Open in Web

<!-- gh-comment-id:3904708892 --> @cursor[bot] commented on GitHub (Feb 15, 2026): I fixed `asc validate` so it **does not warn about an empty `whatsNew` on initial releases** (detected via `versionString` being `1.0`, `1.0.0`, etc.). This prevents `--strict` from failing solely due to the “What’s New is empty” warning on first submissions. Tests added: - `internal/validation/required_fields_test.go`: asserts `metadata.required.whats_new` is **skipped** for `1.0` and still **warns** for update versions like `1.0.1`. - `internal/cli/cmdtest/validate_test.go`: regression test that `asc validate --strict` **succeeds** for a v1.0 version localization with missing/empty `whatsNew`. Verification I ran: - `make format` - `make lint` - `ASC_BYPASS_KEYCHAIN=1 make test` - `ASC_BYPASS_KEYCHAIN=1 go test -v ./internal/cli/cmdtest -run TestValidateSkipsWhatsNewOnInitialRelease` Changes are committed and pushed to `cursor/v1-0-whatsnew-validation-17f2`. <p><a href="https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/556"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/view-pr-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/view-pr-light.png"><img alt="View PR" width="86" height="28" src="https://cursor.com/assets/images/view-pr-light.png"></picture></a></p> <p><a href="https://cursor.com/background-agent?bcId=bc-6c563ad8-8f4b-4f1f-9f1b-954c2742ecd5"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?id=bc-6c563ad8-8f4b-4f1f-9f1b-954c2742ecd5"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a></p>
Author
Owner

@rudrankriyam commented on GitHub (Feb 15, 2026):

Resolved by #556 (merged). asc validate now skips the empty whatsNew warning on initial 1.0 releases so --strict does not fail solely for that.

<!-- gh-comment-id:3904737654 --> @rudrankriyam commented on GitHub (Feb 15, 2026): Resolved by #556 (merged). `asc validate` now skips the empty `whatsNew` warning on initial 1.0 releases so `--strict` does not fail solely for that.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/App-Store-Connect-CLI#151
No description provided.