

OpenUPM uses a YAML file to store the package information. So the package can be installed by Unity Package Manager via Git URL. A upm branch is created from the package folder using the git subtree split/push command to make the package.json file placed at the root path. The package.json file is located at a sub-folder, for example Assets/package-name or Packages/-name. The master branch is usually a Unity project (with Assets folder). # UPM Package at a Sub-folder with UPM Branch Build pipelines will detect the location of the package.json file, and handle it correctly. The package.json file is located at the root path of the master branch. UPM package at a sub-folder with UPM branch.OpenUPM build pipelines can handle all of them. There're three typical folder structures of UPM repositories. # Understanding Different Folder Structures of UPM Repositories The package size should be less than 512MB.It's recommended to either use the GitHub release (opens new window) page, or the CI tools (opens new window) to create versioned Git tags. The package should contain versioned Git tags using semantic versioning (semver) (opens new window).The package should be hosted on Github.


It's recommended to choose one from the spdx license list (opens new window).

The package name should conform to the Unity Package Manager naming convention (opens new window).OpenUPM requires the package fulfills the below criteria: # Adding UPM Package # UPM Package Criteria
