A git package can be a dependency of another git package?

I have two git packages (https://github.com/yuyang9119/UnityExtensionsCommon.git#v1.0.0, https://github.com/yuyang9119/UnityExtensionsExcelDataReader.git#v1.0.0), it’s ok to install them directly by Package Manager, but get an error message when I reference them in another git package.
5152307--510452--upload_2019-11-8_10-26-34.png

Right now, only semver dependencies are allowed in a package manifest. So, you can only use:

"com.yuyang.unity-extensions.common":"1.0.0"

The expected workflow for this should be:

  • Package A depends on published version of Package B
  • You publish a new version of Package B
  • You update Package A to use the new released version of B.
  • You publish the new version of Package A

Now, assuming that you are not using your own registry nor are publishing packages… A workaround I can think of would be to:

  • Have Package A with no dependency on B (so that you can add that package without dependency resolution issues)
  • Add B to your project manifest with the git url, so that the two packages end up in the project.

I seem to have read somewhere about a user package that allowed using git dependencies in the package manifest, but I haven’t been able to find which package that is.

Git dependencies in packages is on our roadmap though, but there is no ETA yet as to when it will arrive.

2 Likes

Is it possible to release upm to github?
I am glad to implement this feature.

Hi @johnsoncodehk ,

Not for the foreseeable future, I’m afraid.

I don’t get it, the git URI usage is present in Unity 2019.3’s documentation:

so it should be supported now.

Do I need to use GitHub - mob-sakai/GitDependencyResolverForUnity: This plugin resolves git url dependencies in the package for Unity Package Manager. You can use a git url as a package dependency! for now?

If the feature is not ready, change the documentation to say that “Unity will support git URI as dependencies in the future”.

UPDATE: OK, I noticed the doc is about the project’s own manifest.json, not for each package. It would be nice to be able to use the same syntax, though. I have 5 custom packages for personal usage (so I won’t officially submit them) that depend from each other (not circularly, of course).