tag:github.com,2008:https://github.com/ngcpp/proxy/releases Release notes from proxy 2026-03-13T14:18:49Z tag:github.com,2008:Repository/1144042231/4.0.2 2026-03-13T15:35:24Z Proxy 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.1 2025-10-05T02:49:40Z 4.0.1 <p>Revise documentation (#355)</p> mingxwa tag:github.com,2008:Repository/1144042231/4.0.0 2025-08-18T07:43:16Z 4.0.0 <p>Fix regex (#337)</p> mingxwa tag:github.com,2008:Repository/1144042231/3.4.0 2025-06-12T02:49:11Z 3.4.0 <p>Fix release pipeline (#313)</p> mingxwa tag:github.com,2008:Repository/1144042231/3.3.0 2025-03-18T09:41:54Z 3.3.0 <p>Revise documentation for 3.3.0 (#272)</p> mingxwa tag:github.com,2008:Repository/1144042231/3.2.1 2025-02-19T13:58:32Z 3.2.1 <p>Update version in CMake (#256)</p> mingxwa tag:github.com,2008:Repository/1144042231/3.2.0 2025-01-23T01:49:44Z 3.2.0 <p>Revise spec for version 3.2 (#231)</p> mingxwa tag:github.com,2008:Repository/1144042231/3.1.0 2024-11-23T09:30:14Z 3.1.0 <p>Release version 3.1.0</p> mingxwa tag:github.com,2008:Repository/1144042231/3.0.0 2024-09-06T09:37:19Z Documentation 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> mingxwa tag:github.com,2008:Repository/1144042231/3.0.0-rc1 2024-08-12T10:07:39Z 3.0.0-rc1 <p>Add .gitattributes (#155)</p> mingxwa