cefsharp / CefSharp

.NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework
http://cefsharp.github.io/
Other
9.82k stars 2.92k forks source link

Roadmap - what's next? #509

Closed jornh closed 9 years ago

jornh commented 9 years ago

Kill CefSharp 1 issues, with resolutions:

https://github.com/cefsharp/CefSharp/issues?q=is%3Aopen+is%3Aissue+label%3Acef1+-label%3Acef3+

amaitland commented 9 years ago

I've closed the CefSharp1 PR's. With the CefSharp1 issues, I think we come up with a standard response and stick with it. Clear the decks of old issues. Anything that sounds like it maybe relevant to CefSharp3 we re-label and assign to a milestone where possible.

amaitland commented 9 years ago

I've entered into aggressive issue closing mode, so we'll see what feedback comes of it! :smile:

jornh commented 9 years ago

Wow! https://github.com/cefsharp/CefSharp/issues?q=is%3Aopen+ down to two pages, much more manageable! (That link btw has the sum of issues and PRs)

Reeeeally good job there at shaking the tree :+1: :evergreen_tree:

jornh commented 9 years ago

https://github.com/cefsharp/CefSharp/milestones got updated a bit - optimists as we are ;)

amaitland commented 9 years ago

Type for 33.0.3? https://github.com/cefsharp/CefSharp/milestones/33%3F.0.3

jornh commented 9 years ago

Type

Typo? - naah, more like a question: "Will it be 33? ... or something else?"

Renamed to xx.0.3 now https://github.com/cefsharp/CefSharp/milestones/xx.0.3 instead - hopefully more clear

amaitland commented 9 years ago

Makes sense now :+1:

jornh commented 9 years ago

Copy over from https://github.com/cefsharp/CefSharp/pull/504#issuecomment-58835210:

What's remaining for the JsBinding, any criteria for when to merge it?

  • Stability
  • Needs a thorough review
  • I suspect it probably has a few memory leaks that need to be plugged
  • Add an [IgnoreAttribute] so methods/properties can be skipped

Should we start maintaining parallel branches like CEF does (e.g. a 2062 one), how many?

I think having a 2062 branch would be nice, though we need to be careful not to overextend ourselves, as it does take a little bit of effort to make sure all changes are merged into every branch with regularity. I think the future branches should be based on JsBinding_WIP as it's the way forward.

What priority does "plumbing"/services like nightly NuGets, x86/x64 split, documenting how to use?

Sorting the split should have a fairly high priority as it's the most drastic change from a user point of view. Once that's sorted we get a nightly NuGet build happening. Then lastly everyone's favorite documentation! lol

Value in adding automated testing?

Would be nice, though I've got no idea where to start. Is the whole multiple AppDomain thing still an issue?

Yep, the AppDomain thing didn't magically disappear. It's also an issue for some users, though there may be other workarounds for them, but at least it serves as a good excuse for not taking a serious look at automated testing

amaitland commented 9 years ago

@jornh At what point do you think we take the training wheels off the Js Binding?

Feature wise it just needs the IgnoreAttribute I believe.

jornh commented 9 years ago

Firstly a big :+1: on 3.0.2, then:

Stability

That's not very actionable (but nevertheless desirable though :stuck_out_tongue_winking_eye: ). I only got one case where it actually seems better than master. Just one data point though.

Needs a thorough review

Phew it's a lot of commits. Any idea how to approach it? Areas to focus on? Ways to sample?

I suspect it probably has a few memory leaks that need to be plugged

Got any knowledge, or just hunches? Should we throw some tooling at it?

Add an [IgnoreAttribute] so methods/properties can be skipped

You already covered it :smile:

Would polling in the Google Group or encouraging to test help do you think?

jornh commented 9 years ago

We could go as far as writing tests :dancers: Could IMO potentially be more fruitful with the bindings and the WCF communication etc. than with visual glitches like the recent WinForms redraw issue.

amaitland commented 9 years ago

That's not very actionable (but nevertheless desirable though :stuck_out_tongue_winking_eye: ). I only got one case where it actually seems better than master. Just one data point though.

Thankfully the JS Binding is fairly isolated, if you never register an object, very little of the code actually gets called. The big change in making the browser client the WCF server, which improves reliability in my opinion, as with master there are some major timing issues that are difficult to overcome, as it's not clear when the render process is actually fully initialised.

Phew it's a lot of commits. Any idea how to approach it? Areas to focus on? Ways to sample?

There's about 6-8 core classes, so it's not actually that complex now. A lot of those commits are me bumbling through making c++ changes. I can probably list the core ones if your interested?

Got any knowledge, or just hunches? Should we throw some tooling at it?

Just a hunch, my knowledge of cli c++ is still fairly minimal, so I'm not totally sure on best practice for cleaning up objects. Tooling is an excellent idea, I could download a trial version of dotTrace or something similar.

You already covered it :smile:

Got a suggestion on the attribute name? That's the hardest part! lol

Would polling in the Google Group or encouraging to test help do you think?

Can't hurt :smile:

jornh commented 9 years ago

I can probably list the core ones if your interested?

Yes please! No promises to how much I can commit to look at right now. But it will enable others to pitch in too :smile: ... and we have a bit of design docco! It could serve as bait/lowered entry barrier for a Google Group post ...

Thankfully the JS Binding is fairly isolated,

Very good point. Let's focus on the WCF role swap. Those who need the JS Binding are those who "pays" for it then TANSTAAFL

amaitland commented 9 years ago

Quick list of classes, I'll try and write something more detailed later.

CefSharp.Core

CefSharp

CefSharp.BrowserSubprocess.Core (Render Process)

Brief Description There are three parts to the process

That's a very high level simplistic explanation, that's missing a lot of detail. I'll try expand upon it later.

jornh commented 9 years ago
Pushing cef.sdk 3.2062.1898 to the NuGet gallery (https://www.nuget.org)...
Your package was pushed.
Pushing cef.redist.x86 3.2062.1898 to the NuGet gallery (https://www.nuget.org)...
Your package was pushed.

cef.redist.x64 3.2062.1898 on its way too ... x86 took 8 minutes on my wifi ... so in about 10 min or so ...

amaitland commented 9 years ago

@jornh Fantastic! Thanks :+1:

jornh commented 9 years ago

@amaitland - and anyone else with an opinion :smiley: - is it time to take off the training wheels on 2062 and JS Binding WIP and merge into master? Then push another set of -pre packages?

peters commented 9 years ago

@jornh kjør på :)

amaitland commented 9 years ago

@jornh I think so, yes :+1: That green merge button is just waiting to be pressed :smile:

jornh commented 9 years ago

Ok press away then!

On Tuesday, November 11, 2014, Alex Maitland notifications@github.com wrote:

@jornh https://github.com/jornh I think so, yes [image: :+1:] That green merge button is just waiting to be pressed [image: :smile:]

— Reply to this email directly or view it on GitHub https://github.com/cefsharp/CefSharp/issues/509#issuecomment-62521104.

amaitland commented 9 years ago

Done :smile:

I've updated the ChangeLog, I'll have a go at updating the milestones

amaitland commented 9 years ago

I've tinkered with some of the milestones, probably needs a little more work as I've basically moved everything to 37.0.0.

What does everyone think about cleaning up the branches? Just keep master, CefSharp and 2171? (Merge 2171-jsb-wip into 2171 to simplify naming)

jornh commented 9 years ago

Just keep master, CefSharp and 2171? (Merge 2171-jsb-wip into 2171 to simplify naming)

Yes, seems natural to go with that - and maybe keep CefSharp1 too :smile: Ooh that's probably what you meant with CefSharp :wink: I just wanted to be 100% sure!

peters commented 9 years ago

@amaitland

What does everyone think about cleaning up the branches? Just keep master, CefSharp and 2171? (Merge 2171-jsb-wip into 2171 to simplify naming)

:+1:

@jornh

Yes, seems natural to go with that - and maybe keep CefSharp1 too

:+1:

amaitland commented 9 years ago

Yes, seems natural to go with that - and maybe keep CefSharp1 too :smile: Ooh that's probably what you meant with CefSharp :wink: I just wanted to be 100% sure!

Yeah, I meant CefSharp1 :smile:

amaitland commented 9 years ago

I've cleaned up the branches, down to just three again which is much more manageable :smile:

peters commented 9 years ago

nice 👌

jornh commented 9 years ago

I can take #610 for a test drive some time tonight.

Time to push a 37.0.0-pre-01 to NuGet after hopefully successful merge of that?

amaitland commented 9 years ago

I can take #610 for a test drive some time tonight.

Great, thanks!

Time to push a 37.0.0-pre-01 to NuGet after hopefully successful merge of that?

My only concern is #614 might be an issue. Is it a showstopper for a -pre release?

amaitland commented 9 years ago

Ideally I would like to push a -pre this week :smile:

jornh commented 9 years ago

My only concern is #614 might be an issue. Is it a showstopper for a -pre release?

It can turn both ways I guess. Sure would be best to know more about it before a final release. I'm thinking it can be looked into in parallel with the -pre and we will know for the final 37.0.0 together with what might come from people using the pre.

amaitland commented 9 years ago

As it's a -pre I'm totally fine with pushing it out knowing there maybe a few little problems.

Might be worth seeing how MyGet handles pushing to staging.nuget.org?

jornh commented 9 years ago

Might be worth seeing how MyGet handles pushing to staging.nuget.org?

Great idea. Push away there if you want to try out those new myget dials and handles :smile:

Ahh ... freshly ground morning :coffee:

amaitland commented 9 years ago

I just pushed packages to staging.nuget.org from myget, everything went pretty smoothly, after initial setup it only took seconds to release all three packages :smile:

I think we can do an end to end release without even opening Visual Studio :smile:

jornh commented 9 years ago

Yep that's a worthy end goal: Develop CefSharp from a phone, tablet or an internet cafe browser :)

I guess if we test the packages from MinimalExample with an Update-Package CefSharp.* -Pre it should be safe to push to nuget proper? You are welcome to do so ... or I can do it some time tonight ... Sounds OK?

jornh commented 9 years ago

Hmm... close but no cigar ... cefsharp minimalexample sln - manage nuget packages

PM> Update-Package CefSharp.WinForms -Pre
Updating 'CefSharp.WinForms' from version '33.0.2' to '37.0.0-pre01' in project 'CefSharp.MinimalExample.WinForms'.
Update-Package : Unable to resolve dependency 'CefSharp.Common (= 37.0.0-CI437)'.
At line:1 char:15
+ Update-Package <<<<  CefSharp.WinForms -Pre
    + CategoryInfo          : NotSpecified: (:) [Update-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand

PM> 

I see (at least) two possible ways around this:

I think I'm in favour of the first ... Thoughts?

update Hey, wait a sec maybe using http://www.appveyor.com/docs/branches#build-on-tags in build.ps1 is a better option?

if (Test-Path Env:\APPVEYOR_REPO_TAG)
{
  $Version = $env:APPVEYOR_REPO_BRANCH
}
amaitland commented 9 years ago

@jornh Build on tags sounds like it's worth looking into :+1:

jornh commented 9 years ago

Looks like #626 can be settled within a few days give or take with the weekend?

I'll have a go at the appveyor tagging - though we can still do it manually if I don't create something useful :-)

Any other thoughts? Outstanding before -pre

amaitland commented 9 years ago

Any other thoughts? Outstanding before -pre

Once #626 is resolved I think we're ready for the -pre :smile:

jornh commented 9 years ago

Perfect - fully aligned then. Just wanted to check :-)

On Friday, November 21, 2014, Alex Maitland notifications@github.com wrote:

Any other thoughts? Outstanding before -pre

Once #626 https://github.com/cefsharp/CefSharp/pull/626 is resolved I think we're ready for the -pre [image: :smile:]

— Reply to this email directly or view it on GitHub https://github.com/cefsharp/CefSharp/issues/509#issuecomment-63954091.

jornh commented 9 years ago

With all the great merging work already done today how about we tag the pre01 now.

I suspect the JSB leak issue on reload reported by @sylvain-hamel is probably also in 33.1.0-pre so it's not that we are worse off with a new pre.

sylvain-hamel commented 9 years ago

@jornh Maybe you could apply my not-so-elegant fix for #641 until a better fix is found. The leak can be pretty bad for applications that run for a long time.

On our side, we have included that fix in our custom branch.

It's up to you to decide whether or not you want to include it too. Here is a PR if you want to merge it. If you don't, you can just close the PR.

amaitland commented 9 years ago

@sylvain-hamel I think the point @jornh was trying to make as the same bug is in the current -pre package so from that point of view we're no worse off.

I think short term we'll release a new -pre package, review the outstanding PR's and then release a subsequent -pre package.

jornh commented 9 years ago

Exactly my point, @amaitland

@sylvain-hamel is my assumption on that its also in 33.1.0-pre right? (If not this should narrow down the cause of the leak)

But back to the main topic: @amaitland, ready? If so, do you want to tag the -pre or should I?

amaitland commented 9 years ago

@jornh Go for it :smile:

jornh commented 9 years ago

Four -pre .nupkg waiting for being picked up at https://www.myget.org/feed/Packages/cefsharp

@amaitland do you want to take one of them for a spin and then push to NuGet.org?

I'll look at the milestones housekeeping then...

amaitland commented 9 years ago

do you want to take one of them for a spin and then push to NuGet.org?

Can do :+1:

amaitland commented 9 years ago

I've upgraded MinimalExample, tested quickly :+1:

Packages uploaded to nuget.org :smile:

jornh commented 9 years ago

Sweet! :tada: thanks mate! :smile:

I scheduled 37.0.0 for around the 10th - https://github.com/cefsharp/CefSharp/milestones

sylvain-hamel commented 9 years ago

@amaitland @jornh yes you guys are right.