resharper-unity icon indicating copy to clipboard operation
resharper-unity copied to clipboard

Improve ReSharper extension build and upload

Open citizenmatt opened this issue 5 years ago • 2 comments

Currently, the build process for the ReSharper extension happens as part of the (internal) TeamCity CI build. It will create artifacts for both the Rider (bundled) plugin and the .nupkg file to upload for ReSharper. The process can be improved:

  • The type of build should be reflected in the .nupkg name and version. E.g. if it's an EAP build, we should append -eap, so we can use the EAP channel in the ReSharper plugins gallery.
  • Investigate automatically publishing the EAP ReSharper builds. There is no need to publish more frequently.
  • Investigate automatically publishing RTM builds.
  • Investigate if we can also have nightly builds. Due to the way the gallery works, it doesn't support prerelease in the same way that NuGet does. The trailing data in the version (e.g. the -eap in 2020.3.0.2-eap.nupkg) is the release channel, not a preview version. For EAP builds, this needs to be just -eap and not a versioned -eap such as -eap7. Versioning is solely handled by the version number (and reflects 4 digits, while NuGet/semver only really expect 3). Should normal non-EAP builds be suffixed with -nightly? How does this affect ReSharper's Extension Manager? Will it see -eap and -nightly as the same, i.e. "pre-release", but with different preview versions?

citizenmatt avatar Nov 19 '20 10:11 citizenmatt

Sorry to bug you @citizenmatt, but barring progress on this front, could you please provide instructions on how to build the resharper package manually? I was able to do this by browsing the source a few months, but lost my clone of the repository with these changes.

MHDante avatar Aug 09 '22 07:08 MHDante

So here's how I made a build of the resharper plugin off of the current branch:

  1. Update rider/build.gradle.kts line 715 From: dependsOn(buildReSharperHostPlugin) To: dependsOn(buildReSharperHostPlugin, packReSharperPlugin)
  2. Update build.ps1 line 4 From: [string]$Configuration = "Debug", # Release / Debug To: [string]$Configuration = "Release", # Release / Debug
  3. Run build.ps1

The output should be in <RepoRoot>\resharper\build\distributions\Debug

You can then add that folder to your resharper plugin sources by going to:

Extensions -> Resharper -> Options --> Environment -> ExtensionManager -> Add

I understand this is unsupported, but I hope this helps someone else.

MHDante avatar Aug 09 '22 08:08 MHDante