WebView support

Is your feature request related to a problem? Please describe.
View websites or render HTML strings inside a terminal. There are lots of potential uses for this feature. I'm not sure if it's even possible with the current state of dotnet without writing a whole new HTML rendering engine.
Describe the solution you'd like
Either incorporate one of the existing WebView controls, e.g. https://www.nuget.org/packages/Microsoft.AspNetCore.Components.WebView/ or create a new one based on some existing engine.
Additional context
Existing CLI based web browers:
https://github.com/fathyb/carbonyl
http://lynx.browser.org/
https://github.com/tats/w3m/tree/master/doc

This is certainly an ambitious feature.
Implementing from scratch is not really feasible, so there would need to be a library which did all the heavy lifting (web page -> ascii, scroll, request link etc).  So probably a library wrapping chromium or something.  Any library/binary that is directly writing to screen e.g. with curses is going to be harder to wrap.
This would make more sense as a seperate library:

Avoids adding any big dependencies to Terminal.Gui
Isolates issues relating to web behaviours
Provides dedicated channel for the work

The other way to deal with this would be to have your main app exit from the Terminal.Gui main loop and run a web browser (e.g. lynx) full screen in the terminal.  Then on exit re-launch the terminal gui.  But that would not allow you to embed

If you want to have an idea on how to do this here is a Blazor API done for the Terminal.Gui v1. For Terminal.Gui v2 this will not be possible anymore because the ConsoleDriver and others API's isn't exposed anymore. So as @tznind said avoids any big dependencies to Terminal.Gui. Another solution is add a new project integrated with on the gui.cs and ask to tig if it's possible to do it. Good luck.

If you want to have an idea on how to do this here is a Blazor API done for the Terminal.Gui v1. For Terminal.Gui v2 this will not be possible anymore because the ConsoleDriver and others API's isn't exposed anymore. So as @tznind said avoids any big dependencies to Terminal.Gui. Another solution is add a new project integrated with on the gui.cs and ask to tig if it's possible to do it. Good luck.

@bdisp the OP is not asking for Terminal.Gui apps in a browser. He/she is asking for a web browser within a Terminal.Gui app.

@BDisp the OP is not asking for Terminal.Gui apps in a browser. He/she is asking for a web browser within a Terminal.Gui app.

Ops my bad, sorry for the misunderstand.

This is certainly an ambitious feature.
Implementing from scratch is not really feasible, so there would need to be a library which did all the heavy lifting (web page -> ascii, scroll, request link etc). So probably a library wrapping chromium or something. Any library/binary that is directly writing to screen e.g. with curses is going to be harder to wrap.
This would make more sense as a seperate library:

Avoids adding any big dependencies to Terminal.Gui
Isolates issues relating to web behaviours
Provides dedicated channel for the work

The other way to deal with this would be to have your main app exit from the Terminal.Gui main loop and run a web browser (e.g. lynx) full screen in the terminal. Then on exit re-launch the terminal gui. But that would not allow you to embed

I have experience with .NET Html engines as part of https://github.com/tig/winprint.
I use LiteHtml to be able to print HTML files. See https://github.com/tig/winprint/tree/master/src/WinPrint.LiteHtml
99% of the cases users of WinPrint choose fixed-pitch fonts, and thus it would not be THAT hard to use LiteHtml to be able to render to a Terminal.Gui View.

@tig just curious were those strings supposed to look like this or someone forgot to update them?
https://github.com/tig/winprint/blob/master/src/WinPrint.LiteHtml/LibInterop.cs#L47
The rendered pages don't have to look fancy, just get a general idea of what a page looks like and to be able to read text.
But rendering a single page is just a part of the problem. Being able to navigate between pages by clicking links is the bare minimum for the internet surfing.
Maybe the engine that https://github.com/fathyb/carbonyl uses could be an option? It seems very light-weight.

@tig just curious were those strings supposed to look like this or someone forgot to update them? https://github.com/tig/winprint/blob/master/src/WinPrint.LiteHtml/LibInterop.cs#L47

Sorry, don't remember.

The rendered pages don't have to look fancy, just get a general idea of what a page looks like and to be able to read text. But rendering a single page is just a part of the problem. Being able to navigate between pages by clicking links is the bare minimum for the internet surfing.
Maybe the engine that https://github.com/fathyb/carbonyl uses could be an option? It seems very light-weight.

Wow. That's cool.
It's not clear to me if this is a PORT of Chromium or somehow uses Chromium??

According to this carbonyl uses a modified version of the chromium headless shell

According to this carbonyl uses a modified version of the chromium headless shell

Thinking about this more, I'm skeptical a Chromium-based solution will work well for many Terminal.Gui scenarios:

Huge bloat. One great things about Terminal.Gui is it has a small-ish footprint and thus can run on very constrained devices. If terminal.Gui's 'WebView' support were based on Chromium this would no longer be true.
Complex dependency. Similar to above, but also means setup / deployment would be tricky. Imagine if Microsoft.PowerShell.ConsoleGuiTools wanted to use WebView in some way. No way, would it be acceptable that Install-Module Microsoft.PowerShell.ConsoleGuiTools install and configure Chromium.

I'm back to the idea that WebView should  be based on pure .NET based HTML engine like LiteHtml.

I wonder how feasible it would be to have a view that wrapped another console process (kind of like tmux).  This would allow running w3c or lynx in a view as well as solving another asked for feature which is to run a full console surrounded by terminal gui components.
I know there has been work in the past on TerminalView e.g. https://github.com/migueldeicaza/XtermSharp/blob/master/GuiCsHost/TerminalView.cs which might allow something like this.


Xamarin Forms XAML binding to Entry hangs the application

So I'm not entirely sure if this is a ReactiveUI or Xamarin.Forms bug, but I'm posting it here anyway.
When binding a string to the Text property of an Entry control, and typing some text into it, the app hangs almost immediately
Here is the stacktrace when I pause the debugger:
>	0x26 in System.Runtime.InteropServices.GCHandle.get_Target	C#
 	0x18 in System.WeakReference.get_Target	C#
 	0x32 in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.WeakHandler.Matches at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:279,17	C#
 	0x21 in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.WeakHandlerList.RemoveWeakHandler at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:305,21	C#
 	0x53 in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.RemoveWeakHandler at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:197,17	C#
 	0x3 in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.PrivateRemoveHandler at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:181,13	C#
 	0x61 in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.RemoveHandler at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:106,13	C#
 	0x2 in ReactiveUI.ReactiveObject.remove_PropertyChanged at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/ReactiveObject.cs:60,22	C#
 	0x117 in Xamarin.Forms.BindingExpression.ApplyCore	C#
 	0x41 in Xamarin.Forms.BindingExpression.Apply	C#
 	0x7 in Xamarin.Forms.BindingExpression.BindingExpressionPart.<PropertyChanged>b__12	C#
 	0x11 in Java.Lang.Thread.RunnableImplementor.Run at /Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/5474129a/source/monodroid/src/Mono.Android/src/Java.Lang/Thread.cs:36,6	C#
 	0xA in Java.Lang.IRunnableInvoker.n_Run at /Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/5474129a/source/monodroid/src/Mono.Android/platforms/android-15/src/generated/Java.Lang.IRunnable.cs:71,4	C#
 	0x11 in object.ce63cffe-35bf-4f94-9bb6-5fa24f39956e	C#
 	0x52 in Android.Runtime.JNIEnv.CallVoidMethod at /Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/5474129a/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:504,4	C#
 	0x50 in Android.App.Activity.RunOnUiThread at /Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/5474129a/source/monodroid/src/Mono.Android/platforms/android-15/src/generated/Android.App.Activity.cs:3738,4	C#
 	0x7 in Android.App.Activity.RunOnUiThread at /Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/5474129a/source/monodroid/src/Mono.Android/src/Android.App/Activity.cs:23,4	C#
 	0xB in Xamarin.Forms.Forms.AndroidPlatformServices.BeginInvokeOnMainThread	C#
 	0x6 in Xamarin.Forms.Device.BeginInvokeOnMainThread	C#
 	0x87 in Xamarin.Forms.BindingExpression.BindingExpressionPart.PropertyChanged	C#
 	0x30 in System.Reflection.MonoMethod.InternalInvoke	C#
 	0x4A in System.Reflection.MonoMethod.Invoke	C#
 	0x6 in System.Reflection.MethodBase.Invoke	C#
 	0x10F in System.Delegate.DynamicInvokeImpl	C#
 	0x1A in System.MulticastDelegate.DynamicInvokeImpl	C#
 	0x2 in System.Delegate.DynamicInvoke	C#
 	0x4B in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.WeakHandlerList.DeliverEvent at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:343,25	C#
 	0x33 in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.PrivateDeliverEvent at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:228,21	C#
 	0xC in ReactiveUI.WeakEventManager<System.ComponentModel.INotifyPropertyChanged,System.ComponentModel.PropertyChangedEventHandler,System.ComponentModel.PropertyChangedEventArgs>.DeliverEvent at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/WeakEventManager.cs:116,13	C#
 	0x2 in ReactiveUI.ReactiveObject.ReactiveUI.IReactiveObject.RaisePropertyChanged at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/ReactiveObject.cs:65,13	C#
 	0x26 in ReactiveUI.IReactiveObjectExtensions.ExtensionState<Starter.Core.ViewModels.TestViewModel>.raisePropertyChanged at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/IReactiveObject.cs:278,17	C#
 	0x31 in ReactiveUI.IReactiveObjectExtensions.raisePropertyChanged<Starter.Core.ViewModels.TestViewModel> at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/IReactiveObject.cs:63,13	C#
 	0x28 in ReactiveUI.IReactiveObjectExtensions.RaiseAndSetIfChanged<Starter.Core.ViewModels.TestViewModel, string> at /Users/paul/code/reactiveui/ReactiveUI/ReactiveUI/IReactiveObject.cs:115,13	C#
 	0xE in Starter.Core.ViewModels.TestViewModel.set_TheText at c:\Users\Dennis\OneDrive\Projects\starter-mobile\Starter-Core\ViewModels\TestViewModel.cs:33,-1	C#
 	0x30 in System.Reflection.MonoMethod.InternalInvoke	C#
 	0x4A in System.Reflection.MonoMethod.Invoke	C#
 	0x6 in System.Reflection.MethodBase.Invoke	C#
 	0x2F4 in Xamarin.Forms.BindingExpression.ApplyCore	C#
 	0x41 in Xamarin.Forms.BindingExpression.Apply	C#
 	0x27 in Xamarin.Forms.Binding.Apply	C#
 	0x90 in Xamarin.Forms.BindableObject.SetValueActual	C#
 	0x213 in Xamarin.Forms.BindableObject.SetValueCore	C#
 	0x14 in Xamarin.Forms.Platform.Android.EntryRenderer.Android.Text.ITextWatcher.OnTextChanged	C#
 	0x18 in Android.Text.ITextWatcherInvoker.n_OnTextChanged_Ljava_lang_CharSequence_III at /Users/builder/data/lanes/monodroid-mlion-monodroid-4.18-series/5474129a/source/monodroid/src/Mono.Android/platforms/android-15/src/generated/Android.Text.ITextWatcher.cs:149,4	C#
 	0x29 in object.6a590fb2-a4d6-42ff-abdc-dbf91442d830	C#

Here is a super-simple reproduction: https://github.com/flagbug/starter-mobile/tree/xaml-binding-repro in the xaml-binding-repro branch

Is there any news on this? I'm kind of stumbling over the same problem when binding to a boolean. After toggling the boolean like 10 times the app ends up being less responsive and eventually hangs. Can come up with a quick reproduction if needed.

Here's a minimal reproduction of the behaviour. Clicking on the blue box toggles the red box appearance. After around 10 times the app becomes less responsive and eventually hangs.
Tested on ReactiveUI 6.4, Xamarin.Forms 1.3.3, iOS 8.1 on simulator.

public class App : Application
	{
		class ViewModel : ReactiveObject
		{
			public Command ToggleEnabled { get; set; }

			public ViewModel()
			{
				ToggleEnabled = new Command(p => this.IsEnabled = !this.IsEnabled);
			}

			protected bool _isEnabled = false;
			public bool IsEnabled
			{
				get {  return _isEnabled; }
				set {
					this.RaiseAndSetIfChanged (ref _isEnabled, value);
				}
			}
		}

		public App()
		{
			var tapRecognizer = new TapGestureRecognizer ();
			tapRecognizer.SetBinding<ItemViewModel> (TapGestureRecognizer.CommandProperty, vm => vm.ToggleEnabled);

			var bv = new BoxView () { WidthRequest = 100, HeightRequest = 100, Color = Color.Blue };
			var bv2 = new BoxView () { WidthRequest = 100, HeightRequest = 100, Color = Color.Red };

			bv.GestureRecognizers.Add (tapRecognizer);
			bv2.SetBinding<ItemViewModel> (BoxView.IsVisibleProperty, vm => vm.IsEnabled);

			var stackLayout = new StackLayout ();
			stackLayout.Children.Add (bv);
			stackLayout.Children.Add (bv2);

			MainPage = new ContentPage () { Content = stackLayout };;
			MainPage.BindingContext = new ViewModel();
		}
	}

I've the same issue but binding in XAML code, simply this:
<Entry Text="{Binding Name}" />
This is the code in my view model:
        private string _name;
        public string Name
        {
            get
            {
                Debug.WriteLine("Name.get: '" + _plate + "'");
                return _name;
            }
            set
            {
                Debug.WriteLine("Name.set (before): '" + _name + "' to '" + value + "'");
                this.RaiseAndSetIfChanged(ref _name, value);
                Debug.WriteLine("Plate.set (after): '" + value + "'");
            }
        }```
And, finally, this is the output when i write three consecutive 'o' characters

Name.get: ''
Plate.get: ''
Name.set (before): '' to 'o'
PropertyChanged: Name
Plate.set (after): 'o'
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.set (before): 'o' to 'oo'
PropertyChanged: Name
Plate.set (after): 'oo'
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.set (before): 'oo' to 'ooo'
PropertyChanged: Name
Plate.set (after): 'ooo'
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
Name.get: ''
This behavior appear to be exponentially increases the Name.get calls. When i continue writing more characters to Entry control, the application are slow and unresponsive :(

Any idea for solve this behavior?

Seem to be exhibiting this on Wiphone and IOS as well.

It look like there is some sort of loop. I added the following Debug.WriteLine:
internal class WeakHandlerList
{
   ....
    public void AddWeakHandler(TEventSource source, TEventHandler handler)
    {
        WeakHandler handlerSink = new WeakHandler(source, handler);
>>        System.Diagnostics.Debug.WriteLine("Handler count: {0}", handlers.Count);
        handlers.Add(handlerSink);
    }

And in typing just 3 or 4 characters, the handlers.Count explodes into the thousands! My ViewModel : ReactiveObject only has a string Filter {...} property and that's bound to an Entry Text. There's absolutely nothing else in the VM and View

Ok - I think I have solved this issue but not knowing the deep inner workings of ReactiveUI, I would appreciate it if someone were to take a brief look at this and let me know if it could have any nasty side-effects. I changed the Match function in WeakHandler to:
public bool Matches(object source, TEventHandler handler)
{
    return this.source != null &&
        Object.ReferenceEquals(this.source.Target, source) &&
        this.originalHandler != null &&
        (Object.ReferenceEquals(this.originalHandler.Target, handler) ||
        (this.originalHandler.Target is PropertyChangedEventHandler &&
        handler is PropertyChangedEventHandler &&
        object.Equals((this.originalHandler.Target as PropertyChangedEventHandler).Target,
            (handler as PropertyChangedEventHandler).Target)));
}

And everything now works and is crazy fast.

Would you please create a pull request for review?

Just did. Thanks

I'm still getting this issue in ReactiveUI 6.5.0. I'm going to have a poke around the RxUI code but it certainly appears to be surfacing the same symptoms as outlined in @osjimenez's comment - same exponential increase in getter calls.

What UI controls are you using? Can you post your Subscribe code? I fixed this for the PropertyChangedEventHandler EventHandler (there are 4 others):
CanExecuteChangedEventManager
PropertyChangingEventManager
CollectionChangingEventManager
CollectionChangedEventManager
Narayan

I just pushed a possible fix of about to https://github.com/nsainaney/ReactiveUI.git if you'd like to try it. Instead of just looking at PropertyChangedEventHandler, I now look at all Delegates

Thanks for getting back to me @nsainaney.
I was using an Entry with a binding to a string field, the same example as in @osjimenez :
string email;
public string Email
{
	get { return email; }
	set { this.RaiseAndSetIfChanged(ref email, value); }
}

and
<Entry Placeholder="Email"
	   Text="{Binding Email}" />

Adding the same Debug.WriteLine calls shows seemingly the same exponential increase as before.
Going to pull down the RxUI code and create a small demo spike to solve this today, will keep you informed.

Nevermind. Red herring, packages were differing versions between iOS project and XF PCL referenced. All works fine in an isolated spike.
Can confirm that your original fix #826 is working. Apologies for the confusion.

Phew - thanks. Your Entry binding code sample is exactly what I'd tested.

I guess https://github.com/reactiveui/ReactiveUI/pull/826 fixed this issue, so I'm closing this


storyblok-astro requires changes in pnpm to work properly

Expected Behavior
When pnpm is used as package manager storyblok-astro works without additional configuration
Current Behavior
When pnpm is used to install dependencies the package @storyblok/js can not be properly resolved by rollup. I get the following vite error when building:
[vite]: Rollup failed to resolve import "@storyblok/js" from "virtual:storyblok-init".

This happened in my project. To verify it is not a local problem I tried the same with the project you provide on Stackblick.
Steps to Reproduce

Download the code from the Stackblitz project
Install dependencies with pnpm (I use version 8.12)
Build the project

It is possible to overcome this issue by manually hoisting the storyblok dependencies publicly. In .npmrc it could look like this:
public-hoist-pattern[]=*storyblok*

This is a good workaround, but not straightforward. It would be great if storyblok-astro would work without hoisting the dependencies manually.

Hi there, since it's been a while, is there any update on this issue? Were you able to reproduce it? I am happy to add missing information if needed.

Hi @wireless25
I was able to reproduce it. Thanks for providing all the details including a temporary work-around to help us investigate it.
It seems Vite's virtual module convention does not fully work to import modules in JS.
I'll investigate more if it can only be detected after the page is loaded.

Hey @schabibi1
thx for your reply and the investigation. I am very curious what you will find out.

Hi @wireless25
I investigated, but what we followed on the docs on Vite to force importing the virtual module and its values are not working as they should be.
We’ll keep monitoring if there will be an update from the Vite side, and for now, we recommend going with hoisting deps publicly in .npmrc as pnpm suggests on their docs as you found it worked.
I'll close this issue temporary as there is a workqround. But feel free to re-open this issue if the workaround won't work. Or I'll re-open this issue when I find a better solution.


toml parsing is too slow

I compare toml-node and js-yaml to load toml/yaml file with a large array config.
demo.toml:
[[arr]]
name = "abcdefg"
demo.yaml:
arr:

name: "abcdefg"

and, repeat the same element 1000 times in each file.
then parse them each other with toml-node and js-yaml, the result is:
toml costs 662 ms
yaml costs 33 ms
the toml parsing is so slow

and I try to parse the same toml file with toml-j0.4, it only cost 45 ms.

This looks like it's mostly compile() being slow, and I think the best fix is to rewrite it.
@BinaryMuse do you mind if I rewrite compile.js? I'd probably also add more testing.

I opened an PR here to begin to address this: https://github.com/BinaryMuse/toml-node/pull/42
Some interesting findings so far.

ok, it looks like the grammar is slow.
This is a benchmark on my laptop of parsing a realistic cargo.toml file from the Rust Cargo project:
parse cargo with js-yaml       x 9,848 ops/sec ±2.25% (85 runs sampled)
parse cargo with json          x 64,939 ops/sec ±0.80% (88 runs sampled)
parse cargo with toml-j0.4     x 2,833 ops/sec ±1.87% (84 runs sampled)
parse cargo with toml-node     x 170 ops/sec ±1.07% (80 runs sampled)

I modified toml.pegjs to remove all actions, so it's just doing parsing, and it's still worse than toml-j0.4 (which also uses pegjs).
parse cargo with toml-node     x 329 ops/sec ±1.79% (85 runs sampled)

So I'm now going to try to figure out what's slow in the grammar

pegjs doesn't generate very efficient parsers. In particular, every rule is a function call, So rules like:
line
  = S* expr:expression S* comment* (NL+ / EOF)
S                = [ \t]

will call the S function in a loop to satisfy the *.
Also, the pegjs --cache option increases the cost of each S call.
Rules like this are faster:
line
  = ws? expr:expression ws? comment* (NL+ / EOF)
ws                = [ \t]+

pegjs still matches [ \t] one char at a time, but it's in a while loop in the ws function.
There doesn't seem to be a way right now to get pegjs to use a /[ \t]+/ regex match instead of repeating /[ \t]/ in a loop.
So... rewriting the grammar slightly to reduce function calls will probably yield a fairly substantial speed increase, and then I'll look at other problems.

I've gotten part of the way to toml-j0.4 performance for the cargo.toml case just by refactoring the grammar.
But there's a large performance gap that's due to toml-node calling line() and column() all the time. I'm not sure what to do about that yet. Options:

Instead of line() and column(), use offset(), which is cheap, and then recompute line/column in the error reporter. Unfortunately, pegjs-0.10 gets rid of offset() and replaces it with location(), which is as expensive as line() and column().
Fold compile into parse, so we don't have to save line/column.

1 seems fairly easy, I think I'll try that first.

#44 and #45 combined makes toml-node about half the speed of toml-j0.4 for parsing my cargo.toml test case.
Also removing the pegjs --cache option will make toml-node about the same speed as toml-j0.4. I think the pegjs caching is unnecessary for this grammar, but I haven't worked through it fully yet.
There are more things to improve; toml parsing should be about as fast as yaml parsing, and potentially faster.


Install Docker packages for non-root users to user home

I have access to Grid5000 and would like to use Docker containers on it. Tutorial says, that users should install the tools in the user's home and add the user's home to the PATH environment variable. I can't find any reference about this in the docker or docker-machine manual. How can I install it without using apt-get command? My user isn't in the sudoers group.

If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
For more information about reporting issues, see CONTRIBUTING.md.
You don't have to include this information if this is a feature request
(This is an automated, informational response)

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

The docker related command needs some commands to access system resource, like privileged used ways  I think it need some kinds of root right, like sudo.
do you mean you want user(who not in sudo  group) to install docker , and allow user to use that docker to access system resource ?  Not quite understand your needs here

Yes, exactly that you think!

The docker daemon needs to run as root, so you cannot install docker if you don't have root or sudo rights. Your best option is to contact someone at Grid5000 to ask what options they have, and if they have a way to install Docker.
I'm closing this issue, because there's not much we can do here to help, but feel free to comment after I've closed


Is it possible to sync issues only between two repos?

Hi there thanks for the issue.
Sorry that's not possible with this action. please search on GitHub marketplace to see if there's anything available for your use case~


RFC: Deprecate fromDlpack and toDlpack

It's been established by the array API standard and DLPack maintainers that users should just use the one-shot function call
arr2 = array_namespace.from_dlpack(arr1)

as a (possibly zero-copy) array constructor through the DLPack protocol. Importantly, the capsule should be kept as implementation detail, not exposed to end users. This also allows safer handshaking (correct stream ordering and lifetime management).
The fact that various libraries still keep the legacy, capsule-exposing APIs to me is a maintenance burden, hard to teach, and already causing confusions (ex: https://github.com/dmlc/dlpack/issues/147 is coming from users who have no idea about the new things).
CuPy already marked the old, capsule-consuming API cupy.fromDlpack() deprecated, but unfortunately the old, capsule-exposing cupy.ndarray.toDlpack() was not yet marked as deprecated. We also have not taught about the new practice in the Interoperability page.
I suggest

we deprecate and remove both in v14 or v15 (I prefer aggressively, but it does not have to be)
we update the Interoperability w/ DLPack immediately

Thanks for the suggestions. I agree we have to updating the interoperability docs immediately. Also, it sounds good to me to start emitting visible deprecation warnings when toDlpack() or fromDlpack() is called.
It is interesting that JAX and PyTorch both still provides the legacy API. (PyTorch has a warning banner on the docs though)

It is interesting that JAX and PyTorch both still provides the legacy API. (PyTorch has a warning banner on the docs though)

I think Jax just added the DLPack 1.0 support recently so it'd take them some time to deprecate/remove the old code. As of PyTorch 2.5 I see no documentation for toDlpack()/fromDlpack(). Let me work on this to catch up.

I think Jax just added the DLPack 1.0 support recently

Not yet AFAIK, that still has to happen (xref https://github.com/dmlc/dlpack/issues/149). I agree with the changes proposed here though, and the linked PR changing from a TF to a JAX example.


add connection timeout to connection options

i needed this for my deployments to heroku, which for some reason, always need a higher timeout than normal (at least for my apps)
i wasn't sure how to write a test around this, though... so it's just the raw code to add the connection timeout to the connection options.
connection: {
  timeout: 120,
  // ...
}

ok, think i got the tabs all set. let me know if i missed any


Segmentation fault under certain conditions

I am experiencing a segmentation fault when running nanoscope on a particular screen of my app. I'm not sure what's unique about this screen, but it's reliably reproducible.
backtrace:
    #00 pc<PHONE_NUMBER>486f28  /system/lib64/libart.so (_ZN3art12PrettyMethodEPNS_9ArtMethodEb+64)
    #01 pc<PHONE_NUMBER>457eb8  /system/lib64/libart.so (_ZN3art16flush_trace_dataENSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEPlS7_PmS8_S8_S8_+2240)
    #02 pc<PHONE_NUMBER>46d0e0  /system/lib64/libart.so (_ZNSt3__114__thread_proxyINS_5tupleIJPFvNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPlS8_PmS9_S9_S9_ES7_S8_S8_S9_S9_S9_S9_EEEEEPvSD_+164)
    #03 pc<PHONE_NUMBER>068734  /system/lib64/libc.so (_ZL15__pthread_startPv+208)
    #04 pc<PHONE_NUMBER>01da7c  /system/lib64/libc.so (__start_thread+16)

I can supply the tombstone if necessary, although I think I would need to verify that there's no compromising information in the dump?

Looks like it's failing when trying to grab the name of a method. I would be able to debug with sample code that reproduces this issue. My initial guess is the method in question is unique in some way.


doesn't work with http://socks= and CFON Mode on (default settings)

thank you first, I used the Windows .exe release. it works great with fast speed but not by default settings!
I tested first with CFON mode on and scan mode off and country select automatic and warp key empty and default port, not work in this situation.
but when CFON Mode is off ScanMode is on and the warp key is empty and with the default port, works great in this situation.

after clicking the connect button windows proxy automatically on but the proxy address like this http://socks=<IP_ADDRESS> - doesn't work with this, I removed http://socks= from first and just added proxy <IP_ADDRESS> And it is in this situation that everything works perfectly and without problems. It's like a spell!

‼ Check out the new release, if the issue has been resolved.

‼ Check out the new release, if the issue has been resolved.

thanks @Vauth. I checked. but Windows 11 detects the new release of this app as a trojan! there it not a problem?

There might be a problem with signing the exe, for now simply pass it by clicking Allow on device .

‼ Check out the new release, if the issue has been resolved.

thanks @Vauth. I checked. but Windows 11 detects the new release of this app as a trojan! there it not a problem?

There might be a problem with signing the exe (from github), for now simply pass it by clicking Allow on device .

Yes, I know how to get through it. But I am afraid that it has a security problem!

‼ Check out the new release, if the issue has been resolved.

thanks @Vauth. I checked. but Windows 11 detects the new release of this app as a trojan! there it not a problem?

There might be a problem with signing the exe (from github), for now simply pass it by clicking Allow on device .

Yes, I know how to get through it. But I am afraid that it has a security problem!

Well as the developer, I can't tell you that its safe (you may not believe), But its open source :)
You have 2 choices:

Check source code if you have enough knowledge
Or ask an expert to do it

Good luck with that :)

‼ Check out the new release, if the issue has been resolved.

thanks @Vauth. I checked. but Windows 11 detects the new release of this app as a trojan! there it not a problem?

There might be a problem with signing the exe (from github), for now simply pass it by clicking Allow on device .

Yes, I know how to get through it. But I am afraid that it has a security problem!

Well as the developer, I can't tell you that its safe (because you may not believe), But its open source :) You have 2 choices:

Check source code if you have enough knowledge
Or ask an expert to do it

Good luck with that :)

In any case, you solved the reported problem about the proxy completely, and now after connecting, we don't need to go and update something manually, and it can be easily connected and usable.
I don't have enough knowledge about security programming I just reported a problem I observed to you as a normal user.

‼ Check out the new release, if the issue has been resolved.

thanks @Vauth. I checked. but Windows 11 detects the new release of this app as a trojan! there it not a problem?

There might be a problem with signing the exe (from github), for now simply pass it by clicking Allow on device .

Yes, I know how to get through it. But I am afraid that it has a security problem!

Well as the developer, I can't tell you that its safe (because you may not believe), But its open source :) You have 2 choices:

Check source code if you have enough knowledge
Or ask an expert to do it

Good luck with that :)

In any case, you solved the reported problem about the proxy completely, and now after connecting, we don't need to go and update something manually, and it can be easily connected and usable.
I don't have enough knowledge about security programming I just reported a problem I observed to you as a normal user.

Appreciate that. If you faced any further issue, feel free to report.


Self-hosted Bitbucket integration

The self-hosted version of BitBucket does not include the version 2 of the API. It would be nice to have a version of NuKeeper that integrates to the Selfhosted version of BitBucket.

This would be nice indeed. If anyone wants to work on this feel free, if you need guidance or help to get started feel free to chat on gitter: https://gitter.im/NuKeeperDotNet/Lobby


FlexibleXYPlot grows but does not shrink

When the component is set to be a particular percentage of its parent component and is resized to be a bit bigger than that initial width, it does not shrink back down when the window is resized.  This can be demonstrated when enclosed in a table cell or in a div set to display: flex:  https://codesandbox.io/s/wk6kpxl3jk

Hmm quite an old issue... still happens after more than a year -_-
I played with this and found out that div with class . rv-xy-plot should have a little bit of css help e.g.:
// decouples the outer container width from inner container width (width check happens before svg render)
position: absolute;
// masks any glitches caused by denounce on resize event (obv combined with a bit lighter denounce would help more)
overflow: hidden;
Hope this will help someone ;-)

Hmm quite an old issue... still happens after more than a year -_-
I played with this and found out that div with class .rv-xy-plot should have a little bit of css help e.g.:
.rv-xy-plot {
  // decouples the outer container width from inner container width (width check happens before svg render)
  position: absolute;
  // masks any glitches caused by denounce on resize event (obv combined with a bit lighter denounce would help more)
  overflow: hidden;
}

Hope this will help someone ;-)

obv that's just one of the solutions - and one that can mess a lot with legends & axis


Adding OpenHTJ2K as one of the codecs

Hi!
How about adding (OpenHTJ2K https://github.com/osamu620/OpenHTJ2K) as one of the codecs?
It is not as fast as Kakadu, but it performs as well as OpenJPH and the decoder is compliant with the ISO/IEC 15444-4 spec.
FYI:
In OpenHTJ2K,

block coding is multi-threaded.
FDWT/IDWT and some parts of HT block coding are vectorized for both Intel and ARM CPUs.

Thanks for your consideration in advance!

PR #9 to add open_htj2k support.


start processing on user request

In the examples provided (MathOperationDataModel,...) compute function is called when input port is connected, how can I change them or add custom models to start when user does an action? (e.g clicking on start button, etc.).

You could add some EnablingDataType and one extra in-port as a trigger.
Initially you would pass nullptr and on the button press pass a valid pointer that would make the input "complete" and release the calculation run.

This solution seems to be a hack! Adding one extra port which only checks for start action trigger, confuse our users. can I get the nodes order in a list and call compute action on that order? (suppose I want to read two files frame by frame(8192 bytes), xor-ing them together and showing the result, returning feedback to xor block ...).

Well, if this is a hack then it's a hack from unreal's blueprint editor

Take a look at white connections. As far as I know they are the "trigger" things.
If you don't like an extra data type just pass nullptr to outputs until the button is clicked.
Let me know if I did not understand your problem. I'll try to think about it more.

What these two function do: iterateOverNodeDataDependentOrder and iterateOverNodeData ? can I get node order by using these functions?

@paceholder, I'm pretty sure your example from UE4 is not what he is looking for.
Imagine you have elaborated the calculator to have some quite complex math taking place, and it takes your computer ~1s to evaluate it. You wouldn't want to take that 1s every time you change a node early on in your chain--imagine typing in a number into an entry field, one digit per second would be awful!
So the thing he wants (If I understand) is to be able to turn off calculation on data change, and instead calculate when an action is triggered (possibly a button or keystroke).
UE4's blueprint system isn't like this at all--it's a programming langauge and not a flow graph of data.

@russelltg so what is the problem with not triggering the data propagation until the button is pressed? It's up to user model to decide when the data is valid and ready to be shipped.

@abdolahsa I will add an example, sorry, can't do it right now

Ah ok I see now I think you did understand, I just didn't understand your UE4 analogy.
Just seems hacky, that's all.


Correct the shear production in diagnostic edmf

Purpose

Closes #1880
To-do

Content

[ ] I have read and checked the items on the review checklist.

bors r+


Language server freeze for couple of seconds with large template file

Describe the bug
I have a large template Lua file with around thousands of functions in it. Unfortunately the language server can't keep up with the large file and it hangs up for couple of seconds.
To Reproduce
Steps to reproduce the behavior:

Place the Lua file from the archive anywhere in your workspace native.zip
Try to type some function: native.somefunctionamehere

Expected behavior
It shouldn't take ten seconds to search for the function
Environment (please complete the following information):

OS: Windows 10, 64 bit
Is WSL remote? No
Client: VSCode

Arigato gozaimasu <3

Oh, looks like there is another bug, some of the functions aren't shown in the list when I'm typing, but it get recognized when I hover the function :(


Add "Pipeline Maintenance" clusterSource type

Didn't bump up the version because <IP_ADDRESS> is not yet used in LHM anyway


Support from_fn for two-dimensional arrays.

The following code does not work in Eurydice:
let A = core::array::from_fn(|i| {
            core::array::from_fn(|j| A_transpose[j][i])
    });

The minimized repro is here: https://github.com/AeneasVerif/eurydice/blob/main/test/closure/src/main.rs

and the work is happening on branch protz_substitutions

Another, perhaps related testcase:
pub trait Operations: Clone + Copy {
    fn zero() -> Self;
}
pub struct MlKemKeyPairUnpacked<const K: usize, Vector: Operations> {
    x: [Vector; K],
}

impl<const K: usize, Vector: Operations> MlKemKeyPairUnpacked<K, Vector> {
    #[inline(always)]
    pub(crate) fn default() -> Self {
        Self {
            x: core::array::from_fn(|_| Vector::zero()),
        }
    }
}

Update: this testcase was another related issue. Fixed via 207141e


Remove jQuery dependency

Prefer NG directives.
Alternatively upgrade jQuery to latest version.
Decouple AppComponent from jQuery code. If not possible use service instead of component.

Updated to 3.x

Won't fix


Documentation?

Hi there,
This looks like an awesome project! The test file is pretty promising in terms of feature-completeness.
Would you be willing to write, or accept a PR for, documentation enumerating the features which are supported and how they work?
I am sure that not 100% of openapi specs can be generated with this tool, and not 100% of yup validators will work; maybe a list of what does work, like this, could help?
Thanks!

I hope a new documentation will help you, I'm sorry for such a delay 😞

Yes, very nice! looks great! thank you!


Deploy to enzyme.mit.edu/rust

This should also enable us to remove the gh-pages branch.

Closing, as we will deploy from [https://github.com/ZuseZ4/autodiff](our autodiff repo)


Update readme to reflect Scala JS related changes

Running tests using SBT do not "requires additional magic incantations in your project/plugins.sbt" anymore :)
ScalaJS and SBT:
a) %% -> %%% for library dependency
b) It's not obvious that we need add to test frameworks for Scala JS too. Show it explicitly.

Cool, thanks!


Icon for C/C++

I think there is no 'standard' logo for C? But for C++ this seems as close to official as possible https://github.com/isocpp/logos

Hi @TrueHeresy
We already have an icon voor c++ and c#.
I'll put C on the list.
Sincerely


docs: Add indexing limitation on files with lines over 4096 bytes

Why:
Closes: https://github.com/github/docs/issues/31535

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[x] I have reviewed my changes in staging, available via the View deployment link in this PR's timeline (this link will be available after opening the PR).

For content changes, you will also see an automatically generated comment with links directly to pages you've modified. The comment won't appear if your PR only edits files in the data directory.

[x] For content changes, I have completed the self-review checklist.

@gonmmarques Thanks so much for opening a PR with this fix! I'll update the branch and get this merged once tests are passing 🍏


document thread safety and recommended singleton usage

Fixes Or Enhances
Documentation about thread safety based on #315.
Make sure that you've checked the boxes below before you submit PR:

[x] Tests exist or have been written that cover this particular change. - not applicable

@go-playground/validator-maintainers

@deankarn can you approve workflow?

Coverage remained the same at 75.1% when pulling 022ec43c3bc9efd7cd71cd71ce372027719d1447 on andrascz:doc-concurrency-safe into a67baa74f14d83f810169f7cf0aa80d035af4a8c on go-playground:master.


[Table] Zero 0 is not sorted correctly

Bug, feature request, or proposal:
When sorting over a column of numbers the number zero is sorted incorreclty
Example:

What is the expected behavior?
0 should be larger than negative numbers
What is the current behavior?
0 is smaller than negative numbers
Is there anything else we should know?
The problem is probably here
https://github.com/angular/material2/blob/c05005a688a1ff929af966835ae33ca85c106fc9/src/lib/table/table-data-source.ts#L128-L139
0 evaluates to false, while it shouldn't in this case.
I think something along the lines of
if ((valueA || valueA === 0) && (valueB || valueB === 0)) {
  // Check if one value is greater than the other; if equal, comparatorResult should remain 0.
  if (valueA > valueB) {
    comparatorResult = 1;
  } else if (valueA < valueB) {
    comparatorResult = -1;
  }
} else if (valueA || valueA === 0) {
  comparatorResult = 1;
} else if (valueB || valueB === 0) {
  comparatorResult = -1;
}

should fix this issue

In the meantime a workaround is to define a custom sortingDataAccessor with
if (value === 0) {
    return Number.EPSILON;
}


Images should render as Image block instead of Paragraph block

Discuss in #issue-1--images-should-render-as-image-block-instead-of-paragraph-block
First of all thanks for making this library public. 💜
I am trying to convert markdown to Notion blocks. Everything works fine except images.
The images are currently rendered as a paragraph block
{
   "object":"block",
   "type":"paragraph",
   "paragraph":{
      "text":[
         {
            "type":"text",
            "annotations":{
               "bold":false,
               "strikethrough":false,
               "underline":false,
               "italic":false,
               "code":false,
               "color":"default"
            },
            "text":{
               "content":"https://i0.wp.com/css-tricks.com/wp-content/uploads/2021/09/s_C6DD37D8ED67AB804309E3524813327121D8EA01ECCF02AF2243019807FF6CCA_1631271964338_notion-front-page-hero.png?resize=1000,716&ssl=1"
            }
         }
      ]
   }
},

They should be rendered like
{
   "object":"block",
   "type":"image",
   "image":{
      "type":"external",
      "external":{
         "url":"https://i0.wp.com/css-tricks.com/wp-content/uploads/2021/09/s_C6DD37D8ED67AB804309E3524813327121D8EA01ECCF02AF2243019807FF6CCA_1631271964338_notion-front-page-hero.png?resize=1000,716&ssl=1"
      }
   }
},

Can you tell me how to do so?
Thanks

Hi @ravgeetdhillon there are some new updates for images in v1.1.0! Let us know if this solves your issue

All good now. Thanks for this project!


Screen share fails in Chrome "Could not start video source"

When I go to share my screen in Chrome (desktop mac) it fails with the error "Could not start video source". If I share just a window this works as expected.
I'm on version "0.7.1".

Hi! @baj84 thanks for reaching out!
Unfortunately, I am unable to reproduce the issue. Could you please try out the latest version of our Video React App.
Do you mind sharing with us the browser and version you are using?

Closing due to inactivity, but @baj84 feel free to comment here if you are still having this issue and we will reopen. Thanks!


decorate float/integer conversion with no contraction

Some driver optimize pattern like:
%0 = OpConvertFToS %int %input
%1 = OpConvertSToF %float %0

To remove completely the two conversions, while libclc relies on this pattern to be executed to perform rounded conversions.

SPIR-V describes NoContraction as only being applied to arithmetic instructions. We can't actually use it on conversions.

Apply only to an arithmetic instruction to indicate the operation cannot be combined with another instruction to form a single operation. For example, if applied to an OpFMul, that multiply can’t be combined with an addition to yield a fused multiply-add operation. Furthermore, such operations are not allowed to reassociate; e.g., add(a + add(b+c)) cannot be transformed to add(add(a+b) + c).

perform rounded conversions

If the goal is to do a rounded conversion, then it should use a Round or RoundToEven extended instruction.
https://registry.khronos.org/SPIR-V/specs/1.0/GLSL.std.450.html#:~:text=Extended instructions%3A-,Round,-Result is the

If the goal is to do a rounded conversion,

Whoops   float to int conversion is supposed to round to zero.
So it should be Trunc instead, I think.

libclc is doing this pattern here.
The goal is to deviate from the initial value by doing this double conversion. Then the deviation is analysed to generate rtz, rtn and rtp rounding mode. libclc assumes that the standard conversion is round to even.
Nvidia, Intel, and AMD (using mesa and the old llvm compiler) all round to even when performing OpConvertFToS.
AMD (using the new ACO compiler) round to zero.
Isn't there a CTS somewhere supposed to check that those Vulkan implementations round OpConvertFToS as required in the specification?
I can avoid the optimization performed by at least intel and AMD by inserting a FAdd with zero between the 2 conversions. I will transform this PR to add a hack option to do that.

Nvidia, Intel, and AMD (using mesa and the old llvm compiler) all round to even when performing OpConvertFToS.
AMD (using the new ACO compiler) round to zero.

Isn't there a CTS somewhere supposed to check that those Vulkan implementations round OpConvertFToS as required in the specification?

I guess not. Ouch.

Confirmed.  Vulkan CTS does not cover these cases.  I'll file a bug.


Ace Editor disable tab for accessibility users.

When a user has enabled accessibility mode, disable tabbing in Ace editor.

I don't understand, please contact me to explain further...


python312Packages.blivet: 3.10.1 -> 3.11.0

Same as https://github.com/NixOS/nixpkgs/pull/354563 but includes the necessary version bump for dependency libblockdev as well.
Changelogs:

blivet:

https://github.com/storaged-project/blivet/releases/tag/blivet-3.11.0

libblockdev:

https://github.com/storaged-project/libblockdev/blob/master/NEWS.rst#libblockdev-320
https://github.com/storaged-project/libblockdev/blob/master/NEWS.rst#libblockdev-321

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

@JohnAZoidberg Hi, could you please have a look at this?

@JohnAZoidberg Hi, you are listed as the libblockdev maintainer, could you please have a look at this? It bumps the package version as it's needed to update a dependent library.


True

https://github.com/octocat/linguist/pull/2#discussion_r935083357

https://github.com/octocat/linguist/pull/2#discussion_r935083357

This seems unrelated to this repository, thus closing it.
Please feel free to reopen it by providing more details regarding your issue reagrding this product.


[WIP] Finalize s3 storage

Remove the S3 bucket during finalization (if we created it)

Pulled changes into my other PR, closing this one.


(JSON-FG) When time is missing, hangs on Checking...

Just try removing the "time" line from the default example at https://geonovum-labs.github.io/ogc-checker/?#/json-fg .
Difficult to figure out that is the cause! :)

@jerstlouis, thanks for reporting! The issue is fixed in https://github.com/Geonovum-labs/ogc-checker/commit/dd9624332ac354224f27bceb0dec72cf0f270a01!

Thanks @joostfarla for the fix!


Problems with push data!

Hi, I've a question, I'm having problems with de push notification with dinamyc routes! :S
From a Controller I'm doing this:
// Push Data
$pusher = $this->container->get('gos_web_socket.zmq.pusher');
$pusher->push([
'userId' => $user->getId(),
'userName' => $user->getLastName() . ', ' . $user->getFirstName(),
'avatar' => $user->getAvatar()
], 'class_students_connections',
array(
'idClass' => $session->getId()
)
);
In pubsub/routing.ymlhave this:
class_students_connections:
channel: class/connections/channel/{idClass}
handler:
callback: 'autogestion.class.students.connection'
In my client, the connection with the socket server is Successfully, and the channel with i trying to connect is:
var channel = "class/connections/channel/" + idClass;
console.log(channel);   //class/connections/channel/1
session.subscribe(channel, function(uri, data) {
console.log('data: ' + data );
console.log('userName: ' + data.userName );
});
Class ConnectionTopic The topic already implement TopicInterface, PushableTopicInterface,
and its function getName() is:
public function getName()
{
return 'autogestion.class.students.connection';
}
and its function onPush() is:
public function onPush(Topic $topic, WampRequest $request, $data, $provider)
{
$topic->broadcast($data);
}
I'm doing something wrong ??
Why can't get the push message in the client side ? :(

Do you declare your ConnectionTopic class like a service and with the tag gos_web_socket.topic?
Add requirements in your pubsub/routing.yml :
class_students_connections:
    channel: class/connections/channel/{idClass}
    handler:
        callback: 'autogestion.class.students.connection'
    requirements:
        idClass: '\d+'

I add
requirements:
idClass: '\d+'
But when I do push get this Exception:  :S
request.CRITICAL: Uncaught PHP Exception Symfony\Component\Debug\Exception\ContextErrorException: "Catchable Fatal Error: Argument 1 passed to Gos\Bundle\PubSubRouterBundle\Tokenizer\Token::setRequirements() must be of the type array, string given, called in /var/www/html/evaluados/vendor/gos/pubsub-router-bundle/Tokenizer/Tokenizer.php on line 52 and defined" at /var/www/html/evaluados/vendor/gos/pubsub-router-bundle/Tokenizer/Token.php line 79 {"exception":"[object] (Symfony\Component\Debug\Exception\ContextErrorException(code: 0): Catchable Fatal Error: Argument 1 passed to Gos\Bundle\PubSubRouterBundle\Tokenizer\Token::setRequirements() must be of the type array, string given, called in /var/www/html/evaluados/vendor/gos/pubsub-router-bundle/Tokenizer/Tokenizer.php on line 52 and defined at /var/www/html/evaluados/vendor/gos/pubsub-router-bundle/Tokenizer/Token.php:79)"} []

Excuse me, use that :
class_students_connections:
    channel: class/connections/channel/{idClass}
    handler:
        callback: 'autogestion.class.students.connection'
    requirements:
        idClass:
            pattern: '\d+'

what about your ConnectionTopic ? How do you declare it in your services.yml ?

I've this:
services:
autogestion.students_connections:
class: AutogestionBundle\Topic\ConnectionTopic
tags:
- { name: gos_web_socket.topic }
And the namespace is:
namespace AutogestionBundle\Topic;

On client side, your session.subscribe is in socket/connect callback like in the bottom of the doc ?

yes! :S
Is really necesary add:
requirements:
idClass:
pattern: '\d+'
??

Yes, same as route in symfony you must add regex pattern for every parameters.
Some other way :

Do you restart Websocket server after each edit php files ?
Do you add your pubsub/routing.yml path in your gos_web_socket config (resources parameters) ?
The regex pattern for "idClass" is good ?
Watch server side if client subscribe correctly to your channel

I'm sorry but i don't find what you do wrong and can't help you more.

I did forget to restart the web socket server, but when start again I get the same exception mentioned above! :S
I can't undestand the exception:
Catchable Fatal Error: Argument 1 passed to Gos\Bundle\PubSubRouterBundle\Tokenizer\Token::setRequirements() must be of the type array, string given
When i do push i've this:
$pusher = $this->container->get('gos_web_socket.zmq.pusher');
//push(data, route_name, route_arguments)
$pusher->push([
'userId' => $user->getId(),
'userName' => $user->getLastName() . ', ' . $user->getFirstName(),
'avatar' => $user->getAvatar()
], 'class_students_connections',
array( 'idClass' =>  $session->getId())
);
Is right ?
I think, if I can resolve the Exception the push will work!

-Do you restart Websocket server after each edit php files ? No. I forget to did it.

Do you add your pubsub/routing.yml path in your gos_web_socket config (resources parameters) ? Yes
The regex pattern for "idClass" is good ? I think here is the problem, but i don't know how can solve! :S
Watch server side if client subscribe correctly to your channel When start the web socket server i can see in the terminal this anon-59712148056fd824ff2edb238128672 subscribe to class/connections/channel/1, before throwing exception

Your push method seem good if $session->getId() == 1 (else the regex can be wrong) and $user->getAvatar() is a string (else I am not sure we can send binary file).
If client subscribe correctly, so the problem seem be in  services.yml
@ProPheT777 : Any idea ?

Finally i managed to make it work!! :D
The configuration i had was correct in the pubsub/routing.yml
class_students_connections:
channel: class/connections/channel/{idAssignature}
handler:
callback: 'autogestion.class.students.connection'
I just need to restart the web socket server! :D
I'm so sorry for generate so many inconvenience for this! :(

how you render your var "idClass from controller to you twig ? i have dynamic routes just like you , and i want to render an entity id from my controller to twig ? any help ?

Is Automatic, you just have to subscribe some clients from the client-side, por example:
var channel = "class/connections/channel/" + idClass;
console.log(channel);   //class/connections/channel/1
session.subscribe(channel, function(uri, data) ....
In the server-side, you have to can retrieve some id and do a push on it.
Hope this can help you! :)


can you add an env var for private use ?

if i want to use this bot for myself,what should i do ? can you add an env var for private use ?
like  AUTH_USERS =<PHONE_NUMBER>
if env var doesnt filled,everyone can use the bot.something like that..

You can fork and add


Parameter in the steps should also be taken into consideration in scenario outline

Scenario Outline: Sort Products
Given user is on the "Products" page
When user selects "" from the dropdown
Then items are sorted by "" in "" order
  Examples:
      | sort                | order |
      | Name (A to Z)       | ASC   |
      | Name (Z to A)       | DESC  |
      | Price (low to high) | ASC   |
      | Price (high to low) | DESC  |

Issue resolved


Make it possible to input all nutrition facts

When adding nutrition facts you can't add certain types.
E.g. "Fruits, vegetables, nuts and rapeseed, walnut and olive oils" is only available if you try it on the website.

Hi @Forger7
currently, the nutrition list is hardcoded in the app. #2357 should solve your issue. Also, please note that an estimate of "Fruits, vegetables, nuts and rapeseed, walnut and olive oils" is now computed from the ingredient list.

Thank you for clarifying. I can not follow on the estimate being computed, though. Doesn't do it for me on app version 3.2.9 or on the website.

It's not shown for the same reason. I'm closing this issue, and putting a P1 on #2357 which will solve it.


Deleting host, degrades service with scaling and scheduling rule

v0.23.0-master
Steps:

Create 3 host, all three should have a label where kind = testhost
Create a service
scale = 2 (Run 2 containers)
Scheduling = The host "must" have a "host label" of "kind" = "testhost"
Activate service
Delete one of the host where the service is running

Results:
The Service is degraded and now only contains 1 container
Expected:
On delete of host, it should start up another container to meet the scale criteria

Fix just merged into master

build from master - June 11th (afternoon)
Verified fixed


Feature/custom link tracking

@ajthomascouk This PR has got a cleaned up revision history. I've not moved away from $.each as it would have required changing anchors to an array rather than an object in order to have compatibility for < IE 9 as Object.keys is only an IE 9+ compatible feature.
There are likely additional improvements to make at some point wrt to anchors and the different values used by WT and HJ, however, I think that is for another time.
Fixes #133

:rocket: deployment of profiles-pr-136 in nhsuk-dev succeeded (http://profiles-pr-136.dev.beta.nhschoices.net)


Blank space drawn on top left blocking content if playback_window_position is Bottom

Symptom
Weird album art artefact drawn on terminal when playback_window_position is set to Bottom as shown in this screenshot:

Blank space drawn on top left that matches the dimensions of the album art.
I guess some logic that allocates space fell through some branch checks.
You won't notice this if playback_window_position is set to Top.
Expected behavior
There should NOT be blank space on the top left.
To Reproduce

clean install of spotify_player with the image feature
start spotify_player to generate default app.toml
change playback_window_position to Bottom
start spotify_player

Log and backtrace
No obvious trace from logs, will provide if needed.
Environment

Application version: spotify_player 0.16.2
Application features: I build my spotify_player using cargo with these options:

cargo install spotify_player --no-default-features --features daemon,rodio-backend,streaming,lyric-finder,clipboard,image,notify

fastfetch output (truncated):

OS: macOS Big Sur 11.4 20F71 x86_64
Shell: zsh 5.8
Terminal: kitty 0.30.0

Additional context
Issue appeared since version 0.16.2.
Issue rating

Reproducibility: always (always/sometimes)
Impact: non-breaking (breaking/non-breaking)

set playback_window_position to Top to avoid the issue for now
can be work around by typing extra space so I can see what I typed
scroll further up or down to see what is behind the blank space.

Size: entire app (entire app/specific feature)

@ed9w2in6 should be fixed by #328. Can you check out and run the branch locally to see if the fix works?

Solves my issue!

@aome510 wow I did not expect you to fix this that quickly, thanks!
I can confirm that it solves the issue for me as well and again thank you for your time on fixing this.


Do not close open editors when add folder to workspace

When you have some open files and/or some unsaved buffers in VS Code and you try to add some folder to projects area for quick access to files, VS Code try close all opened files/buffers, that is unnecessary.
At least must be option to keep files open

I can not reproduce this.
When I add a new fodler to the workspace the open editors list is preserved.
Please let me know what you are doing differentely and if you can reproduce it with vscode insiders https://code.visualstudio.com/insiders/

Try when you do not have any folder open

Yeah that is designed behavior which we will not change.
Our ux state is preserved per workspace, and when you move from no folder to folder the whole ux state is not preserved not only open editors.
Closing as designed.

I do not see the reasons why this behavior should be expected. You showed that in the presence already though any open folder the state is not reset. Why it is reset when opening the first folder? Than transition 0->1 open folders differs from n->(n+1) open folders? I opened the editor for the first time, opened a lot of files and I want to see them in the file system, and you suggest me to close everything and to begin with the beginning. It is possible to implement at least the setup changing this behavior?

@bpasero do we have some issue how the ux state is not preserved when going from 0->1? So the user can upvote it and comment there.

This is a bit inconsistent, when you drop a folder onto the explorer we could maybe ask what to do.

@Mingun can you please give a step by step explanation how you add a folder to the empty window?

First I have VS Code with some files (and some temporary unsaved buffers, that contains information, that I do not wont to save, but right now I need it, but in this screenshot such buffers is missed, because this is just illustrate):

After then I open folder and all my opened files is closed, and unsaved buffers discarded:

I want to keep them opened.

@Mingun got it. To prevent the window from reloading you could use our multi-root workspace feature and do File > Add Folder to Workspace. https://code.visualstudio.com/docs/editor/multi-root-workspaces

Thanks, @bpasero, that what I need. How about add button with this action under button "Open Folder" (and add tooltips explaining, what each button do)?


Media library does not display folders from storage/public while accessing it in CRUD view

Version information

Laravel: v5.7.28
Voyager: v^1.2
PHP: 7.2
Database:MySQL 8.0

Description

I upload a folder(nested folders) of images manually into storage/app/public folder.
All the folders and images into nested folders appears well when seen from media library of Admin Interface.

Next I created a bread and assigned a field "media picker".
While picking the image from the field, the folders are not visible here. Also adding new folder from the CRUD is also doesn't seem to be working.

Steps To Reproduce
Steps to reproduce the behavior:
Expected behavior
Images should be visible from the root of storage/app/public folders even in CRUD view
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

1.2 is quite old already. There were a lot of fixes to the media picker in 1.3.
Nonetheless the media-picker has a parameter base_path which defaults to the bread-slug and not the root folder of the public disk.

is there a way to not default it to base_path of bread-slug but root of the storage ?

It's a parameter. Set it to whatever you want.
You'll find everything in the docs.

Thanks a lot. This was definitely a helpful support indeed.


compilemessages not working in production using docker

What happened?
Running docker-compose -f production.yml run --rm django python manage.py compilemessages does not produce any .mo file, whereas running docker-compose -f local.yml run --rm django python manage.py compilemessages does.
What should've happened instead?
Running docker-compose -f production.yml run --rm django python manage.py compilemessages should produce .mo files at locale/<locale>/LC_MESSAGES.
Additional details
Logs show no error, i.e. processing file django.po in /app/locale/fr/LC_MESSAGES.
I suppose that the issue comes from the fact that the local.yml compose setup defines a volume for the django app whereas the production.yml does not.

Host system configuration:

Version of cookiecutter CLI (get it with cookiecutter --version):
OS name and version: Ubuntu 22.04.2 LTS
Python version, run python3 -V: 3.10.10
Docker version (if using Docker), run docker --version: 23.0.1, build a5ee5b1
docker-compose version (if using Docker), run docker-compose --version: 2.16.0

Running docker-compose -f production.yml run --rm django python manage.py compilemessages does not produce any .mo file, whereas running docker-compose -f production.yml run --rm django python manage.py compilemessages does.

I'm having a hard time spotting the difference between the 2 commands, did you mean to use local.yml in the 2nd one?

I suppose that the issue comes from the fact that the local.yml compose setup defines a volume for the django app whereas the production.yml does not.

That is correct, why do you need to compile messages on production?

I am sorry,  indeed I mean to use local.ymlin the second command (I have amended the issue accordingly).
Maybe I am missing something about how django translations work, but I have some static pages that are manually translated using version-controlled .po files and which are not properly translated in the served website if the .mo files are not present. Am I not supposed to use compilemessages for that? what am I missing?
Thanks in advance!

Right, the .mo files are ignored by git:
https://github.com/cookiecutter/cookiecutter-django/blob/6e7355a8c9a44926bc8456f722c9ed542ef8a7da/{{cookiecutter.project_slug}}/.gitignore#L49-L51
I actually don't know how one is supposed to handle this. The way I usually do it is generate them locally, commit these files in source control and call it a day, but maybe there is a better way to do that. I found this stackoverflow question, where the "right" answer is no but the practical answer is more around the lines of maybe 😃
To summarize:

These files should not in git as they are generated
We need to generate them before the application is started

That leaves 2 options (I think) to generate them:

when the Docker image is built
when the container starts

I feel like option 1 is better, as option 2 would mean we do the work multiple time (each time the container starts) and slow down start up time.


Update zsync2

Now allows for HTTP/2 responses.
Solves:
zsync_legacy: got non-HTTP response 'HTTP/2 206
'

Right; I should've done that directly. Thanks!


Add PQ_KEM_PARAMETERS client extension

Issue # (if available):
https://github.com/awslabs/s2n/issues/904
Description of changes:
This adds the logic to parse the new pq_kem_params client extension and send it if the cipher suite list the client proposes includes SIKE. This also update s2n clients to not send the ECC extension if it not needed (there are 5 such cases). This finishes s2n client and server support for hybrid ECDHE SIKE key exchange.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

:exclamation: No coverage uploaded for pull request head (client_extension@e0eae54). Click here to learn what that means.
The diff coverage is n/a.


web extensions

[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 14955ee9-29f2-46fe-3a8d-a42666f53ffc
Version Independent ID: 5d417cd0-a671-ee30-8fca-5f8b0addd328
Content: Develop a web extension - Azure DevOps
Content Source: docs/extend/get-started/node.md
Service: azure-devops
Sub-service: azure-devops-ecosystem
GitHub Login: @chcomley
Microsoft Alias: chcomley

I am closing this issue now.  You are welcome to @ mention me for any followup.  We hope to hear from you again.


Using a colon inside a custom field name is interpreted by Keeper as a new custom field

When using, for a custom field named company:customfield:salt and a value of false, using this to set it:
$custom = "company:customfield:salt : true"
Add-KeeperRecord -UpdateOnly -Title $title -Login $login -GeneratePassword -Custom $custom

It creates a new custom field named "company" and a value of "customfield:salt : true"
How to escape this properly?

Add-KeeperRecord function has been refactored recently to support record types.
The custom field array is defined as [string[]] $Fields, where a field has format NAME=VALUE
So, colon is not an issue anymore (the equal sign is)
We will fix this issue by supporting quotes around name and/or value
The older code parses custom fields as
if ($Custom) {    foreach($customField in $Custom) {      $pos = $customField.IndexOf(':')      if ($pos -gt 0 -and $pos -lt $customField.Length) {        $_ = $record.SetCustomField($customField.Substring(0, $pos), $customField.Substring($pos + 1))      }    }  }
I don't think there is a way to escape colon

As of which commit is it possible to set quotes around the name/value?
And how would that look like in Powershell?
Something like this comes to mind, but no idea if I'm thinking rightly about that.
$customfields = "`"company:customfield:salt`" : `"true`""
Add-KeeperRecord -UpdateOnly -Title $title -Login $login -GeneratePassword -Custom $customfields

hi @Surowa
I'll let @sk-keeper to reply to your question. But in the mean time can you let me know what use case are you trying to solve by having : in your custom field names? Maybe we are missing something?

https://github.com/Keeper-Security/keeper-sdk-dotnet/blob/6742fe5aa8f3d6264b21f82ca3121d9e8b4f7912/PowerCommander/RecordCommands.ps1#L314
could be replaced with
        if ($Custom) {
            foreach($customField in $Custom) {
				if (-not $customField) {
					continue
				}
				$pos = 1
				if ($customField[0] -in ('"', '''', '`')) {
					$quotePos = $customField.indexOf($customField[0], $pos)
					if ($quotePos -gt 0) {
						$pos = $quotePos + 1
					}
				}
                $pos = $customField.IndexOf(':', $pos)
                if ($pos -gt 0 -and $pos -lt $customField.Length) {
					$fieldName = $customField.Substring(0, $pos).Trim()
					if ($fieldName[0] -in ('"', '''', '`')) {
						$fieldName = $fieldName.Trim($fieldName[0])
					}
                    $_ = $record.SetCustomField($fieldName, $customField.Substring($pos + 1))
                }
            }
        }

Example:
Add-KeeperRecord -UpdateOnly -Title "Title" -Custom 'aaa:bbb:ccc:ddd'

@maksimu internally we use colons in our custom field names to distinguish internal custom fields from external custom fields in Keeper. Having colons parsed correctly in the PowerCommander allows us to quickly and easily manage these records from Powershell scripts as well.
@sk-keeper  Thanks! That clears it up. An improvement like that would be very desirable!

Do I need to submit a PR? Or can you do it @sk-keeper ?

This code cannot be merged into the repository.
The latest version of the Add-KeeperRecord cmdlet does not use a colon as a key-value separator. It uses = equal sign instead.


nixos/shiori: harden service with systemd

Motivation for this change
It's best when it's hardened
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@minijackson I wonder if you would be interested in submitting a PR upstream to add a systemd unit so others could benefit.
@bjornfor I'll leave to you to merge this because I'm not familiar with this software.

@bjornfor I'll leave to you to merge this because I'm not familiar with this software.

I'm not either :-)


[SPARK-22010][PySpark] Change fromInternal method of TimestampType

What changes were proposed in this pull request?
This PR changes the way pySpark converts Timestamp format from internal to Python representation.
The code is based on Python datetime and udatetime library.
https://github.com/python/cpython/blob/018d353c1c8c87767d2335cd884017c2ce12e045/Lib/datetime.py#L1425-L1458
https://github.com/freach/udatetime/blob/08f95c233188a6a3d316e9905cfb3379278376f5/udatetime/_pure.py#L30-L42
Benchmarks
Before change:
4.58 µs ± 558 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
After change:
System with UTC timezone
1.49 µs ± 142 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
Other timezones:
3.15 µs ± 388 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
How was this patch tested?
Existing tests.
Performance benchmarks.

Test build #81786 has started for PR 19234 at commit 02301eb.

Test build #81786 has finished for PR 19234 at commit 02301eb.

This patch fails Python style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81786/
Test FAILed.

Test build #81787 has started for PR 19234 at commit 25bf50d.

Test build #81787 has finished for PR 19234 at commit 25bf50d.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81787/
Test FAILed.

Test build #81788 has started for PR 19234 at commit f18f4c8.

Test build #81788 has finished for PR 19234 at commit f18f4c8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81788/
Test PASSed.

Test build #81845 has started for PR 19234 at commit bed6193.

Test build #81845 has finished for PR 19234 at commit bed6193.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/81845/
Test PASSed.

Could you mark [PySpark] in the title? cc @ueshin

LGTM.

Any idea why we're not using
datetime.datetime.fromtimestamp(ts / 100000.) ?
There is a comment about overflow. But if it exists ?

I'm asking because such a code is 2x faster than my solution

I think it was changed back in https://github.com/apache/spark/pull/7363. I think that avoids precision loss from Python's float limitation:
>>> decimal.Decimal(1 / 1e6)
Decimal('9.99999999999999954748111825886258685613938723690807819366455078125E-7')
>>> decimal.Decimal(1 / 100000)
Decimal('0')
>>> decimal.Decimal(1 / 100000.)
Decimal('0.000010000000000000000818030539140313095458623138256371021270751953125')

Also, I think // is used for Python 3 behaviour:
>>> 5 / 2
2.5
>>> 5 // 2
2

I check with some samples and code with float can trigger errors.

Seems fine to me too as is. @maver1ck, I think you could take out [WIP] and let it be merged.

OK. It passed all tests, so let merge it

Hm, BTW, do we handle
https://github.com/python/cpython/blob/018d353c1c8c87767d2335cd884017c2ce12e045/Lib/datetime.py#L1443-L1455:
        if tz is None:
            # As of version 2015f max fold in IANA database is
            # 23 hours at 1969-09-30 13:00:00 in Kwajalein.
            # Let's probe 24 hours in the past to detect a transition:
            max_fold_seconds = 24 * 3600
            y, m, d, hh, mm, ss = converter(t - max_fold_seconds)[:6]
            probe1 = cls(y, m, d, hh, mm, ss, us, tz)
            trans = result - probe1 - timedelta(0, max_fold_seconds)
            if trans.days < 0:
                y, m, d, hh, mm, ss = converter(t + trans // timedelta(0, 1))[:6]
                probe2 = cls(y, m, d, hh, mm, ss, us, tz)
                if probe2 == result:
                    result._fold = 1

Or do you guys see it could be ignorable as it is quite newly fixed (in 3.6.x) and a corner case vs the improvement?
Looking at the performance improvement in the PR description, it sounds pretty trivial. If it is safe to go, I am okay but if we miss anything, I doubt if it is worth fixing.

It was introduced with this PEP.
https://www.python.org/dev/peps/pep-0495/

@maver1ck, if you'd like to leave it as is, I think we should better close it.

I think that porting changes from Python 3.6 give us too complicated code.
I'm closing it.


function alias definition

as yet another form of construction (particular case of definable construction forms).

Closed by mistake, sorry.

An old local text file phrased it as: "set up some way of renaming the functions a function depends on (this may allow for setting up schemes, then to optimize those schemes in the Python translation)". This is actually one step beyond mere renaming, something like function arguments. As of today, though, maybe just having the primrec scheme suffices.


Prevent memory leaks in vibe.http.session.MemorySessionStore

Current MemorySessionStore implementation releases memory only via destroy(string id) function call. It is called via vibe.http.server.HTTPServerResponse.terminateSession() function if user goes to a logout page.
Memory leak can happens if user destroys information about current session without visit the logout page. We use cookies without expiration time and browser will delete it in the end of session (when user close the browser). So, next time the user login again and we have got the memory leak. It can be critical for high load.
Possible solution is use timers that automatically terminate the session after specified time (for example, 24 hours by default).

Delegating topic to #1006.


[#132170169] Configure apex domain to serve HSTS preload headers

What
Story: Fix credential leakage in aws-account-wide-terraform
We want to stop using the AWS API Gateway as it introduced the need to use the aws_api_gateway_domain_name resource in Terraform, which does not obfuscate sensitive fields, such as the certificate private key. However, we still need to serve valid HSTS headers from the apex domain (cloudapps.digital). We add the necessary HSTS header directives to the existing HSTS configuration in the manifest.
How to review
To be reviewed in conjunction with https://github.gds/government-paas/aws-account-wide-terraform/pull/63, which must be deployed to staging and production first.

Deploy from this branch
Use curl to get the headers for the healthcheck application and the apex domain:$ curl -i https://healthcheck.colin-sept.dev.cloudpipelineapps.digital -k
HTTP/1.1 200 OK
...
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

$ curl -i https://colin-sept.dev.cloudpipelineapps.digital -k
HTTP/1.1 404 Not Found
...
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Make sure the custom acceptance tests pass

Who can review
Anyone but me or @saliceti

LGTM

@keymon the aws-account-wide-terraform#63 should have been applied to staging and production first, to remove the DNS entries pointing the apex domain to the Cloud Front distribution in front of the API Gateway.


[🐞] vite_ssr_import_1.getLocale is not a function

Which component is affected?
Qwik City (routing)
Describe the bug
Compilation fails due to the following error in the browser overlay:
__vite_ssr_import_1__.getLocale is not a function

...node_modules/@builder.io/qwik-city/index.qwik.mjs:296:19

294|    useWatchQrl(inlinedQrl(async ({ track }) => {
295|      const [content2, contentInternal2, documentHead2, env2, routeLocation2, routeNavigate2] = useLexicalScope();
296|      const locale = getLocale("");
   |                     ^
297|      const { routes, menus, cacheModules } = await import("@qwik-city-plan");
298|      const path = track(() => routeNavigate2.path);

Reproduction
N/A qwik.new hasn't got latest package.json versions
Steps to reproduce
package.json update to latest:
<EMAIL_ADDRESS>"0.14.0",
<EMAIL_ADDRESS>"0.0.125"
Run the app as usual
System Info
System:
    OS: Linux 4.19 Ubuntu 20.04.4 LTS (Focal Fossa)
    CPU: (16) x64 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz
    Memory: 22.57 GB / 24.99 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 16.17.1 - /usr/local/bin/node
    npm: 8.19.2 - ~/.npm-global/bin/npm
  npmPackages:
    @builder.io/qwik: 0.14.0 => 0.14.0
    @builder.io/qwik-city: 0.0.125 => 0.0.125
    vite: 3.2.4 => 3.2.4

Additional Information
No response

This was fixed in latest release! make sure you are using latest qwik and qwikcity:
0.14.1 and 0.0.127 respectively!


Added Roadmap for UI/UX

Fixes Issue #188

Description:
This is Roadmap for UI/UX
Checklist:
Before submitting your pull request, ensure that you have completed the following tasks:

[x] I have carefully reviewed and adhered to the contributing guidelines before creating this pull request.
[x] I followed the prescribed PR title template. (Check this if you're adding a resource)

@jfmartinz I have added the suggested changes