-
-
Notifications
You must be signed in to change notification settings - Fork 14k
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
nexusmods-app: init at 0.4.1 #270372
nexusmods-app: init at 0.4.1 #270372
Conversation
You could use |
0b522f9
to
84d5e28
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This builds but I can't really get any functionality out of it although I may not be using it correctly. Most commands I've tried seem to fail. Trying to login fails:
00:00:00.112 [DEBUG] Running command: nexus-login
00:00:00.205 [ERROR] Error running command|System.ComponentModel.Win32Exception (2): Failed to start a process with file path 'update-desktop-database'. Target file or working directory doesn't exist, or the provided credentials are invalid. ---> System.ComponentModel.Win32Exception (2): An error occurred trying to start process 'update-desktop-database' with working directory '/nix/store/1p6q6kjgnmdnf3bjbp51vy1wb03jyn2d-nexus-mods-app-0.2.2/bin'. No such file or directory
at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startInfo, String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at CliWrap.Utils.ProcessEx.Start() in /_/CliWrap/Utils/ProcessEx.cs:line 58
at CliWrap.Utils.ProcessEx.Start() in /_/CliWrap/Utils/ProcessEx.cs:line 70
at CliWrap.Command.ExecuteAsync(CancellationToken forcefulCancellationToken, CancellationToken gracefulCancellationToken) in /_/CliWrap/Command.Execution.cs:line 295
at CliWrap.Command.ExecuteAsync(CancellationToken cancellationToken) in /_/CliWrap/Command.Execution.cs:line 314
at NexusMods.Common.ProcessFactory.ExecuteAsync(Command command, CancellationToken cancellationToken) in /build/source/src/NexusMods.Common/ProcessFactory.cs:line 14
at NexusMods.Common.ProtocolRegistration.ProtocolRegistrationLinux.Register(String protocol, String friendlyName, String workingDirectory, String commandLine) in /build/source/src/NexusMods.Common/ProtocolRegistration/ProtocolRegistrationLinux.cs:line 67
at NexusMods.Common.ProtocolRegistration.ProtocolRegistrationLinux.RegisterSelf(String protocol) in /build/source/src/NexusMods.Common/ProtocolRegistration/ProtocolRegistrationLinux.cs:line 35
at NexusMods.Networking.NexusWebApi.NMA.LoginManager.LoginAsync(CancellationToken token) in /build/source/src/Networking/NexusMods.Networking.NexusWebApi.NMA/LoginManager.cs:line 101
at NexusMods.Networking.NexusWebApi.NMA.LoginVerbs.NexusLogin(LoginManager loginManager, CancellationToken token) in /build/source/src/Networking/NexusMods.Networking.NexusWebApi.NMA/LoginVerbs.cs:line 17
at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Invocation.InvocationPipeline.<InvokeAsync>g__FullInvocationChainAsync|2_0(InvocationContext context)
at System.CommandLine.Parsing.ParseResultExtensions.InvokeAsync(ParseResult parseResult, IConsole console)
at System.CommandLine.Parsing.ParserExtensions.InvokeAsync(Parser parser, String[] args, IConsole console)
at NexusMods.SingleProcess.CommandLineConfigurator.RunAsync(String[] args, IRenderer renderer, CancellationToken token)
at NexusMods.App.StartupHandler.HandleCliCommandAsync(String[] args, IRenderer renderer, CancellationToken token) in /build/source/src/NexusMods.App/StartupHandler.cs:line 25
Registering an api key also fails:
00:00:00.095 [DEBUG] Running command: nexus-api-key -a *****
00:00:00.116 [ERROR] Error running command|System.InvalidOperationException: No service for type 'NexusMods.Networking.NexusWebApi.NMA.ApiKeyMessageFactory' has been registered.
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at NexusMods.SingleProcess.CommandLineConfigurator.<>c__DisplayClass7_1.<RunAsync>b__3(IServiceProvider _)
at System.CommandLine.Invocation.ServiceProvider.GetService(Type serviceType)
at System.CommandLine.Binding.BindingContext.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at NexusMods.SingleProcess.CommandLineConfigurator.<>c__DisplayClass5_0.<MakeRootCommand>b__0(InvocationContext ctx)
at NexusMods.SingleProcess.CommandHandler.InvokeAsync(InvocationContext context)
at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Invocation.InvocationPipeline.<InvokeAsync>g__FullInvocationChainAsync|2_0(InvocationContext context)
at System.CommandLine.Parsing.ParseResultExtensions.InvokeAsync(ParseResult parseResult, IConsole console)
at System.CommandLine.Parsing.ParserExtensions.InvokeAsync(Parser parser, String[] args, IConsole console)
at NexusMods.SingleProcess.CommandLineConfigurator.RunAsync(String[] args, IRenderer renderer, CancellationToken token)
at NexusMods.App.StartupHandler.HandleCliCommandAsync(String[] args, IRenderer renderer, CancellationToken token) in /build/source/src/NexusMods.App/StartupHandler.cs:line 25
I was also unable to add any games.
Thank you so much for testing this with more commands! I'll try adding more tests to have a baseline which we can use to communicate upstream. |
6bd7e96
to
bbe6ee5
Compare
From the project FAQ:
So we should probably leave this as a draft PR until launch. Feel free to add more tests or other improvements. AFAIK, we don't want tests which rely on third party services anywhere in nixpkgs, so we probably can't test login, unless there's a Nexus Mods server we can run as part of the test. Update: This notice is gone, and @halgari has said "the app currently runs on Windows and Linux", so we can move on to adapt their build scripts to produce runnable commands. |
I didn't even think this was possible. Isn't everything sandboxed? Also, after looking at this again, the failing commands still return It looks like a cool app that could really improve the modding experience on Linux and NixOS especially. Please let me know if/when you pick this back up I would be happy to test it. |
2fc5b17
to
0b2847c
Compare
v0.3 in case someone wants to test it. |
Still no luck for me. This complains about
I can't tell if this is trying to make a file or run one, but it also fails.
|
Are we good to go with 0.4.1 for now? |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/prs-ready-for-review/3032/4025 |
I don't know why CI is failing, it seems to work fine locally |
Damn, I missed that. Why are they showing up as "neutral" rather than failed? Looks like the problem might be this:
How do I tell which exact command OfBorg ran? Update: Fixed! I had to override precedence in the |
This has highlighted another issue:
Fixing that seems to require https://github.com/Nexus-Mods/NexusMods.App/tree/v0.4.9.3 though (which is blocked by #316293) and it can probably wait until we release. |
Does Nix have naming scheme requirements? If not, is it possible to use |
Since you're building from source, you should also set |
Nixpkgs is flexible about names. I've renamed it. Thank you!
I can't find it in the code. Did you mean one of these, or is it a coming feature? If it's the latter I'd rather put it on the to do list for later versions. |
It's in this PR: Nexus-Mods/NexusMods.App#1530 |
Typically we wouldn't set environment variables that have no effect on the targeted version. I don't see any harm in setting it now, or adding a TODO comment referencing the PR. But it won't have any effect until the package is bumped to whatever version that PR lands in. |
Closes NixOS#270358. Name recommended by @erri120 <NixOS#270372 (comment)>. Replaces the `7zz` binary executable included with the upstream project for safety and reproducibility. Requires an `enableUnfree = true` override to support RAR format mods. Disables tests marked as requiring networking (actually requiring Nexus Mods API key according to <Nexus-Mods/NexusMods.App#1222 (comment)>), and one other tests which requires networking. Co-Authored-By: Matej Cotman <matej@matejc.com> Co-authored-by: éclairevoyant <848000+eclairevoyant@users.noreply.github.com> Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
0.5.3 is out. So I assume we can do |
Description of changes
From the project:
Closes #270358.
Name recommended by @erri120
#270372 (comment).
Replaces the
7zz
binary executable included with the upstream projectfor safety and reproducibility.
Requires an
enableUnfree = true
override to support RAR format mods.Disables tests marked as requiring networking (actually requiring Nexus
Mods API key according to
Nexus-Mods/NexusMods.App#1222 (comment)),
and one other tests which requires networking.
To do
NEXUSMODS_APP_USE_SYSTEM_EXTRACTOR=1
once the next release is outThings done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Priorities
Add a 👍 reaction to pull requests you find important.