Skip to content

chore: bump openapi-generator version to v7.23.0 - #28916

Merged
danieldietzler merged 6 commits into
mainfrom
chore/v7.23.0-openapi-generator
Jul 20, 2026
Merged

chore: bump openapi-generator version to v7.23.0#28916
danieldietzler merged 6 commits into
mainfrom
chore/v7.23.0-openapi-generator

Conversation

@timonrieger

@timonrieger timonrieger commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Description

we added two patches in #27231 and one in #28692

I submitted PRs upstream for those and they all have been released in the today released v7.23.0.

this PR bumps to that release and drops all those patches 😄

Fixes # (issue)

How Has This Been Tested?

  • Test A
  • Test B

Screenshots (if appropriate)

Checklist:

  • I have carefully read CONTRIBUTING.md
  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
  • I have followed naming conventions/patterns in the surrounding code
  • All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

...

@immich-push-o-matic

immich-push-o-matic Bot commented Jun 8, 2026

Copy link
Copy Markdown

📱 Android release APK (universal)609204af23a486a5d3918c8ce6a35cc35179980f

Download: https://github.com/immich-app/immich/actions/runs/29742097339/artifacts/8460997215

QR code QR code

Installs as a separate app (applicationId app.alextran.immich.pr28916), so it coexists with the Play Store version and any other PR builds.

@danieldietzler

Copy link
Copy Markdown
Member

Can I get an eye on this from a mobile dev and can we get this merged then?

@shenlong-tanwen shenlong-tanwen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@danieldietzler
danieldietzler merged commit 3adc392 into main Jul 20, 2026
52 checks passed
@danieldietzler
danieldietzler deleted the chore/v7.23.0-openapi-generator branch July 20, 2026 13:06
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 20, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 21, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 22, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 22, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 23, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 23, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 24, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Jul 25, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
ya4ept pushed a commit to ya4ept/Noodle_gallery that referenced this pull request Jul 30, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (open-noodle#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of open-noodle#584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Deeds67 added a commit to open-noodle/gallery that referenced this pull request Aug 10, 2026
…or v7.23.0

Upstream immich-app#28916 bumped openapi-generator v7.22.0 -> v7.23.0 and gutted
native_class.mustache.patch, because the generator now handles three-state
Optional fields natively. That correctly removed ~152 lines of the
three-state scaffolding the fork had been carrying, but it also removed
the fork's civil-date fix (#584 and its follow-up), whose hunks lived in
the same patch file.

Re-derive that fix against the v7.23.0 template: every {{#isDate}} branch
must serialize with _dateFormatter.format(value), not
_dateFormatter.format(value.toUtc()). Civil dates are not instants, so
UTC-shifting them moves a birthday by a day for anyone west or east of
UTC. Both the plain and the x-is-optional date branches need it; the
{{#isDateTime}} branches keep .toUtc() because those really are instants.

Verified: zero _dateFormatter.format(...toUtc()) remain in the generated
client, the 144 datetime fields still UTC-normalise, and
person_update_dto_test passes under TZ=America/New_York. That timezone
matters - CI runners are UTC, so this regression is structurally
invisible to CI and only reproduces off-UTC.

Also realigns null serialization with upstream: the generated client now
emits json[key] = null instead of omitting the key. The omission was an
incidental artifact of #584 rewriting the whole patch file, never a
deliberate fork behaviour, and upstream emits the explicit null.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants