Giter Site home page Giter Site logo

k0dep / originer Goto Github PK

View Code? Open in Web Editor NEW
38.0 1.0 2.0 32 KB

:octocat:🧳The package for Unity3d which makes it possible to automatically resolve UPM dependencies on projects located on Github

Home Page: http://originer.parabox.tech

License: MIT License

C# 100.00%
upm-package unity3d unity package-manager-tool editor-extension originer

originer's Introduction

Originer

The package for Unity3d after the addition of which makes it possible to automatically resolve and enable the "Unity package manager" system dependencies on projects located on Github.

The essence of the problem

Unity package manager allow include packages from git repositories together with default upm repository.

It looks like this:
./Packages/manifest.json

{
  "dependencies": {
    "bindingrx": "https://github.com/k0dep/bindingrx.git#2.1.1",
    "com.unity.package-manager-ui": "2.1.2",
    "com.unity.some-default-packages-from-upm": "1.0.0"
  },
}

This feature is described in the UPM dedicated UPM forum.

But if the BuindingRx package will have dependencies on the packages not added to manifest.json inside it, this will result in Unity not resolving this dependency.

This problem can be solved with the help of scoped registries. This feature is described in this thread.

But this method requires certain package naming (the package must have a certain prefix, for example com.unity.*) And deploy its own solution for storing and distributing npm packages, for example Verdaccio, which is not a convenient solution for small and/or open source projects.

This package solve this issue. If the project has the Originer package in dependencies, then after starting the unity, the package will try to find unresolved dependencies in the installed projects, try to find them in Github according to certain rules described below and install them in manifest.json

Repository requirements

  • In order for Originer to be able to find your repository in github as a dependency and successfully include it in the proget, you need to add a repository with a topic named upm-package
  • The repository should be named the same as the package name.

Еxamples of repositories as packages:

Full list of available repositories for use as upm package by Originer

More about Github topics

Using

For start using this package add lines into ./Packages/manifest.json like next sample:

{
  "dependencies": {
    "originer": "https://github.com/k0dep/originer.git"
  }
}

After this step, just add your package in ./Packages/manifest.json and open Unity editor. Originer will ask you for permission to make changes to manifest.json. Enjoy!

originer's People

Contributors

k0dep avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

wiwei nolimet

originer's Issues

Package collision

What if two packages with the same name exist? Shouldn't you at least be requiring the github username in the package name? "foo.bar" for github.com/foo/bar ?

Package renaming request

Hi @k0dep,

Favo from OpenUPM - a platform collects open-source UPM packages. First of all, thanks for creating this awesome open-source package. I am writing to you because OpenUPM is preparing to comply with Unity's Terms of Services (TOS) Updates. Your package is available on our platform, and I need your help to make some changes.

According to the Unity Package Manager Naming Convention, the package name should use reverse domain name notation, at least 3 sections joined by a dot: tld.org-name.package-name. For example com.littlebigfun.addressable-importer.

  • tld is the top-level domain, like com, org and so on. If you're not sure about what to use, please use com.
  • org-name is your organization name. With tld together it makes sure the organization name is globally unique to its registered owner. You should avoid using a tld and org-name combination that may be confusing to users, like com.unity or com.github.
  • package-name is your package name.

Your package name is originer. I recommend you to update it to comply with the naming convention by,

  • change the package name in package.json.
  • bump the version field of package.json.
  • create a Git tag.

Please reply to me if you've made the change, I will update the OpenUPM side to make it live.

If you do not respond to the issue, It will be closed by the end of Jan 2021, and your package will be removed from our platform. Please notice that Unity Package Guiding Principles & Guidelines do not apply to you when you host Packages on GitHub for Unity users to download and put the Packages in their projects, as long as the hosted Package does not, directly or indirectly, leverage the Unity Editor as a marketing or distribution platform. Thus, you don't have to change anything if you don't intend to publish the package on a scoped registry (like OpenUPM).

Sorry for the inconvenience, feel free to discuss with me if you have any questions.

BR
Favo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.