All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased - ReleaseDate
- PR#143 is a second attempt to resolve #141 by switching to a new
3.0.0-rc1
version of ureq that might not have the same issue, as well as adding support for retries for EOF I/O errors seen by users which can be configured via--http-retry
orXWIN_HTTP_RETRY
.
0.6.5 - 2024-08-21
0.6.4 - 2024-08-21
- PR#136 fixed an issue introduced in PR#131 where symlink disabling when a case-insensitive file system was detected was...not being respected. At all.
0.6.3 - 2024-08-09
- PR#134 added back onecoreuap headers that were moved from the main SDK header package in recent versions of the SDK. Thanks @tomager!
0.6.2 - 2024-07-02
- PR#131 resolved #130 by adding detection of case-insensitive file systems, which then disables symlink creation since it is not needed, and breaks.
0.6.1 - 2024-06-30
- PR#129 fixed #128 by adding the additional
onecoreuap
MSI package that contains headers that were previously (before SDK 10.0.26100) part of other MSI packages. Thanks @bigfoodK!
0.6.0 - 2024-06-03
- PR#123 (a rework of #119) adds the ability to splat in the format understood by clang-cl
/winsysroot
option.
0.5.2 - 2024-05-06
- PR#117 updated a few crates, notably
zip
.
0.5.1 - 2024-04-02
- PR#116 (a rework of #115) improves the speed of the
x86_64-unknown-linux-musl
binary by usingmimalloc
.
0.5.0 - 2023-11-13
- PR#110 changed how
Ctx
is built. It was getting too complicated to support niche use cases, some of which didn't belong in a library (like reading environment variables), so this functionality has been completely removed. Instead, one must pass in aureq::Agent
that is fully configured how the user wants it. - PR#110 changed the environment variable read to the
xwin
binary instead of the library, as well as its namehttps_proxy
->HTTPS_PROXY
, and added it to an an option on the command line.
0.4.1 - 2023-11-09
- PR#108 resolved #107 by fixing the Window symlink code added in PR#105 and only using it in the two cases it was needed.
0.4.0 - 2023-11-07
- PR#101 resolved #28, #84, and #85 by adding a
minimize
command that straces a cargo build to write amap
file that can be used by asplat
command to only splat the headers and libraries actually needed to build, drastically reducing the splat output (eg. 1.3GiB -> 101MiB). Thismap
file also allows the creation of symlinks on a per-file basis, allowing users to create their own symlinks if needed. - PR#104 resolved #103 by allowing custom certificates to be specified via the
SSL_CERT_FILE
,CURL_CA_BUNDLE
, orREQUESTS_CA_BUNDLE
environment variables.xwin
must be compiled with thenative-tls
feature for this to function. Thanks @Owen-CH-Leung! - PR#105 supplanted #100, allowing creation of symlinks on a Windows host. Thanks @sykhro!
0.3.1 - 2023-09-12
- PR#99 changed the default VS manifest version from 16 -> 17. You can preserve the old behavior by passing
--manifest-version 16
on the cmd line.
- PR#99 resolved #92 by only failing if matching relative paths didn't have the same contents. This currently only applies to one file,
appnotify.h
, which is present in the SDK headers and Store headers.
0.3.0 - 2023-09-12
- PR#93 added the ability to specify a download timeout for each individual download, and changed the default from infinite to 60 seconds, so that xwin will error if the remote HTTP server is slow/unresponsive. Thanks @dragonmux!
0.2.15 - 2023-09-11
- PR#93 added the ability to specify a download timeout for each individual download, and changed the default from infinite to 60 seconds, so that xwin will error if the remote HTTP server is slow/unresponsive. Thanks @dragonmux!
0.2.14 - 2023-06-20
0.2.13 - 2023-06-15
- PR#88 updated dependencies.
- PR#87 added binaries for
aarch64-unknown-linux-musl
0.2.12 - 2023-03-31
- PR#77 resolved #76 by correctly handling the retrieval of the latest SDK version, regardless of whether it is for the Windows 10 or 11 SDK.
0.2.11 - 2023-03-06
- PR#74 resolved #70 by creating symlinks for SDK headers that are included by the CRT and ATL headers.
- PR#74 fixed an issue where debug symbols were splatted to disk even when not requested.
0.2.10 - 2022-11-30
- PR#67 fixed an issue where incorrect packages could be selected due to using string ordering on strings that could both be version strings and regular non-version strings. Thanks @mite-user!
0.2.9 - 2022-10-14
0.2.8 - 2022-09-07
- PR#59 added support for installing the Active Template Library (ATL). Thanks @pascalkuthe!
0.2.7 - 2022-08-29
- No changes in xwin itself, but now prebuilt binaries for
apple-darwin
are supplied.
0.2.6 - 2022-08-26
- Updated dependencies, notably
indicatif
andinsta
.
0.2.5 - 2022-06-21
- PR#52 updated dependencies, including openssl-src to fix various issues raised by Github security advisories.
0.2.4 - 2022-05-23
- PR#50 added the ability to specify an HTTPS proxy via the
https_proxy
environment variable. Thanks @j-raccoon!
0.2.3 - 2022-05-16
0.2.2 - 2022-05-16
- PR#45 replaced
reqwest
withureq
which significantly reduced dependencies. It also maderustls
an optional (but default) TLS implementation in addition to supporting native TLS for arcane platforms that are not supported byring
. Thanks @messense! - PR#46 updated MSI to 0.5. Thanks @messense!
- PR#47 added symlinks to support the usage of the
/vctoolsdir
and/winsdkdir
options inclang-cl
, which allow for a more concise compiler invocation. I would point you to official docs for this but apparently there are none. Thanks @Qyriad!
0.2.1 - 2022-05-04
0.2.0 - 2022-03-01
- PR#37 changed from structopt to clap v3 for arguments parsing. Thanks @messense!
- PR#38 fixed up the clap arguments to include metadata to be closer to the original structopt output with eg.
xwin -V
, however this exposed a problem that clap couldn't handle the old--version <MANIFEST_VERSION>
flag since it clashed with-V, --version
, so the flag has been renamed to--manifest-version
. This is unfortunately a breaking change for the CLI.
0.1.10 - 2022-02-28
- PR#34 changed some code so that it is possible to compile and run for
x86_64-pc-windows-msvc
, though this target is not explicitly support. Thanks @messense! - PR#36 updated indicatif to
0.17.0-rc.6
and pinned it to fix #35.
0.1.9 - 2022-02-28
- PR#32 fixed the
--disable-symlinks
flag to actually not emit symlinks, which is needed if the target filesystem is case-insensitive.
0.1.8 - 2022-02-28
- PR#30 updated the indicatif pre-release as a workaround for
cargo install
's broken behavior. Thanks @messense!
0.1.7 - 2022-02-24
- PR#27 added a fixup for
Iphlpapi.lib => iphlpapi.lib
. Thanks @jelmansouri!
0.1.6 - 2022-02-07
- PR#22 added a fix for zeromq using a mixed case include. Thanks @Jasper-Bekkers!
- PR#23 updated dependencies, which included bumping
thread_local
to fix a security advisory.
0.1.5 - 2021-11-25
- PR#19 resolved #18 by removing a source of non-determinism in the output. It also made it so that some
Store
headers are no longer splatted to disk when targeting theDesktop
variant alone.
0.1.4 - 2021-11-22
- PR#17 resolved #6 by adding the
--manifest
option so that users can specify an exact manifest to use rather than downloading the mutable one from the Microsoft CDN.
0.1.3 - 2021-11-17
- PR#15 resolved #14 by removing the unnecessary use of
tokio::main
. Thanks @mite-user! - PR#13 resolved #12 by using the actual output directory rather than a hardcoded default. Thanks @mite-user!
0.1.2 - 2021-11-11
- PR#11 added a workaround symlink for
Kernel32.lib
to fix the prevalenttime
crate in older versions. Thanks @twistedfall!
0.1.1 - 2021-08-24
- PR#9 resolved #8 by adding support for additional symlinks for each
.lib
inSCREAMING
case, since some crates link them that way.
0.1.0 - 2021-08-22
- Initial implementation if downloading, unpacking, and splatting of the CRT and Windows SDK. This first pass focused on targeting x86_64 Desktop, so targeting the Windows Store or other architectures is not guaranteed to work.