Skip to content

PHP 5.1.0, Python 6.1.0, .NET 9.1.0 — no_effect + OpenAPI sync (minor) - #1346

Open
p-zielinski wants to merge 14 commits into
masterfrom
pz/sdk-no-effect-php-python-dotnet
Open

PHP 5.1.0, Python 6.1.0, .NET 9.1.0 — no_effect + OpenAPI sync (minor)#1346
p-zielinski wants to merge 14 commits into
masterfrom
pz/sdk-no-effect-php-python-dotnet

Conversation

@p-zielinski

@p-zielinski p-zielinski commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Ships the missing no_effect skipped-redeemable key to PHP, Python and .NET (Java 17.0.4 already includes it).
  • Regeneration also brings each SDK up to date with accumulated additive OpenAPI changes, so the releases are minors rather than patches.
  • PHP keeps targeted compatibility transformations for public constants and the CSV import signature. Python requires no compatibility transformation. .NET follows the prepared schema order and documents the resulting constructor migration.
  • SDK README changelogs describe the complete generated surface and migration notes.

Versions

SDK Version Public PR Status
PHP 5.1.0 voucherifyio/voucherify-php-sdk#101 ready
Python 6.1.0 voucherifyio/voucherify-python-sdk#69 ready
.NET 9.1.0 voucherifyio/voucherify-dotNET-sdk#136 ready
Java 17.0.4 already released

Release source tags: sdk-php-5.1.0, sdk-python-6.1.0, sdk-dotnet-9.1.0.

Per-language preparation and compatibility

  • PHPphp.ts restores four management webhook values from the source typo *_aded to *_added, preserving existing EVENTS_*_ADDED constants. It also omits webhooks_enable from CSV voucher import so importVouchersUsingCsv($file, $contentType) retains its 5.0.4 signature. The prepared PHP specification intentionally differs from the source in these places.
  • Python — no language-specific compatibility rewrite is needed. The release is additive relative to 6.0.0.
  • .NET — no property-order rewrite is applied. New optional properties occur before previously trailing properties in four generated model constructors. Positional calls to ApplicableTo / InapplicableTo can silently misbind; positional Segments*ResponseBody calls usually fail at compile time. Named arguments, object initializers and JSON deserialization are unaffected, and JSON member names do not change.

Versioning notes

  • PHP 5.1.0 has no removed or renamed public API surface; its observable wire-key change in FilterConditionsDateTime is a documented bug fix.
  • Python 6.1.0 is additive.
  • .NET 9.1.0 follows the SDK's established minor-release practice: 8.0.18.1.0 similarly inserted constructor parameters in 82 models. The migration is documented explicitly in this release.

Test plan

  • Regenerated PHP, Python and .NET from their final prepared definitions
  • PHP Docker suite — 41 tests, 65 assertions, pass
  • Python Docker suite — 37 tests, pass
  • .NET Docker suite — 37 tests, pass
  • no_effect present on skipped-redeemable details in all three SDKs
  • PHP constants and CSV import signature match 5.0.4
  • Changelogs reviewed against semantic SDK diffs

Known issue (deliberately out of scope)

The source OpenAPI definition misspells four management webhook events as *_aded, while equivalent events elsewhere use *_added. PHP compensates during generation to preserve existing public constants. Python, .NET, Java and Ruby already retain the source spelling from earlier releases.

The spelling will be aligned across SDKs in a future compatibility release or major version, avoiding unexpected public enum renames.

Correct SemVer after regen audit: restore PHP BC in prepare script
(webhook *_added spellings, stable CSV import signature), expand
changelogs, point submodules at minor release branches.
@p-zielinski p-zielinski changed the title PHP 5.0.5, Python 6.0.1, .NET 9.0.3 — add no_effect skipped key PHP 5.1.0, Python 6.1.0, .NET 9.1.0 — no_effect + OpenAPI sync (minor) Aug 10, 2026
Keep additive .NET fields after existing positional arguments and update all three SDK pointers after successful Docker verification.
The PHP datetime filter now sends the documented $more_than / $less_than keys,
which is a wire-level change consumers need in the changelog. The Python readme
still pointed at the 6.0.0 OpenAPI tag.
Both scripts patched the OpenAPI definition before generation to keep
the previous public surface: PHP restored the added spelling of four
management webhook events and dropped webhooks_enable, .NET pushed new
optional properties to the end of four schemas. The compensations made
the prepared specs diverge from reference/OpenAPI.json and hid real
upstream changes from reviewers.

Both SDKs are now generated from the definition as-is and the effects
are spelled out in their changelogs. Versions stay at 5.1.0 and 9.1.0:
this project has shipped the same class of generator churn in minors
(.NET 8.1.0 reordered 82 constructors) and even patches (PHP 5.0.2
dropped eight public constants). The aded typo itself is upstream and
tracked in DEV-4148.
Reinstates the php.ts prepare-step fixes that the earlier revert
removed: it rewrites four ManagementProjectsWebhookBase events from the
upstream aded typo back to added, and drops webhooks_enable from the CSV
import body so importVouchersUsingCsv keeps its 5.0.4 signature. Without
this the SDK renamed public EVENTS_*_ADDED constants and shifted a
positional parameter, both breaking. The changelog no longer advertises
those as changes. Source reference/OpenAPI.json is left untouched; the
typo is fixed for every SDK at once under DEV-4148.
Document silent misbind on ApplicableTo/InapplicableTo versus
compile-time breaks on Segments* when using positional constructors.
Tighten the backward-compatibility note, document the intentionally
omitted webhooks_enable CSV field, and replace internal tracker links
with a reference to a future SDK alignment.
Add Kasjan test polling and Docker exit-code notes to csharp
README.mustache; bump sdks/dotnet to 0c8f6d8 (9.1.0 branch).
Add OpenAPI tree tag link, KEY_NO_EFFECT, adjustMemberPendingPoints
and TYPE_STANDALONE wording to php-nextgen README.mustache; bump
sdks/php to a17370b.
Points to 0d01700 (master merged into versions/5.1.0, release README kept).
Resolve sdks/dotnet submodule conflict by keeping 0c8f6d8 (9.1.0
release branch) instead of master's b037424 readme-only pointer.
PHP and Python release submodules unchanged.
Point sdks/python to a5a3a19 (merge conflict fix + docstring regen);
use /tree/ OpenAPI tag URL in python README.mustache.
…and sync Python 6.1.0.

Change exchange_ratio from integer to number in RedemptionRewardResult, update the Python README mustache changelog, and bump the Python submodule.
@p-woznikowski p-woznikowski added API Change to the OpenAPI documentation SDK labels Aug 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API Change to the OpenAPI documentation SDK

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants