-
Notifications
You must be signed in to change notification settings - Fork 428
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better XDG defaults for Windows #5943
Conversation
Could you add a CHANGES entry? |
Thanks. LGTM, notwithstanding rgrinberg's comments. Tested the PR (really for my own notes because I haven't done a Dune PR):
|
xref to ocaml-community/utop#362 which needs something similar. |
I don't remember the details because I wrote directories a long time ago, starting from how it's implemented in rust and java here https://github.com/dirs-dev ; but :
Shouldn't it be appdata instead of localappdata (which is the one used for the cache) ? See there. Moreover IIRC in some cases using Also, I don't understand why you're using |
Thanks. I could add that logic since I'm already using a C binding, but on the other hand, it can be "incorrect" in the same way that
See #5808 (comment) |
Yes, that's why I believe the config dir and the data dir should be in appdata and not localappdata, which is not the case in the PR, right ? |
Sure, this may be a possibility. @jonahbeckford do you have an opinion as to whether |
If one is trying to cater for roaming vs local settings properly, What does Dune write under FWIW, especially as you have the function already, I'd use |
Thanks David for the input. I'll amend to use the C binding every time. But I think I am keeping |
ce0b264
to
24a8071
Compare
Done. |
I believe all points have been addressed. A formal approval would be appreciated, otherwise I'm planning to merge in the next few days. |
The Windows CI is failing when building the bootstrap binary: I cannot reproduce locally so far. Any ideas @dra27? |
This comment, possibly related, suggests adding |
@nojb I rebased and added |
New error after bootstrap is:
|
Signed-off-by: nojebar <nicolas.ojeda.bar@lexifi.com>
Signed-off-by: nojebar <nicolas.ojeda.bar@lexifi.com>
Signed-off-by: nojebar <nicolas.ojeda.bar@lexifi.com>
Signed-off-by: nojebar <nicolas.ojeda.bar@lexifi.com>
Signed-off-by: Etienne Millon <me@emillon.org>
…ne-site, dune-rpc, dune-rpc-lwt, dune-private-libs, dune-glob, dune-configurator, dune-build-info, dune-action-plugin and chrome-trace (3.4.0) CHANGES: - Make `dune describe` correctly handle overlapping implementations for virtual libraries (ocaml/dune#5971, fixes ocaml/dune#5747, @esope) - Building the `@check` alias should make sure the libraries and executables don't have dependency cycles (ocaml/dune#5892, @rgrinberg) - [ctypes] Add support for the `errno` parameter using the `errno_policy` field in the ctypes settings. (ocaml/dune#5827, @droyo) - Fix `dune coq top` when it is invoked on files from a subdirectory of the directory containing the associated stanza (ocaml/dune#5784, fixes ocaml/dune#5552, @ejgallego, @rlepigre, @Alizter) - Fix hint when an invalid module name is found. (ocaml/dune#5922, fixes ocaml/dune#5273, @emillon) - The `(cat)` action now supports several files. (ocaml/dune#5928, fixes ocaml/dune#5795, @emillon) - Dune no longer uses shimmed `META` files for OCaml 5.x, solely using the ones installed by the compiler. (ocaml/dune#5916, @dra27) - Fix handling of the `(deps)` field in `(test)` stanzas when there is an `.expected` file. (ocaml/dune#5952, ocaml/dune#5951, fixes ocaml/dune#5950, @emillon) - Ignore insignificant filesystem events. This stops RPC in watch mode from flashing errors on insignificant file system events such as changes in the `.git/` directory. (ocaml/dune#5953, @rgrinberg) - Fix parsing more error messages emitted by the OCaml compiler. In particular, messages where the excerpt line number started with a blank character were skipped. (ocaml/dune#5981, @rgrinberg) - env stanza: warn if some rules are ignored because they appear after a wildcard rule. (ocaml/dune#5898, fixes ocaml/dune#5886, @emillon) - On Windows, XDG_CACHE_HOME is taken to be the `FOLDERID_InternetCache` if unset, and XDG_CONFIG_HOME and XDG_DATA_HOME are both taken to be `FOLDERID_LocalAppData` if unset. (ocaml/dune#5943, fixes ocaml/dune#5808, @nojb)
I don't think this is what the PR did, but we aren't allowed to do that. We should respect xdg settings when using the dune cache for example. EDIT: the above doesn't even matter since the boostrapped binary is the one installed in the user's switch. So it has to be a fully functional dune. |
oh is it? My knowledge about dune bootstrap dates from < 2.0 where we had a mini-dune. I assumed this was still the case, just with a different build strategy. Thanks for the clarification |
No problem! |
I'm seeing a Windows failure when trying to build current Dune master (with this PR). Here's a GHA run: https://github.com/melange-re/melange/actions/runs/3256688824/jobs/5347432767 And relevant output:
|
@phated could you do a better test on your end on windows with esy? I'm using "resolutions": {
"@opam/dune": "ocaml/dune:dune.opam#bc0a0c3169dfd4aae72498c5fc5b1859dd6f870e"
} |
Made an issue for this in #6241 |
This sets the following XDG defaults on Windows:
A C call is needed to get the right path for
FOLDERID_InternetCache
. This is included in the PR, but perhaps it is considered to be too much trouble? Opinions welcome.cc @dra27 @jonahbeckford
Fixes #5808