These are chat archives for AvaloniaUI/Avalonia

25th
Aug 2016
Andrew
@zezba9000
Aug 25 2016 01:34
@mterwoord yes thats correct
Matthijs ter Woord
@mterwoord
Aug 25 2016 06:31
@kekekeks Yet another MVVM framework?
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:15
@jkoritzinsky we can move that somewhere in the AppBuilder
And use a separate assembly for FrameworkPlatform or something like that
There is also an option of using bait&switch approach
And create some Avalonia.FrameworkPlatformSupport assembly
with separate versions for each platform
But I'm not sure that it's the right thing to do
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:22
The simplest way would be to move AppBuilder to a separate assembly set with builds for each runtime platform
And rename IPclPlatformWrapper to IRuntimePlatform or something like that
danwalmsley
@danwalmsley
Aug 25 2016 08:26
@jkoritzinsky did you have a solution in the end for popup transparency?
maybe if you have some half finished work, I could finish it off if you are busy on other things?
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:28
@danwalmsley could you fill me in on that transparency issue?
danwalmsley
@danwalmsley
Aug 25 2016 08:28
sure
basically popup doesn't support transparency...
so even if you make the background transparent
it just ends up being a default colour covering where the popup is
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:29
Oh, that
danwalmsley
@danwalmsley
Aug 25 2016 08:29
I think there is an issue
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:29
Well, we can have transparency
But it will be slow
Since we need to use UpdateLayeredWindow
danwalmsley
@danwalmsley
Aug 25 2016 08:29
in wpf you had to explicitly enable transparency, probably because its slow
ok...
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:30
Instead of hw-accerelated direct2d
danwalmsley
@danwalmsley
Aug 25 2016 08:30
if it can be done, even though its slow
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:30
On Linux it will be simplier
danwalmsley
@danwalmsley
Aug 25 2016 08:30
its ok for my purposes
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:30
Since GTK supports ARGB visuals
danwalmsley
@danwalmsley
Aug 25 2016 08:30
lovely
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:30
And if user is running compositing window manager (which is usually the case)
danwalmsley
@danwalmsley
Aug 25 2016 08:31
is it difficult to implement do you think?
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:31
For windows there is a fast solution for transparency
But it doesn't support alpha channel
You need to provide GDI region which should be shown
So, basically, we need a way to tell windowing and rendering subsystems that they said window should support transparency
And in case of win32 you need to do that before window is created
Oh, wait, nvm, WS_EX_LAYERED can be set via SetWindowLong
Basically we need to draw everything on off-screen surface and then call UpdateLayeredWindow https://msdn.microsoft.com/en-us/library/windows/desktop/ms633556%28v=vs.85%29.aspx
But that is slow
Nikita Tsukanov
@kekekeks
Aug 25 2016 08:36
Because these APIs were initially created to draw a shadow behind the mouse cursor
Not for something that updates frequently
danwalmsley
@danwalmsley
Aug 25 2016 08:37
for me it only updates when popup opens and then popup generally doesn't move with respect to background
but I guess others might need more dynamic scenarios
Nikita Tsukanov
@kekekeks
Aug 25 2016 09:03
Well, if you want to play some loading animation in popup
That will be slow
danwalmsley
@danwalmsley
Aug 25 2016 09:05
@kekekeks could you give a quick eyeball on #697
Icant see why test failed, and would like to have merged soon
Nikita Tsukanov
@kekekeks
Aug 25 2016 09:08
Are you sure that PR fixes 'Add support for FontWeight="100"' issue?
danwalmsley
@danwalmsley
Aug 25 2016 09:08
it worked for me
yeah I initially put in a integer parse if enum parse failed...
and then I put in numbers
and enum.parse worked
Nikita Tsukanov
@kekekeks
Aug 25 2016 09:09
Interesing
danwalmsley
@danwalmsley
Aug 25 2016 09:09
so I think it just casts the integer to enum
unless the number I used happened to match an enumeration perhaps
Nikita Tsukanov
@kekekeks
Aug 25 2016 09:10
What happens if you pass something that's not in the enum?
101 for example
danwalmsley
@danwalmsley
Aug 25 2016 09:10
let me check ;)
Nikita Tsukanov
@kekekeks
Aug 25 2016 09:11
Context\AvaloniaTypeFeatureProvider.cs(177,59): error CS0246: The type or namespace name 'FontWeightConverter' could not be found (are you missing a using directive or an assembly reference?) [C:\projects\Avalonia\src\Markup\Avalonia.Markup.Xaml\Avalonia.Markup.Xaml.csproj]
That's why build haven't passed
You haven't commited your changes in csproj file
danwalmsley
@danwalmsley
Aug 25 2016 09:19
@kekekeks thanks
ok just pushed that
I tested and 101 works too
Nikita Tsukanov
@kekekeks
Aug 25 2016 12:58
Are we using that "cake" build system already?
I'm sure there was some discussion about that in the chat
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 13:18
Its not merged yet.
Nikita Tsukanov
@kekekeks
Aug 25 2016 13:43
What exactly are we waiting for?
BTW, why did you change csproj files in your PR?
And made changes to render tests
And why did you also included that package split
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 14:18

BTW, why did you change csproj files in your PR?

I was having issues with building projects and needed to update packages and change target .NET frameworks (from .NET 4.6 to 4.5)

And made changes to render tests

There have been issues with Cairo test at that time and CI was failing

And why did you also included that package split

NuGet package split is related to Cake build script, the NuGet creation and publishing is integrated in Cake script

Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 14:23
@kekekeks I have reverted project changes and disabled tests from PR, remaining changes are only about Cake build script.
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 14:49

What exactly are we waiting for?

@kekekeks For a review by @grokys :) I have fixes issues in PR that you have pointed out, now it should all be ok.

Nikita Tsukanov
@kekekeks
Aug 25 2016 14:53
Except failing powershell script
That thinks that text in stderr is a big no-no
I hate powershell for that
Also this:
Total:                        00:03:28.4929377    
Error pushing artifact: The remote server returned an error: (500) Internal Server Error.
.\packages\JetBrains.dotMemoryUnit.2.3.20160517.113140\tools\dotMemoryUnit.exe -targetExecutable="%xunit20%\xunit.console.x86.exe" -returnTargetExitCode  --"tests\Avalonia.LeakTests\bin\Release\Avalonia.LeakTests.dll"
The system cannot find the path specified
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 14:56

Also this:

.\packages\JetBrains.dotMemoryUnit.2.3.20160517.113140\tools\dotMemoryUnit.exe -targetExecutable="%xunit20%\xunit.console.x86.exe" -returnTargetExitCode  --"tests\Avalonia.LeakTests\bin\Release\Avalonia.LeakTests.dll"
The system cannot find the path specified

This is already fixed, after reverting project changes I have forgot about updating this path.

Nikita Tsukanov
@kekekeks
Aug 25 2016 14:58
Is that path hardcoded somewhere?
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 14:58
Error pushing artifact: The remote server returned an error: (500) Internal Server Error.
This is issue with pushing artifacts to appveyor, it sometimes fails for no reason.

Is that path hardcoded somewhere?

Yes in appveyor.yml as it was before, but when I made changes to csproj I have also updated NuGets so in result newer version of JetBrains.dotMemoryUnit was used, after reverting this also needed to be updated and was done already https://github.com/AvaloniaUI/Avalonia/pull/688/commits/d70ec3163b8a589adbb1cd5f2f30e68647389979

Error pushing artifact: The remote server returned an error: (500) Internal Server Error.

This is issue with pushing artifacts to appveyor, it sometimes fails for no reason.

This may be related to this issue: cake-build/cake#1112

Nikita Tsukanov
@kekekeks
Aug 25 2016 15:04
I'm sure that one can publish artifacts without using cake
By defining them in appveyor.yml
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 15:05
I will change that to be defined in appveyor.yml
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 15:22
Ok. fixed appveyor artifacts publishing.
Nikita Tsukanov
@kekekeks
Aug 25 2016 15:56
Are you sure that win32/gtk/direct2d/skia/cairo should be in separate packages?
BTW I think that we should merge Skia packages into one and provide binaries for corresponding platforms
Jeremy Koritzinsky
@jkoritzinsky
Aug 25 2016 16:36
I agree with @kekekeks on the Skia package
think that win32/gtk/cairo/d2d/skia should be in their own packages because we should make it easy to only install what you want via NuGet. And it should be separate from core so it doesn't get included in libraries.
We have Avalonia.Desktop with all desktop platforms win32/gtk/cairo/d2d/skia
and we have Avalonia.Mobile with all mobile platforms (android/ios)
Nikita Tsukanov
@kekekeks
Aug 25 2016 17:32
So on mobile platforms skia is included in the base platform support package
nice
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 17:32
yes
Nikita Tsukanov
@kekekeks
Aug 25 2016 17:33
I'm still thinking about that appbuilder change
It seems that we need a separate dll for desktop with AppBuilder and IPclPlatformWrapper implementation
For mobile platforms these can be included in Avalonia.iOS.dll and Avalonia.Android.dll
Steven Kirk
@grokys
Aug 25 2016 17:36
@kekekeks if you've reviewed the cake pr and it looks good to you and would be helpful to get it merged now, go ahead and merge!
Steven Kirk
@grokys
Aug 25 2016 17:49
also yeah IPclPlatformWrapper should be renamed... IPlatformServices or something
Nikita Tsukanov
@kekekeks
Aug 25 2016 18:49
IRuntimePlatform
Nikita Tsukanov
@kekekeks
Aug 25 2016 19:16
@wieslawsoltes I've left a note regarding hardcoded package versions
Other than that looks good
Great work
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 19:28
@kekekeks Great! Will fix the hardcoded package version.
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 19:41
@kekekeks Anyway checking package versions and throwing error would probably fail today, as not all project reference same version
Nikita Tsukanov
@kekekeks
Aug 25 2016 19:45
Well, we
need to fix it then
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 19:48
Regarding package versions checking. I was thinking the way to do it is to scan all packages.config and check if all version of package are the same, than use that version (and not reference package from specific project), makes code simpler and still ensures we have correct nuget references.
Nikita Tsukanov
@kekekeks
Aug 25 2016 19:49
Yep, all libs should reference the same package versions
Nikita Tsukanov
@kekekeks
Aug 25 2016 19:54
BTW, is there some tool to debug cake scripts?
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 19:54
Visual Studio
Nikita Tsukanov
@kekekeks
Aug 25 2016 19:55
They have some extension for that, right?
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 19:55
put #break in script
i think you have to run cake.exe --debug build.cake
Nikita Tsukanov
@kekekeks
Aug 25 2016 19:56
I wonder how they provide debug info
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 19:58
47m
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 20:25
Checking NuGet package dependencies versions:
Error: package Serilog has multiple versions:
1.5.9, file: \Android\Avalonia.AndroidTestApplication\packages.config
1.5.14, file: \Avalonia.Logging.Serilog\packages.config
Error: package Sprache has multiple versions:
2.0.0.47, file: \Android\Avalonia.AndroidTestApplication\packages.config
2.0.0.50, file: \Markup\Avalonia.Markup.Xaml\packages.config
2.0.0.51, file: \Markup\Avalonia.Markup.Xaml\OmniXAML\Source\OmniXaml\packages.config
2.0.0.51, file: \Markup\Avalonia.Markup.Xaml\OmniXAML\Source\OmniXaml.Tests\packages.config
Error: package Microsoft.Bcl.Build has multiple versions:
1.0.21, file: \Avalonia.HtmlRenderer\packages.config
1.0.14, file: \Avalonia.HtmlRenderer\external\Source\HtmlRenderer.Pcl\packages.config
Error: package Extended.Wpf.Toolkit has multiple versions:
2.2.1, file: \Avalonia.HtmlRenderer\external\Source\Demo\WPF\packages.config
2.7, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.Basics.ExtendedWPFTookit\packages.config
2.5, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.Basics.Tester\packages.config
2.7, file: \Markup\Avalonia.Markup.Xaml\OmniXAML\TestApplications\XamlViewer\packages.config
Error: package xunit.core has multiple versions:
2.1.0-beta1-build2945, file: \Avalonia.ReactiveUI\src\PerfConsoleRunner\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.ChangeTracking.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.Core.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.Imaging.Recognition.LeadTools.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.Imaging.Recognition.MessagingToolkit.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.Imaging.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.LeadTools.Recognition.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\glass\Glass.Ocr.Tesseract.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\OmniXAML\Source\OmniXaml.Services.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\OmniXAML\Source\OmniXaml.Tests\packages.config
2.1.0, file: \Markup\Avalonia.Markup.Xaml\OmniXAML\Source\OmniXaml.Wpf.Tests\packages.config
Error: package Xamarin.Android.Support.v4 has multiple versions:
19.0.2, file: \Avalonia.ReactiveUI\src\Playground-XamForms.Android\packages.config
22.1.1.1, file: \Avalonia.ReactiveUI\src\ReactiveUI.AndroidSupport\packages.config
Nikita Tsukanov
@kekekeks
Aug 25 2016 20:39
Argh
Well let's get it fixed on master branch
Nikita Tsukanov
@kekekeks
Aug 25 2016 20:45
nuget manager is awfully slow BTW
Nikita Tsukanov
@kekekeks
Aug 25 2016 21:06
BTW, you should ignore \Markup\Avalonia.Markup.Xaml\OmniXAML\Source\OmniXaml\packages.config and \Markup\Avalonia.Markup.Xaml\OmniXAML\Source\OmniXaml.Tests\packages.config
They aren't in solution
It's just a directory in submodule
Nevermind
It's nice to sync package versions for these deps
\Avalonia.HtmlRenderer\external\Source\Demo\WPF\packages.config - this one should definitely be ignored
\Avalonia.ReactiveUI\src\PerfConsoleRunner\packages.config this one too
Well, let's ignore everything from submodules
Nikita Tsukanov
@kekekeks
Aug 25 2016 21:12
You can read submodule list from .git/config or by running git submodule
@wieslawsoltes
I've also synchronized package versions in master branch
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 21:14
ok
working on the ignoring
Nikita Tsukanov
@kekekeks
Aug 25 2016 22:14
Well, it would also really nice to have nuget dependency list autodetect, but that might be the task for the future
Nikita Tsukanov
@kekekeks
Aug 25 2016 22:14
For now I think we should merge it
Nikita Tsukanov
@kekekeks
Aug 25 2016 22:28
Error: package Microsoft.Bcl.Build has multiple versions installed:
1.0.21, file: src\Avalonia.HtmlRenderer\packages.config
1.0.14, file: src\Avalonia.HtmlRenderer\external\Source\HtmlRenderer.Pcl\packages.config
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 22:28
thats my fault, sorry
Nikita Tsukanov
@kekekeks
Aug 25 2016 22:28
I'm sure that src\Avalonia.HtmlRenderer\external is a submodule
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 22:45
@kekekeks Fixed all issues.
Nikita Tsukanov
@kekekeks
Aug 25 2016 22:46
@jkoritzinsky Please, see #703
It makes basic runtime services (aka IPclPlatformWrapper) to be available right after AppBuilder instance creation
@wieslawsoltes awesome
Merged
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 22:48
:)
Nikita Tsukanov
@kekekeks
Aug 25 2016 22:49
BTW, splitting AppBuilder allows different runtimes to have different method sets
e. g. there is no point of UsePlatformDetect for iOS/Android
There even no point in UseXXX methods
AppBuilder implementation for these platforms should setup everything automatically (but still allow to redefine if one wants that)
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 22:52
@kekekeks This needs to be setup https://github.com/AvaloniaUI/Avalonia/blob/master/appveyor.yml#L8 either in appveyor.yml or in appveyor project Settings in order to get NuGet publishing working.
Nikita Tsukanov
@kekekeks
Aug 25 2016 22:56
I'm afraid that I no longer have nuget package ownership
since that rename thing
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 22:57
ok
Nikita Tsukanov
@kekekeks
Aug 25 2016 23:03
I've registered avaloniaui nuget account and added it's key to the repo
Now waiting for @grokys to add package permissions
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 23:08
great
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 23:22
@kekekeks There seems to be issue with myget key, previously env.variable myget_key was used, but renamed to follow naming convetion, but key is same as before
Nikita Tsukanov
@kekekeks
Aug 25 2016 23:24
Well, I don't have access to that myget repo
Again, after that rename thing
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 23:24
can you access secure key in appveyor setting ?
Nikita Tsukanov
@kekekeks
Aug 25 2016 23:25
It doesn't show me the key, it's masked
*********
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 23:25
you can use export yml
Nikita Tsukanov
@kekekeks
Aug 25 2016 23:25
Hm
secure: OtVfyN3ErqQrDTnWH2HDfJDlCiu/i4/X4wFmK3ZXXP7HmCiXYPSbTjMPwwdOxRaK
Nikita Tsukanov
@kekekeks
Aug 25 2016 23:37
Seems to work now
Wiesław Šoltés
@wieslawsoltes
Aug 25 2016 23:37
we need to bump version
Nikita Tsukanov
@kekekeks
Aug 25 2016 23:38
4.0.1?
0.4.1
this was used before in appveyor and myget
Nikita Tsukanov
@kekekeks
Aug 25 2016 23:38
AvaloniaUI/Avalonia@11703d1