Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue 4885 - Integration of PluginManager #5775

Merged
merged 3 commits into from Nov 24, 2018

Conversation

maraf
Copy link
Member

@maraf maraf commented Nov 14, 2018

This pull integrates download and inclusion of a latest PluginManager from its releases in GitHub repository.

Downloaded content is stored in Plugins\GitExtensions.PluginManager and is excluded from git.
New download is executed only when a new PluginManager release is found.
HeatDirectory build task is used for integration into Setup.wixproj.

@maraf maraf mentioned this pull request Nov 14, 2018
@maraf
Copy link
Member Author

maraf commented Nov 14, 2018

@RussKie Is Prepare-Release.ps1 used in AppVeyor build? I have placed download there...

@RussKie
Copy link
Member

RussKie commented Nov 15, 2018

Prepare-Release.ps1 used in AppVeyor build? I have placed download there...

It is the right place. The script is currently run manually whenever a release is prepared.
There is a plan to fully automate this, but time is an issue right now.

Copy link
Member

@RussKie RussKie left a comment

Choose a reason for hiding this comment

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

Very nice!

I'd like to change the default NuGet source to be nuget.org. Myget is commercial, and I would expect the majority of plugins published to a free service (such as nuget.org).

image

@RussKie
Copy link
Member

RussKie commented Nov 15, 2018

The build is failing - https://ci.appveyor.com/project/gitextensions/gitextensions/builds/20304184/messages
I think we need to check in an empty folder with .gitignore, so the setup project can build.

@vbjay
Copy link
Contributor

vbjay commented Nov 15, 2018 via email

@sharwell
Copy link
Member

Is there a link to a documented versioning strategy I can review?

@sharwell
Copy link
Member

sharwell commented Nov 15, 2018

@RussKie I'm assuming an installer will be available without this bundled executable, correct? I'd check the AppVeyor artifacts to confirm but it's not building yet.

@maraf
Copy link
Member Author

maraf commented Nov 15, 2018

@sharwell @RussKie I can solve it either by committing empty folder with .gitkeep or I can integrate PluginManager download into Setup project build, What do you prefer?

The second option is better in handling possible future changes to PluginManager structure (additional folders or something like that).

@maraf
Copy link
Member Author

maraf commented Nov 15, 2018

@sharwell About versioning, do you mean PluginManager versioning or plugin installation requirements or anything else?

@maraf
Copy link
Member Author

maraf commented Nov 15, 2018

I have integrated PluginManager download into Setup build, so AppVeyor builds contain it.

@RussKie
Copy link
Member

RussKie commented Nov 15, 2018

Is there a link to a documented versioning strategy I can review?

There are no documents of any kind in the department, they will need to be developed at some point in the future.
If you have any thoughts, ideas or experience to share - please do.

Few thoughts:

  • the bundling of the plugin manager is an enabler to start unbundling existing plugins and allowing new plugin development
  • the plugin manager versioning strategy lies with @maraf, but we're as a consumer have certainly a degree of responsibility for it
  • the GE plugin API versioning strategy is absent at the moment, the plugin API has been (somewhat) stable for some time and I'll let it be for now. API versioning would likely be a breaking change, so we will need to work through this.

@maraf did raise a question about compatibility, here are my thoughts on the subject - https://github.com/maraf/GitExtensions.PluginManager/issues/36#issuecomment-427729429.

I'm assuming an installer will be available without this bundled executable, correct?

No, the plugin manager is bundled in its entirety, including the executable.
Do you see it as a problem?

@gitextensions gitextensions deleted a comment from codecov bot Nov 17, 2018
@RussKie RussKie self-assigned this Nov 18, 2018
@RussKie RussKie added this to the 3.00 milestone Nov 18, 2018
@spdr870
Copy link
Member

spdr870 commented Nov 22, 2018

I would like to test this. When I run BuildInstallers.cmd, the following error appears:
image

If I try from Visual Studio, I get this error:
image

@maraf
Copy link
Member Author

maraf commented Nov 22, 2018

@spdr870 By default, Windows has disabled powershell script execution. PR executes one script, so you need enable script execution.

https://superuser.com/questions/106360/how-to-enable-execution-of-powershell-scripts

@spdr870
Copy link
Member

spdr870 commented Nov 23, 2018

I got a little further. But now I get this error. I can workaround it, but just mentioning.
image

Wouldn't it be a lot easier to just include the pluginmanager as a submodule and build it directly instead of having to download a binary?

@RussKie
Copy link
Member

RussKie commented Nov 23, 2018

@spdr870 what did you do to get this error?
I run the following command:

gitextensions\Setup>powershell .\Prepare-Release.ps1 -oldVersion 2.51.05 -newVersion 3.00.00.04 -milestones '47'

Admittedly I had to further tweak our scripts (I will rework them one day), but everything downloads and bundles just fine.

@RussKie RussKie changed the base branch from master to release/3.00 November 23, 2018 13:01
@RussKie RussKie merged commit 10d47b8 into gitextensions:release/3.00 Nov 24, 2018
@gerhardol
Copy link
Member

Builds for me.
We need to adapt the plugin manager to debug builds (at least so it is included).
It would be good to have at least a dummy plugin online too, to see that the manager works.

@maraf
Copy link
Member Author

maraf commented Nov 26, 2018

@gerhardol I was thinking about reference GE plugin repo.
Containing empty plugin, nuget package setup etc.

@maraf maraf deleted the issue-4885 branch November 26, 2018 10:18
@mast-eu mast-eu mentioned this pull request Jan 30, 2019
@maraf maraf mentioned this pull request Mar 28, 2019
@mast-eu mast-eu added this to In progress in Move plugins via automation May 6, 2019
@mast-eu mast-eu moved this from In progress to Done in Move plugins May 6, 2019
@mast-eu mast-eu mentioned this pull request May 8, 2019
37 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Move plugins
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

6 participants