-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Today, devtracker includes its own copy of Neo Express in the extension package. This is problematic for a few reasons
- Increases the size of the VSIX package significantly. Today, the package is 29.2MB. Express is approximately 28.5MB of that.
- Users typically have their own copy of Express installed as either a global or local tool.
- The C# contract template in devtracker includes a
dotnet-tools.jsonfile that installs Express as a local tool
- The C# contract template in devtracker includes a
- DevTracker is updated automatically when a new version is released, but command line tools like Express and the Neo C# compiler are not updated automatically
- The version of Express included in DevTracker has to be manually updated
Instead of including neoxp inside the extension package, DevTracker should help the developer keep their global or local installation of Express up to date.
On activation in a workspace that contains one or more .neo-express files, check to see if Express is installed locally (dotnet tool list --local) or globally (dotnet tool list --global).
If not installed, give the user the option to install either globally or locally. Also, provide a mechanism to "learn more" that will open a documentation page that explains the difference. Note, if the user chooses local install, devtracker may also need to create a tool manifest (dotnet new tool-manifest)
If installed, check to see if there is an updated version of Neo.Express available from nuget.org and offer to update if available. Note, DevTracker and Express both track the Neo platform's major & minor version numbers, but will have different patch version. DevTracker should not install a version of Express that doesn't match its own major/minor version. For example. DevTracker v3.6.12 and Express 3.6.21 are both installed. DevTracker should offer to update to Express v3.6.28 but not Express v3.7.13. DevTracker v3.7 would offer to update Express 3.6.21 -> 3.7.13
Note, if possible, devtracker should have a setting to allow it to pull express builds from the build server package feed in addition to the main nuget.org package feed