[BUG] MAUI: SKCanvasView crash, unable to display SKBitmap directly

Description
I try to render an SKBitmap on the view directly. In a Xamarin multi target app I could use SKCanvasView (from SkiaSharp.Views.Forms) and its OnPaintSurface and it worked perfectly.
Failed attempt 1:
But when I try the same in a MAUI app (this time SKCanvasView is referenced from the SkiaSharp.Views.Maui.Controls package) the application crashes.
<skiaCtrls:SKCanvasView x:Name="canvasView" PaintSurface="CanvasView_OnPaintSurface" HeightRequest="100"/>

private SKBitmap bitmap;

private void ButtonClicked(object sender, EventArgs e)
{
    bitmap = GenerateBitmap(); // some very standard premultiplied BGRA8888 bitmap
    canvasView.InvalidateSurface(); // to invoke CanvasView_OnPaintSurface
}

private void CanvasView_OnPaintSurface(object sender, SKPaintSurfaceEventArgs e)
{
    if (bitmap == null)
        return;
    SKImageInfo info = e.Info;
    SKSurface surface = e.Surface;
    SKCanvas canvas = surface.Canvas;
    canvas.DrawBitmap(bitmap, info.Rect);
}

Whereas this code worked in Xamarin, it crashes with MAUI:

Windows: Microsoft.UI.Xaml.Controls.Frame.NavigationFailed was unhandled.
The Exception property of the event argument is a COMException: Catastrophic failure (0x8000FFFF (E_UNEXPECTED))
Android: Microsoft.Maui.Platform.HandlerNotFoundException: 'Handler not found for view SkiaSharp.Views.Maui.Controls.SKCanvasView.'

Failed attempt 2:
SkiaSharp.Views.Maui.Controls has an SKBitmapImageSource class, which appears to be an elegant solution to expose an SKBitmap as a regular ImageSource:
<Image x:Name="imgTest" HeightRequest="100"  HorizontalOptions="Center"/>

private void ButtonClicked(object sender, EventArgs e) =>
    imgTest.Source = new SKBitmapImageSource { Bitmap = GenerateBitmap() };

Windows: Nothing happens (the bitmap is generated but the image does not appear)
Android: System.InvalidOperationException: 'Unable to find a image source service for SkiaSharp.Views.Maui.ISKBitmapImageSource.'

Failed attempt 3:
I tried to use a GraphicsView instead (from the Microsoft.Maui.Controls package):
<GraphicsView x:Name="graphicsViewTest" HeightRequest="100"/>

private void ButtonClicked(object sender, EventArgs e)
{
    graphicsViewTest.Drawable = new SkiaImage(GenerateBitmap());
    graphicsViewTest.Invalidate();
}

Windows: Nothing happens (the bitmap is generated but the image does not appear)
Android: NotSupportedException from SkiaImage.ToPlatformImage

Failed attempt 4:
As per Microsoft's guideline I tried to create a custom IDrawable implementation for a GraphicsView and use the drawing operations of ICanvas:
<GraphicsView x:Name="graphicsViewTest" HeightRequest="100"/>

private SKBitmap bitmap;

public MainPage()
{
    InitializeComponent();
    graphicsViewTest.Drawable = new MyDrawable(this);
}

private void ButtonClicked(object sender, EventArgs e)
{
    bitmap = GenerateBitmap();
    graphicsViewTest.Invalidate();
}

private class MyDrawable : IDrawable
{
    private readonly MainPage owner;
    public MyDrawable(MainPage owner) => this.owner = owner;

    public void Draw(ICanvas canvas, RectF dirtyRect)
    {
        if (owner.bitmap == null)
            return;
        canvas.DrawImage(new SkiaImage(owner.bitmap), dirtyRect.X, dirtyRect.Y, dirtyRect.Width, dirtyRect.Height);
    }
}

Windows: Does nothing. Turns out, it's because canvas.DrawImage just returns if the passed IImage is not a W2DImage. (???!!!) Doesn't it violate a lot of design rules?
Android: Throws NotSupportedException. canvas is now a ScalingCanvas, which wraps a PlatformCanvas, which wraps an Andorid.Graphics.RecordingCanvas

Expected Behavior
All of the solutions above seem to be logical to me. Attempt 1 is clearly a bug and should work.
And though attempts 2-4 also seem correct I cannot decide whether they are just not implemented yet or I misunderstood the design choices. Can you please clarify if they should work (maybe later on)?
Versions

SkiaSharp: 2.88
Windows: Version 10.0.19044.1766
Android: Android 11.0 API 30 (emulated Pixel 5)
SkiaSharp.Views.Maui.Controls: 2.88.1-preview.79
Microsoft.Maui.Graphics.Skia: 6.0.403

Disclaimer

I could not test MacOS and Linux
I know saving as .png + PlatformImage.FromStream would "work" but unfortunately that is an unacceptable solution for me

Reproduction Link
See the attachment. It now executes Attempt 1 but you can uncomment the other attempts, too.
MauiApp1.zip

Update: I opened a discussion in the dotnet/maui repo. Attempts 3 and 4 seem to be at their side but I'm not 100% sure where the boundaries are.

Hi,
I am also trying to run a simple sample with skiasharp and maui. I am having the same problem that you described in your first attempt on my project. And to make it crash, inserting the skiacanvas object to xaml is enough.
<skia:SKCanvasView x:Name="skiaView" />
So i was wondering, am i doing sth wrong with installation or officially skiasharp doesn't work with maui?

I am having this same sequence of issues myself.  After weeks of coding a graphics library to generate the images I want displayed on my maui page, I have hit a brick wall trying to get this last part to work.  I generate an SkBitmap and get the same crash when trying to use SkCanvasView and when trying to use the Maui Graphics view, I haven't been able to figure out how to render my skbitmap. trying with graphicsview says toplatformimage not supported.  This is very frustrating

Just an update from me, i have managed to fix the problem after long struggle,
To use SKCanvasView you need to configure this line in mauiprogram.cs in your project. Tell the maui to use skiasharp with this method
.UseSkiaSharp()
var builder = MauiApp.CreateBuilder();
            builder
                .UseMauiApp<App>()
                .UseSkiaSharp()

and for drawing bitmap, i believe it depends on what kind of bitmap data you have.
for ex: i had raw rgba data so i will be able to draw the bitmap with this code, here i am drawing it from byte array
using (var data = SKData.CreateCopy(_frameBuffer))
            using (var original = new SKBitmap())
            {
                // create a new bitmap using the memory
                original.InstallPixels(new SKImageInfo(_frameWidth, _frameHeight, SKColorType.Rgba8888), data.Data);
                using (var resized = original.Resize(new SKImageInfo(canvasWidth, canvasHeight), SKFilterQuality.Medium))
                {
                    canvas.DrawBitmap(resized, 0, 0);
                }
            }

here in this issue @mattleibow explained it nicely. https://github.com/mono/SkiaSharp/issues/603
and for the .jpeg file that i have downloaded i can draw the bitmap like this.
 using (var image = SKBitmap.Decode(_frameBuffer))
            {
                canvas.DrawBitmap(image, 0, 0);
            }

some notes that i have found out while i am trying.

I couldn't use SKGLView it throws an error on maui, probably as a default, skcanvasview use gpu. But i am not sure about this
second thing is when i try to installpixels in this code
original.InstallPixels(new SKImageInfo(_frameWidth, _frameHeight, SKColorType.Rgba8888), data.Data);
if i do not define the type as Rgba8888, it loads the image with different format. Colors are kind of weird since it is a different format. But if i do not give the type in blazor with SKGLView it loads it succesfully, so i was stucked with that for a long time to find out the problem about weird colors.

hope this can help someone.

6 Letters. SAVIOR ^^^

Duplicate of #2013
The issue is there is no way for SkiaSharp to register handlers dynamically: https://github.com/dotnet/maui/issues/7258
Upvote that issue to get this working magically.


Toast Position

Description
I know that we can only position the notification from app.config.ts

export default defineAppConfig({
ui: {
notifications: {
// Show toasts at the top right of the screen
position: 'top-0 bottom-auto'
}
}
})

But it would be nice if we can use a prop inside the notification to position it also.
Additional context
No response

You can do this with :ui.
Example:

You can do this with :ui=. Example: <UNotifications :ui="{ position: 'bottom-14 right-0' }" />

Thanks for that. Unfortunately I am triggering the notification inside the script setup and have the notification component inside app.vue according to instructions.

Yeah, I just moved my  tag into the layouts I use. That way the layout that has a bottom action bar I'm trying to avoid can have it's own positioning.

any progress on this one? i want to display toast position dynamically from script.

This will be partially done in #1289 but on the global component with a position prop. You won't be able to choose a different position per toast.

Closing this as there are no plan to dynamically change the position of toasts in both v2 and v3. This is not supported by either Headless UI nor Radix Vue.


[Meta] OKHttp Client implementation

This is a parent ticket for the implementation of the OkHttpClient implementation. The action items are as follows;-

[x] #2
[x] #5
[x] Vet Naming and related inner documentation of classes
[x] Update ReadMe when Classes become stable
[x] #3
[x] Add CD workflow for package publishing

Closing this tracker issue as all sub-tasks are done.


Document.fromHtmlFragment

This PR helps alleviate the issue of wanting to parse HTML fragments without them being wrapped in implied document elements (doctype, head, body, etc)

/cc @rc0x03 @teleological

@defunctzombie Added my comments. Looks good, but would be nice to have fromHtmlString replaced with something working.

@defunctzombie This looks good to me after the suggested changes have been applied. It would be really nice to have all of the htmlParserOptions available at some point.

@rc0x03 @teleological @defunctzombie I think this should be good to go based on your feedback

:+1: Looks ready for squash and merge to me.

Squashed

:+1:

@defunctzombie can this be merged? We would love to start using this feature in our apps :)


Remove unused issuer from RequestAuthentication

Description
Changes proposed in this pull request:

Ory stack was removed from KCP, this endpoint does not exists anymore, and it generates errors in istio

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

/retest-required


No libgcc

This package does not link to libgomp so we don't need libgcc as a run requirement.

Hi! This is the friendly conda-forge-admin automated user.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


only include/osmium is installed

From the readme I had the impression that protozero and utf8 would be installed by make install:

The protozero and utf8-cpp header-only libraries are included in the libosmium repository.

The include directory of libosmium contains:
gdalcpp.hpp  osmium/  protozero/  utf8/  utf8.h
CMakeLists.txt has:
install(DIRECTORY include/osmium DESTINATION include)

joto, I tried to enable this option today and it did not work.  However, I was able to fix it.
CMakeFiles.txt has:
if(INSTALL_UTFCPP)
install(include/utf8.hpp DESTINATION include)
install(DIRECTORY include/utf8 DESTINATION include)
endif()
but that is not the name of the header.  I fixed it like this:
if(INSTALL_UTFCPP)
install(FILES include/utf8.h DESTINATION include)
install(DIRECTORY include/utf8 DESTINATION include)
endif()
I don't know how to submit this as a change, so you may want to paste it in from here.  The INSTALL_GDALCPP also looks like it needs to be fixed, but I did not try it.

@bdiscoe thanks. I have added your fix.


Make CTFd more Flexible

These patches increase compatibility so CTFd can be deployed in more environments.
The first patch adds the capability for CTFd to be deployed with a SCRIPT_ROOT other than '/', allowing a CTFd instance to be placed as a server block/vhost under e.g. '/ctf'.
The second patch changes many of the SQL queries to be compatible with more strict SQL environments such as PostgreSQL, as currently many of the queries (specifically GROUP_BY) needed some redesigning in order to comply with the SQL standard.  Everything should be fine, with the only thing I'm slightly concerned about with compatibility being admin_team changing from 1/0 to True/False (needed by psycopg2).
The third patch is simple, and just adds an example uwsgi configuration file to help explain deployment under uwsgi+nginx, as the wiki could be more clear on how to accomplish this and it took a bit of trial and error.

This is an impressive commit and I thank you for taking the time to go through it.
Thank you very much. I'm going through it right now.

All of these changes with
var server_root = $(".server-root-uri")[0].id

don't make a lot of sense b/c you can just add something like
<script>var server_root = "{{ request.script_root }}"</script>

into base.html

Ugh, that's what happens when you get lazy and start changing files using sed.
I'll try to fix these, thanks for the QA

Also have some general comments about some of the functions. Overall, thanks for the help :)

Alright, I've fixed most of the issues where server_root is referenced when it shouldn't.  I ran a grep on }}# and it came up empty.
Still to be resolved:

unnecessary DOM querying
SQLite compatibility (nullslast() crashing)
redirects on '/'

I've run into issues inside of certain script blocks (specifically graphs.html) with {{ request.server_root }} not getting replaced properly (it just appears to become the empty string).  I'm not well versed enough with flask/jinja2 to understand why this is happening, but I'll work on transitioning javscript all over to using a global variable.
I've read that jinja2 treats things differently inside script blocks, so I don't know if this is part of that behavior or not.  I'm not experienced enough with webdev or flask to know what's going on here (I'm mostly a backend guy).

http://flask.pocoo.org/docs/0.10/patterns/jquery/#where-is-my-site
This discussion might help you, seems to need some filters/options for Jinja2.

The last two commits should fix the concerns you raised

Apologize for the couple of extraneous commits - the changes seemed trivial at the time but apparently I can't do HTML properly.

I can't review this right now but you can do a git squash to combine all of your commits into one.

Rebased and squashed

Still have the issue with url_for

Fixed/squashed/updated
I just manually prepended request.script_root to the path.
Alternatively, you can use url_for('views.static_html') and url_for('admin.list_container').  If you'd rather do that, let me know

Hmm would url_for('views.static_html') work?
I don't have a proper setup for testing hosting out of a folder so can you test if that would work properly? If so then definitely replace it with that.
I think this is looking pretty good. I'll test some stuff out when I can and merge eventually.

I tested both on my instance - I'll go ahead and change it over

Fixed/tested/squashed
Also made one more change to the team view in admin (another SQL group_by issue).
I've grepped all files for group_by and came up blank, so all queries should be fixed.

I have some other niggling gripes but they are overall less important than the general ideas. I think this is good to merge.

Awesome - just let me know what your gripes are and I'll address.

Already merged :)

Thanks - what I meant was that if you have some cleanup or changes you'd like me to make for a future pull request, just let me know.  Happy to help if I can.


tetrate-istio deployment fails

Setup:
I am using the following terraform repo to deploy eks cluster: https://github.com/aws-ia/terraform-aws-eks-blueprints
In this repo, I have enabled agrocd_addson and referred this repo for app of apps model deployment.
Issue:
When I enabled the tetrate-istio adds_on, argocd fails the deployment due to no namespace.
I compared other app templates in the "eks-blueprints-add-ons" and there is no difference. None of the templates has auto-creating namespace in the sync options. But others deploy namespace along with all other resources from helm chart.
Kindly advise on this.

It is perhaps helm chart issue. We need to add sync options --> createnamespace to fix this issue.


Proposal for units support for real entries

Discussed in https://github.com/pyansys/pyfluent/discussions/546

Originally posted by h-krishnan June 20, 2022
At present, real entries returned from the settings API are in SI units but the unit information is not available. There is no ready mechanism to convert the value to other units.
Suppose we define a "RealWithUnits" class:
class RealWithUnits(float):
   ...

The float value is the SI value of the setting, but the class also stores unit information.
Along with the real value, suppose we also return the units via the API.
>>> session.get_settings_service().get_var("setup/boundary-conditions/velocity-inlet/inlet2/vmag/constant")
(10.2, "m/s")

We can wrap the return value with RealWithUnits so that setup.boundary_conditions.velocity_inlet['inlet2'].vmag.constant() will return RealWithUnits(10.2, "m/s"). The __str__() method of this class will return (10.2, 'm/s').
We can support index operators so that users can get the value in desired units:
v = RealWithUnits(10.2, "m/s")
v["cm/s"]  # --> "1020 [cm/s]" ( ReaWithUnits(1020, "cm/s") )

Whenever values are set via RealWithUnits() instead of real, we could convert to SI units and then send to Fluent. We could support special "tuple" assignment:
setup.boundary_conditions.velocity_inlet['inlet2'].vmag.constant = (1.2, "ft/s")

Of course, if no units are specified, SI units are implicitly assumed.
setup.boundary_conditions.velocity_inlet['inlet2'].vmag.constant = 1.2  # m/s

Values returned from Fluent will always be in SI units. But if user creates their own RealWithUnits object and sets a setting with that value, the value will be converted to SI units before sending to Fluent. User's specification of units is not preserved in the case file.

Hi @h-krishnan, @dnwillia-work, @seanpearsonuk
We have started working on this issue. Here is the list of available packages that supports unit conversion.
https://socialcompare.com/en/comparison/python-units-quantities-packages
Locally we have tried units, pint and sympy packages.
units module is in very early stage of development and I could not found it's documentation.
out of above mentioned packages, we found that sympy package have more functionalities and ease of unit conversion.
Following is a small example specially created for converting 10.2 m/s to cm/s using sympy module.
Please have a look.

So can we continue with sympy package ?
Please share your views / suggestions.
Thank you.

@hpohekar perhaps we can keep this open to cover all future ongoing work in this area?

@hpohekar perhaps we can keep this open to cover all future ongoing work in this area?

Yes, sure.


Feature/upgrade runtime

For my understanding: When will isOffboarded be true? Directly after we initiate the deletion process? Or after the grace period?

Currently there is no grace period, only a deletion from the current device


Missing details for macOS

How does this get configured on macOS?

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

ID: 67197abd-ee35-668f-c454-eb4b07f4a6f9
Version Independent ID: 647d2380-5ddd-cc17-9f43-93773ff75b9c
Content: OneDrive sync reports in the Apps Admin Center - OneDrive
Content Source: OneDrive/sync-health.md
Service: one-drive
GitHub Login: @adeejoseph
Microsoft Alias: adjoseph

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Filename not working

I have been able to upload to my amazon S3 bucket, perfectly, but when I try and display the new file name in the confirmation, all that displays is undefined.
`    var upload = multer({
storage: multerS3({
s3: s3,
bucket: 'imagebucket',
acl: 'public-read',
metadata: function (req, file, cb) {
cb(null, Object.assign({}, req.body));
},
key: function (req, file, cb) {
console.log(file);
cb(null, Date.now()+file.originalname);
}
})
})
app.post('/upload', upload.single('upload'), function(req, res, next) {
  res.send('Successfully uploaded ' + req.file.length + ' file!')
})`

and this is my form:
`

                  <input type="file" name="upload"/>

                  <input type="submit"/>

          </form>`

'Successfully uploaded ' + req.file.length + ' file!'

I think you meant to look at req.file.key instead of req.file.length?

Perfect, thanks :-)


Tooltip content is partially transparent

Which makes things harder to read if it is overlaying other content.
Is seen when content appears below the icon, but not above.

I thought I couldn't replicate this issue until I realized that it isn't a transparency issue. It looks like the dropdown label is being rendered above the tooltip.
Here's a tooltip below the dropdown...

And here's a tooltip above the dropdown...

Ahhh, the joys of element stacking order. 🤪

And here's how it looks when I change .tooltip-text z-index from 1 to 2...

I'll need to compare it to the stacking order of other elements with overlays before choosing a final z-index.

:tada: This issue has been resolved in version 1.17.0-alpha.40 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.17.0-alpha.22 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.20.4 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 4.20.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 3.0.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Error on windows - Rust error

Microsoft Windows [version 10.0.18363.900]
deno 1.1.3
v8 8.5.216
typescript 3.9.2

INFO load deno plugin "deno_mongo" from local "D:\WorkFolder\Devlopment\Peoples Project\Deno\deno-rest-api\.deno_plugins\deno_mongo_7117ccb53f8978e745db83130ae27b42.dll"
thread '<unnamed>' panicked at 'called `Option::unwrap()` on a `None` value', src\command\connect.rs:63:24
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Segmentation fault

And it's not just windows,MacOS, it's a mistake
[denon] starting `deno run --allow-net --allow-read --allow-write --allow-plugin --unstable app.ts`
INFO load deno plugin "deno_mongo" from local "project/.deno_plugins/deno_mongo_8834e91d4661df9888ff57240f3b8a4c.dylib"
INFO load deno plugin "deno_mongo" from local "project/.deno_plugins/deno_mongo_8834e91d4661df9888ff57240f3b8a4c.dylib"
thread 'main' panicked at 'Op already registered: mongo_command', /rustc/49cae55760da0a43428eba73abcb659bb70cf2e4/src/libstd/macros.rs:13:23
stack backtrace:
   0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
   1: core::fmt::write
   2: std::io::Write::write_fmt
   3: std::panicking::default_hook::{{closure}}
   4: std::panicking::default_hook
   5: std::panicking::rust_panic_with_hook
   6: std::panicking::begin_panic
   7: <deno::ops::plugin::PluginInterface as deno_core::plugin_api::Interface>::register_op
   8: deno::state::State::core_op::{{closure}}
   9: deno_core::core_isolate::CoreIsolateState::dispatch_op
  10: deno_core::bindings::send
  11: <extern "C" fn(A0) .> R as rusty_v8::support::CFnFrom<F>>::mapping::c_fn
  12: _ZN2v88internal25FunctionCallbackArguments4CallENS0_15CallHandlerInfoE
  13: _ZN2v88internal12_GLOBAL__N_119HandleApiCallHelperILb0EEENS0_11MaybeHandleINS0_6ObjectEEEPNS0_7IsolateENS0_6HandleINS0_10HeapObjectEEESA_NS8_INS0_20FunctionTemplateInfoEEENS8_IS4_EENS0_16BuiltinArgumentsE
  14: _ZN2v88internalL26Builtin_Impl_HandleApiCallENS0_16BuiltinArgumentsEPNS0_7IsolateE
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
fatal runtime error: failed to initiate panic, error 5

You seem to be loading two different versions of deno_mongo. Check with deno info that you are loading just one version of the module.

@lucacasonato
I think we can register_op_${verstion} to avoid the problem of multi-version dependencies, so that multiple versions can work at the same time, because there seems to be no way to avoid multiple upstream versions using multiple different versions.
I am glad that I initially decided to use a single register_op to proxy all the APIs, which makes it easy to implement this


tabnine <IP_ADDRESS> says enabled, error "not supported in arm64"

please complete the following information:

OS version: Nvidia JetPack 4.4 (Linux 4.9.140-tegra aarch64)
Editor version: 1.54.3
Programming language: any
TabNine extension version: <IP_ADDRESS>

Unable to provide logs, TabNine says "enabled" but not visible in status bar, in newly-opened .c file neither "TabNine::config" nor "TabNine::version" produce any results.  At very least, it should  show error in editor UI and clearly state it isn't supported (without having to dig into logs), not give every appearance of working normally.
Realistically, arm64 (really aarch64) needs to be supported, extremely common embedded ML development platform (Nvidia Jetson Nano, Xavier, etc.).  Jetson offers decently GPU-equipped environment even on Nano to run models.  Additionally, lack of arm64/aarch64 support not clearly mentioned in obvious locations at website, and statements about supporting VSCode (which does support arm & aarch64) imply otherwise.
Editor console logs:
[2021-03-28 17:29:24.533] [exthost] [error] Activating extension TabNine.tabnine-vscode failed due to an error:
[2021-03-28 17:29:24.546] [exthost] [error] Error: Sorry, the architecture 'arm64' is not supported by TabNine.
at getArch (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/binary/paths.js:62:11)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/binary/paths.js:6:22)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/binary/binaryFetcher/activeFileHandler.js:4:17)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/binary/binaryFetcher/index.js:6:29)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/binary/runBinary.js:4:25)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/binary/Binary.js:5:21)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/binary/requests/requests.js:4:18)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/capabilities.js:5:20)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/alphaInstaller.js:6:24)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at v (/usr/share/code/resources/app/out/vs/loader.js:3:12287)
at Object. (/home/jwiede/.vscode/extensions/tabnine.tabnine-vscode-3.2.15/out/extension.js:5:26)
at Module.u._compile (/usr/share/code/resources/app/out/vs/loader.js:3:12841)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
at Module.load (internal/modules/cjs/loader.js:1039:32)
at Module._load (internal/modules/cjs/loader.js:932:14)
at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
at Function.s.load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:27167)
at Function.._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:106:23919)
at Function.W._load (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:96:4637)
at Module.require (internal/modules/cjs/loader.js:1079:19)
at require (internal/modules/cjs/helpers.js:72:18)
Issue Details:

One additional note:  Inability to access config or logs unless full recognition model/engine is operational is poor design -- it gives users no means of identifying errors, etc. beyond simple "not working, maybe".  Having at least a command (shift+ctrl+P) to open config panel, instead of relying on editor typing and/or hub isn't "nice to have", it's really a UX necessity, IMO.

Thanks for the feedback @jwiede
We do need to improve the messaging to make it easier to understand what platforms we support and what platforms we do not.
If there is anything else I can do to assist you, please let me know.


Add traits with iterator support

I see this warning on every pr in this repo. Can we fix?
use of deprecated method crypto_bigint::uint::sqrt::<impl crypto_bigint::Uint<LIMBS>>::sqrt: This functionality will be moved to sqrt_vartime in a future release.

Fixed


Got a crash I have no clue why it is happening but here is the crash log

Got a crash I have no clue why it is happening but here is the crash log
crash-2023-06-01_19.30.16-client.txt

crash-2023-06-01_19.25.21-client.txt
Sent the wrong crash lmao

Thank you for the report
Should be fixed in 0.4.1


[Event Request] Page::"Check Credit Limit - Function ShowWarning - OnShowWarningBeforeCheckCreditlimit

We like to request the following Event:
Object: Page::"Check Credit Limit
Function: ShowWarning
Publisher Event: OnShowWarningBeforeCheckCreditlimit
Reason: To implement custom business logic
Where is the event placed:
NewOrderAmountLCY := NewOrderAmountLCY2;
OldOrderAmountLCY := OldOrderAmountLCY2;
Get(CustNo);
SetRange("No.", "No.");
Cust2.Copy(Rec);
OnShowWarningBeforeCheckCreditlimit(Rec, NewOrderAmountLCY, OldOrderAmountLCY, OrderAmountTotalLCY, ShippedRetRcdNotIndLCY, CustCreditAmountLCY, DeltaAmount, CheckOverDueBalance, Heading, Result, IsHandled);
if IsHandled then
exit(Result);
if (SalesSetup."Credit Warnings" in
[SalesSetup."Credit Warnings"::"Both Warnings",
SalesSetup."Credit Warnings"::"Credit Limit"]) and
CustCheckCrLimit.IsCreditLimitNotificationEnabled(Rec)
then begin
CalcCreditLimitLCY;
Event Code:
[IntegrationEvent(false, false)]
local procedure OnShowWarningBeforeCheckCreditlimit(Customer: Record Customer; var NewOrderAmountLCY: Decimal; OldOrderAmountLCY: Decimal; OrderAmountTotalLCY: Decimal; ShippedRetRcdNotIndLCY: Decimal; CustCreditAmount

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


Some fixes in docs

Change range example BS2 to BS3.

only one remark, the rest of the PR looks good!

Thanks @vsn4ik!


Card expansion into horizontal scroll view

Current behaviour
Cannot override PagerScroll view and styling
Expected behaviour
I wanna something like https://dribbble.com/shots/4412688-Card-expansion-into-horizontal-scroll-view
Where the view in the second tab are already displayed next to each other with 8 points outside.

Got it worked with Animated.View


Increase getTransaction window via ingestion into a local database

What
This changes the handler for getTransactions to be a new, DB-connected TransactionHandler structure which supports two methods: fetching a specific transaction hash and fetching the ingested ledger range (oldest & latest).
To support fetching this, there is a new database migration with a table tx hash | ledger seq | apply order that gets filled on each ledger close. Note that when actually fetching the ledger, it is extracted on-the-fly from the LedgerCloseMeta via a JOIN rather than from a denormalized database row, per the design doc.
Why
See #140 as part of #115.
Known limitations
n/a

We should have benchmarks on the db implementation of getTransaction so we have an idea about the performance. You can ingest 24 hours worth ledgers and then try querying a random sample of transaction hashes. Of course I expect the db performance to be much slower than the in-memory one but it's still good to know what the expected duration will be

@tamirms this is a great idea, but the ingestion lifecycle in sRPC is basically non-existent. I'll start a thread on Slack to discuss options as this is a longer topic!

this is a great idea, but the ingestion lifecycle in sRPC is basically non-existent.

@Shaptic I was actually suggesting that we benchmark the  get transaction by hash db query https://github.com/stellar/soroban-rpc/blob/940f5d0145eb7f5ac8a8ca43764c864b7d3125de/cmd/soroban-rpc/internal/db/transaction.go#L53

@tamirms I've added benchmarks! Here's the log on my machine:
goos: linux
goarch: amd64
pkg: github.com/stellar/soroban-rpc/cmd/soroban-rpc/internal/db
cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
BenchmarkLedgerUpdate-12                      	       86	   15459833 ns/op
BenchmarkTransactionFetch-12                  	    10000	     114646 ns/op


Update cats-effect-kernel, ... to 3.3.8

Updates

org.typelevel:cats-effect-kernel
org.typelevel:cats-effect-std

from 3.3.7 to 3.3.8.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel" } ]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #362.


Feature Idea: Stats

I reckon it'd be really cool to collect super minimal detail about our slack for analysis/insight into how people interact with it. Main things I'd personally like to include would be:

Amount of messages posted in an individual channel so we can see which channels are most active (can limit this to public channels if people are concerned about privacy)
Amount of times people use a command so we can see which commands are used most and if any commands are commonly misspelled/incorrectly configured

Happy for discussion on these two ^ :), and feel free to post some more ideas! I'm not looking to delve into areas that would intrude on people's privacy; just anonymous, generalised info

I'm picturing this information will be accessible using something like !stats [commands|channels], not sure if it's necessary limiting to admin only

Added in e1dba87, closing


How to get the credibility of the key points of the face？

Some parts of the face may be occluded. The key points should be predicted. Can you get the credibility value?

Hi, the max_cls returned by function forward_pip is the confidence scores of predicted landmarks.

Thank you for your answer, but some of the max_cls values I obtained are greater than 1. What is the maximum confidence?

The ground-truth for training the heatmap is 1, but with L2 loss. Thus, it is possible that the predicted value is slightly larger than 1. You may simply clamp these to one.

Understood, thanks


kube-flannel.yaml: bump images to 0.11.0

Description
looks like 0.11.0 was tagged with 0.10.0 images.
use the 0.11.0 tag as the images are already up:
https://quay.io/repository/coreos/flannel?tab=tags
Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

None required

Missed that.
/lgtm
Thanks.


Support cache/uncache table syntax

Close #669

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

169 of 190 (88.95%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.06%) to 85.761%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

tests/sqlparser_common.rs
133
139
95.68%

src/ast/mod.rs
11
18
61.11%

src/parser.rs
25
33
75.76%

Totals

Change from base Build<PHONE_NUMBER>:
-0.06%

Covered Lines:
10594

Relevant Lines:
12353

💛  - Coveralls

@alamb Hi Andrew, could you review this PR again, if you have time. I have supported the full syntax.


Define a custom assertion failure error for cross-version compat

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[x] Have you successfully run brew tests with your changes locally?

Fixes #2840.
Note that this partially reverts c45cca8e36401f6d95d851befef35879a5629182 - it was unnecessary on Ruby 2.0, but turns out to be necessary for compatibility with the system Ruby 2.3 on OS X 10.13.

Note that this partially reverts c45cca8 - it was unnecessary on Ruby 2.0, but turns out to be necessary for compatibility with the system Ruby 2.3 on OS X 10.13.

I was happy to leave that code as-is until it broke brew tests under Bundler 1.15.1. Can you ensure that's not the case now?
My main issue with the previous code was the lack of documentation: it was unclear in what situation any of those ifs would occur. I'd like to see that addressed if we merge this.
I think the ideal situation, though, would be using the same module names regardless of the version. This should be possible for brew tests at least by ensuring it's using the same version of e.g. minitest everywhere. It may not be possible on Ruby 2.3 for formulae so this may be acceptable as a short-term workaround but before High Sierra is released I think I'd like to see us upgrade to a vendored Ruby 2.3.X (matching the High Sierra version). Differing Ruby versions was an absolute nightmare between 1.8 and 2.0 and now we've got a solution I'd love to see us lean into it.

it was unclear in what situation any of those ifs would occur. I'd like to see that addressed if we merge this.

Will do!

before High Sierra is released I think I'd like to see us upgrade to a vendored Ruby 2.3.X (matching the High Sierra version).

The static build for Ruby 2.3 is currently broken: https://bugs.ruby-lang.org/issues/13413 I'm going to take a stab at it, but it's a bit arcane.

The static build for Ruby 2.3 is currently broken: https://bugs.ruby-lang.org/issues/13413 I'm going to take a stab at it, but it's a bit arcane.

I wonder if upstream would be willing to add static builds to their CI so that this doesn't happen again, assuming it does get fixed at some point.

Thanks @mistydemeo!


bio out of date

lol

@sdemos when will this be resolved

it's fixed. excellent turnaround if I do say so myself.

also I'm disabling issues because this is dumb


[FLINK-17844][build] Enforce @PublicEvolving compatibility for minor versions

This PR makes 2 changes to the create_release_branch release script:

The japicmp reference version is now automatically updated.

For a major release x.y.0 the reference version is x.y-1.0

1.10.0 checks against 1.9.0

For a minor release x.y.z the reference version is x.y.z-1

1.10.1 checks against 1.10.0

Enforce @PublicEvolving compatibility for minor versions

remove japicmp exclusion
un-comment the newly added japicmp inclusion

A separate profile is imo overkill, when all we really need is to move one entry.

I'm not saying you should do it the way I would have done it :) And yeah, it would be a lot of noise in our pom files for such a tiny change.

@rmetzger I've updated the PR.
I've added tools\releasing\update_japicmp_configuration.sh to handle the configuration updates for both releases and master/snapshot branches. The file also contains a description for which scenarios it should be used for.
It covers all cases without any extra configuration from the outside; so the RM just has to call it and commit the changes.


Updated Skeleton App to ZF defaults and added missing package to config file

I think the "data" folder should be in .gitignore

I am thinking the public folder of the skel app should only contain two files:
index.php
.htaccess
Shouldn't all other filed be in the default theme's public folder? What do you think Westin?

@jerv13 - lol.  I had the data folder in the .gitignore.  You removed it yesterday.  lol
@rodmcnew - That how it was originally.  The problem was I had no idea if the create-project worked at all or not.  This will be fine either way once we have the installer package.
With that said, it's hard to work on the app right now with nothing in public.   I spent 2 hours wasting time trying to figure out if the app was installed and server ok.  For that reason I restored the original ZF skeleton so we had something to test.
After having to deal with this, I say we keep this Skeleton as close to the original as we can.  While it won't make any difference to the end users, it makes a huge difference for anyone trying to work on the installer.
In addition, having a working Skeleton app, with a working ZF2 module has really helped me to identify issues in core, where core is breaking existing ZF2 apps when it should stay out of the way until you need it and have it configured.

I thought I saw Westin delete the data folder from .gitignore yesterday but we pulled it anyways.
Whatever happened I created https://github.com/reliv/rwriter/pull/5 to re-add it to git ignore

@jerv13 James what do you think about leaving the zend skel apps assets in the rwriter skel apps public folders?

Our skeleton app will not be exactly like a ZF2 app.  We are using Bower, composer and asset manager to create these client dependencies.

@wshafer In light of @jerv13's  comment. Would just added the default theme as a dependency of this module solve your issues?

I think so

No.  The default theme has no actual controller, layout, or design.  That is RCM specific and can not work with out the full CMS.  That means there's no fallback 404 and error page.  If the install script is broken for some reason, what is the end user going to see?
I think we need something here.  Perhaps it's an RCM specific theme down the road, but I doubt any of us have time to do that atm.  For the time being I suggest that we use the default ZF2 application module to fill in this hole until we have time to make this more RCM like.

@rodmcnew - I reread your original comment and I understand what you're asking here.  The question, should it be in the default theme package?   Maybe.  I'll move these files out to the default theme package and we'll see how that looks.


pip install napari[all] failing on Windows 10/py3.8 due to pip install vispy failure

🐛 Bug

To Reproduce
Steps to reproduce the behavior:

Install python 3.8 from python.org on a fresh Windows 10 PC
pip install napari[all]
Installation of vispy (and therefore napari) fails due to this issue:
https://www.reddit.com/r/Python/comments/f1tt4h/noob_cant_install_vispy_using_pip/fh8j2wp/

The problem is that PyPI does not yet have a pre-built package for vispy (a "wheel") that matches your installation: https://pypi.org/project/vispy/#files. It only has versions up to Python 3.7 (vispy-0.6.4-cp37-cp37m-win32.whl).

The resulting error message contains enough information to fix the problem:

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/

...but it's surrounded by a huge amount of other error messages, and easy to miss. Also, the "build tools" are a multi-GB download, and the resulting installation has many options, only a few of which are helpful/relevant.
I'm guessing most napari devs already have msvc build tools on their machine, or don't use Windows, so the issue might not crop up.
I'm not sure what the right fix is. Fix pip install vispy on py3.8/Windows? Try to make the resulting error message harder to misunderstand? Document the (potential) problem in the installation tutorial?

Expected behavior

To install napari
Environment
Fresh install of python 3.8 on fresh install of Windows 10.
Additional context

Hope this was useful/appropriate. Thanks as always for napari, keep up the good work!

someone else just mentioned this to me this morning... they also didn't have the build tools required for vispy on windows (which I'm sure is going to be relatively common!).
I would love to be able to show a nicer error message, but since that's basically pip failing to install vispy, so  I don't think we can really modify that?
For what it's worth, that person who tried it earlier was able to install with conda install napari ... (since vispy does provide win64-py38 binaries on conda)... and @djhoese said here that py38 wheels will be coming for vispy 0.7... so this will eventually go away.
for now, it's either install with conda ... or (and we'll see whether this comes before vispy ships py38 wheels 😄) use a bundled napari app #1289.

Yeah, that makes sense. Is it worth noting the issue in the installation tutorial in the meantime? I guess at the very least, this issue might show up in relevant Google searches :-)

Works it be helpful if I wrote a pull request for the installation tutorial, or better to leave it as is?

Thanks for pointing out the vispy wheel issue. I hope to get working on a vispy release soon but underestimated how much needed to be done around my house before my paternity leave starts in a week :fearful:
Sorry for the delay. Hopefully with the CZI funding for VisPy we can get more maintainers in place for vispy so releases won't depend on my available time (napari team, let me know if you're interested).

no problems at all @djhoese!  certainly wasn't trying to rush you.  The conda workaround is available, so no one is blocked!
@AndrewGYork, I think I'll leave the decision as to whether that should be put in the readme/tutorials to @sofroniewn

We should probably add a "known issues" or "troubleshooting" section to our installation guide, can go just above bug reporting here https://github.com/napari/tutorials/blob/master/fundamentals/installation.md#bug-reports and then include some minimal information plus a link to the relevant issues so people can quickly see where to look next

These additional windows installation details were added by @ziyangczi in #1758. This can now be closed, but people should feel free to continue to improve the installation instructions as needed. Thanks!!


comments only pull last 200

not sure when this broke - maybe with some live stream chat changes?
See https://odysee.com/@SaltyCracker:a/jeopardy-winner-holds-up-3-fingers:6?lc=ceaf814d0ba927e897f47befa5dc81fbb3a7e1fd04724fa34fc59f344bd53ca2 -  there are 253 comments per the API, but the top shows 200 comments.
Users are clicking their notifications and can't find the missing comments.

Turns out we are only returning 200 from the comment server at a time. We'll need to confirm the server can handle threads/etc.
The goal here would then be to properly paginate comments by calling additional pages.
https://github.com/lbryio/commentron/blob/bcab958d0c5d039db3e8cf46cdbec51ca9675cfd/commentapi/comment.go#L126

CLOSE
Using #6158 Support Comment Pagination


Can't save on iPhone, Safari

Saving on Safari/iPhone does actually work, users can choose to view/download the file (iOS 13.1.2).

Okay, great!


Fixed README.md copy in .Dockerignore

Hi Hi,
When excluding all *.md file in the .dockerignore it sadly broke the poetry dependency installation as the needed README.md is not copied anymore during a docker build:
docker build -t freetakserver-ui:latest .

...

 > [6/6] RUN pip install .:
0.999 Defaulting to user installation because normal site-packages is not writeable
1.072 Processing /home/freetak
1.074   Installing build dependencies: started
20.53   Installing build dependencies: finished with status 'done'
20.53   Getting requirements to build wheel: started
20.76   Getting requirements to build wheel: finished with status 'done'
20.76   Preparing metadata (pyproject.toml): started
21.11   Preparing metadata (pyproject.toml): finished with status 'error'
21.11   error: subprocess-exited-with-error
21.11
21.11   × Preparing metadata (pyproject.toml) did not run successfully.
21.11   │ exit code: 1
21.11   ╰─> [24 lines of output]
21.11       Traceback (most recent call last):
21.11         File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
21.11           main()
21.11         File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
21.11           json_out['return_val'] = hook(**hook_input['kwargs'])
21.11                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21.11         File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 149, in prepare_metadata_for_build_wheel
21.11           return hook(metadata_directory, config_settings)
21.11                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21.11         File "/tmp/pip-build-env-13tfojt_/overlay/lib/python3.11/site-packages/poetry/core/masonry/api.py", line 43, in prepare_metadata_for_build_wheel
21.11           builder = WheelBuilder(poetry)
21.11                     ^^^^^^^^^^^^^^^^^^^^
21.11         File "/tmp/pip-build-env-13tfojt_/overlay/lib/python3.11/site-packages/poetry/core/masonry/builders/wheel.py", line 62, in __init__
21.11           super().__init__(poetry, executable=executable)
21.11         File "/tmp/pip-build-env-13tfojt_/overlay/lib/python3.11/site-packages/poetry/core/masonry/builders/builder.py", line 55, in __init__
21.11           self._meta = Metadata.from_package(self._package)
21.11                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21.11         File "/tmp/pip-build-env-13tfojt_/overlay/lib/python3.11/site-packages/poetry/core/masonry/metadata.py", line 58, in from_package
21.11           with readme.open(encoding="utf-8") as f:
21.11                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21.11         File "/usr/local/lib/python3.11/pathlib.py", line 1044, in open
21.11           return io.open(self, mode, buffering, encoding, errors, newline)
21.11                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21.11       FileNotFoundError: [Errno 2] No such file or directory: '/home/freetak/README.md'
21.11       [end of output]
21.11
21.11   note: This error originates from a subprocess, and is likely not a problem with pip.
21.11 error: metadata-generation-failed
21.11
21.11 × Encountered error while generating package metadata.
21.11 ╰─> See above for output.
21.11
21.11 note: This is an issue with the package mentioned above, not pip.
21.11 hint: See above for details.

It can be fixed by ignoring all *.md files unless it's the needed README.md file :vulcan_salute:

I just saw that you also found it out the hard way in the last action run (#8870170929), hopefully this MR can help :relaxed:

Thanks, indeed fixes the issue, excellent work as always.


Correctly set the tile state on error

This sets the required erroneous tile state to an ImageTile if no valid image could be loaded. Without an erroneous tile is blocking other requests.
In addition the behaviour of revoking the object url is optimized/simplified.
Please review @terrestris/devs.

Thanks for the review!


Public key of gitlab runner repo is not verified

Example warning in cloudwatch
2022-10-31T15:20:41.254+02:00 | warning: /var/cache/yum/x86_64/2/runner_gitlab-runner/packages/gitlab-runner-15.3.0-1.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 35dfa027: NOKEY
| 2022-10-31T15:20:41.255+02:00 | Public key for gitlab-runner-15.3.0-1.x86_64.rpm is not installed

Could you please give some more details on what happened where?

Thanks for the feedback.
So I'm not sure if this is a significant issue or not, but I found this warning in cloudwatch.
It appears a shirt while after this script has completed running:
https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh
I can see the output of that script in the logs:
Nov  4 08:56:44 ip-10-235-150-169 user-data: The repository is setup! You can now install packages.
Then this command starts:
Nov  4 08:56:44 ip-10-235-150-169 user-data: + yum install gitlab-runner-15.3.0 -y
While that yum install is executed, I see the warning.
...
Nov  4 08:56:46 ip-10-235-150-169 user-data: Downloading packages:
Nov  4 08:57:02 ip-10-235-150-169 user-data: warning: /var/cache/yum/x86_64/2/runner_gitlab-runner/packages/gitlab-runner-15.3.0-1.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 35dfa027: NOKEY
Nov  4 08:57:02 ip-10-235-150-169 user-data: Public key for gitlab-runner-15.3.0-1.x86_64.rpm is not installed

A few lines later:
Nov  4 08:57:03 ip-10-235-150-169 user-data: Retrieving key from https://packages.gitlab.com/runner/gitlab-runner/gpgkey
Nov  4 08:57:03 ip-10-235-150-169 user-data: Retrieving key from https://packages.gitlab.com/runner/gitlab-runner/gpgkey/runner-gitlab-runner-4C80FB51394521E9.pub.gpg
Nov  4 08:57:04 ip-10-235-150-169 user-data: Importing GPG key 0x35DFA027:

Perhaps the warning from yum is harmless, if the GPG key is verified a little later on. Not sure.

As the key is installed automatically it will hopefully used to verify the downloaded package. If so we can ignore the warning as everything is fine.

Agree, this is probably not a concern just a misleading log entry. Closing.


Question about Namespaces

First I want to thanks you for your amazing work ! It currently saves us a lot of pain parsing some weird XML structures :)
I have a question regarding XML Namespaces. Given the following model, I'm able to parse and generate a given XML stream.
from pydantic_xml import BaseXmlModel, element, attr

nsmap = {
	'co': 'http://company.org/co',
	'cl': 'http://company.org/cl',
}

class Company(
    BaseXmlModel,
    nsmap=nsmap,
):
    trade_name: str = attr(name='trade-name', ns='co')
    type: str = attr(ns='cl')

The corresponding XML:
<Company co:trade-name="SpaceX"
         cl:type="Private"
         xmlns:co="http://company.org/co" xmlns:cl="http://company.org/cl"/>

However some systems out of our hands are using some alternative namespace aliases. For example comp vs. co and class vs. cl.
Can a pydantic_xml model deal with such differences ?
<Company comp:trade-name="SpaceX"
         class:type="Private"
         xmlns:comp="http://company.org/co" xmlns:class="http://company.org/cl"/>

@gizmo84 Hi
Yes, pydantic_xml will successfully parse the both documents. Namespace aliases don't matter. It only matters that
the document namespaces match the model namespaces.
But during serialization it will use aliases defined in the model not document.
>>> from pydantic_xml import BaseXmlModel, attr
>>>
>>> nsmap = {
...     'co': 'http://company.org/co',
...     'cl': 'http://company.org/cl',
... }
>>>
>>> class Company(
...


error loading profile.ps

Hi,
after following readme and storing 'PowerShell WSL Interop.ps1' as 'Profile.ps1', I get this error on powershell startup:
PowerShell 6.2.3
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

At C:\Program Files\PowerShell\6\profile.ps1:169 char:190
+ ... ata-ga-click="(Logged out) Header, go to Features">Features <span cla ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:185 char:255
+ ... ogged out) Header, go to Customer stories">Customer stories <span cla ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:186 char:231
+ ... ata-ga-click="(Logged out) Header, go to Security">Security <span cla ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:206 char:222
+ ... a-click="(Logged out) Header, go to Explore">Explore GitHub <span cla ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:242 char:185
+ ... r" data-ga-click="(Logged out) Header, go to Pricing">Plans <span cla ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:250 char:235
+ ... -ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span cla ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:251 char:258
+ ... a-ga-click="(Logged out) Header, go to Education">Education <span cla ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:822 char:93
+ ... b-code blob-code-inner js-file-line">    </ ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:830 char:93
+ ... b-code blob-code-inner js-file-line">    </ ...
+                                                                 ~
The '<' operator is reserved for future use.
At C:\Program Files\PowerShell\6\profile.ps1:874 char:122
+ ... le-line">    * $WslDefaultParameterValues["gr ...
+                                                                  ~
Array index expression is missing or not valid.
Not all parse errors were reported.  Correct the reported errors and try again.
+ CategoryInfo          : ParserError: (:) [], ParseException
+ FullyQualifiedErrorId : RedirectionNotSupported

Any advice, please?

Looks like maybe you copied in some artifacts from GitHub itself.
Just take the contents of the file from https://github.com/mikebattista/PowerShell-WSL-Interop/raw/master/PowerShell%20WSL%20Interop.ps1.

Yes, that was it. I should check that in the first place. Leason learned.
Thank you.


Multiple request to https://cardinaldata.net on fresh production build

Question about Next.js
What are the requests that Next.js production build is making to https://cardinaldata.net?
I can see multiple requests on a "hello world" production build of a Next.js application.
It seems to be related to the analytics.js but I can't find any reference online as to what those requests are.

It's also in production on for zeit.co:

NB: And failing against the content security policy for Zeit 🤔

Seems to be a type of malware? https://malwarecomplaints.info/remove-cardinaldata-net/

Closing this was local malware 🤦♂


Upgrade dependency management and versions

This PR does a refresher on the package:

removes the old setup.py and replaces it with a shiny pyproject.toml
switches to poetry for dependency management. This allows better build reproducibility, version locking, etc... In my opinion, it would also make sense to replace twine for uploading to pypi with poetry, just to have a single tool for everything. I am proposing poetry as it is pretty stable and widely adopted at this point.
updates CI to test against currently maintained versions of postgresql. Version 10 will reach its end of life in a few days, but I'll keep it here for now.

With this, the CI checks are still only run on python 3.7. Given how stable the core postgresql is, and the fact that the target does not use much bleeding edge postgresql at all, I suspect there would be more value in testing over all supported versions of python rather than just 3.7.
Any suggestions about how to do this without ending up with 30+ test jobs?

@laurentS what do you think about upgrading pyscopg while we're at it? https://github.com/datamill-co/target-postgres/issues/225

I've just updated pyproject.toml to use psycopg2-binary instead of psycopg2.
@WillDaSilva @akhefifderain you both opened issues related to this as mentioned in the previous comment. Can you chime in on the changes proposed in this PR, in particular check that it works with your respective use cases?

Seems good to me ! Thank you @laurentS


enhancementadd obs filesystem for paimon for 2.0

Proposed changes
mirror #31061

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Raise the default ReceiveMTU to 1500

Description
Raise the default ReceiveMTU to 1500, as same as the default MTU setting of WebRTC.
This is because some senders, i.e. FFmpeg, may packetize RTP with 1460 payload + 12 RTP header + etc.
Reference issue
Fixes #2927

LGTM @braveyao! Can you rebase and I will merge

Hi, it's based on the latest and I ran "pull --rebase" again. It says rebase will update the PR automagically, but I didn't see anything noticeable. What's the status at your side? Anything else I missed?

Merged with 8fbf8219ddbe6b81feb24999fb547eb415e95a54
@braveyao I also added you to pion org. You can push branches directly to repo now, should make things easier!


Example app

I am having trouble getting this working in the latest next.js 4.1.0, the query is always an empty object. I wonder if i am missing something. Is there an example app that i could look at?

Ah, my bad, it does work fine. There were no params in the URL for query to show anything.


Slash commands: Group several similar commands into single commands

Complete the following REQUIRED checkboxes:

[x] I have thoroughly read and understand The Odin Project Contributing Guide

[x] The title of this issue follows the command name: brief description of request format, e.g. /help: add optional @user parameter

The following checkbox is OPTIONAL:

[x] I would like to be assigned this issue to work on it

1. Description of the Feature Request:

Several similar commands can be grouped into single commands. For instance, we currently have the following commands to search in a specific site:

/google to search google
/searchmdn to search in MDN docs
/searchtop to search in TOP

I suggest we group those commands into a single command search with the site as an option. The site option would contain a dropdown containing the site the user wants to search in.
2. Acceptance Criteria:

[ ] All slash commands that can be grouped are grouped into single commands

3. Additional Information:

https://discord.com/channels/505093832157691914/514204569572605952/1217905663389204631  Discord conversation here for context

I like this idea, especially since it'll make it easier for people to remember/become aware of the other search commands.
I'm going to assume you also intend to have a prompt option and that you just forgot to include it in the issue?
@TheOdinProject/odin-bot thoughts?

The prompt and user options that we use in the multiple search commands will be included.

After discussing with @MaoShizhong. I've changed my approach to use subcommands instead of a site option with a list of site choices. This allows the user to quickly autocomplete the command to the site they want to search.
For example, instead of autocompleting to /search and then selecting the site option, we can directly write /go and autocomplete to /search google. This reduces the number of steps, improving the user experience.

@cakegod Thanks for opening the issue. Grouping search commands was already in the pipeline, but I never got around to actually following through.
Do ping whenever the PR is ready for review


fix(apps/prod/tekton/configs/tasks): fix task create-pr-to-bump-tikv-version

Solve the cargo_edit crate installation error in v7.5.x
Signed-off-by: wuhuizuo<EMAIL_ADDRESS>

/approve


Error in Chrome: popup window is disconnected

Previously the OneDrive file picker is working fine, but recently it suddenly not working on Chrome, others browsers are working fine.
When calling OneDrive.open(object), in Chrome will not open popup, in Developer Tools console tab, will able to see error message return by OneDrive.js which is {errorCode: "popupOpen", message: "popup window is disconnected"}.
Anyone having the same issue as me?

hi @halfdevil85 , what's the picker version are you using? I tested with 7.2 and it works for me.

closed for now and please feel free to reopen it if the issue consists.

@daboxu this is happening to me on Edge on Windows 10. The reasons is that the call to OneDrive.open opens a new window rather than a popup. This doesn't happen in IE11. The version I'm using is 7.2.

This happens if Chrome's popup-blocker blocks the file picker from opening. Enabling popups for that site will fix the issue.

This is still an issue with Electron as well.

@chetanyakan Does enabled popups fix this in Electron as well?

Seems like this is still a problem on all browsers. If have not used the app before, BrowserStack testing I get a popup blocker error from Onedrive even tho the login popup works its the acutal picker that is the issue.
anyone have a solution ?


Update about us2

Fix AboutUs.md format

Codecov Report

Merging #52 (28c9d4b) into master (64a5852) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #52   +/-   ##
=========================================
  Coverage     69.15%   69.15%
  Complexity      420      420
=========================================
  Files            78       78
  Lines          1381     1381
  Branches        142      142
=========================================
  Hits            955      955
  Misses          390      390
  Partials         36       36

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


add early stopping

I added early stopping check  to Tree Booster. The [early_stopping_round ]  configuration item is used just like in Python

@tqchen，  After referring to the Python, I modified the implementation method of early stopping.

Thanks alot for the PR!
I think this is an reasonable implementation.  However, bring this feature back into the C++ backend duplicates what we already have the front-end, which is more flexible. Unless we get a generic version of callback API which we had in python that is interpolatable with C++, I think we should not merge this in as it increase the burden of the backend.
However, I think for a intermediate solution, if you are interested in doing a callback style API, we can add that to the CLI front-end.
Minor comments on the code

Please do not checkin additional dataset into the repo, use the existing dataset we have


License

Great work! What license is the scaleToWindow code made available under?

Yes, scaleToWindow is licensed under the Kittykatattack Universal License, which is the least restrictive software licence in existence. (It's incalculably less restrictive that either MIT or CC.) So if you want to use the code for anything, include to reverse engineer the code so that the code itself no longer exists, go for it!

Thanks for the clarification!


Documentation needs to be updated to install @react-native/stack

Without installing the @react-native/stack we get an error
Unable to resolve module @react-navigation/stack from E:\user\PROJECTS\React Native\project\App.js: @react-navigation/stack could not be found within the project.
If you are sure the module exists, try these steps:

Clear watchman watches: watchman watch-del-all
Delete node_modules and run yarn install
Reset Metro's cache: yarn start --reset-cache
Remove the cache: rm -rf /tmp/metro-*
import * as React from 'react'; import { NavigationContainer } from '@react-navigation/native'; import { createStackNavigator } from '@react-navigation/stack';

Only solution is to install @react-native/stack by using yarn add @react-native/stack
Rest all solutions failed.

@ADRE9 As expected, stack navigator needs to be installed before it could be used, please follow the installation guide here https://reactnavigation.org/docs/stack-navigator#installation for more information


Add full README to docker-compose

Description
Add README-style description to the repository with a docker-compose startup

Issue moved to o360/backend #44 via ZenHub


Add GalaxyCore GC032A (Id 0x9306)

Please add GC032A 240x320 display panel support (Fly TS114). Phone's boot key is unknown, I was holding all keys on the keyboard at once.  Display is detected with --spi 1

Setting id to 0x9306 wont work, it exists in lcd_config.h though

This device id and model can be also found in engineering menu, so im 100% sure it's 0x9306

The SPI mode is the most difficult to do, it has many different settings.
I need firmware for this phone to see how it initializes, I still can't guarantee success.
You can also try --spi 1 --spi_mode N --lcd 0x9306 (n = 1..4, default 3).


feat: change supagen model brick

Problem

For now, we have created our own model brick to generate model class from supabase tables. I just do some research and I found that there is already model brick created by other developer and it has more complete features.
Solution

Change the model brick to this https://brickhub.dev/bricks/model/0.9.1 and I think we should make a new component call converter (ex: DartConverter) to handle convert postgres data types into programming language data types (for now let's support dart only)
Involment
If the feature request is approved, would you be willing to submit a PR?

[ ] Yes
[x] No (I want other contribute to this)

Implementation Plan (If you want to get involved)

[ ] Change model brick in DartModelGenerator
[ ] Create new component converter and call it when convert postgres data types

I would like to work on this issue

Can you help me with this?

Could you send a screenshot with verbose output? Just add a --verbose flag after init command.

@Sarveshk76 It looks like, it's only happen in Windows and the error related to mason issue.

You can fix it by adding this into your environment variable. See mason issue for the detail:
https://github.com/felangel/mason/issues/496#issuecomment-1494293205

Hey @Sarveshk76, any update about this issue?


DAWN-484 ⁃ Unify Memory api and other api tests

This is an artifact of the review of #400
Right now the memory contract API's tests are not integrated to the testing rig @elmato created.  For maintenance concerns we should probably unify that.
Additionally, there is an open question of whether the /contracts/ directory should be for examples and "real" contracts only and if that is true, should we create a /test/contracts/ tree for unit tests etc.

Looking at the #400 latest commit and the latest code, this task looks to be completed. I'm closing this issue


Updated the OTel Metrics plugins to org.opensearch.dataprepper

Description
Moved the two OTel Metrics plugins to the org.opensearch.dataprepper package. Optimized imports.
Issues Resolved
Resolves #344
Check List

[x] New functionality includes testing.
[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[x] Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #1872 (ac6093e) into main (5a73bf3) will decrease coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##               main    #1872      +/-   ##
============================================
- Coverage     94.03%   93.96%   -0.07%
+ Complexity     1525     1524       -1
============================================
  Files           192      192
  Lines          4474     4490      +16
  Branches        364      365       +1
============================================
+ Hits           4207     4219      +12
- Misses          184      187       +3
- Partials         83       84       +1

Impacted Files
Coverage Δ

...peerforwarder/server/PeerForwarderHttpService.java
88.46% <0.00%> (-9.37%)
:arrow_down:

...opensearch/dataprepper/pipeline/ProcessWorker.java
86.53% <0.00%> (-3.85%)
:arrow_down:

...pensearch/dataprepper/model/trace/JacksonSpan.java
98.26% <0.00%> (+0.16%)
:arrow_up:

.../org/opensearch/dataprepper/pipeline/Pipeline.java
92.85% <0.00%> (+4.28%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Issue 477: Improve handling of escaped substrings

This involves evaluating and interpolating -escaped sequences
in double-quoted and undelimited strings.
Added tests on various edge-conditions, as well as ruling out bare
strings like '\true' as a bool.

[x ] Resolves #477
[x ] Documentation added (if applicable): n/a
[x ] Tests added- for all edge cases of combinations of escaped and unescaped substrings,
Also tests for
x[ ] Branch rebased on top of current master (git pull --rebase origin master)
[x ] Changes squashed to a single commit (described here) (url => 404)
[ ] Build is green in Travis CI
[ x] You have certified that the contribution is your original work and that you license the work to the project under the MIT license

Resolves #477
Changes proposed in this pull request:

Have the lexer convert backslash-escaped sequences in the string tokens it emits to consumers.

Proposed Additions:

Would you like the lexer to support \uhhhh sequences as well?

/cc @nats-io/core

Coverage decreased (-0.08%) to 90.546% when pulling 2d9897837a1abc1ab6994af683b5478fe7fede24 on ericpromislow:master into a94b5e0f4c7521be2640846cd150569ad0b08166 on nats-io:master.

Coverage increased (+0.3%) to 90.936% when pulling 122b697e41808b4033f239d6fc816776bb7128b3 on ericpromislow:master into a94b5e0f4c7521be2640846cd150569ad0b08166 on nats-io:master.

Coverage decreased (-0.003%) to 90.62% when pulling 122b697e41808b4033f239d6fc816776bb7128b3 on ericpromislow:master into a94b5e0f4c7521be2640846cd150569ad0b08166 on nats-io:master.

Coverage increased (+0.02%) to 90.639% when pulling bcf8b7532b8ea26adf8967d9b9baadcd2139db2d on ericpromislow:master into a94b5e0f4c7521be2640846cd150569ad0b08166 on nats-io:master.

LGTM


Update linters.yaml

Description
Update linter version to golangci/golangci-lint-action@v5 for consistency across all CSM repositories.
GitHub Issues
List the GitHub issues impacted by this PR:

GitHub Issue #

Checklist:

[ ] I have performed a self-review of my own code to ensure there are no formatting, vetting, linting, or security issues
[ ] I have verified that new and existing unit tests pass locally with my changes
[ ] I have not allowed coverage numbers to degenerate
[ ] I have maintained at least 90% code coverage
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] Backward compatibility is not broken

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

e2e pass


Add new optional Result timing attributes

exec_start_ms and exec_end_ms are new 'int|None' fields on Result messages. exec_duration_ms is the computed difference with per-instance caching in an inner attribute (standard pattern).
In order to support this behavior, add a config option for pydantic to mark "underscore_attrs_are_private". This makes attributes with leading underscores hidden from the serialization and deserialization passes.

@ryanchard, since you were the original author of https://github.com/funcx-faas/funcx/commit/f2859a6b, I'm tagging you in as the reviewer for this.

I think the config for private vars may be useful in the future, so it's no cleaner to remove that.
IMO, it makes sense to treat these messages as simple models which can do "basic" computations like this, and costs us quite little. We can always remove attributes if there's any desire/need to do so (the joy of not being a semver package).
On the strength of your first sentence, I'm going to merge!


Lane change

May I ask if there are corresponding XML and JSON files for this scenario for testing on the leaderboard

Thank you!


Proposal: xgo tool test-explorer

Explorer all tests without modifying anything.
Just like https://github.com/smartystreets/goconvey, but do not rely on any external framework.
Provide abilities including:

Run all/individual  test(s) with one click
View each test log individually
View each test's coverage
View each test's incremental coverage

Test manager preview:

This will extend the xgo tool command, what's proper sub command for this?
xgo tool debug
xgo tool server
xgo tool test
xgo tool debug-server
xgo tool test-explorer
xgo tool list
xgo tool manager
xgo tool runner
xgo tool test-runner
xgo tool open

No name is good because they are tool long.
I think we can add these two commands:
# list all available tools
xgo tool list

# show help for xgo tool
xgo tool help

Then ,if no arg is given to xgo tool, we open a tool index page for the user to select tools to run manually:
# open up a page to show tools,
# on the page, user can choose test explorer to run
xgo tool

Suppose the name test-explorer is used, then when user clicks the Test Explorer icon, the explorer ui is automatically open:
xgo tool test-explorer

UI Update:

Update:

Real show case:


V0.1.1

Fixed a big where subarray were being copied instead of referenced.
Added benchmarking

Current coverage is 100.00%

Merging #4 into master will not affect coverage as of 55a101f

@@            master      #4   diff @@
======================================
  Files            2       2
  Stmts           69      68     -1
  Branches         0       0
  Methods          0       0
======================================
- Hit             69      68     -1
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 55a101f

Powered by Codecov. Updated on successful CI builds.


Add an AccessPath abstraction and formalize memory access

Begin to formalize the model for valid memory access in SIL. Ignoring ownership, every access is a def-use chain in three parts:
object root -> formal access base -> memory operation address
AccessPath abstracts over this path and standardizes the identity of a
memory access throughout the optimizer. This abstraction is the basis for a new AccessPathVerification.
With that verification, we now have all the properties we need for the type of analysis requires for exclusivity enforcement, but now generalized for any memory analysis. This is suitable for an extremely lightweight analysis with no side data structures. We currently have a massive amount of ad-hoc memory analysis throughout SIL, which is incredibly unmaintainable, bug-prone, and not performance-robust. We can begin taking advantage of this verifably complete model to solve that problem.
The properties this gives us are:
Access analysis must be complete over memory operations: every memory operation needs a recognizable valid access. An access can be unidentified only to the extent that it is rooted in some non-address type and we can prove that it is at least not part of an access to a nominal class or global property. Pointer provenance is also required for future IRGen-level bitfield optimizations.
Access analysis must be complete over address users: for an identified object root all memory accesses including subobjects must be discoverable.
Access analysis must be symmetric: use-def and def-use analysis must
be consistent.
AccessPath is merely a wrapper around the existing accessed-storage utilities and IndexTrieNode. Existing passes already very succesfully use this approach, but in an ad-hoc way. With a general utility we can:

update passes to use this approach to identify memory access,
reducing the space and time complexity of those algorithms.

implement an inexpensive on-the-fly, debug mode address lifetime analysis

implement a lightweight debug mode alias analysis

ultimately improve the power, efficiency, and maintainability of
full alias analysis

make our type-based alias analysis sensistive to the access path

Would it be helpful to have a high-level description of access paths in docs/SIL.rst (or somewhere else)?

@varungandhi-apple yes, to the extent that I want to add constraints to SIL, that should be documented in SIL.rst. Independently, we should have documentation as a starting point for the central abstractions we use in the SIL optimizer. I haven't been doing that, but it looks like SIL programmers manual is the right place https://github.com/apple/swift/blob/master/docs/SILProgrammersManual.md. I'll add something there.
All of this is secondary to good file-level comments though, which is where I think anything of substantial detail should go. We're sorely lacking adequate comments IMO

@atrick Somehow I'm missing the essentials here.
Introducing new abstractions always comes with a cost. It's very important for an abstraction like this to have a small and clean API. Is the API here the ==/!= operators? So that one can use it to check if two accesses are aliased or not?
Maybe I just missed it, but it's definitely worth documenting that.
How does AccessPath relate to ProjectionPath? Should it be a replacement for ProjectionPath?
If yes, then I'm strongly in favor of replacing ProjectionPath with AccessPath before this PR is merged. Because otherwise it will never be done and we already have too many utilities which are piling up in the code base.
If no, it would be worth documenting what's the difference and when to use which utility.

@eeckstein @varungandhi-apple @airspeedswift
I wrote documentation in SILProgrammersManual.md.
https://github.com/apple/swift/blob/4bd8dfdb9a46c6eb471571ac8798c955c0941ca3/docs/SILProgrammersManual.md#accessedstorage-and-accesspath
Although, I think the file and class-level comments in MemAccessUtils.h are quite clear now.
Yes, the basic API for the data type is == and !=; it simply identifies a memory location within an access. Importantly, it's a 3-word value that functions as a hash key. Most of the important API comes from the AccessedStorage that it contains. However, as you can read in documentation, or from the class definition, other important APIs are: AccessPath::contains(subPath), AccessPath::mayOverlap(otherPath), and AccessPath::collectUses().
We currently have nothing like AccessPath::collectUses, which makes it possible to verify the model and will allow us to replace ad-hoc, unstable, and bug-prone code throughout the compiler.
AccessPath is also a complete abstraction, unlike anything we have today. It handles all SIL patterns that I consider to be well-formed. This includes dynamic index offsets, negative index offsets, and arbitrary index chains. It also models all types of pointer casting and boxing/unboxing patterns that should be supported in SIL.
The goal of this PR is not to add another utility. It's about creating a verified correct and complete model for SIL memory access. This needs to exist so we can make progress on several things that have come up in the past few months (at least if we don't want to make the current mess worse):

Making SemanticARC-related analyses and verification complete as we
continue to write more and move them later in the pipeline.

Adding new forms AliasAnalysis without creating even more holes in the logic.

Fixing LICM perforance regressions (I went ahead and implemented this as an
example in a separate PR, since it's similar to how AccessPath could be used in RLE/DSE).

Fixing holes in the RLE/DSE logic (I've been pushing back on this
until AccessPath is checked in).

Writing new diagnostic passes that have a light-weight flow-sensitive
escape analysis.

I don't think RLE/DSE should ever have been checked in with the current design for efficiency reasons, and I made that clear at the time. It's true that simply substituting AccessPath would reduce the space and time complexity, but others have been interested in working on it, and my current priority is not fixing compile-time and memory usage issues (the arbitrary thresholds that are in place limit that overhead).
ProjectionPath is different in that it tries to fully abstract over the SIL instructions instead of simply augmenting SIL. I don't think that goal fits well with any of the current uses. So, I agree it should be straightforward to remove ProjectionPath over time. I believe the additional functionality of working with projections should be built alongside and on-top of AccessPath, rather than building it into AccessPath. For example, I implemented a simple projection cloner cleanly on top of AccessPath as a separate utility.
The less urgent but more interesting need for AccessPath is not to replace ProjectionPath, but to replace all of the ad-hoc anlayses scattered throughout the code that rely on forming a complete transitive closure of non-escaping uses of memory locations. For example, if StackPromotion used this, then we wouldn't need all the complexity of use-points in EscapeAnalysis. Passes that badly need a standard, verified model of known-memory-uses are CopyForwarding, COWArrayOpt, ArrayPropertyOpt. However, my current interest is less about optimization and more about writing light-weight diagnostic passes.
I don't think that the AccessPath should directly provide an alias analysis interface. I actually think it should remain minimal. The key is to define a simple model that can be fully verified, then build efficient, purposeful utilities on top of that. The problem with most of our existing utilites is that they aren't proper abstractions at all. They don't model any well-defined concepts and aren't complete or verified. They try to do everything for everyone without really knowing what they're doing. All passes have slightly different needs, so the utilities become misleading for most uses by hiding all of their assumptions behind an interface.
It's very straightforward to provide an alias analysis interface on top of AccessPath::contains() and AccessPath::mayOverlap(). Various passes already do their own light-weight alias analysis and flow-sensitive escape analysis (exclusivity passes do this using AccessedStorage::isDistinctFrom). AccessPath is a big step in standardizing that. In the near term, I agree we should provide a separate light-weight alias/escape analysis interface for diagnostics as a thin layer on top of AccessPath.

@swift-ci test

Build failed
Swift Test Linux Platform
Git Sha - 4bd8dfdb9a46c6eb471571ac8798c955c0941ca3

Build failed
Swift Test OS X Platform
Git Sha - 4bd8dfdb9a46c6eb471571ac8798c955c0941ca3

Something important I forgot to mention: one of the original motivations for implementing AccessPathVerification is to get closer to enabling access marker verification by default. Currently exclusivity verification is under a special flag, only run by a special bot that no one looks at.

@swift-ci test

@swift-ci benchmark

@swift-ci test source compatibility

These docs have gone through one round of review. Now I want to get this AccessPathVerification checked in ASAP. I have a set of new kinds of verification to land, but don't want to do more than one per week (starting with this one) to give them each plenty of exposure.

Some of the functionality discussed in the docs will be landed in a follow-up PR to avoid introducing too many deep functional changes at once.

Performance: -O

Regression
OLD
NEW
DELTA
RATIO

FlattenListFlatMap
2523
4571
+81.2%
0.55x (?)

FlattenListLoop
1031
1568
+52.1%
0.66x (?)

Improvement
OLD
NEW
DELTA
RATIO

UTF8Decode_InitFromBytes
176
164
-6.8%
1.07x (?)

Code size: -O
Performance: -Osize

Improvement
OLD
NEW
DELTA
RATIO

FlattenListFlatMap
3217
2741
-14.8%
1.17x (?)

RemoveWhereMoveInts
10
9
-10.0%
1.11x (?)

ObjectiveCBridgeStubToNSStringRef
82
76
-7.3%
1.08x (?)

DropWhileCountableRange
15
14
-6.7%
1.07x (?)

PolymorphicCalls
15
14
-6.7%
1.07x (?)

Code size: -Osize
Performance: -Onone

Regression
OLD
NEW
DELTA
RATIO

UTF8Decode_InitFromData
155
172
+11.0%
0.90x (?)

UTF8Decode_InitFromBytes
160
177
+10.6%
0.90x (?)

Code size: -swiftlibs

How to read the data
The tables contain differences in performance which are larger than 8% and
differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini8,1
  Processor Name: 6-Core Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

Build failed
Swift Test Linux Platform
Git Sha - d5590801e44b51f96c371dc8d81e619687ae71b0

Build failed
Swift Test OS X Platform
Git Sha - d5590801e44b51f96c371dc8d81e619687ae71b0


problem with hardware emulation of Mandelbrot Application

Hello,
Hardware Emulation of Mandelbrot Application  does not work because there is no socket between the web server and the host application. As indicated in the framework/build/launch file this is still to be done.  Has the problem been solved? It is possible to connect to the web server but nothing more.
MandelbrotLog.txt

Attached file, the generated log from make TARGET=hw_emu launch on amazon development instance

...oh, and the socket should come up fine. This has been working in the past.

Thank you for your response.
I don't understand what I am doing wrong or what I am missing. I get the following errors from the mandelbrot_server.py file (whatever the target is sim, hw_emu or FPGA on F1) :

There is no socket attribute in the 'MandelbrotApplication' instance because no socket is set in the  FPGAServerApplication class from server .py file. Here bellow the error message I get :
File "../webserver/mandelbrot_server.py", line 327, in renderImage
if self.socket == None or settings["renderer"] == "python":
AttributeError: 'MandelbrotApplication' object has no attribute 'socket'

And when I finally modified the code in the server .py file to set a socket in the FPGAServerApplication class then I get a second error from the mandelbrot_server.py file because the ' get_image' function is not defined :
File "../webserver/mandelbrot_server.py", line 336, in renderImage
img_data = get_image(self.socket, GET_IMAGE, settings_str, False)
NameError: name 'get_image' is not defined

It seems that the code is not completely developed, there is still work to be done. I can't understand how it is possible that it worked. What am I missing?
Best Regards

I was able to execute the commands from the GettingStarted and launch mandelbrot successfully, so I'm not sure what the issue might be. This was on Ubuntu 20.04.5 LTS. Make sure you clone from github.com/osfpga, not github.com/stevehoover as was stated in the instructions. I've pushed an update for this, though, I don't believe this addresses your issue.
I'm running python3 - 3.8.10.
self.socket is assigned in framework/webserver/server.py.


Porting more metrics to gauge

Right now, with elasticseach version 5.4.0 we get a lot of errors related to metrics that cannot be incremented
[2017-06-08T07:25:13,682][ERROR][RestPrometheusMetricsAction] Can not increment metric index_warmer_time_seconds with value -5.000000, skipping
[2017-06-08T07:25:13,672][ERROR][RestPrometheusMetricsAction] Can not increment metric index_warmer_count with value -3577.000000, skipping
[2017-06-08T07:25:13,672][ERROR][RestPrometheusMetricsAction] Can not increment metric index_merges_total_docs_count with value -10077538.000000, skipping
...

Please release a new version after merging :)

Thanks !


Update build scripts to allow local builds with Docker, fix publishing of latest

Purpose

Add build scripts to enable local container build
update container with tag latest in mcr

Fix build to allow local builds, update MCR latest container image, and update doc.