Thought I'd mention that for the longest time we have built our Unity projects with this library for WebGL. We notice that with Unity's latest 2020.1B16(Beta) they appear to be adding further support for deterministic builds. Upon opening Unity, it defaults to have these builds as enabled and throws an immediate error:
Assets\BrainCloud\UnityWebSocketsForWebGL\WebSocketSharp\AssemblyInfo.cs(20,28): error CS8357: The specified version string contains wildcards, which are not compatible with determinism.
We have determined it is caused by your use of the in the line:
[assembly: AssemblyVersion("1.0.2.")]
"*" syntax is variable so it is incompatible with deterministic builds.
A simple fix for people looking to make deterministic builds would be to remove the star and using a specific build or revision like [assembly: AssemblyVersion("1.0.2.1")] or [assembly: AssemblyVersion("1.0.2")] but what are the implications of doing a fix like this?
We have a plugin that needs to support both non-deterministic and deterministic builds, so we're just looking for whatever advice you may have, or safe fixes we could apply. Regardless, the information that Unity is going in this direction may come of use to you!
Hey there!
Thought I'd mention that for the longest time we have built our Unity projects with this library for WebGL. We notice that with Unity's latest 2020.1B16(Beta) they appear to be adding further support for deterministic builds. Upon opening Unity, it defaults to have these builds as enabled and throws an immediate error:
Assets\BrainCloud\UnityWebSocketsForWebGL\WebSocketSharp\AssemblyInfo.cs(20,28): error CS8357: The specified version string contains wildcards, which are not compatible with determinism.
We have determined it is caused by your use of the in the line: [assembly: AssemblyVersion("1.0.2.")]
"*" syntax is variable so it is incompatible with deterministic builds.
A simple fix for people looking to make deterministic builds would be to remove the star and using a specific build or revision like [assembly: AssemblyVersion("1.0.2.1")] or [assembly: AssemblyVersion("1.0.2")] but what are the implications of doing a fix like this?
We have a plugin that needs to support both non-deterministic and deterministic builds, so we're just looking for whatever advice you may have, or safe fixes we could apply. Regardless, the information that Unity is going in this direction may come of use to you!
Thanks for your time!