text:
Static Web App Deployment issue

@FBoucher when i try to create a static web app and Deploy TinyBlazorAdmin (the Frontend) the build fails and i am getting the error

Is there a  way to resolve the issue.?

I think I have the same issue. I don't get why the compiler has trouble finding System.Text.Encodings.Web (5.0.0).
Could it be because the refered assembly is strongly typed to 5.0.0 and the .NET 5 version installed is 5.0.100 ?
---Oryx build logs---

Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
You can report issues at https://github.com/Microsoft/Oryx/issues

Oryx Version: 0.2.20201112.1, Commit: a120bb248aa8d208ca5e02d7d9d075196e79cffd, ReleaseTagName: 20201112.1

Build Operation ID: |431yFGCCE8s=.e7c3995f_
Repository Commit : f0e2c66be628210ed1fd1330756a749a7fd946a6

Detecting platforms...
Detected following platforms:
  dotnet: 5.0.0
Version '5.0.0' of platform 'dotnet' is not installed. Generating script to install it...

Source directory     : /github/workspace/src/TinyBlazorAdmin
Destination directory: /bin/staticsites/ss-oryx/app

Downloading and extracting 'dotnet' version '5.0.100' to '/tmp/oryx/platforms/dotnet/5.0.100'...
Downloaded in 2 sec(s).
Verifying checksum...
Extracting contents...
Done in 7 sec(s).

Using .NET Core SDK Version: 5.0.100

Welcome to .NET 5.0!
---------------------
SDK Version: 5.0.100

Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only).
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
  Determining projects to restore...
  Restored /github/workspace/src/TinyBlazorAdmin/TinyBlazorAdmin.csproj (in 2.59 sec).

Publishing to directory /bin/staticsites/ss-oryx/app...

Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  Fatal error in Mono IL Linker
/var/nuget/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : Unhandled exception. Mono.Linker.Steps.XmlResolutionException: Failed to process XML description: <unspecified> [/github/workspace/src/TinyBlazorAdmin/TinyBlazorAdmin.csproj]
   ---> Mono.Cecil.AssemblyResolutionException: **Failed to resolve assembly: 'System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'**
   ---> System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
     at Mono.Collections.Generic.Collection`1.get_Item(Int32 index)
     at Mono.Cecil.BaseAssemblyResolver.GetAssemblyInNetGac(AssemblyNameReference reference, ReaderParameters parameters)
     at Mono.Cecil.BaseAssemblyResolver.GetAssemblyInGac(AssemblyNameReference reference, ReaderParameters parameters)
     at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
     at Mono.Linker.AssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
     at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
     at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
     at Mono.Linker.LinkContext.ResolveReferences(AssemblyDefinition assembly)
     at Mono.Linker.Steps.ResolveFromXmlStep.ProcessAssemblies(LinkContext context, XPathNodeIterator iterator)
     at Mono.Linker.Steps.ResolveFromXmlStep.Process()
     --- End of inner exception stack trace ---
     at Mono.Linker.Steps.ResolveFromXmlStep.Process()
     at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
     at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
     at Mono.Linker.Pipeline.Process(LinkContext context)
     at Mono.Linker.Driver.Run(ILogger customLogger)
     at Mono.Linker.Driver.Execute(String[] args, ILogger customLogger)
     at Mono.Linker.Driver.Main(String[] args)
/var/nuget/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : ILLink failed with exit code 134. [/github/workspace/src/TinyBlazorAdmin/TinyBlazorAdmin.csproj]

---End of Oryx build logs---

I think I have the same issue. I don't get why the compiler has trouble finding System.Text.Encodings.Web (5.0.0).
Could it be because the refered assembly is strongly typed to 5.0.0 and the .NET 5 version installed is 5.0.100 ?
---Oryx build logs---

Operation performed by Microsoft Oryx, https://github.com/Microsoft/Oryx
You can report issues at https://github.com/Microsoft/Oryx/issues

Oryx Version: 0.2.20201112.1, Commit: a120bb248aa8d208ca5e02d7d9d075196e79cffd, ReleaseTagName: 20201112.1

Build Operation ID: |431yFGCCE8s=.e7c3995f_
Repository Commit : f0e2c66be628210ed1fd1330756a749a7fd946a6

Detecting platforms...
Detected following platforms:
  dotnet: 5.0.0
Version '5.0.0' of platform 'dotnet' is not installed. Generating script to install it...

Source directory     : /github/workspace/src/TinyBlazorAdmin
Destination directory: /bin/staticsites/ss-oryx/app

Downloading and extracting 'dotnet' version '5.0.100' to '/tmp/oryx/platforms/dotnet/5.0.100'...
Downloaded in 2 sec(s).
Verifying checksum...
Extracting contents...
Done in 7 sec(s).

Using .NET Core SDK Version: 5.0.100

Welcome to .NET 5.0!
---------------------
SDK Version: 5.0.100

Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. It is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry

----------------
Installed an ASP.NET Core HTTPS development certificate.
To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only).
Learn about HTTPS: https://aka.ms/dotnet-https
----------------
Write your first app: https://aka.ms/dotnet-hello-world
Find out what's new: https://aka.ms/dotnet-whats-new
Explore documentation: https://aka.ms/dotnet-docs
Report issues and find source on GitHub: https://github.com/dotnet/core
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
--------------------------------------------------------------------------------------
  Determining projects to restore...
  Restored /github/workspace/src/TinyBlazorAdmin/TinyBlazorAdmin.csproj (in 2.59 sec).

Publishing to directory /bin/staticsites/ss-oryx/app...

Microsoft (R) Build Engine version 16.8.0+126527ff1 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  Fatal error in Mono IL Linker
/var/nuget/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : Unhandled exception. Mono.Linker.Steps.XmlResolutionException: Failed to process XML description: <unspecified> [/github/workspace/src/TinyBlazorAdmin/TinyBlazorAdmin.csproj]
   ---> Mono.Cecil.AssemblyResolutionException: **Failed to resolve assembly: 'System.Text.Encodings.Web, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'**
   ---> System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
     at Mono.Collections.Generic.Collection`1.get_Item(Int32 index)
     at Mono.Cecil.BaseAssemblyResolver.GetAssemblyInNetGac(AssemblyNameReference reference, ReaderParameters parameters)
     at Mono.Cecil.BaseAssemblyResolver.GetAssemblyInGac(AssemblyNameReference reference, ReaderParameters parameters)
     at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
     at Mono.Linker.AssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
     at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
     at Mono.Linker.LinkContext.Resolve(IMetadataScope scope)
     at Mono.Linker.LinkContext.ResolveReferences(AssemblyDefinition assembly)
     at Mono.Linker.Steps.ResolveFromXmlStep.ProcessAssemblies(LinkContext context, XPathNodeIterator iterator)
     at Mono.Linker.Steps.ResolveFromXmlStep.Process()
     --- End of inner exception stack trace ---
     at Mono.Linker.Steps.ResolveFromXmlStep.Process()
     at Mono.Linker.Steps.BaseStep.Process(LinkContext context)
     at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step)
     at Mono.Linker.Pipeline.Process(LinkContext context)
     at Mono.Linker.Driver.Run(ILogger customLogger)
     at Mono.Linker.Driver.Execute(String[] args, ILogger customLogger)
     at Mono.Linker.Driver.Main(String[] args)
/var/nuget/microsoft.aspnetcore.components.webassembly.build/3.2.1/targets/Blazor.MonoRuntime.targets(326,5): error : ILLink failed with exit code 134. [/github/workspace/src/TinyBlazorAdmin/TinyBlazorAdmin.csproj]

---End of Oryx build logs---

After some tinkering I was able to make it work by reverting the project to netstandard2.1 instead of net5.0.
.NET 5 looks fun but it seems Oryx is not ready for it just yet.
Here's what my TinyBlazorAdmin.csproj file looks like:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview3.20168.3" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.1" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.Authentication.WebAssembly.Msal" Version="3.2.1" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.0-preview.4.20251.6" />
    <PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0-preview.3.20215.2" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="System.Net.Http.Json" Version="3.2.1" />
  </ItemGroup>

</Project>

After some tinkering I was able to make it work by reverting the project to netstandard2.1 instead of net5.0.
.NET 5 looks fun but it seems Oryx is not ready for it just yet.
Here's what my TinyBlazorAdmin.csproj file looks like:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview3.20168.3" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="3.2.1" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="3.2.1" PrivateAssets="all" />
    <PackageReference Include="Microsoft.Authentication.WebAssembly.Msal" Version="3.2.1" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.0-preview.4.20251.6" />
    <PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0-preview.3.20215.2" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="System.Net.Http.Json" Version="3.2.1" />
  </ItemGroup>

</Project>

the version for dependencies are fixed with PR #46

authors: FBoucher parvam6 scarpentier

repo: FBoucher/TinyBlazorAdmin


text:
Add variable to toggle skipping dot text

Adds a variable which toggles the dot screen loading skip. Closes #7
By hooking ChangeLevel and intercepting PlayerManager.Action, this PR also prevents the game from entering the dot loading screen at all (when the variable is true), rather than showing it for one frame when taking little or big warp gates. It subsequently fixes a bug where taking a little or big warp gate would cause the ambient noise of that dot loading screen to be present until the game is closed - apparently that sound doesn't get turned off by setting GameManager.DotLoading to false.

I believe this PR still has a bug involving taking little/big warp gates, the music that was previously playing can persist after loading the next level. Or maybe it's when combined with warp/load commands. Not sure, will look into it sometime later

I think background songs can't fade out and unload themselves until they finish fading in (which typically takes a few seconds), meaning if the song changes before the song completely fades in, it will get stuck playing.

Oh yeah forgor to update here. Basically what Jenna said, I don't think this PR is the cause of that music bug since I did some testing and got it to happen with just warps/loads as I suspected. It having to do with fade in makes sense to me

source: gharchive/pull-request

repo: FEZModding/FEZUG

license: MIT

license_type: permissive

license_source: github-api


text:
能不能新增个功能查看某个 App 的 fir 最新版本?

我们现在是某个功能做了会打一个包然后上传测试，但是版本号相同会把之前的覆盖，我想得到 fir 上最新的版本然后就可以 +1 ，就不会覆盖了。

哪里？我没有在 fir-cli 里面找到

他不在 fir-cli 里  是在 open-api 里    你可以自行实现   有时间我把它也加到cli里把  😄

😢 open-api 在哪里啊，我找了一圈没找到。

找到了

https://fir.im/docs/version_detection

source: gharchive/issue

repo: FIRHQ/fir-cli

license: mit

license_source: bigquery


text:
调用合约方法使用extcodesize(addr)没有效果

描述错误
使用extcodesize(addr)判断是否为合约地址，传入外部地址size也返回大于0
复制

这是由于3.0版本在分布式架构下，单个EVM很难查询其他机器上EVM的合约代码大小，这个opcode会一直返回1，这个问题我们正在研究解决，也欢迎提出好的建议

Fixed in v3.1.0

repo: FISCO-BCOS/FISCO-BCOS


text:
Added Multi Sprite linking to FunkinSprite.hx (v2)

I coded in a way to link FunkinSprites together.
Can be used to link 2 or more sprite-sheets together. <- The main reason I coded this in.
It also adds sprite tags technically, which aren't really helpful if used outside linking.
:D
Usage Example:

Create two sprites, each with different animations.
Link sprite two to sprite one ( sprite1.addLinkedSprite(sprite2, true, "spriteTag"); )
Play anim on sprite one
Anim does not exist in sprite one, but does exist on linked sprite (sprite two)
Anim plays on linked sprite (Can hide parent sprite if chosen, on by default)
Yipeee.

Could you show some examples of this?

I would recommend that you check this out https://github.com/HaxeFlixel/flixel-addons/blob/dev/flixel/addons/display/FlxNestedSprite.hx, It might be better to make a FunkinNestedSprite or something

I would recommend that you check this out https://github.com/HaxeFlixel/flixel-addons/blob/dev/flixel/addons/display/FlxNestedSprite.hx, It might be better to make a FunkinNestedSprite or something

🤔 very interesting

repo: FNF-CNE-Devs/CodenameEngine


text:
DICOM labelmaps support

Binary demo dataset from Andreii

https://github.com/kig/bitview.js/blob/master/bitview.js

We have some demos in the oven...

repo: FNNDSC/vjs


text:
Disable IP logging when the demo module is enabled

As the tin says. Should close https://github.com/FOSSBilling/demo/issues/1

So, the tests work correctly when I tested them locally. I am not sure why they are failing here

I've also taken a look and can't spot any obvious logical reason why the test is failing. Strange.

We should at least disable the broken tests. As it will now fail every other test in the future

authors: BelleNottelling John-S4 jaapmarcus

repo: FOSSBilling/FOSSBilling


text:
Display data in a grid/table

A feature request. Would be nice to be able key/value pairs (and similar data) in columns with fixed width depending on the content.

This functionality is already being thought of, but requires other implementations to meet different scenarios. Could you make it clearer how you would like it to work?

Depicted is my example of how I manually do a "table". The configuration section has labels and values. I use PadLeft to align the labels with the values.
In PromptPlus, such a table could have ASCII border support, alignment options, and have more than 2 columns.

The first idea for the new control:
    ///
    /// Represents the interface with all Methods of the Grid control
    ///
    public interface IControlGrid<T> : IPromptControls<T> where T : class
    {
        ///
        /// Custom config the control.
        ///
        /// <param name="context">action to apply changes. <see cref="IPromptConfig"/></param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> Config(Action<IPromptConfig> context);

        ///
        /// Default value selected.
        ///
        /// <param name="value">Value default</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> Default(T value);

        ///
        /// Overwrite defaults start selected value with last result saved on history.
        ///
        /// <param name="value">name of file to save history</param>
        /// <param name="timeout">The timeout for valid items saved. Default value is 365 days</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> OverwriteDefaultFrom(string value, TimeSpan? timeout = null);

        ///
        /// <see cref="CultureInfo"/> to on show value format.
        ///
        /// <param name="value">CultureInfo to use</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> Culture(CultureInfo value);

        ///
        /// <see cref="CultureInfo"/> to show value format.
        ///
Default value is global Promptplus Cultureinfo

        ///
        /// <param name="value">Name of CultureInfo to use</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> Culture(string value);

        ///
        /// Execute a action foreach item of colletion passed as a parameter
        ///
        /// <typeparam name="T1">Layout external colletion</typeparam>
        /// <param name="values">Colletion for interaction</param>
        /// <param name="action">Action to execute</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> Interaction<T1>(IEnumerable<T1> values, Action<IControlGrid<T>, T1> action);

        ///
        /// Set max.rows view per page. Default value for this control is 10.
        ///
        /// <param name="value">Number of Max.rows</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> PageSize(int value);

        ///
        /// Add item to row grid
        ///
        /// <param name="value">Item to add</param>
        /// <param name="disable">true item disabled, otherwise no</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> AddItem(T value, bool disable = false);

        ///
        /// Add items to rows grid
        ///
        /// <param name="values">items colletion to add</param>
        /// <param name="disable">true item disabled, otherwise no</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> AddItems(IEnumerable<T> values, bool disable = false);

        ///
        /// Add Items to rows grid with scope Disable/Remove <seealso cref="AdderScope"/>
        ///
At startup the list items will be compared and will be removed or disabled <see cref="AdderScope"/>

        ///
Tip: Use <seealso cref="EqualItems"/> for custom comparer

        ///
        /// <param name="scope">scope Disable/Remove</param>
        /// <param name="values">items colletion</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> AddItemsTo(AdderScope scope, params T[] values);

        ///
        /// Custom item comparator
        ///
        /// <param name="comparer">function comparator</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> EqualItems(Func<T, T, bool> comparer);

        ///
        /// Hide Symbol for current row Selected
        ///
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> HideSelector();

        ///
        /// Not Change Color for current row Selected
        ///
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> NoHighlightSelect();

        ///
        /// Sort list by expression
        ///
        /// <param name="value">expresion to sort the colletion</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> OrderBy(Expression<Func<T, object>> value);

        ///
        /// Sort Descending list by expression
        ///
        /// <param name="value">expresion to sort the colletion</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> OrderByDescending(Expression<Func<T, object>> value);

        ///
        /// Filter strategy for filter items in colletion
        ///
Default value is FilterMode.Contains

        ///
        /// <param name="value">Filter Mode</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> FilterType(FilterMode value = FilterMode.Disabled);

        ///
        /// Columns used by Filter strategy
        ///
        /// <param name="indexColumn">list (cardinality) of columns</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> FilterByColumns(params byte[] indexColumn);

        ///
        /// Set Title Grid
        ///
        /// <param name="value">Title</param>
        /// <param name="alignment">alignment title</param>
        /// <param name="gridTitleMode">InLine: Write the title above the grid. InRow : Write the titleinside the grid as a row</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> Title(string value, Alignment alignment = Alignment.Center, ShowGridTitleMode gridTitleMode = ShowGridTitleMode.InLine);

        ///
        /// Add Column
        ///
        /// <param name="field">Expression that defines the field associated with the column</param>
        /// <param name="MinWidth">Minimum column width</param>
        /// <param name="MaxWidth">Maximum column width</param>
        /// <param name="textcrop">If true the value will be truncated by the maximum size, otherwise an extra new line will be created</param>
        /// <param name="funcfomatType">Function to format the field.If not informed, it will be ToString()</param>
        /// <returns></returns>
        IControlGrid<T> AddColumn(Expression<Func<T, object>> field, byte MinWidth, byte? MaxWidth, bool textcrop = false, Func<object, string> funcfomatType = null);

        ///
        /// Add Column Title
        ///
        /// <param name="value">The Column title</param>
        /// <param name="alignment">alignment title</param>
        /// <returns></returns>
        IControlGrid<T> AddColumnTitle(string value, Alignment alignment = Alignment.Center);

        ///
        /// Add extra row with merger columns
        ///
        /// <param name="value">The merge Column title</param>
        /// <param name="alignment">alignment title</param>
        /// <param name="startColumn">start column</param>
        /// <param name="endcolumn">Final column</param>
        /// <returns></returns>
        IControlGrid<T> MergeColumnTitle(string value, byte startColumn, byte endcolumn, Alignment alignment = Alignment.Center);

        ///
        /// Add separator between rows
        ///
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> AddRowSeparate();

        ///
        /// Set the grid to have the current console width
        ///
        /// <param name="indexColumn">list (cardinality) of columns that will be affected</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> AutoFit(params byte[] indexColumn);

        ///
        /// Global function to format columns by field type when not specified by 'AddColumn'.
        ///
        /// <typeparam name="T1">Type of field</typeparam>
        /// <param name="funcfomatType">The funcion</param>
        /// <returns><see cref="IControlGrid{T}"/></returns>
        IControlGrid<T> AddFormatType<T1>(Func<T1, string> funcfomatType);

        ///
        /// Wait Select row with [enter].Default not wait (only display all rows)
        ///
        /// <returns></returns>
        IControlGrid<T> EnabledInteractionUser();

    }

Incredible, you're a fast worker.

@ividyon,  You can now enjoy a preview version of "Table Control" by downloading the 'GridControl' branch and reproducing the 'Samples /TableBasicSamples' project

@ividyon ,  I finished the first version of the Table control. It should still validate some items, but I don't plan on adding more features to this control. Feel free to test and suggest changes. You can now enjoy a preview version of "Table Control" by downloading the 'GridControl' branch and play the 'Samples /TableSamples' project.
    ///<inheritdoc cref="IPromptControls{T}"/>
    ///
    /// Represents the interface with all Methods of the Table control
    ///
    public interface IControlTable<T> : IPromptControls<ResultTable<T>> where T : class
    {
        ///
        /// Custom config the control.
        ///
        /// <param name="context">action to apply changes. <see cref="IPromptConfig"/></param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> Config(Action<IPromptConfig> context);

        ///
        /// Default value selected.
        ///
        /// <param name="value">Value default</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> Default(T value);

        ///
        /// Overwrite defaults start selected value with last result saved on history.
        ///
        /// <param name="value">name of file to save history</param>
        /// <param name="timeout">The timeout for valid items saved. Default value is 365 days</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> OverwriteDefaultFrom(string value, TimeSpan? timeout = null);

        ///
        /// Execute a action foreach item of colletion passed as a parameter
        ///
        /// <typeparam name="T1">Layout external colletion</typeparam>
        /// <param name="values">Colletion for interaction</param>
        /// <param name="action">Action to execute</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> Interaction<T1>(IEnumerable<T1> values, Action<IControlTable<T>, T1> action);

        ///
        /// Set max.item view per page.Default value for this control is 10.
        ///
        /// <param name="value">Number of Max.rows</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> PageSize(int value);

        ///
        /// Add item to row grid
        ///
        /// <param name="value">Item to add</param>
        /// <param name="disable">true item disabled, otherwise no</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> AddItem(T value, bool disable = false);

        ///
        /// Add items to rows grid
        ///
        /// <param name="values">items colletion to add</param>
        /// <param name="disable">true item disabled, otherwise no</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> AddItems(IEnumerable<T> values, bool disable = false);

        ///
        /// Add Items to rows grid with scope Disable/Remove <seealso cref="AdderScope"/>
        ///
At startup the list items will be compared and will be removed or disabled <see cref="AdderScope"/>

        ///
Tip: Use <seealso cref="EqualItems"/> for custom comparer

        ///
        /// <param name="scope">scope Disable/Remove</param>
        /// <param name="values">items colletion</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> AddItemsTo(AdderScope scope, params T[] values);

        ///
        /// Custom item comparator
        ///
        /// <param name="comparer">function comparator</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> EqualItems(Func<T, T, bool> comparer);

        ///
        /// Sort rows by expression
        ///
        /// <param name="value">expresion to sort the rows</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> OrderBy(Expression<Func<T, object>> value);

        ///
        /// Sort Descending rows by expression
        ///
        /// <param name="value">expresion to sort the rows</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> OrderByDescending(Expression<Func<T, object>> value);

        ///
        /// Set Columns used by Filter strategy
        ///
        /// <param name="filter">Filter strategy for filter rows</param>
        /// <param name="indexColumn">list (cardinality) of columns</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> FilterByColumns(FilterMode filter = FilterMode.Contains,params ushort[] indexColumn);

        ///
        /// The Table layout. Default value is 'TableLayout.SingleGridFull'
        ///
        /// <param name="value">The <see cref="TableLayout"/></param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> Layout(TableLayout value);

        ///
        /// Dynamically change the description using a user role
        ///
        /// <param name="value">
        /// function to apply change
        ///
Func(T, int, int, string) = T = item, int = current row (base0) , int = current col (base0)

        /// </param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> ChangeDescription(Func<T, int, int, string> value);

        ///
        /// Styles for Table elements
        ///
        /// <param name="styletype"><see cref="TableStyle"/> of content</param>
        /// <param name="value">The <see cref="Style"/></param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> Styles(TableStyle styletype, Style value);

        ///
        /// Set Title Table
        ///
        /// <param name="value">Title</param>
        /// <param name="alignment">alignment title</param>
        /// <param name="titleMode">InLine: Write the title above the grid. InRow : Write the title inside the grid as a row</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> Title(string value, Alignment alignment = Alignment.Center, TableTitleMode titleMode = TableTitleMode.InLine);

        ///
        /// Add Column
        ///
AddColumn cannot be run with AutoFill

        ///
        /// <param name="field">Expression that defines the field associated with the column</param>
        /// <param name="width">column size</param>
        /// <param name="format">Function to format the field.If not informed, it will be ToString()</param>
        /// <param name="alignment">alignment content</param>
        /// <param name="title">The Column title</param>
        /// <param name="titlealignment">alignment title</param>
        /// <param name="titlereplaceswidth">title width overrides column width when greater</param>
        /// <param name="textcrop">If true the value will be truncated by the column size, otherwise, the content will be written in several lines</param>
        /// <param name="maxslidinglines">Maximum Sliding Lines when the content length is greater than the column size and textcrop = false.</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> AddColumn(Expression < Func<T, object>> field, ushort width, Func<object, string> format = null,Alignment alignment = Alignment.Left, string? title = null, Alignment titlealignment = Alignment.Center,bool titlereplaceswidth = true, bool textcrop = false, ushort? maxslidinglines = null);

        ///
        ///  Auto generate Columns
        ///
AutoFill cannot be run with AddColumn and AutoFit

        ///
Header alignment will always be 'Center'

        ///
The content alignment will always be 'Left' and will always be with sliding lines

        ///
Columns are generated by the public properties of the data class recognized by <see cref="TypeCode"/>.

        ///
TypeCode.DBNull and TypeCode.Object will be ignored.

        ///
The column size will be automatically adjusted by the title size (Name property) and the minmaxwidth parameter or content width when min/max width is null

        ///
        /// <param name="minmaxwidth">minimum and maximum width</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> AutoFill(params ushort?[] minmaxwidth);

        ///
        /// Set separator between rows. Default false.
        ///
        /// <param name="value">separator between rows</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> SeparatorRows(bool value = true);

        ///
        /// Hide columns headers. Default false.
        ///
        /// <param name="value">Hide headers</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> HideHeaders(bool value = true);

        ///
        /// Hide selector row. Default false.
        ///
        /// <param name="value">Hide selector row</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> HideSelectorRow(bool value = true);

        ///
        /// Set the grid to auto-resize to current console width
        ///
AutoFit cannot be run with AutoFill

        ///
        /// <param name="indexColumn">
        /// List (cardinality) of columns that will be affected.
        ///
If none all columns that will be affected

        /// </param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> AutoFit(params ushort[] indexColumn);

        ///
        /// Global function to format columns by field type when not specified by 'AddColumn'.
        ///
        /// <typeparam name="T1">Type to convert</typeparam>
        /// <param name="funcfomatType">The function</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> AddFormatType<T1>(Func<object,string> funcfomatType);

        ///
        /// Wait Select row with [enter].Default not wait (only display Table)
        ///
        /// <param name="selectedTemplate">
        /// message template function when selected item.
        ///
Func(T, int, int, string) = T = item, int = current row (base0) , int = current col (base0)

        /// </param>
        /// <param name="finishTemplate">
        /// message template function when finish control with seleted item
        ///
Func(T, int, int, string) = T = item, int = current row (base0) , int = current col (base0)

        /// </param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> UserInteraction(Func<T, int, int, string> selectedTemplate = null, Func<T, int, int, string> finishTemplate = null);

        ///
        /// Preserve table at end (user interaction). Default is false.
        ///
        /// <param name="value">Preserve table at end</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> PreserveTable(bool value = true);

        ///
        /// Enable Columns Navigation. Default false.
        ///
When the column size is greater than the screen size, the content will be truncated

        ///
        /// <param name="value">Enable Columns Navigation</param>
        /// <returns><see cref="IControlTable{T}"/></returns>
        IControlTable<T> ColumnsNavigation(bool value = true);

    }

authors: FRACerqueira ividyon

repo: FRACerqueira/PromptPlus


text:
Implementing online-softmax

I'm opening this issue in this project to facilitate communication; I need clarification on certain doubts.
@ggerganov Could you take a quick look at my code in flash-matrix.cu where I've implemented a kernel that parallelizes along the sequence (increasing occupancy and reducing the tail effect) for a query batch size of 1 (inference), with a head_dim of 128, which is particularly problematic for improving performance with very small batch sizes. I've already implemented (QK^T*scale+mask)V and it works very well for lengths up to 16K.
However, implementing softmax is proving to be very difficult for me (I can't seem to find a way to implement it). Perhaps you, who have tinkered with creating the kernel and have a better understanding of the FA 2.0 paper, can guide me a bit.

I cloned and ran the repo, but it looks like the CUDA kernel produces just 0s:

$ ▶ bash run.sh
src/flash-matrix.cu(320): warning #177-D: variable "warp_buffer" was declared but never referenced
      float* warp_buffer = (float*)(shmem + tensor_elements*sizeof(half) + (kv_size/reduce_block + 2) * sizeof(float) + warp_index*(tensor_elements + 2)*sizeof(float));
             ^

Remark: The warnings can be suppressed with "-diag-suppress <warning-number>"

src/cuda_info.h: In function ‘void print_cuda_info()’:
src/cuda_info.h:40:8: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘size_t’ {aka ‘long unsigned int’} [-Wformat=]
   40 |             printf("Max Shared Memory Per MP: %d\n", deviceProp.sharedMemPerMultiprocessor);
      |        ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                                     |
      |                                                     size_t {aka long unsigned int}
Device Count: 1

GPU Information 0:
Name: NVIDIA GeForce RTX 2060 SUPER
Architecture: 7.5
Number of SMs: 34
L2 Cache size: 4194304 bytes
VRAM: 7971 MB
Max Threads per Block: 1024
Max Register Per Block: 65536
Max Shared Memory Per Block: 49152
Max Blocks Per MP: 16
Max Threads Per MP: 1024
Max Register Per MP: 65536
Max Shared Memory Per MP: 65536
Max Grid Size: (2147483647, 65535, 65535)
Max Block Size: (1024, 1024, 64)

M= 1.8393, S=407.8494
M= 2.0483, S=335.9495
M= 1.6821, S=483.4723
M= 1.8194, S=416.5851
M= 1.6709, S=485.1035
M= 1.9016, S=388.8950
M= 1.8026, S=427.3427
M= 1.7276, S=456.1953
M= 1.7920, S=441.3259
M= 2.0294, S=342.5456
M= 1.7775, S=435.9819
M= 2.0669, S=324.5927
M= 1.6992, S=476.6263
M= 1.7908, S=437.2062
M= 2.0039, S=349.1781
M= 1.8033, S=428.0863
M= 1.9781, S=356.0716
M= 1.9747, S=357.9479
M= 1.8237, S=414.7466
M= 2.0712, S=326.3984
M= 1.7997, S=431.9955
M= 2.0420, S=339.2790
M= 2.1695, S=295.2199
M= 1.9372, S=373.4118
M= 2.0962, S=319.4227
M= 1.8040, S=426.7111
M= 1.5584, S=543.4086
M= 2.1283, S=310.8639
M= 1.7439, S=450.5404
M= 2.0426, S=335.2083
M= 1.6806, S=473.5671
M= 1.9723, S=365.3445
---------------- QKV ------------------
-0.01777f, -0.01389f, -0.01455f, -0.03189f, -0.00678f, 0.00009f, 0.01625f, 0.04121f, 0.01610f, -0.00425f, -0.02576f, -0.00738f, -0.00771f, 0.01742f, 0.00726f, 0.03700f,
-0.00148f, 0.01505f, -0.01111f, -0.00342f, -0.00525f, 0.02027f, 0.01050f, 0.00946f, -0.01828f, 0.01539f, 0.01486f, -0.00015f, 0.01740f, 0.01277f, 0.00252f, -0.01090f,

Shared memory: 9.57 KB

reduce block: 16
cuda time: 0.0348 ms
R (-0.0562) CUDA(0.0000) diff: 0.0562 - head = 7, dim = 35
0.9722 -0.5815 0.6025 0.5415 0.0069 0.6006 0.6587 0.4626 [0.0494] [-0.8633] [-0.7080] [0.2666] [-0.7412] [0.0293] [0.3000] [0.7026]  = 2.2990
---------------- CUDA QKV ------------------
0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f,
0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f, 0.00000f,

Is this expected? This seems to be using the flash_attn_ext_f16 kernel

Try now, it should work like this:
Device Count: 1

GPU Information 0:
Name: NVIDIA GeForce RTX 3050 Laptop GPU
Architecture: 8.6
Number of SMs: 16
L2 Cache size: 1572864 bytes
VRAM: 4095 MB
Max Threads per Block: 1024
Max Register Per Block: 65536
Max Shared Memory Per Block: 49152
Max Blocks Per MP: 16
Max Threads Per MP: 1536
Max Register Per MP: 65536
Max Shared Memory Per MP: 102400
Max Grid Size: (2147483647, 65535, 65535)
Max Block Size: (1024, 1024, 64)

---------------- Reference ------------------
0.00752f, -0.00013f, -0.02614f, -0.02851f, 0.00029f, -0.00679f, 0.01165f, 0.00011f, -0.00125f, -0.01256f, 0.00305f, 0.01789f, -0.00508f, 0.00248f, -0.01243f, -0.01494f,
0.00310f, 0.02219f, 0.00115f, 0.01248f, -0.01541f, 0.00151f, 0.00781f, -0.01498f, -0.00929f, -0.01956f, 0.00898f, -0.01847f, 0.00419f, 0.00576f, 0.01077f, 0.01651f,

---------------- Parallel KV CUDA ------------------
0.00752f, -0.00013f, -0.02614f, -0.02852f, 0.00028f, -0.00680f, 0.01165f, 0.00012f, -0.00124f, -0.01256f, 0.00304f, 0.01790f, -0.00509f, 0.00249f, -0.01243f, -0.01495f,
0.00310f, 0.02221f, 0.00115f, 0.01248f, -0.01542f, 0.00151f, 0.00780f, -0.01499f, -0.00929f, -0.01955f, 0.00898f, -0.01847f, 0.00419f, 0.00575f, 0.01077f, 0.01651f,

cuda time: 0.5146 ms
Shared memory: 9.57 KB
R (0.0394) CUDA(0.0395) diff: 0.0000 - head = 19, dim = 80

So both parallel and non-parallel version seem to match the reference numbers. Does that mean it works correctly?

authors: FSSRepo ggerganov

repo: FSSRepo/ggml-cuda-experiments


text:
Bug in F* : Able to Make a GTot into a Tot

module Bug

type eff_tag =
  | G
  | T

let eff (t:eff_tag) (b:Type) =
  match t with
  | T -> unit -> Tot b
  | G -> unit -> GTot b

let eff_to_tot (x:eff T 'a) : Tot 'a = x ()

let gtot_to_eff #a #b (f:(x:a -> GTot (b x))) : x:a -> eff G (b x) = fun x () -> f x

val bug : #t:Type0 -> (x:Ghost.erased t) -> Tot (y:t{y == Ghost.reveal x})
let bug #t x =
  let foo #e (x:Ghost.erased t) : eff e t = (gtot_to_eff Ghost.reveal) x in
  eff_to_tot (foo x)

Thanks @jaybosamiya !
Been discussing this with @jaybosamiya @R1kM and @tahina-pro
This bug breaks the soundness of erasure and hence the soundness of extraction.
A smaller variant of it is:
let t_f = bool -> Tot bool
let t_g = bool -> GTot bool
let test (b:bool) (f:'a{'a == t_f}) (g:'b{'b == t_g}) =
  if b then f else g

What's happening is that the SMT encoding isn't distinguishing between Tot and GTot functions, in two regards:

Encodings of (a -> Tot b) and (a -> GTot b) are hash-consed to the same arrow Tm_arrow constructor in the SMT encoding. An upcoming fix distinguishes these cases by encoding the latter to an instance of Tm_ghost_arrow …

The encoding of the HasType relation for Tm_arrow includes both an introduction and an elimination rule. So, even by fixing 1 and encoding them to the distinct type constructors, it is easy for SMT to prove that HasType f (a -> Tot b) <==> HasType f (a -> GTot b).  To fix this, we consider removing the introduction rule for arrow types in the SMT encoding. And @R1kM had a nice suggestion that we might only remove this introduction rule for Tot arrows, retaining it for GTot arrows, since GTot introduction is less demanding.

Going to try this patch for regressions now.

@mtzguido @aseemr : would be great if you guys can take a look at the issue and my patch too

ha. *  Failure - There were errors in: FStar.Set.fst, FStar.PredicateExtensionality.fst, FStar.SquashProperties.fst, FStar.Map.fst, FStar.DependentMap.fst, FStar.List.Tot.Base.fst
Looking at it

Thanks Nik, I will take a look. But instead of making the encoding less precise by removing the intro, why not add the Tot and GTot info to the encoding?

This is indeed what I'm trying now in https://github.com/FStarLang/FStar/commit/0de820d5e12950343d1ab907c80f42d84c354b09
But, I'm uncovering other problems in the SMT encoding related to the encoding the types of partial applications.

Playing with this I minimized the (first part of the) bug to:
let bug1 (a:Type) = assert ((unit -> Tot a) == (unit -> GTot a))

which correctly fails after Nik's patch. I tried to see if tactics had any relevancy here, and found that this:
let bug2 (a:Type) = assert ((unit -> Tot a) == (unit -> GTot a)) by (trefl ())

succeeds (without SMT) since there's a long-standing bug in solve_c which solves Tot a =? GTot a (but not GTot a =? Tot a, probably sub-effecting caused the confusion). The fix is easy (see guido_misc / bac54f3f5c4a48b36a8e0565fa009a670096cd37). Mostly mentioning this now since I ran into a couple of regressions as well, so we fix them in one pass :).
I'll provide comments on the SMT aspect soon.

authors: aseemr jaybosamiya mtzguido nikswamy

repo: FStarLang/FStar


text:
Ascriptions block the normalizer when using strict_on_arguments

[@(strict_on_arguments [1])]
let index (#a:Type) : l:list a -> i:nat{i < length l} -> Tot a = L.index #a

let x = index ([0;1;2]) 2 // Reduces to 2
let y = index ([0;1;2] <: list int) 2 // Doesn't reduce

Thanks for the report @Kachoc , will take a look.

Fixed in master.

authors: Kachoc aseemr


text:
F* should fail when module mentioned by --verify-module flag is not present

@s-zanella  reports that "F* not warning about useless --verify-module flags, gave the impression that everything verified instantly"

Files are processed sequentially, so F* would only know that it has to fail at the very end. Still, we want that a make target running F* several times fails as early as possible.
In brief, the desired behaviour would be: warn and terminate with a non-zero exit code when there is a --verify_module M flag, but after processing all files no module M was ever found.

Fixed via f81093399b85245a4cdc01d0e14c8dbd8e76e1cb

authors: catalin-hritcu msprotz s-zanella


text:
Modular application cannot find flowless

Environment

Liberica JDK 17+35-LTS (w/JavaFX)
Gradle 7.2
Debian 10.11
IntelliJ 2021.2.3

Problem
Created a simple application that works with RichTextFX. Added a VirtualizedScrollPane, but IntelliJ reports the following problems:

Module not found: org.fxmisc.flowless
Cannot resolve symbol VirtalizedScrollPane

Is there a minimal example showing how to use Flowless + RichTextFX + JDK 17 + Gradle 7.2?
The relevant files are below.
module-info.java
module com.keenwrite.editor {
    requires javafx.controls;
    requires javafx.fxml;
    requires org.fxmisc.richtext;

    // Is this line correct? If not, what module is required?
    requires org.fxmisc.flowless;

    opens com.keenwrite.editor to javafx.fxml;
    exports com.keenwrite.editor;
}

HelloApplication.java
package com.keenwrite.editor;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import org.fxmisc.richtext.StyleClassedTextArea;

public class HelloApplication extends Application {
    @Override
    public void start(final Stage stage) {
        final var area = new StyleClassedTextArea();
        area.requestFollowCaret();
        area.setWrapText(true);

        // The IDE cannot find the class to import, despite the module being found.
        final var scrollPane = new VirualizedScrollPane(area);

        final var scene = new Scene(area, 400, 400);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(final String[] args) {
        launch();
    }
}

build.gradle
plugins {
    id 'java'
}

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    implementation 'org.fxmisc.richtext:richtextfx:0.10.7'
    implementation 'org.fxmisc.flowless:flowless:0.6.7'

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

group = 'com.keenwrite'
version = '1.0-SNAPSHOT'
description = 'editor'
java.sourceCompatibility = JavaVersion.VERSION_17

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

settings.gradle
rootProject.name = 'editor'

flowless hasn't been modularized yet.
In the meantime here's the latest flowless-0.6.7.zip version with an automatic module entry in it's manifest (just rename the zip to jar), that you can try if you wish.
Note that flowless depends on another library org.reactfx that isn't modularized either, not sure if that'll be a problem ?

authors: DaveJarvis Jugen

repo: FXMisc/Flowless


text:
NullPointerException occurs when resizing after text is changed using getTotalHeightEstimate

Here is my test code:
import javafx.application.Application;
import javafx.scene.Scene;
import org.fxmisc.richtext.CodeArea;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class Test extends Application {

	 @Override
	    public void start(Stage primaryStage) throws Exception {
	        AnchorPane root = new AnchorPane();
	        CodeArea ta = new CodeArea();
	        root.getChildren().add(ta);
	        AnchorPane.setLeftAnchor(ta, 5.0);
	        AnchorPane.setTopAnchor(ta, 5.0);
	        ta.setPrefSize(100, 100);
	        ta.setStyle("-fx-font-size:18; -fx-font-family: Arial;-fx-border-color: blue;-fx-border-width: 1 ;");
	        ta.setWrapText(true);
	        ta.textProperty().addListener(
	        	    (observable, oldvalue, newvalue) ->
	        	        resize(ta)
	        	    );
	        primaryStage.setScene(new Scene(root, 100, 150));
	        primaryStage.show();
	    }

	    private void resize(CodeArea ta){
    	    try{
    	        ta.setPrefHeight(ta.getTotalHeightEstimate());
    	    }
    	    catch (Exception e) {
    			//System.out.println(e.getMessage());
    	    	e.printStackTrace();
    		};
	    }

	    public static void main(String[] args) {
	        launch(args);
	    }
}

Exception when I just input a charater:
at org.fxmisc.flowless.Virtualized.getTotalHeightEstimate(Virtualized.java:17)
	at fx.Test.resize(Test.java:31)
	at fx.Test.lambda$0(Test.java:23)
	at org.reactfx.value.ChangeListenerWrapper.accept(Val.java:786)
	at org.reactfx.util.AbstractReducingStreamNotifications.lambda$head$0(NotificationAccumulator.java:248)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
	at org.reactfx.SuspendableBase.resume(SuspendableBase.java:64)
	at org.reactfx.CloseableOnceGuard.close(Guard.java:49)
	at org.reactfx.MultiGuard.close(Guard.java:83)
	at org.reactfx.Suspendable$1.resumeSource(Suspendable.java:118)
	at org.reactfx.Suspendable$1.suspendSource(Suspendable.java:104)
	at org.reactfx.util.NonAccumulativeStreamNotifications.lambda$head$0(NotificationAccumulator.java:134)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
	at org.reactfx.ProperEventStream.emit(ProperEventStream.java:18)
	at org.reactfx.EventStreams$3.lambda$observeInputs$0(EventStreams.java:105)
	at org.reactfx.value.ChangeListenerWrapper.accept(Val.java:786)
	at org.reactfx.util.AbstractReducingStreamNotifications.lambda$head$0(NotificationAccumulator.java:248)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:68)
	at org.reactfx.ObservableBase.notifyObservers(ObservableBase.java:57)
	at org.reactfx.value.ValBase.invalidate(ValBase.java:32)
	at org.reactfx.SuspendableBoolean.release(SuspendableBoolean.java:24)
	at org.reactfx.CloseableOnceGuard.close(Guard.java:49)
	at org.reactfx.Suspendable.suspendWhile(Suspendable.java:49)
	at org.fxmisc.richtext.model.GenericEditableStyledDocumentBase.updateMulti(GenericEditableStyledDocumentBase.java:218)
	at org.fxmisc.richtext.model.GenericEditableStyledDocumentBase.updateSingle(GenericEditableStyledDocumentBase.java:210)
	at org.reactfx.util.Tuple3.exec(Tuple3.java:43)
	at org.fxmisc.richtext.model.GenericEditableStyledDocumentBase.replace(GenericEditableStyledDocumentBase.java:145)
	at org.fxmisc.richtext.model.SimpleEditableStyledDocument.replace(SimpleEditableStyledDocument.java:10)
	at org.fxmisc.richtext.GenericStyledArea.replace(GenericStyledArea.java:1403)
	at org.fxmisc.richtext.GenericStyledArea.replaceText(GenericStyledArea.java:1390)
	at org.fxmisc.richtext.TextEditingArea.replaceText(TextEditingArea.java:396)
	at org.fxmisc.richtext.EditActions.replaceSelection(EditActions.java:179)
	at org.fxmisc.richtext.GenericStyledAreaBehavior.keyTyped(GenericStyledAreaBehavior.java:354)
	at org.fxmisc.wellbehaved.event.template.InputMapTemplate.lambda$consume$0(InputMapTemplate.java:221)
	at org.fxmisc.wellbehaved.event.template.PatternActionTemplate.lambda$null$1(InputMapTemplate.java:425)
	at java.util.Optional.map(Optional.java:215)
	at org.fxmisc.wellbehaved.event.template.PatternActionTemplate.lambda$getInputHandlerTemplateMap$2(InputMapTemplate.java:425)
	at org.fxmisc.wellbehaved.event.template.InputMapTemplate$1.lambda$null$0(InputMapTemplate.java:202)
	at org.fxmisc.wellbehaved.event.template.InputMapTemplate$2.lambda$null$0(InputMapTemplate.java:341)
	at org.fxmisc.wellbehaved.event.template.InputMapTemplate$HandlerTemplateConsumer$1.lambda$accept$0(InputMapTemplate.java:103)
	at org.fxmisc.wellbehaved.event.InputHandler.handle(InputHandler.java:50)
	at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.event.Event.fireEvent(Event.java:198)
	at javafx.scene.Scene$KeyHandler.process(Scene.java:3964)
	at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3910)
	at javafx.scene.Scene.impl_processKeyEvent(Scene.java:2040)
	at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:2501)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:217)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(GlassViewEventHandler.java:149)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(GlassViewEventHandler.java:248)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:247)
	at com.sun.glass.ui.View.handleKeyEvent(View.java:546)
	at com.sun.glass.ui.View.notifyKey(View.java:966)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$null$3(WinApplication.java:177)
	at java.lang.Thread.run(Thread.java:748)

I found the property AutoHeight. This code works fine.
package fx;

import org.fxmisc.richtext.CodeArea;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class Test extends Application {

	 @Override
	    public void start(Stage primaryStage) throws Exception {
	        AnchorPane root = new AnchorPane();
	        CodeArea ta = new CodeArea();
	        root.getChildren().add(ta);
	        AnchorPane.setLeftAnchor(ta, 5.0);
	        AnchorPane.setTopAnchor(ta, 5.0);
	        ta.replaceText("This is a sentence.");
	        ta.setStyle("-fx-font-size:18; -fx-font-family: Arial;-fx-border-color: blue;-fx-border-width: 1 ;");
	        ta.setWrapText(true);
	        ta.setAutoHeight(true);
	        primaryStage.setScene(new Scene(root, 100, 150));
	        primaryStage.show();
	    }

	    public static void main(String[] args) {
	        launch(args);
	    }
}

I found the property AutoHeight. This code works fine.
package fx;

import org.fxmisc.richtext.CodeArea;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class Test extends Application {

	 @Override
	    public void start(Stage primaryStage) throws Exception {
	        AnchorPane root = new AnchorPane();
	        CodeArea ta = new CodeArea();
	        root.getChildren().add(ta);
	        AnchorPane.setLeftAnchor(ta, 5.0);
	        AnchorPane.setTopAnchor(ta, 5.0);
	        ta.replaceText("This is a sentence.");
	        ta.setStyle("-fx-font-size:18; -fx-font-family: Arial;-fx-border-color: blue;-fx-border-width: 1 ;");
	        ta.setWrapText(true);
	        ta.setAutoHeight(true);
	        primaryStage.setScene(new Scene(root, 100, 150));
	        primaryStage.show();
	    }

	    public static void main(String[] args) {
	        launch(args);
	    }
}

repo: FXMisc/RichTextFX


text:
Enhance API

Requested endpoints:

Division recent results: /division/{id}/recentresults => returns an array containing recent results (last day?). Entries need team names, logos and the score

Division standings: /division/{id}/standings => returns an array containing the standings table. Entries need position, team name, team logo, wins, losses, map wins.

Division standings team: /division/{division}/standings/{team} => returns the standings info. Entry needs position, team name, team logo, wins, losses, map wins.

Division hero statistics: /division/{id}/herostats => returns an array containing hero participation statistics. Entries need number of picks, number of bans, number of wins.

Role data: /roles/{id} => returns the role name (tank, bruiser, etc)

Sloth hero data: /sloth/{id}/herostats => returns an array containing heroes played statistics. Entries need hero name, times played, wins.

Most of the data is already being calculated somewhere (except sloth hero data), but especially for stats and recent results this only happens in the component that renders the data. This needs to be refactored to happen in the model, so both component and API can access it.

Ha. Free for all then?  Or any particular ways desired for enhancement?  Even just a link to a chat in discord to give context could spruce this one up to be more easily actionable.

I edited the original post with more concrete requests

authors: Fabian-Sommer rogusdev

repo: Fabian-Sommer/HeroesLounge


text:
Context parameters should not be abbreviated

Context parameters such as ctx should be changed to context:
https://github.com/FabricMC/yarn/blob/bb92d40dd0f91d62569d60ac73b2438ae7c4b29d/mappings/net/minecraft/block/DoorBlock.mapping#L19-L20
Yarn conventions state that most abbreviations should be avoided. The respective class names (ItemPlacementContext, LootContext, etc.) are not abbreviated as well.

Imo ctx should only exist as lambda params, especially when in conflict with outer local var

repo: FabricMC/yarn


text:
ServerWorld: add weather and time mappings

First time contributing here. No idea if I'm doing this right or if my naming scheme is good.
Pls handle with care.

Please note, i have added time method mappings for the underlying ServerWorldProperties f671590 (#1570)


text:
Développer le front-end de l'application

[ ] Reproduire ou adapter les maquettes conçues par Djaga
[ ] Par exemple, si trois onglets faits par Djaga, se séparer les tâches entre vous

Dashboard : @Zoubir22
Page de modification des informations des utilisateurs : @TyDzZeR
Envoi d'un email pour changement du mot de passe : @djaga91 @Falsimane


text:
refact: Throw error when using FamousEngine#init in a web worker

FamousEngine#init can only be used when we have access to the global window
object. We should throw an error in that case to avoid obscure stack traces.

landed as 9fbdb36

authors: alexanderGugel michaelobriena

repo: Famous/engine


text:
Issue Farmbot#1372 Indicator circle also when hovered + test update

@RickCarlino Could you please review my test changes?

Thank you @gabrielburnworth, and sorry for that obvious mistake. Another lesson learned :+1:

repo: FarmBot/Farmbot-Web-App


text:
FastEndpoints ver 5.20.0-rc1 model binding not working

I upgraded FE to 5.20.0-rc1 yesterday. I am running .NET 8 on Ubuntu.
I have setup CRUD endpoints but when posting, the model binding is not working and there are no errors. So all string properties are shown as "" and int properties are showing 0;
Is this a known issue?

there's no such known issues.
can you attach a small repro project pls?

Created a new project and it works now

authors: dj-nitehawk wgrs

repo: FastEndpoints/FastEndpoints


text:
FastReports Free/Commerical "labeling" is confusing

Hello team,
can you update either WEB or GitHub so that it states if FastReport is FREE or COMMERCIAL and in which cases?
The website currently states that there is no free version of FastReports for .NET while GitHub says otherwise.
Also, please help answer this question here.
Thanks in advance and best of luck!

Hi,
FastReport Open Source (this repo) is free with MIT license.
And we have commercial version with enhanced features and with own site https://www.fast-report.com/en/product/fast-report-net/

This is a comparison table of our generators in WEB, which shows that Open Source is free.

authors: danijelh fediachov

repo: FastReports/FastReport


text:
Could not load file or assembly System.Runtime.CompilerServices.Unsafe

Describe the bug
There is a conflict with Unsafe DLL version, designer it's asking for 4.0.4.1, but was included 6.x. I guess the problem is FastReport.Data.MySql.dll, cause MySQL needs Unsafe to work.
To Reproduce
Steps to reproduce the behavior:

Try to run Designer.exe in a fresh Windows 10 install.
Goto Data Menu -> Add Data Source
In Data Source Wizard click on New Connection, select MySQL connection, fill in DB user and password, click on Test Connection button.

Expected behavior
MySQL connector is not working, I noticed that in commercial version MySQL vanished from connections list, so I presume you know this bug. The problem is MySQL and MariaDB are by far the most important DBMS in the world, so it's weird you don't pay attention to this bug and solve it.
Device (please complete the following information):

OS: Win 10 64b
Version 2024.2.0

I had the same error when connecting to MySQL from FastReport 2025.1, but with another component "System.Diagnostics.DiagnosticSource". I solved it by following the next steps:

Download the latest release of FastReport that works on your machine, in my case it was the 2023.3 version
Once you uncompress the .zip file, search the .dll file of the package the error tells you FastReport doesn´t find a match for "System.Diagnostics.DiagnosticSource.dll" or "System.Runtime.CompilerServices.Unsafe.dll" in your case
Copy that file to the FastReport version folder you are trying to run and replace it with the file you copied from the previous version (2023.3 -> 2025.1)
Open FastReport Designer again (2025.1) and the error should appear no more

Also, you would want to check if the "PublicKeyToken" that the error throws you appears in the file "Designer.exe.config" so you can be sure it will work. Otherwise, you could look for the .dll file in NuGet. However, I didn´t have to do it so I wouldn´t be sure if that could work. Good luck.

Hello!
Thank you for your request, I have reproduced the problem described above and started a task in our development department, expect changes in the next versions of FastReport Community Edition
Best regards,
Bogdan

authors: BogdanStegachev alfredoo0329 almendieta


text:
⚠ Avatar API Endpoint has degraded performance

In 9c4cedd, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 2828 ms

Resolved: Avatar API Endpoint performance has improved in 140d89e after 7 minutes.

repo: FearedFusionX/Ro-Status


text:
[GATTACA] Cannot use the local databases if run in the docker container.

The docker container has to mount folders in order to access files in the host system. The local database cannot therefore be accessed if in an arbitrary (unmounted) folder.
Right now, the script mounts the output and input folders. Possible solutions:

Enforce that the local database to be placed in the input folder, changing the yaml options to just take the filename (instead of the path) of the file.
Read the path from the yaml options at runtime and mount the folder dynamically. This would require that GATTACA.R be informed about this to load the file accordingly (the mounted folder in the container is different than the path outside the container, so we cannot just reuse the same path from the yaml).
Do not allow using a local database.

I suggest the compromise of option 1.

Local databases have been removed since several versions ago.

repo: Feat-FeAR/GATTACA


text:
Generate two caliko core artifacts ( one for JDK8, another for JDK7 )

Note: The distribution zip will still only contain the default / JDK8 artifact.
Doing a
mvn clean install
shows the following generated:

[jsalvo@localhost caliko]$ ls -alt caliko/target/*.jar
-rw-rw-r--. 1 jsalvo jsalvo 257519 Jun 10 19:19 caliko/target/caliko-1.3.2-javadoc.jar
-rw-rw-r--. 1 jsalvo jsalvo  83101 Jun 10 19:19 caliko/target/caliko-1.3.2-test-sources.jar
-rw-rw-r--. 1 jsalvo jsalvo 102613 Jun 10 19:19 caliko/target/caliko-1.3.2-sources.jar
-rw-rw-r--. 1 jsalvo jsalvo  76589 Jun 10 19:19 caliko/target/caliko-1.3.2-jdk7.jar
-rw-rw-r--. 1 jsalvo jsalvo  76590 Jun 10 19:19 caliko/target/caliko-1.3.2.jar
[jsalvo@localhost caliko]$ ls -alt ~/.m2/repository/au/edu/federation/caliko/caliko/1.3.2
total 612
-rw-rw-r--. 1 jsalvo jsalvo    282 Jun 10 19:19 _remote.repositories
drwxrwxr-x. 2 jsalvo jsalvo   4096 Jun 10 19:19 .
-rw-rw-r--. 1 jsalvo jsalvo 257519 Jun 10 19:19 caliko-1.3.2-javadoc.jar
-rw-rw-r--. 1 jsalvo jsalvo  76590 Jun 10 19:19 caliko-1.3.2.jar
-rw-rw-r--. 1 jsalvo jsalvo  76589 Jun 10 19:19 caliko-1.3.2-jdk7.jar
-rw-rw-r--. 1 jsalvo jsalvo 102613 Jun 10 19:19 caliko-1.3.2-sources.jar
-rw-rw-r--. 1 jsalvo jsalvo  83101 Jun 10 19:19 caliko-1.3.2-test-sources.jar
-rw-rw-r--. 1 jsalvo jsalvo   2829 Jun 10 18:23 caliko-1.3.2.pom
-rw-rw-r--. 1 jsalvo jsalvo    245 May 27 15:10 caliko-1.3.2.jar.lastUpdated
drwxrwxr-x. 6 jsalvo jsalvo   4096 May 15 23:13 ..

Great job - thanks! =D

authors: alansley jmsjr

repo: FedUni/caliko


text:
CI: unused warning should be errors.

Check the comment here: https://github.com/FedericoPonzi/Horust/pull/16#issuecomment-612814248

It might be worth a pr to https://github.com/FedericoPonzi/rust-ci as well.

repo: FedericoPonzi/Horust


text:
[FEATURE] Add close old issue bot

Description
"By incorporating a bot that automatically closes old and inactive issues, we can ensure better issue management and keep the project organized."
"The bot's ability to identify and close outdated issues will streamline the issue tracking process, allowing the project team to focus on active and relevant tasks."
"Implementing an automated closing bot will help maintain a clean and up-to-date issue tracker, improving overall project efficiency and ensuring that active issues receive proper attention."
Screenshots
No response
Additional information
No response

How are you planning to do this?

@KOMALDEWNANI there is bot i will just integrate that
and you can let me know how many days old issues it should close
usually it closes 30 days or more old issue
but it is customizable as per your need

Ok, start working on it. 30 days time is fair enough


text:
[WEB] Handling errors from server for User Authentication Flow

Current Behavior: There is no uniform behavior in dealing with server side messages during the User Authentication Flow
Expected Behavior: In every case where there may be possibility for a server side error, there should should be a red box that appears with the appropriate server side error.

Updated title to match with #372
I'll work on these 2 tickets at the same time

repo: FightPandemics/FightPandemics


text:
How to make RxList notify ReactiveViewModel?

I'm trying to hold a list of items and use it in multiple viewmodels. Currently, I could achieve this by manually notifying view models.

Currently I implement the method below to make the field notify viewmodels. A more correct solution would be implementing RxList version of ReactiveServiceMixin
  notifyChange() {     var value = _orders.value;     _orders.value = [];     _orders.value = value;   }

Oooooof, that's a big ask. But it'll probably be worth it. If I do that I will most likely get rid of the Observable-ish package and build it into stacked. When I get time I will check if I can do a quick implementation for it with the basic functionality

I will start looking at this in about 2 hours. If it's not built into Observable-ish I will the code for it and include it in stacked. Will probably fork Observable-Ish if it's open to use in that way and keep it locally as well.

I read this completely wrong haha. I see what you're asking now. There's no common interface for those classes so I'll definitely have to spend some more time on the implementation. I might get this into stacked and rebuild the functionality myself to match the requirements.

@ahmetcj4 Update to 1.5.0 and you should have the RxList functionality. To use RxList you change don't wrap your entire list like this.
RxList<List<int>>

Instead you use RxList as the list type
RxList<int>

repo: FilledStacks/stacked


text:
ArgumentException: Options.ClientId must be provided (Parameter 'ClientId')

I am getting this error
An unhandled exception occurred while processing the request.
ArgumentException: Options.ClientId must be provided (Parameter 'ClientId')
Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectOptions.Validate()
TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MethodInvoker.Invoke(object obj, IntPtr* args, BindingFlags invokeAttr)
MultiTenantException: Exception in Finbuckle.MultiTenant.Strategies.RemoteAuthenticationCallbackStrategy.GetIdentifierAsync.
Finbuckle.MultiTenant.Strategies.MultiTenantStrategyWrapper.GetIdentifierAsync(object context)
I am using dotnet core 7
I will use keycloak with multiple tenant..
using Finbuckle.MultiTenant;
using Contrato;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.IdentityModel.Logging;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Microsoft.IdentityModel.Tokens;
using System.Configuration;
using Site.Helpers;
using SiteEvento.services;
using SiteEvento.Services;
using System.Security.Claims;
using System.Security.Cryptography;
using Site;
using Microsoft.Extensions.DependencyInjection;

var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddJsonFile("appsettings.json");
builder.Services.AddControllersWithViews();
builder.Services.AddHttpContextAccessor();
builder.Services.AddControllersWithViews();
IdentityModelEventSource.ShowPII = true;

builder.Services.AddMultiTenant<TenantInfoExtendida>()
           .WithHostStrategy()
           //   .WithEFCoreStore<TenantAdminDbContext, MultiTenantInfo>()
           .WithPerTenantAuthentication()
           .WithConfigurationStore()
           .WithPerTenantOptions<CookieAuthenticationOptions>((options, tenant) =>
           {
               options.Cookie.Name = $".Auth{tenant.Id}";
           })
           .WithPerTenantOptions<OpenIdConnectOptions>((options, tenant) =>
           {
               options.Scope.Add("openid");
               options.Scope.Add("profile");

               options.SaveTokens = true;
               options.GetClaimsFromUserInfoEndpoint = true;
               options.TokenValidationParameters.NameClaimType = "name";
               options.ResponseType = OpenIdConnectResponseType.Code;

               options.Authority = tenant.OpenIdAuthority;
               options.ClientId = tenant.OpenIdClientId;
               options.ClientSecret = tenant.OpenIdClientSecret;
           });
builder.Services.AddAuthentication(options =>
{
    options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect();
var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseRouting();

app.UseMultiTenant();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

var scopeServices = app.Services.CreateScope().ServiceProvider;
var store = scopeServices.GetRequiredService<IMultiTenantStore<TenantInfoExtendida>>();
var tenants = await store.GetAllAsync();
foreach (var tenant in await store.GetAllAsync())
{
    // await using var db = new ApplicationDbContext(tenant);
    //  await db.Database.MigrateAsync();
}
app.Run();

Hi, the OpenIdConnect authentication will always validate the options. Even though you are doing per-tenant options the base options need to satisfy validation.
Take a look at this older sample, you'll see I set dummy values knowing they will be overridden:
https://github.com/Finbuckle/Finbuckle.MultiTenant/blob/a3cae0af149b13791b3083353cb24d8684b94af5/samples/ASP.NET Core 3/PerTenantAuthenticationSample/Startup.cs#L31-L36
I should add something to the docs about this. Cheers.

I dont know how logon on keycloak server like this image

The OpenID connect authority for the tenant will send them there. Did you try a “dummy” default value for the OpenID connect settings so that you wouldn’t get the validation message?

I dont know whats is wrong.. always send to https://localhost:7208/Account/Login

I don’t see anything obvious. It’s going to the login url because in your AddAuthentication you set the default scheme to cookies so any unauthorized request will redirect via cookie settings.
I recommend you try to get it working WITHOUT multitenant just to make sure these problems are not due to multitenant.  Once you get it working normally see if you still see this behavior when you add multitenant.

Andrew with your tips worked well. I would like share this solution whats worked well with keycloak. I am testing yet, but now I can logon on the server. Thanks for your help
using Finbuckle.MultiTenant;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using IdentitySample.Data;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.IdentityModel.Protocols.OpenIdConnect;
using Microsoft.IdentityModel.Tokens;
using System.Security.Claims;
using IdentitySample;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddDbContext();
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddDefaultIdentity(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores();
builder.Services.AddRazorPages();
// Add MultiTenant
builder.Services.AddAuthentication(options =>
{
//Sets cookie authentication scheme
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(cookie =>
{
//Sets the cookie name and maxage, so the cookie is invalidated.
cookie.Cookie.Name = "keycloak.cookie";
cookie.Cookie.MaxAge = TimeSpan.FromMinutes(60);
cookie.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
cookie.SlidingExpiration = true;
})
.AddOpenIdConnect(options =>
{
//Use default signin scheme
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
//Keycloak server
options.Authority = "tenant";
//Keycloak client ID
options.ClientId = "tenant";
//Keycloak client secret
options.ClientSecret = "tenant";
//Keycloak .wellknown config origin to fetch config
// options.MetadataAddress = "tenant";
////Require keycloak to use SSL
options.RequireHttpsMetadata = false;
options.GetClaimsFromUserInfoEndpoint = true;
options.Scope.Add("openid");
options.Scope.Add("profile");
//Save the token
options.SaveTokens = true;
//Token response type, will sometimes need to be changed to IdToken, depending on config.
options.ResponseType = OpenIdConnectResponseType.Code;
//SameSite is needed for Chrome/Firefox, as they will give http error 500 back, if not set to unspecified.
options.NonceCookie.SameSite = SameSiteMode.Unspecified;
options.CorrelationCookie.SameSite = SameSiteMode.Unspecified;
options.TokenValidationParameters = new TokenValidationParameters
{
NameClaimType = "name",
RoleClaimType = ClaimTypes.Role,
ValidateIssuer = true
};
});
//builder.Services.AddAuthorization(options =>
//{
//    //Create policy with more than one claim
//    options.AddPolicy("users", policy =>
//    policy.RequireAssertion(context =>
//    context.User.HasClaim(c =>
//            (c.Value == "user") || (c.Value == "admin"))));
//    //Create policy with only one claim
//    options.AddPolicy("admins", policy =>
//        policy.RequireClaim(ClaimTypes.Role, "admin"));
//    //Create a policy with a claim that doesn't exist or you are unauthorized to
//    options.AddPolicy("noaccess", policy =>
//        policy.RequireClaim(ClaimTypes.Role, "noaccess"));
//});
builder.Services.AddMultiTenant()
.WithBasePathStrategy(options => options.RebaseAspNetCorePathBase = true)
.WithConfigurationStore()
.WithRouteStrategy()
.WithPerTenantAuthentication();
var app = builder.Build();
var store = app.Services.GetRequiredService<IMultiTenantStore>();
foreach(var tenant in await store.GetAllAsync())
{
await using var db = new ApplicationDbContext(tenant);
await db.Database.MigrateAsync();
}
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseMigrationsEndPoint();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseMultiTenant();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapRazorPages();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute("default", "{tenant}/{controller=Home}/{action=Index}");
});
app.Run();

Hi, I’m glad you got it working and thanks for sharing your solution for others!

authors: AndrewTriesToCode marceloataide


text:
Specify platform specific font family & fallback font families

This change helps resolve emoji rendering issues which have been reported by several different users across platforms. I filed two "canonical" issues for this problem, but others have been reported.

On Android: https://github.com/Fintasys/emoji_picker_flutter/issues/171
On iOS: https://github.com/Fintasys/emoji_picker_flutter/issues/170

This change helps address this problem by setting a default font family on iOS, MacOS, and Android. On iOS this is 'Apple Color Emoji', and on Android it is 'NotoColorEmoji'. We also specify several common fallback emoji font families which Flutter will use if the specified font family is unavailable. This is useful in case the user specifies an unavailable font family.
On iOS this actually resolves the rendering issue for U+2639, which you can see in the description of #170. Unfortunately this change does not seem to resolve the issue on Android when I tested it in the emulator, but it may help for some configurations of Android where Flutter can access the 'NotoColorEmoji' font.
FIXED=#170
BUG=#171,#163

Thanks for the feedback and sorry for the delay on my end! Please take a look at my replies when you have a chance :)

@emesterhazy I tried to apply your suggestions in version 2.0 I'm working on. If you have time would be nice if you could check how it works for you. https://pub.dev/packages/emoji_picker_flutter/versions/2.0.0-dev.2 🙏

Cool! Looking at the version-2.0 branch, it looks like you have the fallback font family logic bug not aren't setting a platform default font. This might fix issue #170, but I am not completely sure. Did you happen to test on iOS to see if it's resolved?
As far as this full request, it seems like I should probably close it since you're making these changes in the version 2 branch. What do you think? By the way, any idea when version 2 will be published?

Hopefully soon, I'm still working on some issues with SkinTone selection in search view. But v2 is already on pub.dev as dev version and should be stable for most parts.
Setting the platform default font is an issue when you combine text + emoji (spaces become huge as example). I ended up improving the EmojiTextEditingController to just apply fallback font's on emoji glyth.
I also found that you are using NotoColorEmoji in your PR which didn't work for me, I used 'Noto Color Emoji' which then started to work with GoogleFonts. Not sure where you got your name from 🤔 But it also didn't solve the appearance on Pixel devices.

I don't remember where I got the no-spaces name NotoColorEmoji, but I remember I settled on it after seeing it used in various other places, including the official Github repo.
What do you mean it started working with Google fonts? Do you mean using the package via GoogleFonts.getFont('Noto Color Emoji')?
Regardless, if the version with spaces is working, that must be the right one to use.

I can find multiple variants in the GoogleFonts package. But I tried all variants I found as fontFamily, but none of them worked without the GoogleFonts package loading the font.
(1) fontFamily: 'NotoColorEmoji_regular',
(2) fontFamily: 'NotoColorEmoji',
(3) fontFamily: 'Noto Color Emoji'

What do you mean it started working with Google fonts? Do you mean using the package via GoogleFonts.getFont('Noto Color Emoji')?

Yes, that's what I meant

Included in version 2.0 release 👍 Thanks !

authors: Fintasys emesterhazy


text:
Glass Slabs

I've tried 3 different mods that add glass slabs, and they all have this issue. Seeing glass is  different than regular blocks by being transparent rather than opaque the glitch really looks bad.
Basically what i'm asking for is when creating the vertical slab type, on anything with glass in the name specifically(but could apply to others too such as the smooth stone slab), to see if you can invert/swap the top and side textures assigned. Otherwise what happens is the small side texture is used for a full vertical slab creating this mess.

should be fixed in 2.0.0+ so long as you blacklist that block from texture rotation.

authors: FirEmerald WHiZSTA

repo: FirEmerald/AdditionalPlacements


text:
Add a new "create-next-on-firebase" package

This package shells out to @apphosting/create, but specifies Next.js as the framework.
npm init next-on-firebase <directory>

will call
npx @apphosting/create --framework=nextjs <directory>

Looks like I'll need to update scripts/publish.js as well - @jamesdaniels any advice on that?


text:
[firebase_crashlytics] Execution failed for task ':app:uploadCrashlyticsMappingFileProductionRelease'. Host name may not be empty🐛 [PLUGIN_NAME_HERE] Your issue title here

Bug report
Describe the bug
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:uploadCrashlyticsMappingFileRelease'.

Host name may not be empty

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 7m 17s
Running Gradle task 'bundleRelease'...                            439,7s
Gradle task bundleRelease failed with exit code 1
Process finished with exit code 1
Steps to reproduce
Steps to reproduce the behavior:

I tried to produce apb file and get this error

Additional context
FirebaseSDKVersion=29.0.3
android/build.gradle
classpath 'com.android.tools.build:gradle:4.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.10'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
app/build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

Flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.0.4, on Microsoft Windows [version 10.0.19042.1466], locale fr-DZ)
[!] Android toolchain - develop for Android devices (Android SDK version 31.0.0-rc2)
! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[√] Chrome - develop for the web
[√] Android Studio (version 4.1.0)
[√] Connected device (1 available)
! Doctor found issues in 1 category.

Flutter dependencies
I used
firebase_crashlytics: ^2.4.0

@Abdeldjalil-Di-Chougui
First of all, you seem to be on very old version of stable, so I recommend to upgrade to latest stable (2.8.1) and try again.
Also, the error Host name may not be empty, indicates some kind of misconfiguration, so it doesn't seem to be related to firebase_crashlytics plugin specific. Check this similar issue and see underlying comments helps to resolve your issue, or you may also ask the same on support channels like StackOverflow.
Closing from here. If you disagree, write in comments and I'll reopen it.

Thanks @darshankawar for answering, I tried the solutions that you mentionned but it does not work for me, I am trying to upgrade to latest stable and try again.

authors: Abdeldjalil-Di-Chougui darshankawar

repo: FirebaseExtended/flutterfire


text:
upgrade tcomb-form to 0.9.20

fixes #52

 Review pull requests from community and merge into develop, and then master

Thank you tansaku.


text:
Several URL parameters in GET query break search parameter detection

The injector works fine with Google, but no longer works with DuckDuckGo. :-(
Running latest Linkding and extension version 1.3.1
And continued gratitude for this extension, I love it and tell everyone about how great it is.

Actually it's a bit weirder than that.  It's partially working.
If you got to: https://duckduckgo.com/  and search, the injector doesn't work.
But once you are on the results page, if you search again, it works as expected.

Hey @adamshand, happy to hear you are still using the extension.
I recently was made aware that DDG support was broken in 1.3.0 (in #15 and #16) and it should be fixed with 1.3.1 (which went online two days ago. Is this when your problems started?)
Unfortunately I can't reproduce your behaviour.

If you got to: https://duckduckgo.com/ and search, the injector doesn't work.

This works for me, so I will have to ask you to help me troubleshoot this a bit.
Try this:

In your browser, go to https://duckduckgo.com/
Open the Web Developer Tools by pressing F12 and go to the 'Console' Tab.
Search for a term that actually delivers results on your linkding instance
Look for any errors (shown in red) in the console by searchInjection.js (look to the right side)
If you find one, right-click on the error, choose 'Copy message' and paste it here

An error would look like this (but can be any text):
21:48:24.010 TypeError: d is null searchInjection.js:182:15

Apologies, after some more experimenting it appears that this is caused by the Chrome extension Adguard.
Bit of a weird one, but disabling Adguard definitely fixes the problem, so I'll close this ticket.
Thanks for your help. :-)

Will figure it out and post here when I figure it out.
Will leave ticket open in the mean time as a reminder if that's okay?

Okay on further investigation it doesn't appear that Adguard is the problem.
If you go to duckduckgo.com using Brave and search, DDG adds hps=1 to the URL and injector seems unable to show search results.  Hopefully the below URL doesn't work for you.
https://duckduckgo.com/?hps=1&q=dogs&ia=web
If you remove the "hps=1" from the URL, injector to work as expected.
The error message in browser console is:
linkding injector: no message and no search results
(anonymous) @ searchInjection.js:1

Thank you @adamshand for troubleshooting this further, I now know what the issue was. It should be fixed now in the new v1.3.2 (you can check it out immediately with Firefox, Chrome-based browsers will update a bit later).
In case it's not fixed, do reopen though of course!

@Fivefold Sorry to necro this issue but i noticed that in version 1.3.4 with duckduckgo the injector is not working.

linkding injector: no message and no search results searchInjection.js:150:12     <anónimo> searchInjection.js:150
I did try with google and it works as expected.

I just tested and 1.3.4 seems to be working fine for me on DDG?

@GulyFMG I don't mind the necro, but if duckduckgo support actually broke it should be tracked in a separate issue. Please continue the discussion in #25

authors: Fivefold GulyFMG adamshand

repo: Fivefold/linkding-injector


text:
GetAllTopLevelWindows takes forever

Describe the bug
GetAllTopLevelWindows sometimes takes many seconds to complete, blocking process of the app.
I have also tried:
Automation.GetDesktop().FindAllChildren();
Automation.GetDesktop().FindAllChildren(cf => cf.ByProcessId(App.ProcessId));
Automation.GetDesktop().FindAllChildren(cf => cf.ByControlType(ControlType.Window));

They all timeout.
Code snippets
App.GetAllTopLevelWindows(Automation)

Additional context
Using UIA3. Caching is not enabled. When I browse to the dependency used in Visual Studio it is:
#region Assembly Interop.UIAutomationClient, Version=10.0.19041.0, Culture=neutral, PublicKeyToken=null
// ..\.nuget\packages\interop.uiautomationclient\10.19041.0\lib\netstandard2.0\Interop.UIAutomationClient.dll
// Decompiled with ICSharpCode.Decompiler 7.1.0.6543
#endregion

Yes, it's in the NativeElement.FindAllBuildCache call called from UIA3FrameworkAutomationElement.FindAll:

Same here. The instruction blocks the process. Sometimes takes seconds and sometimes minutes. Here is the call stack:

authors: aristotelos sancanella

repo: FlaUI/FlaUI


text:
New Organisation permission "Can add and remove new users"

Our use case:
We have organization admins that can move add users to groups which can access and change our production environments. However, these admins, by default, can also change the production environments (ie, create flag, change values, etc).
We want to restrict organization admins (or create a new set of permissions) that will allow users to be able to add users to groups, but cannot change production environments. The reason is we've had admins accidentally change a value in production before, so we just want another safeguard around that.
Our admins are usually also developers so they will change flags in their environment to test things, but sometimes they're in the production environment without realizing they are.

Suggest  a new permission "Can add and remove new users" that operates at the Organisation level.

@kyle-ssg the linked PR above adds the following permissions at the organisation level:
MANAGE_USERS and MANAGE_USER_GROUPS.
Users with the MANAGE_USERS permission should be able to invite users and manage invite links, but not (currently at least) manage the permissions of users at any level, including organisation.
Users with the MANAGE_USER_GROUPS permission should be able to create groups, add users to groups and remove users from groups. They should not, however, be able to add / remove themselves to / from groups.
This should exist in staging 5 minutes from now (I've just merged the PR). Any issues let me know.

authors: bao-ujet dabeeeenster matthewelwell

repo: Flagsmith/flagsmith


text:
Implement a file-system importer to go with the s3 importer

We have an exporter for both file-system and s3. We only have an importer for S3. We should add a file-system based importer. More info at https://docs.flagsmith.com/deployment/configuration/importing-and-exporting

Yes please!
Is there a roadmap for this feature, or any other plans to implement?

It is on the backlog but we don't have an ETA I'm afraid. Happy to take PRs tho!

thats fair enough. Is this something that could be achieved via your API's (with the aim of submitting a PR?)

You could script it via API but it would be quite honerous. There is also the Terraform provider.

While this feature is in the backlog is there are there any get/set functions in the server SDK to allow for a third party to implement importers from different mediums? i.e. getState(withAuth) and putState(withAuth). I guess basic prerequisite is there would need to be a global application state object accessible somewhere?

The SDKs are strictly for end clients of the platform - they are not designed around doing work like this I'm afraid.

ok thank you.
So could i initialise state (features/segments/users etc) programmatically via SDKs (as opposed to export/import).
My motivation is to set up a repeatable integration test with identical container state across docker runs.
At the moment Im setting up FS state via UI, and I cant rely on volumes to preserve state.

Yep you can do all that with the API.

Hi everyone! I will like to contribute adding a reward in this issue through Opire, the platform I recently launched. You only have to install our GitHub app in the repository. You can take a look on the documentation to know more about it.

Local file system import can be done with loaddata
e.g: python manage.py loaddata org.json

authors: dabeeeenster gagantrivedi laurencefass nabby27


text:
Fix None in search in sales dashboard

Thanks for submitting a PR! Please check the boxes below:

[x] I have run pre-commit to check linting
[x] I have filled in the "Changes" section below?
[x] I have filled in the "How did you test this code" section below?

Changes
Fixes 'None' being populated in search on sales dashboard when no search term exists.
How did you test this code?
Ran locally and verified that the search box is empty when no search term is provided.

Haha this has been really annoying me but I was too lazy to fix it 🤣

authors: dabeeeenster matthewelwell


text:
When will your code be open source?

I hope the relevant code will be open source soon.

Thanks for your interest. The code has been released.

repo: Flame-Chasers/RaSa


text:
[FEATURE REQUEST]

Please includes the chapter titles in txt format output.
Is your feature request related to a problem? Please describe.
When reading the output it is confusing when the chapter titles are missing.
Describe the solution you'd like
Request to include the chapter titles.

Normally they should be added when selecting Add chapter title in the options but that's not working apparently.

repo: Flameish/Novel-Grabber


text:
fix: iOS NM global tests

Fixes #2070
Test Plan

How do we know the code works?
Needs a round of testing

Checklist

[ ] Documented
[ ] Unit tested
[ ] Integration tests updated

@flank-it

repo: Flank/flank


text:
fix query limiting based on accounts for when CLI is used

This caused the OWM integration problems, when adding a data source.

Pull Request Test Coverage Report for Build 2059570805

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 68.466%

Totals

Change from base Build 2042673022:
0.0%

Covered Lines:
6998

Relevant Lines:
9690

💛  - Coveralls

authors: coveralls nhoening

repo: FlexMeasures/flexmeasures