CSharpShellApp icon indicating copy to clipboard operation
CSharpShellApp copied to clipboard

Report for the new Maui version

Open Alisis33 opened this issue 1 year ago • 9 comments

I am testing the new Maui version 3.1.11 right now. ... I am not sure jet if I stay with the old version for a while. I write all here in one report, not every issue seperatly, because of the many changes. but fore acepted issues, a separate bugreport can be created if prevered.

I avoided Maui until now. is there any converter or translator from .forms to Maui? or someboty know a good source for a translation advice? (I have no vs)

cshell should create a backup zip before automaticaly reframing any code.

the reframing/code-translator for maui is buggy, in some cases it enters no "using" or no ";"

the reframing/code-translator for maui is incomplete, it not changes in-code xamarin names. some codes can be updated with a regex list for a translator. (I work on a list, I can poste it here, but i garanty incompleteness and not garanty correctness. but it will help a bit. Write a comment if you are interessted.)

after creating a new Maui project, "CSharpShell" not exists.

Copy paset on top function bar seems not to work anymore. I prevere the top bar instead of the popops. the popup not show up if the line has a error and needs often annoying multiple clicks to trigger. and i not like popups in General that much, because they are hidding view and edit and not have a static nature.

The popups are often in the way of view and edit. pupup for autocomplete not show enough entrys. i thing the more names the better, I call overpacet or to small pupups or lists claustrophobia triggers. I prevere the old autocomplete version, if I need return types I use reflection, if it works.

it needs to click 2 times on a error in the errorpage to jump to the code line.

(I hate it to be forged to write in data/android!! but this is bigtech bu..sh..tttt, not cshell. if you get a permission for universal storage for the app and the apk it generates, it would be good.)

(there are more small but annoying bugs, but I think you work on it allready. this what i found trying to convert my most important app. hours of work, but nothing work yet...)

(a help page or link here for manual translation would be usefull.)

(sorry for errors, it is late...)

Alisis33 avatar Jul 24 '23 02:07 Alisis33

The migration process in the app is tested for basic projects and not the full possible API. I'm not sure Microsoft's migrator supports that (maybe in upcoming .NET 8). It also doesn't handle API changes. This is Microsoft's article on Xamarin.Forms to .NET MAUI.

Also internal namespaces and some public C# Shell API's were renamed to CSharpShellCore 6+ months upon the release of .NET 7 support. Shouldn't be a problem unless you're using full type names.

I can make the errors popup forcibly close on selection start. The completions layout doesn't shrink when completions details are disabled, I will fix that. The completion size settings are working as expected, though. It is intended to be more customizable than before.

1 click goes from error item to code file, current or not. Unless you swipe then that that doesn't count as a click.

I could inquire Google about the storage manager permission process, however even if they grant it I'm 98% certain they can reverse that after a later review. Meaning I must also reverse the change fast.

radimitrov avatar Jul 24 '23 19:07 radimitrov

something more...

The new search is uncomfortable. Replace and all options could be placed in the same field.

Escaping is wrong again. \t not turns in to tabulator.

Creating a new project creates a assets folder in the wrong directory.

enable default compile items = false, causes that this files in app.xaml are not found, but they are Lister in the project. <ResourceDictionary Source="Resources/Styles/Colors.xaml" /> <ResourceDictionary Source="Resources/Styles/Styles.xaml" />

I use oftan fully qualified names in codes. they all had to be renamed manualy. all this names and CSharpShellCore could be renamed by conversion. CSharpShellCore is not in the help jet, still CSharpShell.Utils.

Alisis33 avatar Jul 27 '23 17:07 Alisis33

That the "standard" Android style, which I don't prefer either. I could try to force the search replace in a bigger 2 line style if Android cooperates. I will investigate the .xaml problems later. However \t works? Are you editing the quickbar? Make sure there are no trailing spaces.

radimitrov avatar Jul 30 '23 19:07 radimitrov

In search and replace \t is not escaped. It seams in the new version 3.x are some bugs back you have fixed already in the 2.x version.

Some more It not finds TTF fonts.

It not finds assets with CSharpShellCore.Utils.GetAssetAsString.

Something what given me some headache is maybe a bug in Maui xaml (not cshell). I used a flayoutpage and the screen stay black. I had to include a code for the contentpage in the constructor, something like this. Detail = new NavigationPage(new ContentPage()); This was not needed in the xamarin version, maybe interesting for other users for conversion to maui.

Alisis33 avatar Aug 03 '23 16:08 Alisis33

... a other one is Grid.Children.Add to Grid.Add

Alisis33 avatar Aug 03 '23 16:08 Alisis33

And here is a converter script in case you are interested. It is incomplete and maybe translates some names wrong, but it is hopefully a little help if full names are used.

You can code a regex script, 2 columns, \t separated, 1. search, 2. Replace, 3. Comment, skip if 1. Is empty.

Maybe there is a to maui translator out somewhere which do's the job better, but I have not found one now.

I have no good list for Xamarin.Essentials names now...

Alisis33 avatar Aug 03 '23 17:08 Alisis33

xmlns="http://xamarin.com/schemas/2014/forms"	xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:xct="http://xamarin.com/schemas/2020/toolkit"	xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

\busing Xamarin\.Forms;	using Microsoft.Maui;\nusing Microsoft.Maui.Controls;

\busing Xamarin\.Forms\.Xaml;	using Microsoft.Maui.Controls.Xaml;


\bApp\.Current\.Properties\b	Microsoft.Maui.Storage.Preferences


	\bXamarin\.Forms API\b				Comment
\bXamarin\.Forms\.Color\.R\b	Microsoft.Maui.Graphics.Color.Red
\bXamarin\.Forms\.Color\.G\b	Microsoft.Maui.Graphics.Color.Green
\bXamarin\.Forms\.Color\.B\b	Microsoft.Maui.Graphics.Color.Blue
\bXamarin\.Forms\.Color\.A\b	Microsoft.Maui.Graphics.Color.Alpha
\bXamarin\.Forms\.Color\.Hue\b	Microsoft.Maui.Graphics.Color.GetHue			Xamarin.Forms property replaced with a method in .NET MAUI.
\bXamarin\.Forms\.Color\.Saturation\b	Microsoft.Maui.Graphics.Color.GetSaturation			Xamarin.Forms property replaced with a method in .NET MAUI.
\bXamarin\.Forms\.Color\.Luminosity\b	Microsoft.Maui.Graphics.Color.GetLuminosity			Xamarin.Forms property replaced with a method in .NET MAUI.
	\bXamarin\.Forms\.Color\.Default\b				No .NET MAUI equivalent. Instead, Microsoft.Maui.Graphics.Color objects default to null.
	\bXamarin\.Forms\.Color\.Accent\b				No .NET MAUI equivalent.
\bXamarin\.Forms\.Color\.FromHex\b	Microsoft.Maui.Graphics.Color.FromArgb

\bXamarin\.Forms\.Color\.(AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenrod|DarkGray|DarkGreen|DarkGrey|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGray|DarkSlateGrey|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGray|DimGrey|DodgerBlue|Firebrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|Goldenrod|Gray|Green|GreenYellow|Grey|Honeydew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenrodYellow|LightGray|LightGreen|LightGrey|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGray|LightSlateGrey|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquamarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenrod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGray|SlateGrey|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b	Microsoft.Maui.Graphics.Colors.$1
\bXamarin\.Forms\.Color\.(Accent|Default|Transparent|SetAccent)\b	Microsoft.Maui.Controls.KnownColor.$1

\bXamarin\.Forms\.Color\b	Microsoft.Maui.Graphics.Color


	\bXamarin\.Forms API\b				Comments
\bXamarin\.Forms\.Device\.Android\b	Microsoft.Maui.Devices.DevicePlatform.Android
\bXamarin\.Forms\.Device\.iOS\b	Microsoft.Maui.Devices.DevicePlatform.iOS
	\bXamarin\.Forms\.Device\.GTK\b				No .NET MAUI equivalent.
	\bXamarin\.Forms\.Device\.macOS\b				No .NET MAUI equivalent. Instead, use Microsoft.Maui.Devices.DevicePlatform.MacCatalyst.
\bXamarin\.Forms\.Device\.Tizen\b	Microsoft.Maui.Devices.DevicePlatform.Tizen
\bXamarin\.Forms\.Device\.UWP\b	Microsoft.Maui.Devices.DevicePlatform.WinUI
	\bXamarin\.Forms\.Device\.WPF\b				No .NET MAUI equivalent.
	\bXamarin\.Forms\.Device\.Flags\b				No .NET MAUI equivalent.
\bXamarin\.Forms\.Device\.FlowDirection\b	Microsoft.Maui.ApplicationModel.AppInfo.RequestedLayoutDirection
\bXamarin\.Forms\.Device\.Idiom\b	Microsoft.Maui.Devices.DeviceInfo.Idiom
\bXamarin\.Forms\.Device\.IsInvokeRequired\b	Microsoft.Maui.Dispatching.Dispatcher.IsDispatchRequired
\bXamarin\.Forms\.Device\.OS\b	Microsoft.Maui.Devices.DeviceInfo.Platform
\bXamarin\.Forms\.Device\.RuntimePlatform\b	Microsoft.Maui.Devices.DeviceInfo.Platform
\bXamarin\.Forms\.Device\.BeginInvokeOnMainThread\b	Microsoft.Maui.ApplicationModel.MainThread.BeginInvokeOnMainThread
\bXamarin\.Forms\.Device\.GetMainThreadSynchronizationContextAsync\b	Microsoft.Maui.ApplicationModel.MainThread.GetMainThreadSynchronizationContextAsync
	\bXamarin\.Forms\.Device\.GetNamedColor\b				No .NET MAUI equivalent.
	\bXamarin\.Forms\.Device\.GetNamedSize\b				No .NET MAUI equivalent.
\bXamarin\.Forms\.Device\.Invalidate\b	Microsoft.Maui.Controls.VisualElement.InvalidateMeasure
\bXamarin\.Forms\.Device\.InvokeOnMainThreadAsync\b	Microsoft.Maui.ApplicationModel.MainThread.InvokeOnMainThreadAsync
\bXamarin\.Forms\.Device\.OnPlatform\b	Microsoft.Maui.Devices.DeviceInfo.Platform
\bXamarin\.Forms\.Device\.OpenUri\b	Microsoft.Maui.ApplicationModel.Launcher.OpenAsync
	\bXamarin\.Forms\.Device\.SetFlags\b				No .NET MAUI equivalent.
\bXamarin\.Forms\.Device\.SetFlowDirection\b	Microsoft.Maui.Controls.Window.FlowDirection
\bXamarin\.Forms\.Device\.StartTimer\b	Microsoft.Maui.Dispatching.DispatcherExtensions.StartTimer or Microsoft.Maui.Dispatching.Dispatcher.DispatchDelayed


	\bXamarin\.Forms API\b				Comment
\bXamarin\.Forms\.Maps\.Map\.HasScrollEnabled\b	Microsoft.Maui.Controls.Maps.Map.IsScrollEnabled
\bXamarin\.Forms\.Maps\.Map\.HasZoomEnabled\b	Microsoft.Maui.Controls.Maps.Map.IsZoomEnabled
\bXamarin\.Forms\.Maps\.Map\.TrafficEnabled\b	Microsoft.Maui.Controls.Maps.Map.IsTrafficEnabled
	\bXamarin\.Forms\.Maps\.Map\.MoveToLastRegionOnLayoutChange\b				No .NET MAUI equivalent.
\bXamarin\.Forms\.Maps\.Pin\.Id\b	Microsoft.Maui.Controls.Maps.Pin.MarkerId
\bXamarin\.Forms\.Maps\.Pin\.Position\b	Microsoft.Maui.Controls.Maps.Pin.Location
\bXamarin\.Forms\.Maps\.MapClickedEventArgs\.Position\b	Microsoft.Maui.Controls.Maps.MapClickedEventArgs.Location
\bXamarin\.Forms\.Maps\.Position\b	Microsoft.Maui.Devices.Sensors.Location			Members of type Xamarin.Forms.Maps.Position have changed to the Microsoft.Maui.Devices.Sensors.Location type.
\bXamarin\.Forms\.Maps\.Geocoder\b	Microsoft.Maui.Devices.Sensors.Geocoding			Members of type Xamarin.Forms.Maps.Geocoder have changed to the Microsoft.Maui.Devices.Sensors.Geocoding type.


	\bXamarin\.Forms API\b				Comments
\bXamarin\.Forms\.Application\.Properties\b	Microsoft.Maui.Storage.Preferences
\bXamarin\.Forms\.Button\.Image\b	Microsoft.Maui.Controls.Button.ImageSource
\bXamarin\.Forms\.Frame\.OutlineColor\b	Microsoft.Maui.Controls.Frame.BorderColor
\bXamarin\.Forms\.IQueryAttributable\.ApplyQueryAttributes\b	Microsoft.Maui.Controls.IQueryAttributable.ApplyQueryAttributes			In Xamarin.Forms, the ApplyQueryAttributes method accepts an IDictionary<string, string> argument. In .NET MAUI, the ApplyQueryAttributes method accepts an IDictionary<string, object> argument.
\bXamarin\.Forms\.MenuItem\.Icon\b	Microsoft.Maui.Controls.MenuItem.IconImageSource			Xamarin.Forms.MenuItem.Icon is the base class for Xamarin.Forms.ToolbarItem, and so ToolbarItem.Icon becomes ToolbarItem.IconImageSource.
\bXamarin\.Forms\.OrientationStateTrigger\.Orientation\b	Microsoft.Maui.Controls.OrientationStateTrigger.Orientation			In Xamarin.Forms, the OrientationStateTrigger.Orientation property is of type DeviceOrientation. In .NET MAUI, the OrientationStateTrigger.Orientation property is of type DisplayOrientation.
\bXamarin\.Forms\.OSAppTheme\b	Microsoft.Maui.ApplicationModel.AppTheme
\bXamarin\.Forms\.Span\.ForegroundColor\b	Microsoft.Maui.Controls.Span.TextColor
\bXamarin\.Forms\.ToolbarItem\.Name\b	Microsoft.Maui.Controls.MenuItem.Text			Microsoft.Maui.Controls.MenuItem.Text is the base class for Microsoft.Maui.Controls.ToolbarItem, and so ToolbarItem.Name becomes ToolbarItem.Text.



	Page
\bXamarin\.Forms\.ContentPage\b	Microsoft.Maui.Controls.ContentPage
\bXamarin\.Forms\.FlyoutPage\b	Microsoft.Maui.Controls.FlyoutPage
\bXamarin\.Forms\.NavigationPage\b	Microsoft.Maui.Controls.NavigationPage
\bXamarin\.Forms\.TabbedPage\b	Microsoft.Maui.Controls.TabbedPage
		
	Layout
\bXamarin\.Forms\.AbsoluteLayout\b	Microsoft.Maui.Controls.AbsoluteLayout
\bXamarin\.Forms\.BindableLayout\b	Microsoft.Maui.Controls.BindableLayout
\bXamarin\.Forms\.FlexLayout\b	Microsoft.Maui.Controls.FlexLayout
\bXamarin\.Forms\.Grid\b	Microsoft.Maui.Controls.Grid
\bXamarin\.Forms\.HorizontalStackLayout\b	Microsoft.Maui.Controls.HorizontalStackLayout
\bXamarin\.Forms\.StackLayout\b	Microsoft.Maui.Controls.StackLayout
\bXamarin\.Forms\.VerticalStackLayout\b	Microsoft.Maui.Controls.VerticalStackLayout
		
	View
\bXamarin\.Forms\.ActivityIndicator\b	Microsoft.Maui.Controls.ActivityIndicator
\bXamarin\.Forms\.BlazorWebView\b	Microsoft.Maui.Controls.BlazorWebView
\bXamarin\.Forms\.Border\b	Microsoft.Maui.Controls.Border
\bXamarin\.Forms\.BoxView\b	Microsoft.Maui.Controls.BoxView
\bXamarin\.Forms\.Button\b	Microsoft.Maui.Controls.Button
\bXamarin\.Forms\.CarouselView\b	Microsoft.Maui.Controls.CarouselView
\bXamarin\.Forms\.CheckBox\b	Microsoft.Maui.Controls.CheckBox
\bXamarin\.Forms\.CollectionView\b	Microsoft.Maui.Controls.CollectionView
\bXamarin\.Forms\.ContentView\b	Microsoft.Maui.Controls.ContentView
\bXamarin\.Forms\.DatePicker\b	Microsoft.Maui.Controls.DatePicker
\bXamarin\.Forms\.Editor\b	Microsoft.Maui.Controls.Editor
\bXamarin\.Forms\.Ellipse\b	Microsoft.Maui.Controls.Ellipse
\bXamarin\.Forms\.Entry\b	Microsoft.Maui.Controls.Entry
\bXamarin\.Forms\.Frame\b	Microsoft.Maui.Controls.Frame
\bXamarin\.Forms\.GraphicsView\b	Microsoft.Maui.Controls.GraphicsView
\bXamarin\.Forms\.Image\b	Microsoft.Maui.Controls.Image
\bXamarin\.Forms\.ImageButton\b	Microsoft.Maui.Controls.ImageButton
\bXamarin\.Forms\.IndicatorView\b	Microsoft.Maui.Controls.IndicatorView
\bXamarin\.Forms\.Label\b	Microsoft.Maui.Controls.Label
\bXamarin\.Forms\.Line\b	Microsoft.Maui.Controls.Line
\bXamarin\.Forms\.ListView\b	Microsoft.Maui.Controls.ListView
\bXamarin\.Forms\.Map\b	Microsoft.Maui.Controls.Map
\bXamarin\.Forms\.Path\b	Microsoft.Maui.Controls.Path
\bXamarin\.Forms\.Picker\b	Microsoft.Maui.Controls.Picker
\bXamarin\.Forms\.Polygon\b	Microsoft.Maui.Controls.Polygon
\bXamarin\.Forms\.Polyline\b	Microsoft.Maui.Controls.Polyline
\bXamarin\.Forms\.ProgressBar\b	Microsoft.Maui.Controls.ProgressBar
\bXamarin\.Forms\.RadioButton\b	Microsoft.Maui.Controls.RadioButton
\bXamarin\.Forms\.Rectangle\b	Microsoft.Maui.Controls.Rectangle
\bXamarin\.Forms\.RefreshView\b	Microsoft.Maui.Controls.RefreshView
\bXamarin\.Forms\.RoundRectangle\b	Microsoft.Maui.Controls.RoundRectangle
\bXamarin\.Forms\.ScrollView\b	Microsoft.Maui.Controls.ScrollView
\bXamarin\.Forms\.SearchBar\b	Microsoft.Maui.Controls.SearchBar
\bXamarin\.Forms\.Slider\b	Microsoft.Maui.Controls.Slider
\bXamarin\.Forms\.Stepper\b	Microsoft.Maui.Controls.Stepper
\bXamarin\.Forms\.SwipeView\b	Microsoft.Maui.Controls.SwipeView
\bXamarin\.Forms\.Switch\b	Microsoft.Maui.Controls.Switch
\bXamarin\.Forms\.TableView\b	Microsoft.Maui.Controls.TableView
\bXamarin\.Forms\.TimePicker\b	Microsoft.Maui.Controls.TimePicker
\bXamarin\.Forms\.TwoPaneView\b	Microsoft.Maui.Controls.TwoPaneView
\bXamarin\.Forms\.WebView\b	Microsoft.Maui.Controls.WebView


\bXamarin\.Forms\.ScrollOrientation\b	Microsoft.Maui.ScrollOrientation
\bXamarin\.Forms\.LineBreakMode\b	Microsoft.Maui.LineBreakMode
\bXamarin\.Forms\.Thickness\b	Microsoft.Maui.Thickness
\bXamarin\.Forms\.Keyboard\b	Microsoft.Maui.Keyboard



	Xamarin.Forms namespace
\bXamarin\.Forms\.DualScreen\b	Microsoft.Maui.Controls.Foldable
\bXamarin\.Forms\.Maps\b	Microsoft.Maui.Controls.Maps		 and Microsoft.Maui.Maps
\bXamarin\.Forms\.PlatformConfiguration\b	Microsoft.Maui.Controls.PlatformConfiguration
\bXamarin\.Forms\.PlatformConfiguration\.AndroidSpecific\b	Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific
\bXamarin\.Forms\.PlatformConfiguration\.AndroidSpecific\.AppCompat\b	Microsoft.Maui.Controls.PlatformConfiguration.AndroidSpecific.AppCompat
\bXamarin\.Forms\.PlatformConfiguration\.TizenSpecific\b	Microsoft.Maui.Controls.PlatformConfiguration.TizenSpecific
\bXamarin\.Forms\.PlatformConfiguration\.WindowsSpecific\b	Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific
\bXamarin\.Forms\.PlatformConfiguration\.iOSSpecific\b	Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific
\bXamarin\.Forms\.Shapes\b	Microsoft.Maui.Controls.Shapes
\bXamarin\.Forms\.StyleSheets\b	Microsoft.Maui.Controls.StyleSheets
\bXamarin\.Forms\.Xaml\b	Microsoft.Maui.Controls.Xaml

\bXamarin\.Forms\b	Microsoft.Maui.Controls		and Microsoft.Maui



\bXamarin\.Essentials\.DeviceInfo\b	Microsoft.Maui.Devices.DeviceInfo
\bXamarin\.Essentials\.FileSystem\b	Microsoft.Maui.Storage.FileSystem
\bXamarin\.Essentials\.AppInfo\b	Microsoft.Maui.ApplicationModel.AppInfo
\bXamarin\.Essentials\.TextToSpeech\b	Microsoft.Maui.Media.TextToSpeech
\bXamarin\.Essentials\.Platform\b	Microsoft.Maui.ApplicationModel.Platform
\bXamarin\.Essentials\.Battery\b	Microsoft.Maui.Devices.Battery
\bXamarin\.Essentials\.VersionTracking\b	Microsoft.Maui.ApplicationModel.VersionTracking
\bXamarin\.Essentials\.DeviceDisplay\b	Microsoft.Maui.Devices.DeviceDisplay
	TextToSpeech	Microsoft.Maui.Media.TextToSpeech

\bXamarinFormsUiLib\b	MauiLib

Alisis33 avatar Aug 03 '23 17:08 Alisis33

Yes, assuming it still works correctly then it currently converts a subset of these. I can add most of them

radimitrov avatar Aug 08 '23 10:08 radimitrov

Maybe not use wath has a "and" in comment column like "and Microsoft.Maui", because it could convert wrong. They need to be more spesific. For me it worked, but it maybe frustrates other users.

Bether then simple regex would be a translator using the parser and translator data base. But I have not found any jet.

(Create a automatic backup zip of all changled files, in case...)

Alisis33 avatar Aug 08 '23 20:08 Alisis33