Look, it’s very simple.
If you install a package A, and it depends on package B, then using semantic versioning, if you install A, it should install a version of B that works.
Semantic versioning right? 1.0.0 means it’s ready right?
https://docs.unity3d.com/Packages/com.unity.mathematics@1.2/changelog/CHANGELOG.html
1.2.1 Internal (Not ready for production)
I mean, just read these changelogs:
https://docs.unity3d.com/Packages/com.unity.addressables@1.18/changelog/CHANGELOG.html
https://docs.unity3d.com/Packages/com.unity.formats.alembic@2.1/changelog/CHANGELOG.html
https://docs.unity3d.com/Packages/com.unity.xr.oculus@1.9/changelog/CHANGELOG.html
https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@10.5/changelog/CHANGELOG.html
I particularly liked the URP upgrade from 7.0 → 7.1
The render pipeline now handles custom renderers differently. You must now set up renderers for the Camera on the Render Pipeline Asset.
Don’t worry, that’s a minor point change, we’re just… adding… a breaking change…
O_o I guess it depends what you consider a ‘breaking change’ to be… if all the scripts still compile and it just breaks projects, it’s not a breaking change right?
Look, I get it, doing semantic versioning is hard, and with many different teams, maintaining strict semantic versioning is tricky; but if you depend on a package, and the version of a dependency that is installed is broken, you’ve screwed it up.
I’ve personally been affected by this multiple times.
…and look, frankly, I’m openly skeptical that the internal processes to adhere to semantic versioning are applied uniformly across all internal teams; I think just looking at the change-logs from different packages even now (and you’re doing waaaay better now than we were a year ago) that different standards and practices are being applied on different packages by different teams.
You must read the package manager forum right? …so, I feel like I didn’t have to write this long reply, since, you should already know how people feel about this stuff. …but, you asked.
After reflecting on it, specifically with regard to this feature:
-
I generally like meta-packages; they are helpful for installing ‘many at once’ dependencies (since you still can’t do this). The ‘features’ view is strange; why are these not just normal packages?
-
Wouldn’t it be nice if you could have a meta-package that included all the dependencies and a package ‘sample’ for the starter projects? Then, rather than having the project templates in the unity hub you could have semantic dependencies for project templates.
-
I still think there’s tremendous opportunity in allowing asset store authors to ‘group’ their assets into features like this.
-
I’m annoyed that the package manager still can’t show (or I haven’t figured out how to show?) a full hierarchy of the packages before installing them; the only way to know what you’ll get is to install everything and then look at the lock file.
-
The game play feature depends on VS 1.7.1, but you can go and install 1.7.2 manually if you want to. It warns you after you’ve manually upgraded, but the main package manager suggests that you upgrade; it shouldn’t do that. You should be warned before you upgrade that you’re potentially breaking an a ‘verified’ feature group.
…
PS. It’s alpha, I know, but I feel like as I write this, when I create a new URP project from the template, and the first thing I see when the project opens is:
NotSupportedException: ForwardRendererData has been deprecated. Use UniversalRendererData instead
UnityEngine.Rendering.Universal.ForwardRendererData.Create () (at Library/PackageCache/com.unity.render-pipelines.universal@12.0.0/Runtime/ForwardRendererData.cs:55)
…is some deep irony. I am so convinced you guys have this under control.