Skip to content

Backmerge release/july-2026 into main (typespec-java 0.45.8 + 0.45.9) - #5014

Merged
weidongxu-microsoft merged 11 commits into
mainfrom
backmerge/release/july-2026-2026-07-22
Jul 22, 2026
Merged

Backmerge release/july-2026 into main (typespec-java 0.45.8 + 0.45.9)#5014
weidongxu-microsoft merged 11 commits into
mainfrom
backmerge/release/july-2026-2026-07-22

Conversation

@weidongxu-microsoft

Copy link
Copy Markdown
Member

Backmerge of release/july-2026 into main.

The auto-backmerge workflow failed for #5013 due to the known same-day branch-name collision (the backmerge/release/july-2026-2026-07-22 branch was already created by #5012's run). Fast-forwarded the branch to the current release head and opening this PR manually.

Brings into main:

Rebase merge this PR (do not squash) to preserve the release-line history.

XiaofeiCao and others added 9 commits July 16, 2026 09:49
## Summary

Draft hotfix release PR for `@azure-tools/typespec-java@0.45.6`,
targeting `release/july-2026`.

## Changes

- **Version:** bump `@azure-tools/typespec-java` to `0.45.6` and add the
corresponding `CHANGELOG.md` entry (notes the `js-yaml`→`yaml` /
`lodash`→builtin change and dependency updates).
- **Sync tooling refactor:** extract the transient `core/` submodule
checkout/restore logic into a shared `CoreCommit.ps1` helper
(`Enter-CoreCommit` / `Restore-CoreCommit`), used by both
`Copy-Sources.ps1` and `emitter-tests/SyncTests.ps1`.
- **`SyncTests.ps1`** now also:
- reads the pinned core commit from `core-commit.json` (like
`Copy-Sources.ps1`), transiently checking it out to sync from and always
restoring the submodule;
- syncs the versions of shared `dependencies`/`overrides` entries from
core's `http-client-generator-test/package.json` via JSON manipulation
(preserving repo-specific entries, key order, and formatting);
- pins the local `@azure-tools/typespec-java` `.tgz` dependency to this
repo's `package.json` version (outside the core checkout, since it is
local-only).
- **Pin:** add `core-commit.json` pinned to
`4751383fd59eb64f1d443376c5db7948cfe974eb`, and commit the synced
`emitter-tests/package.json` + `tsp/` results.

## Notes

- Hotfix PR targets the `release/*` branch per the repo's release
conventions.
- Opened as **draft**.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…4916)

## Summary

- Update packages/typespec-java/core-commit.json to point at the head
commit of microsoft/typespec#11286 (per-client ServiceVersion regression
fix).
- Sync emitter test specs from core via SyncTests.ps1 (adds
emitter-tests/tsp/multiple-clients-same-version.tsp).
- Remove @azure-tools/typespec-liftr-base and
@azure-tools/openai-typespec from both peerDependencies and
devDependencies of @azure-tools/typespec-java. The version will not be
managed here in `catalog`, but rather, in SDK repo.
- sync emitter looks good:
Azure/azure-sdk-for-java#49860
Hotfix (patch) release for `@azure-tools/typespec-java` **0.45.6 ->
0.45.7** from the `release/july-2026` branch.

## Changes included

- Fix per-client `ServiceVersion` regression after migrating from
js-yaml and lodash.
- Remove `@azure-tools/typespec-liftr-base` and
`@azure-tools/openai-typespec` from peer and dev dependencies.
- Support `clientApiVersions`.

## Notes

- Version bump generated via `pnpm chronus version --ignore-policies`.
- The `clientApiVersions` changeset was authored as `feature` but is
released here under a **patch** bump (consistent with prior hotfix
precedent, e.g. #4670); all entries appear under **Bug Fixes** in the
changelog.
- `core` submodule pointer unchanged.
- Only `@azure-tools/typespec-java` is bumped; unrelated pending
changesets are untouched.

Targets `release/july-2026` (not `main`). Backmerge to `main` to follow
after merge.
Version bump for `release/july-2026` hotfix targeting
`@azure-tools/typespec-autorest`. Bump `0.70.0` → `0.70.1` (patch).

### Changes
- `packages/typespec-autorest/package.json`: `0.70.0` → `0.70.1`
- `packages/typespec-autorest/CHANGELOG.md`: added `0.70.1` entry for
[#4974](#4974)
- Removed
`.chronus/changes/service-yaml-preserve-legacy-versions-2026-07-20-14-30-00.md`

> ⚠️ Targets `release/july-2026` — squash-merge only. After merge,
rebase-merge the auto-generated `backmerge/release/july-2026-*` PR into
`main`.

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: timotheeguerin <1031227+timotheeguerin@users.noreply.github.com>
## Summary

- Update `packages/typespec-java/core-commit.json` to microsoft/typespec
[d012e83](microsoft/typespec@d012e83)
(Support XML serialization in http-client-java generator,
microsoft/typespec#11305).
- Sync emitter test `src`/`tsp` from core via `SyncTests.ps1` (adds
`emitter-tests/src/test/java/payload/xml` XmlTests).
- `emitter-tests/Generate.ps1`: stop removing `payload/xml` specs now
that the emitter supports XML models.
- Add chronus changelog entry (fix) mirroring the upstream XML
serialization change.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Hotfix (patch) release of `@azure-tools/typespec-java` **0.45.7 ->
0.45.8** from `release/july-2026`.

Includes the XML serialization sync fix (#4987).

Version bump via `pnpm chronus version --ignore-policies`:
- `packages/typespec-java/package.json` -> 0.45.8
- `packages/typespec-java/CHANGELOG.md` (Bug Fixes)
- removed the consumed `.chronus/changes` entry
- `packages/typespec-java/emitter-tests/package.json` -> 0.45.8 (version
+ `@azure-tools/typespec-java` .tgz dependency)

Core submodule unchanged. Backmerge to `main` to follow after publish.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
#5012)

Part A (fix) of the next typespec-java hotfix.

Advances `packages/typespec-java/core-commit.json` to microsoft/typespec
[43ff0041](microsoft/typespec@43ff004)
(#11329):
- Gate XML serialization to `azure-v1` data-plane clients.
- Skip the XML `ObjectSerializer` for raw `byte[]`/`BinaryData` payloads
that aren't structured XML models, fixing a build break from a reference
to the non-generated `XmlSerializerProviders` helper.

Follow-up fix on top of 0.45.8's XML serialization support. Adds a `fix`
changelog entry. Version bump + publish (Part B) follows in a separate
`publish/hotfix/*` PR after this merges.

Targets `release/july-2026` (NOT main).

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Hotfix version bump for `@azure-tools/typespec-java` 0.45.8 -> 0.45.9.

Publishes the fix from #5012 (XML serializer gated to azure-v1
data-plane + skip raw byte[]/BinaryData payloads).

- Consumes the `fix` change file (patch bump)
- `packages/typespec-java/package.json`: 0.45.8 -> 0.45.9
- `packages/typespec-java/emitter-tests/package.json`: version + .tgz
dep bumped to 0.45.9
- `core` submodule unchanged

Squash merge to trigger the NPM publish pipeline.
@microsoft-github-policy-service microsoft-github-policy-service Bot added eng emitter:autorest Issues for @azure-tools/typespec-autorest emitter emitter:java Issues for @azure-tools/typespec-java emitter labels Jul 22, 2026
@azure-sdk-automation

azure-sdk-automation Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

❌ There is undocummented changes. Run chronus add to add a changeset or click here.

The following packages have changes but are not documented.

  • @azure-tools/typespec-autorest
  • @azure-tools/typespec-java
Show changes

@pkg-pr-new

pkg-pr-new Bot commented Jul 22, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@azure-tools/typespec-autorest@5014
npm i https://pkg.pr.new/@azure-tools/typespec-java@5014

commit: 3aed402

…y-2026-2026-07-22

# Conflicts:
#	packages/typespec-java/CHANGELOG.md
#	packages/typespec-java/core-commit.json
#	packages/typespec-java/emitter-tests/package.json
#	packages/typespec-java/package.json
#	pnpm-lock.yaml
@weidongxu-microsoft
weidongxu-microsoft force-pushed the backmerge/release/july-2026-2026-07-22 branch from 5f16d69 to 3c75296 Compare July 22, 2026 07:15
@azure-sdk-automation

Copy link
Copy Markdown
Contributor

You can try these changes here

🛝 Playground 🌐 Website

Remove the  + 'merge-base --is-ancestor' +  gate that only advanced to the
pinned core commit when it was a descendant of the submodule checkout. A
shallow submodule clone (as on CI) lacks the connecting history and cannot
prove ancestry, so the gate silently fell back to the submodule checkout and
built the Java emitter from the wrong core sources (e.g. pre-XML-fix code
referencing a non-generated XmlSerializerProviders).

The pin in core-commit.json is now authoritative: always build from exactly
that commit via git archive, harden the fetch with a post-fetch existence
check, and update the header doc accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: cd6f2e08-d6d3-42ae-affd-bc71e98086f7
@weidongxu-microsoft
weidongxu-microsoft added this pull request to the merge queue Jul 22, 2026
Merged via the queue into main with commit 452050f Jul 22, 2026
44 checks passed
@weidongxu-microsoft
weidongxu-microsoft deleted the backmerge/release/july-2026-2026-07-22 branch July 22, 2026 08:40
weidongxu-microsoft added a commit that referenced this pull request Jul 22, 2026
Cherry-pick of the fix validated on the backmerge PR #5014.

## Problem
+ 'CoreCommit.ps1' + gated advancing to the pinned + 'core-commit.json'
+ SHA on + 'git merge-base --is-ancestor <submodule> <pin>' + . In CI
the + 'core' + submodule is a shallow clone, so the connecting history
between the checkout and the pin is absent and the ancestry check fails.
The script then silently fell back to the submodule checkout and built
the Java emitter from the wrong core sources (e.g. pre-XML-fix code
referencing a non-generated + 'XmlSerializerProviders' + ).

## Fix
- The pin in + 'core-commit.json' + is now authoritative: always build
from exactly that commit via + 'git archive' + , regardless of ancestry.
- Hardened the fetch with a post-fetch existence check that errors
clearly instead of silently falling back.
- Updated the header doc.

Verified locally: with the submodule at + ' eafcd0e' + and pin +
'43ff0041' + (the exact CI failure scenario), it now archives +
'43ff0041' + with the generator subtree present.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: cd6f2e08-d6d3-42ae-affd-bc71e98086f7

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
XiaofeiCao added a commit to XiaofeiCao/typespec-azure that referenced this pull request Jul 22, 2026
The upstream backmerge (Azure#5014) modified emitter-tests/package.json while
this branch had deleted it; the take-incoming merge resurrected it. Remove
it again to keep the unified single-npm-project layout, and restore the
../node_modules spec-copy paths in Generate.ps1 that the merge reverted.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bdf71a18-d69d-45d1-a513-08b63a71d4e3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

emitter:autorest Issues for @azure-tools/typespec-autorest emitter emitter:java Issues for @azure-tools/typespec-java emitter eng

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants