Open anatawa12 opened 1 year ago
It looks this has been fixed.
@Faxmashine
Sorry I found this issue can be reproduced in latest VCC.
Add https://vpm.narazaka.net/ to repos and try to add net.narazaka.vrchat.avatar-parameters-saver
to project in VCC or VPM CLI, Invalid version string: >=3.2.0
error occurs
PS > vpm add package 'net.narazaka.vrchat.avatar-parameters-saver'
[14:26:09 INF] Adding net.narazaka.vrchat.avatar-parameters-saver to D:\UnityProjects\New TEst Projexct
[14:26:09 INF] Dependency list upgrading com.vrchat.avatars from >=3.2.0 to >=3.2.0
Unhandled exception: System.ArgumentException: Invalid version string: >=3.2.0
at SemanticVersioning.Version..ctor(String input, Boolean loose)
at VRC.PackageManagement.Core.Repos.GetAllDependencies(IVRCPackage package, Dictionary`2& dependencies, Dictionary`2 existingDependencyList, IEnumerable`1 providers) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Repos.cs:line 509
at VRC.PackageManagement.Core.Repos.GetAllDependencies(IVRCPackage package, Dictionary`2& dependencies, Dictionary`2 existingDependencyList, IEnumerable`1 providers) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Repos.cs:line 556
at VRC.PackageManagement.Core.Types.Packages.VRCPackageManifest.ContainsWorldDependencies() in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Types/PackageTypes/VRCPackageManifest.cs:line 151
at VRC.PackageManagement.Core.Types.Packages.VRCPackageManifest.CanBeAddedTo(UnityProject project) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Types/PackageTypes/VRCPackageManifest.cs:line 138
at VRC.PackageManagement.Core.Types.UnityProject.AddVPMPackage(IVRCPackage iPackage, IEnumerable`1 providers) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Types/UnityProject.cs:line 793
at VRC.PackageManagement.CLI.Program.AddPackage(String packageName, String project) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-cli/Packages.cs:line 93
at VRC.PackageManagement.CLI.Program.<>c.<CreateAddCommands>b__13_0(String packageName, String project) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-cli/Program.cs:line 289
at System.CommandLine.Handler.<>c__DisplayClass3_0`2.<SetHandler>b__0(InvocationContext context)
at System.CommandLine.Invocation.AnonymousCommandHandler.Invoke(InvocationContext context)
at System.CommandLine.Invocation.AnonymousCommandHandler.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.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()
net.narazaka.vrchat.avatar-parameters-saver
workarounded this issue by removing com.vrchat.avatars
from direct dependencies (which is horribly bad for package management, see below) so the command above is no longer work as way to reproduce this problem.
So, I made set of packages to reproduce this problem: https://anatawa12.github.io/vpm-repo-for-vcc-bug-testing/
I made the following packages.
version-resolve.package-depends-on-avatars-[123]
Those packages are package depends on com.vrchat.avatars
.version-resolve.depends-on-(one|two|three)-packages
Those packages are packages depends on one/two/tree of version-resolve.package-depends-on-avatars-[123]
packages.version-resolve.depends-on-(one|two|three)-packages-and-avatars-at-end
Those packages are packages depends on one/two/tree of version-resolve.package-depends-on-avatars-[123]
packages and com.vrchat.avatars
.In my environment, when I'm installing the following packages, Unhandled exception: System.ArgumentException: Invalid version string:
exception occurs
version-resolve.depends-on-two-packages-and-avatars-at-end
version-resolve.depends-on-three-packages
version-resolve.depends-on-three-packages-and-avatars-at-end
In my environment, when I'm installing the following packages, Unhandled exception: System.ArgumentException: Invalid version string:
exception does not occurs
version-resolve.depends-on-one-packages
version-resolve.depends-on-one-packages-and-avatars-at-end
version-resolve.depends-on-two-packages
So, I think this issue will happens if there are same package as dependency three or more times for now.
PS > vpm add package 'version-resolve.depends-on-two-packages-and-avatars-at-end'
[00:46:06 INF] Adding version-resolve.depends-on-two-packages-and-avatars-at-end to D:\UnityProjects\New TEst Projexct
[00:46:06 INF] Dependency list upgrading com.vrchat.avatars from >= 3.2.0 < 4.0.0 to >= 3.2.0 < 4.0.0
Unhandled exception: System.ArgumentException: Invalid version string: >= 3.2.0 < 4.0.0
at SemanticVersioning.Version..ctor(String input, Boolean loose)
at VRC.PackageManagement.Core.Repos.GetAllDependencies(IVRCPackage package, Dictionary`2& dependencies, Dictionary`2 existingDependencyList, IEnumerable`1 providers) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Repos.cs:line 509
at VRC.PackageManagement.Core.Types.Packages.VRCPackageManifest.ContainsWorldDependencies() in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Types/PackageTypes/VRCPackageManifest.cs:line 151
at VRC.PackageManagement.Core.Types.Packages.VRCPackageManifest.CanBeAddedTo(UnityProject project) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Types/PackageTypes/VRCPackageManifest.cs:line 138
at VRC.PackageManagement.Core.Types.UnityProject.AddVPMPackage(IVRCPackage iPackage, IEnumerable`1 providers) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-core-lib/Types/UnityProject.cs:line 793
at VRC.PackageManagement.CLI.Program.AddPackage(String packageName, String project) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-cli/Packages.cs:line 93
at VRC.PackageManagement.CLI.Program.<>c.<CreateAddCommands>b__13_0(String packageName, String project) in /home/runner/work/vrc-package-manager/vrc-package-manager/core/vpm-cli/Program.cs:line 289
at System.CommandLine.Handler.<>c__DisplayClass3_0`2.<SetHandler>b__0(InvocationContext context)
at System.CommandLine.Invocation.AnonymousCommandHandler.Invoke(InvocationContext context)
at System.CommandLine.Invocation.AnonymousCommandHandler.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.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()
Why I think removing com.vrchat.avatars
from direct dependencies is horribly bad for package management manifest.
It removes ability to restrict com.vrchat.avatars
version which can cause (compilation) error in the future.
Versions of non-direct dependencies can be changed in the future as non-breaking changes so depending on non-direct dependencies can cause compatibility issue in the future.
Are there any update for this?
Original title: [BUG] vpm-resolver cannot upgrade packages depends on both SDK Base and VRCSDK Avatars due to
3.1.x
Describe the bug vpm-resolver cannot upgrade packages depends on both SDK Base and VRCSDK Avatars with the following exception.
PS: Not only the update, downgrate and resolve will also not working.
To Reproduce Steps to reproduce the behavior:
UPDATE: This steps no longer works to reproduce. see this comment for new steps
https://vpm.nadena.dev/vpm.json
as vpm repository.nadena.dev.modular-avatar
version1.0.0
to the project (via VCC).Update
to upgradenadena.dev.modular-avatar
to1.1.1
Expected behavior
nadena.dev.modular-avatar
upgraded to1.1.1
Screenshots If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information): First Environment
Second Environment
Additional context It looks this happens if the package depends on both VRCSDK base and Avatars/Worlds because upgrading packages depends only on VRCSDK Worlds (such as UdonSharp) does not cause this problem.