Skip to content

mob-sakai/UpmGitExtension

Repository files navigation

UPM Git Extension

This package enhances the user interface (UI) of the Unity Package Manager (UPM) specifically for packages installed from a git repository.


PRs Welcome

<< πŸ“ Description | βš™ Installation | πŸš€ Usage | πŸ›  Development Note | 🀝 Contributing >>

πŸ“ Description

In Unity 2018.3, the Unity Package Manager (UPM) introduced Git support, providing a convenient way to install packages from code hosting services such as GitHub. However, certain limitations and shortcomings were identified, including:

  • Incorrect links to documents (readme, changelog, license)
  • Lack of a direct link to the repository URL
  • Limited functionality for adding, updating, and removing packages through the UI

This project addresses these issues by extending the UI of the Unity Package Manager for packages installed using Git.

Features

  • Direct link to the Git repository URL
  • Links to offline documents, including:
    • Documentations
    • Changelog
    • License
  • Support for various Git hosting platforms such as GitHub, GitLab, Bitbucket, Azure DevOps, etc.
  • Installation of packages from Git repository URLs using the UI
  • Updating packages with a specific tag/branch
  • Removing packages
  • Compatibility with Unity 2018.3 or later
  • Support for .Net 3.5, .Net 4.x, and .Net Standard 2.0
  • Version filtering
  • Support for path query parameters (for Unity 2019.3.4f or later)
  • (Version 2.0.0) Git repositories are cached, and installed/searched packages are automatically indexed:
    • Cached repositories are shared between different projects
    • Cached repository URLs are displayed as history in the installation window
    • Indexed packages are shown in My Registries
  • (Version 2.0.0) Additional menu options to open manifest.json with a code editor, open the cache directory, clear the cache, and fetch packages:



βš™ Installation

This package requires as following:

  • v1.x: Unity 2018.3 to 2019.4
  • v2.x: Unity 2020.1 or later

Install via OpenUPM

This package is available on OpenUPM package registry. This is the preferred method of installation, as you can easily receive updates as they're released.

If you have openupm-cli installed, then run the following command in your project's directory:

# for Unity 2020 or later
openupm add com.coffee.upm-git-extension
# for Unity 2018 or 2019
openupm add com.coffee.upm-git-extension@v1 

Install via UPM (using Git URL)

Navigate to your project's Packages folder and open the manifest.json file. Then add this package somewhere in the dependencies block:

{
  "dependencies": {
    // for Unity 2020 or later
    "com.coffee.upm-git-extension": "https://github.com/mob-sakai/UpmGitExtension.git",
    // for Unity 2018 or 2019
    "com.coffee.upm-git-extension": "https://github.com/mob-sakai/UpmGitExtension.git#v1",
    ...
  },
}

To update the package, change suffix #{version} to the target version.

  • e.g. "com.coffee.upm-git-extension": "https://github.com/mob-sakai/UpmGitExtension.git#2.1.0",



πŸš€ Usage

Install a Package from a Git Repository

Click giticon button in the package manager UI to open the Install Package Window.

  1. Input a git repository URL and click the Find Versions button. In Unity 2019.3.4 or later, you can specify a subdirectory.

  2. Select a tag or branch and click the Find Package button.

  3. Wait a few seconds for validation.

  4. Click the Install Package button to install the package.

Update Package with a Specific Tag or Branch as Version

You can update or remove the package in your project, just as you would for official packages.



πŸ›  Development Note

Develop a package for UPM

See https://www.patreon.com/posts/25070968, https://www.jianshu.com/u/275cca6e5f17 (Chinese)



🀝 Contributing

Issues

Issues are incredibly valuable to this project:

  • Ideas provide a valuable source of contributions that others can make.
  • Problems help identify areas where this project needs improvement.
  • Questions indicate where contributors can enhance the user experience.

Pull Requests

Pull requests offer a fantastic way to contribute your ideas to this repository.
Please refer to CONTRIBUTING.md and develop branch for guidelines.

Support

This is an open-source project developed during my spare time.
If you appreciate it, consider supporting me.
Your support allows me to dedicate more time to development. 😊




License

  • MIT

Author

See Also