Convert to Unity Package Manager (UPM) package #165
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This draft illustrates how the repository could become a package compatible with Unity Package Manager.
This branch can be directly fed into Unity (more details on the Unity docs):
https://github.com/frarees/DarkRift.git#upmAdditionally, UPM packages can be:
.tgzfiles added as releases in GitHub) using npm pack.The current repository folder structure is not the only way to set up UPM package support. This structure favours ease of use and maintainability when UPM is the main distribution mechanism and Unity the main target.
This proposal makes DarkRift accessible for Unity developers across desktop platforms to contribute and navigate through DarkRift's code:
Other benefits:
.unitypackagefiles. Unity handles package installation, removal and upgrading through the package manager window and APIs.Assets/, but inPackages/in read-only mode (unless you install the package for development, in which case you can modify it. Which is the intended setup for contributors).Note how client, server and common assemblies are defined in the same Unity project. The server DLL is discovered by the
XmlUnityServerwithout additional actions (compiled assemblies are located underLibrary/ScriptAssemblies).Downsides:
TODOs:
Feel free to list additional items I might have missed.
Note that Unity is planning to support first-class support for csproj files. Assembly Definitions will convert into csproj files and those will be consumed by Unity directly.