tag:github.com,2008:https://github.com/ngcpp/proxy/releasesRelease notes from proxy2026-03-13T14:18:49Ztag:github.com,2008:Repository/1144042231/4.0.22026-03-13T15:35:24ZProxy 4.0.2 Release<p>Proxy 4.0.2 brings Proxy to its new home at <a href="https://github.com/ngcpp/proxy">ngcpp/proxy</a>, adds first-class Meson build support, and delivers a focused set of correctness, tooling, and specification improvements.</p>
<h2>What's inside</h2>
<ul>
<li>
<p>A new home for Proxy</p>
<ul>
<li>Proxy has moved from <a href="https://github.com/microsoft/proxy">microsoft/proxy</a> to <a href="https://github.com/ngcpp/proxy">ngcpp/proxy</a>, with a new documentation home at <a href="https://ngcpp.github.io/proxy/" rel="nofollow">ngcpp.github.io/proxy</a>.</li>
<li>Governance and support documents were updated for ngcpp stewardship.</li>
<li>Copyright notices now preserve Microsoft's original ownership for 2022-2026 and add ngcpp for ongoing development starting in 2026.</li>
</ul>
</li>
<li>
<p>Meson joins CMake</p>
<ul>
<li>Proxy now ships Meson build files alongside CMake, making it much easier to consume the library in Meson-based projects.</li>
<li>The Meson integration covers header installation, tests, benchmarks, and extracting examples from the docs, with optional <code>pkg-config</code> metadata when available.</li>
<li>Existing CMake flows continue to work, so current integrations do not need to change.</li>
</ul>
</li>
<li>
<p>Correctness and semantics</p>
<ul>
<li><code>facade</code> constraints are tighter and clearer. <code>ProBasicFacade</code> and the related builder APIs now validate size, alignment, and <code>constraint_level</code> settings more rigorously.</li>
<li>Incomplete support for the standard trivial relocation model was removed. Proxy continues to focus on the supported bitwise trivially relocatable direction introduced in 4.0.0.</li>
<li><code>ptr_traits</code> detection is now stricter, avoiding false positives for arbitrary template instantiations and improving <code>proxiable</code> behavior in edge cases such as embedding <code>proxy</code> in wrapper types like <code>std::variant</code>.</li>
<li><code>PRO_DEF_FREE_AS_MEM_DISPATCH</code> overload resolution was fixed after a regression, and coverage was expanded across member, free, and free-as-member dispatch patterns.</li>
<li><code>weak_dispatch</code> and <code>explicit_conversion_dispatch</code> now correctly handle reference-returning overloads, fixing an important correctness issue for conversion-heavy facades.</li>
<li><code>strong_compact_ptr</code> was simplified internally with no intended user-visible behavior change.</li>
</ul>
</li>
<li>
<p>Benchmarks, docs, and toolchains</p>
<ul>
<li>Benchmarks were reorganized to better reflect real usage: management benchmarks were renamed to creation benchmarks, metrics were grouped into core, comparative, and observational buckets, all facades were switched to <code>slim</code> for fairer comparisons, and six relocation metrics were added.</li>
<li>Documentation wording around <code>proxy</code> indirection was updated to match current semantics - indirection is no longer optional.</li>
<li>CI and dependency coverage moved forward again: Clang 21, GCC 15, NVHPC 25.11, <code>fmt</code> 12.1.0, Google Benchmark 1.9.4, GoogleTest 1.17.0, and nlohmann-json 3.12.0 are now part of the refreshed toolchain story.</li>
<li>The <code>proxy_fmt.h</code> integration was adjusted to stay compatible with <code>fmt</code> 12.x.</li>
</ul>
</li>
</ul>
<h2>Upgrading</h2>
<p>Most users can update to 4.0.2 and rebuild.</p>
<ul>
<li>
<p>Repository and docs URLs</p>
<ul>
<li>Update repository links from <code>github.com/microsoft/proxy</code> to <code>github.com/ngcpp/proxy</code>.</li>
<li>Update documentation links from <code>microsoft.github.io/proxy</code> to <code>ngcpp.github.io/proxy</code>.</li>
</ul>
</li>
<li>
<p>Build systems</p>
<ul>
<li>Public namespaces and current CMake target names remain unchanged in 4.0.2.</li>
<li>Existing CMake integrations continue to work as before.</li>
<li>Meson is now supported for header installation, tests, benchmarks, and docs examples. Meson consumers can integrate Proxy through <code>dependency('msft_proxy4')</code>, with <code>pkg-config</code> metadata generated when that tooling is available.</li>
</ul>
</li>
<li>
<p>Behavioral notes</p>
<ul>
<li>If your facades or conversions rely on reference-returning overloads, rebuild and rerun tests to pick up the fixes in <code>weak_dispatch</code> and <code>explicit_conversion_dispatch</code>.</li>
<li>If you hit odd participation in <code>proxy</code> constructors or assignments with custom pointer-like wrappers, the tightened <code>ptr_traits</code> and facade constraints in 4.0.2 are designed to make those cases more predictable.</li>
</ul>
</li>
</ul>
<h2>Acknowledgments</h2>
<p>Thank you to everyone who helped move Proxy into its next chapter. A special thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mochaaP/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mochaaP">@mochaaP</a> for landing Meson support and expanding the project's build-system reach.</p>
<h3>What's Changed</h3>
<ul>
<li>Improve constraints for <code>facade</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/359" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/359/hovercard">microsoft/proxy#359</a> - tightened <code>ProBasicFacade</code> and builder validation for layout and constraint settings.</li>
<li>Remove support for standard trivial relocation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/365" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/365/hovercard">microsoft/proxy#365</a> - removed an incomplete, untested relocation path.</li>
<li>Avoid false positive for <code>ptr_traits</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/367" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/367/hovercard">microsoft/proxy#367</a> - made pointer-trait detection stricter and improved <code>proxiable</code> edge cases.</li>
<li>Fix overload resolution in <code>PRO_DEF_FREE_AS_MEM_DISPATCH</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/372" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/372/hovercard">microsoft/proxy#372</a> - fixed a regression and added broader dispatch coverage.</li>
<li>Simplify the implementation of <code>strong_compact_ptr</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/368" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/368/hovercard">microsoft/proxy#368</a> - reduced internal complexity without changing intended behavior.</li>
<li>Fix wording for proxy indirection by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/369" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/369/hovercard">microsoft/proxy#369</a> - aligned the docs with the current mandatory indirection model.</li>
<li>Revise benchmarks by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/373" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/373/hovercard">microsoft/proxy#373</a> - regrouped metrics, switched facades to <code>slim</code>, and added relocation measurements.</li>
<li>Update toolchain by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/microsoft/proxy/pull/378" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/378/hovercard">microsoft/proxy#378</a> - refreshed compiler coverage and dependency versions, including <code>fmt</code> 12.x compatibility work.</li>
<li>build: support meson build system by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mochaaP/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mochaaP">@mochaaP</a> in <a href="https://github.com/microsoft/proxy/pull/375" data-hovercard-type="pull_request" data-hovercard-url="/microsoft/proxy/pull/375/hovercard">microsoft/proxy#375</a> - added Meson support for building, testing, benchmarking, and docs example extraction.</li>
<li>Update branding for migration by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/ngcpp/proxy/pull/1" data-hovercard-type="pull_request" data-hovercard-url="/ngcpp/proxy/pull/1/hovercard">ngcpp/proxy#1</a> - moved repository branding, links, and governance docs to ngcpp.</li>
<li>Update email address for Code of Conduct by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/ngcpp/proxy/pull/2" data-hovercard-type="pull_request" data-hovercard-url="/ngcpp/proxy/pull/2/hovercard">ngcpp/proxy#2</a> - consolidated contact details around the current support address.</li>
<li>Update copyright by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/ngcpp/proxy/pull/12" data-hovercard-type="pull_request" data-hovercard-url="/ngcpp/proxy/pull/12/hovercard">ngcpp/proxy#12</a> - preserved Microsoft's historical ownership and added ngcpp for ongoing development.</li>
<li>Fix <code>weak_dispatch</code> and <code>explicit_conversion_dispatch</code> in reference-returning overloads by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/ngcpp/proxy/pull/13" data-hovercard-type="pull_request" data-hovercard-url="/ngcpp/proxy/pull/13/hovercard">ngcpp/proxy#13</a> - corrected reference conversion handling and added targeted tests.</li>
<li>Update version to 4.0.2 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mingxwa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mingxwa">@mingxwa</a> in <a href="https://github.com/ngcpp/proxy/pull/14" data-hovercard-type="pull_request" data-hovercard-url="/ngcpp/proxy/pull/14/hovercard">ngcpp/proxy#14</a>.</li>
</ul>
<p>Full changelog: <a href="https://github.com/ngcpp/proxy/compare/4.0.1...4.0.2">ngcpp/proxy 4.0.1...4.0.2</a></p>github-actions[bot]tag:github.com,2008:Repository/1144042231/4.0.12025-10-05T02:49:40Z4.0.1<p>Revise documentation (#355)</p>mingxwatag:github.com,2008:Repository/1144042231/4.0.02025-08-18T07:43:16Z4.0.0<p>Fix regex (#337)</p>mingxwatag:github.com,2008:Repository/1144042231/3.4.02025-06-12T02:49:11Z3.4.0<p>Fix release pipeline (#313)</p>mingxwatag:github.com,2008:Repository/1144042231/3.3.02025-03-18T09:41:54Z3.3.0<p>Revise documentation for 3.3.0 (#272)</p>mingxwatag:github.com,2008:Repository/1144042231/3.2.12025-02-19T13:58:32Z3.2.1<p>Update version in CMake (#256)</p>mingxwatag:github.com,2008:Repository/1144042231/3.2.02025-01-23T01:49:44Z3.2.0<p>Revise spec for version 3.2 (#231)</p>mingxwatag:github.com,2008:Repository/1144042231/3.1.02024-11-23T09:30:14Z3.1.0<p>Release version 3.1.0</p>mingxwatag:github.com,2008:Repository/1144042231/3.0.02024-09-06T09:37:19ZDocumentation for 3.0.0 (#160)<ul>
<li>
<p>Documentation for Proxy 3</p>
</li>
<li>
<p>Remove en-us directory</p>
</li>
<li>
<p>Update doc for basic_facade_builder::add_facade</p>
</li>
<li>
<p>readme</p>
</li>
</ul>mingxwatag:github.com,2008:Repository/1144042231/3.0.0-rc12024-08-12T10:07:39Z3.0.0-rc1<p>Add .gitattributes (#155)</p>mingxwa