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
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.