Skip to content

Conversation

@RussKie
Copy link
Member

@RussKie RussKie commented Dec 18, 2022

The Plugin Manager must target v4.0 and not the "latest", otherwise it will be targeting version higher than the release. As a result it won't be loaded by the Git Extensions app.

Resolves gitextensions/gitextensions#10548

The Plugin Manager must target v4.0 and not the "latest", otherwise it
will be targeting version higher than the release. As a result it won't
be loaded by the Git Extensions app.

Resolves gitextensions/gitextensions#10548
Copy link
Member

@mstv mstv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes looks OK to me at first glance
local build succeeds (after digging into appveyor.yml)
signing fails in AppVeyor build (temporarily?)


The Plugin Manager must target v4.0 and not the "latest", otherwise it will be targeting version higher than the release.

And vice versa?

@mstv
Copy link
Member

mstv commented Dec 18, 2022

I have unpacked the locally built GitExtensions.PluginManager.0.0.0.1.zip to c:\Users\Administrator\AppData\Local\GitExtensions\UserPlugins\GitExtensions.PluginManager of the VM (gitextensions/gitextensions#10548 (comment)).
The PackageManager.UI.exe requests 6.0.10 instead of 6.0.11 now, and still does not recognize that a newer runtime is installed.

image

@mstv
Copy link
Member

mstv commented Dec 18, 2022

The PackageManager.UI.exe requires the x86 .NET desktop runtime. GE works with the x64 variant.

@RussKie
Copy link
Member Author

RussKie commented Dec 18, 2022 via email

@RussKie
Copy link
Member Author

RussKie commented Dec 18, 2022

changes looks OK to me at first glance local build succeeds (after digging into appveyor.yml) signing fails in AppVeyor build (temporarily?)

The Plugin Manager must target v4.0 and not the "latest", otherwise it will be targeting version higher than the release.

And vice versa?

Signing requests are only accepted from release branches, and not PRs to those.

There are a lot of configs in this repo that could do with improvements, I'm unable to dedicate enough cycles for those right now

@mstv
Copy link
Member

mstv commented Dec 18, 2022

For GE, I have downloaded and installed the x64 desktop runtime.

The Plugin Manager (PackageManager.UI.exe) started from GE requests the x86 desktop runtime. It took long until I noticed the difference. So we might get similar bug reports as for "core runtime vs. desktop runtime".

image

@RussKie
Copy link
Member Author

RussKie commented Dec 19, 2022

@maraf is there a reason for us to build x86 version and not x64?

Copy link
Member

@mstv mstv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 A fresh install works well


The Plugin Manager must target v4.0 and not the "latest", otherwise it will be targeting version higher than the release.

And vice versa?

I ask because of

GE_USE_LATEST_DOTNET: true

@RussKie
Copy link
Member Author

RussKie commented Dec 19, 2022

👍 A fresh install works well

Awesome! I'll be merging this then.

The Plugin Manager must target v4.0 and not the "latest", otherwise it will be targeting version higher than the release.

And vice versa?

I ask because of

GE_USE_LATEST_DOTNET: true

I think we're talking about two different things. GE_USE_LATEST_DOTNET makes GE to build again the latest available .NET. This burns the target runtime into the runtimeconfig.json - e.g.:

      {
        "name": "Microsoft.WindowsDesktop.App",
        "version": "6.0.12"     <-- target 12 version or later
      }

This PR makes the PM to target GE v4 and not GE vNext. Otherwise, the PM may require different dependencies or different versions of those available in GE v4.
This is orthogonal to the target .NET runtime version, and the PM will target any .NET Desktop v6 version because of this:

{
  "runtimeOptions": {
    "tfm": "net6.0",
    "frameworks": [
      {
        "name": "Microsoft.NETCore.App",
        "version": "6.0.0"
      },
      {
        "name": "Microsoft.WindowsDesktop.App",
        "version": "6.0.0"     <-- target *any* version
      }
    ]
  }
}

Does this make sense?

Copy link
Member

@mstv mstv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the explanation.
So the main fix is that in src/GitExtensions.PluginManager/GitExtensions.PluginManager.csproj.user.
(I focused on *.runtimeconfig.json before.)

Comment on lines +4 to +6
<GitExtensionsReferenceVersion>v4.0.1</GitExtensionsReferenceVersion> <!-- 'latest' or 'v3.1' (= tag from GitHub releases) or 'v3.1.0.5877' (= build number from AppVeyor)-->
<GitExtensionsReferenceSource>GitHub</GitExtensionsReferenceSource> <!-- 'GitHub' or 'AppVeyor' -->
<GitExtensionsPath>$(GitExtensionsDownloadPath)</GitExtensionsPath> <!-- for local builds (no download) -->
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Essentially, I believe this is the fix for gitextensions/gitextensions#10548

@RussKie RussKie merged commit 7719238 into release/2.0 Dec 19, 2022
@RussKie RussKie deleted the fix_10548 branch December 19, 2022 10:50
RussKie added a commit to gitextensions/gitextensions that referenced this pull request Dec 19, 2022
Microsoft.VisualStudio.Composition v16.9 depended on System.ComponentModel.Composition
v4.5+; which led to us shipping v4.6.

The Plugin Manager 184 was built against System.ComponentModel.Composition
v6.0.0. As a result it would fail to load because the dependency was not
satisfied.

* Add an explicit dependency on System.ComponentModel.Composition v6.0.
* Bump Microsoft.VisualStudio.Composition to v17.2, as it now depends on
System.ComponentModel.Composition v6.0+.

Also update to the latest Plugin Manager (see
gitextensions/gitextensions.pluginmanager#69).

Resolves #10529
@maraf
Copy link
Member

maraf commented Dec 19, 2022

@RussKie Thanks for resolving it!

The Plugin Manager must target v4.0 and not the "latest", otherwise it will be targeting version higher than the release. As a result it won't be loaded by the Git Extensions app.

I can't agree more!

@maraf is there a reason for us to build x86 version and not x64?

No, there is not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants