Support 2023.2
mob-sakai opened this issue ยท 10 comments
Packages/dev/Editor/Coffee.UpmGitExtension/GitPackageDataBase.cs(267,45): error CS1503: Argument 1: cannot convert from 'System.Collections.Generic.IEnumerable<UnityEditor.PackageManager.UI.Internal.IPackage>' to 'System.Collections.Generic.IList<UnityEditor.PackageManager.UI.Internal.IPackage>'
any progress on this?
I can help if you want
Hi @BarionLP ,
I think the following 3 steps:
Step 1: Prepare the project for version 3.x
In preparation for Step 3, the project involves disruptive changes.
This is an opportune moment to reconsider the project's directory structure (moving from a package on the root to a Unity project on the root).
The elimination of submodules will lower the barrier for pull requests, providing overall benefits for the sustained development of this project.
The branch strategy will be updated as follows:
- main: [A package on the root] For compatibility reasons, it will only contain released packages. Development commits will be excluded, and tags will be pushed through the release workflow.
- develop: [A Unity project on the root] It will encompass all assets and commits necessary for both development and release. Pull requests should be based on this branch.
- release/preview: [A Unity project on the root] They will be derived from the develop branch, triggering the execution of the release workflow.
- v1.x/v2.x: [A package on the root] They will be used for applying hotfixes if needed for older versions.
The following branches will be deprecated:
- sandbox
Step 2: Fix compile errors
As mentioned in this issue, it is imperative to rectify the compile errors.
Step 3: Modify the approach for obtaining repository metadata
Starting from Unity version 2022.3.11f1, nodejs is no longer built into the editor. (#138)
Therefore, one of the following options is necessary:
- Automatically acquire an executable nodejs runtime.
- Create a new standalone .Net Core application that operates independently.
Please share ideas or methods for addressing Step 2 and Step 3. ๐
sounds like a lot of refactoring...
I'd recommend rewriting the js part in .net so everything runs in the same framework (usually makes things easier...)
I might be missing something but I don't think you need a standalone app for that
To construct repository metadata, it is necessary to sequentially execute a series of asynchronous git commands (such as clone, listing refs, checkout, etc.).
In UnityEditor, handling the execution state of editor scripts becomes challenging due to domain reloads triggered by compilation, changes in play mode, and the termination of the editor. In other words, one needs to consider which command has been executed, whether the last command is still running, and whether the output of the command has been processed.
In a standalone scenario, you can use semaphores to determine if all processes have completed. If the processing is successful, generate the metadata file, and post-process, such as updating the package list by watching it. Resuming the watch even after a domain reload ensures the continuous retrieval of accurate metadata.
I'd recommend rewriting the js part in .net so everything runs in the same framework (usually makes things easier...)
I agree. ๐
It would be more maintainable to rewrite in .NET.
This generally simplifies things and enhances maintainability compared to implementing in multiple frameworks.
Step 1: Prepare the project for version 3.x
- The branch strategy is updated.
- Since the mentioned Step 3 is not a breaking change, the fix will be released as version 2.x.
Step 2: Fix compile errors
- Fixed.
Step 3: Modify the approach for obtaining repository metadata
- I have found a solution to download the Node.js runtime (approximately 6MB) for each platform.
- I will use this as a workaround until transitioning to .NET.
- This change does not contains any breaking changes.
Fixed version v2.1.0 has been released!