Major crate updates:
windows
0.59.0windows-core
0.59.0windows-implement
0.59.0windows-interface
0.59.0
windows-targets
0.53.0windows_i686_msvc
0.53.0windows_x86_64_msvc
0.53.0windows_aarch64_msvc
0.53.0windows_i686_gnu
0.53.0windows_x86_64_gnu
0.53.0windows_i686_gnullvm
0.53.0windows_x86_64_gnullvm
0.53.0windows_aarch64_gnullvm
0.53.0
windows-bindgen
0.59.0windows-registry
0.4.0windows-result
0.3.0windows-strings
0.3.0cppwinrt
0.2.0
Minor crate updates:
windows-version
0.1.2
Excluded:
windows-sys
0.59.0
Things to keep in mind:
-
The tag/release names no longer map directly to the crate versions, so to find samples for a particular release requires looking at the releases page and finding the release that most recently updated a particular crate.
-
The
windows-bindgen
crate includes the major code generation overhaul that brings many improvements - be sure to check out the PR description for more information. The resulting code gen depends on the new version ofwindows-core
and its dependencies, unless you include the--sys
option. #3359 -
The
cppwinrt
crate constitutes a major update due to streamlining the error handling. #3415 -
The
windows-registry
,windows-strings,
andwindows-result
crates are also major version updates since they include small breaking changes. -
The
windows-targets
crate finally receives a major version update, the first in over a year. This is due to #3359 and #3342 potentially introducing breaking changes. Although unlikely, these updates introduced sufficient changes that make it hard to ensure that thewindows-targets
libs don't break existing code. As we're updatingwindows-targets
anyway, I took the liberty to bump the MSRV to 1.60 - to match the latest version ofwindows-sys
- and remove the old but unused doc macro feature. Both remained for compatibility with very old dependents of thewindows-targets
crate. -
The
windows-version
crate receives a minor update to update its dependency on thewindows-targets
crate. -
Beyond these specifics, this update is the culmination of around 6 months worth of work on the
windows-rs
project. The biggest improvements comes from the new code generation engine, but many other improvements are now also available for production. This includes support for many new lints, warnings, and suggestions provided by the Rust toolchain; much smaller code gen thanks to deriving many more traits; more efficient code gen; major improvements to WinRT type system and implementation support; more robust and consistent error handling; stock collection and async support; improved support for class hierarchies; and much more!
In addition to "what's changed" below, check out what's changed for notes for 0.60.0 and 0.59.0 for additional changes that roll up to the crates published as part of this release.
What's Changed
- Remove improper_ctypes workaround by @ChrisDenton in #3296
- Bump rollup from 2.79.1 to 2.79.2 in /web/features by @dependabot in #3299
- Update jsonschema requirement from 0.20 to 0.21 by @dependabot in #3301
- Address Rust nightly compiler warnings by @kennykerr in #3311
- Update jsonschema requirement from 0.21 to 0.22 by @dependabot in #3310
- Update workflows to ignore paths on pull request by @riverar in #3312
- Fix remaining
std
references inwindows
andwindows-core
crates forno_std
builds by @kennykerr in #3317 - Bump cookie and express in /web/features by @dependabot in #3318
- Fix nested struct sort order by @kennykerr in #3321
- Update jsonschema requirement from 0.22 to 0.23 by @dependabot in #3323
- Add
unwrap
helper forNTSTATUS
by @kennykerr in #3324 - Bump http-proxy-middleware from 2.0.6 to 2.0.7 in /web/features by @dependabot in #3331
- Remove "implement" feature by @kennykerr in #3333
- Update web workflow by @riverar in #3344
- Update Windows metadata by @riverar in #3342
- Bump cross-spawn from 7.0.3 to 7.0.6 in /web/features by @dependabot in #3347
- fix: remove use of std in windows-strings h! macro by @vthib in #3356
- Major
windows-bindgen
update by @kennykerr in #3359 - Harden reg-free class activation by @kennykerr in #3365
- Simpler bindings generation by @kennykerr in #3367
windows-bindgen
should generateno_std
bindings by default by @kennykerr in #3366- Prefer optional over convertible parameters by @kennykerr in #3368
- Remove unused extensions by @kennykerr in #3369
- Simpler code generation by @kennykerr in #3370
- Update dependencies by @kennykerr in #3374
- Simpler code gen for Boolean parameters by @kennykerr in #3373
- Remap
BOOLEAN
tobool
by @kennykerr in #3376 - Avoid generating
transmute
for input value type parameter bindings by @kennykerr in #3377 - Fix macro docs by @kennykerr in #3378
- Streamline error handling in
windows-bindgen
by @kennykerr in #3379 - Improve WinRT event representation and testing by @kennykerr in #3382
- Use
track_caller
to make debuggingbindgen
build script errors easier by @kennykerr in #3383 windows-bindgen
now usesRef
andOutRef
for COM interface traits by @kennykerr in #3386- Add static event test/sample for WinRT by @kennykerr in #3389
- Verify param direction by @kennykerr in #3390
- Ensure external references to static factories are generated correctly by @kennykerr in #3392
- Update
windows-bindgen
to supportunsafe_op_in_unsafe_fn
by @kennykerr in #3393 - Make
Ref
work with more than just interface types by @kennykerr in #3394 - Add PR preview deployments to web workflow by @riverar in #3395
- Adjust web workflow to use gh-pages branch by @riverar in #3397
- Streamline CRA deps and webpack config by @riverar in #3396
- Address nightly clippy warnings about operator precedence by @kennykerr in #3414
- Detect unsupported array parameters by @iancormac84 in #3402
cppwinrt
should consistently panic on failure by @kennykerr in #3415- Shorten sample crate names by @kennykerr in #3416
- Use
track_caller
to make debuggingcppwinrt
build script errors easier by @kennykerr in #3417 - Fix provenance in direct32 sample by @ChrisDenton in #3419
- Update web workflow to use external origin by @riverar in #3420
- Avoid
transmute
where possible by @kennykerr in #3421 - Update GitHub Actions runners by @kennykerr in #3423
- Improve feature search UX, add dark mode, and update deps by @riverar in #3422
- Release 0.61.0 by @kennykerr in #3418
New Contributors
- @iancormac84 made their first contribution in #3402
Full Changelog: 0.60.0...0.61.0