Added ability to create default dashboard for group

BEFORE: We have one default dashboards (supplied with installation).
This dashboard defined in product/dashboard/dashboards/default.yaml
AFTER: ability to supply group specific default dashboard.
TESTING creating dashboard for group EvmGroup-support with the same set of widgets as existing default dashboard:

copy product/dashboard/dashboards/default.yaml to product/dashboard/dashboards/some_file.yaml
edit some_file.yaml by changing name: and description: and adding owner_type: MiqGroup and owner_description: EvmGroup-support. It will look like:

name: Default for Support
read_only: t
set_type: MiqWidgetSet
description: Default Dashboard for Support group
owner_type: MiqGroup
owner_description: EvmGroup-support
set_data_by_description:
  :col1:
  - chart_vendor_and_guest_os
  - rss_newest_hosts
  - report_top_memory_consumers_weekly
  :col2:
  - report_top_cpu_consumers_weekly
  - chart_virtual_infrastructure_platforms
  :col3:
  - chart_guest_os_information_any_os
  - rss_newest_vms
  - report_top_storage_consumers

Executing MiqWidgetSet.seed from Rails console will add new dashboard for EvmGroup-support
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1610299
@miq-bot add-label enhancement, reporting
\cc @gtanzillo

@jrafanie could you review


Replace hard-wired features with feature factory

Hi, for enabling us to feed in easily other type of vectorial data without enforcing hard-coding in a deeper class/function, I replaced the existing logic by using fully the already existing feature factory.
This is also used in argparse and can therefore easily handle more extensions by just adding new modules to the feature factory.
Please check and let me know what you think
https://github.com/joergkurtwegner/chemprop/commit/0e14e539592e17f60dce8c73d13bbac58badb027

Fixed in https://github.com/swansonk14/chemprop/pull/4


Building package sdl2:x64-uwp failed with: BUILD_FAILED

The sdl2 port needs updated to be compatible with WinRT / UWP.  The 2.0.8 version of sdl2 does not build from a clean checkout of vcpkg.  Reverting to the 2.0.7 version builds successfully.  It looks like ports/sdl2/enable-winrt-cmake.patch needs to be updated to be compatible with the latest stable version of SDL2, which includes WASAPI audio driver support for WinRT / UWP.
Package: sdl2:x64-uwp
Vcpkg version: 0.0.113-nohash

Thanks for posting this issue. Please open a new issue if this is still a problem for you.


default methods on Java 8 Interfaces are not found

If I have a class that implements an interface with a default method, then the method is not found.  This is at least in part because in JType_ProcessClassMethods the methods array is fetched with JPy_Class_GetDeclaredMethods_MID instead of JPy_Class_GetMethods_MID for non-interface types.
If the method is not defaulted, this works fine because the JOverloadedMethod_FindMethod call will visit the super class when invoking a method, but it does not visit the interfaces.
If I swap the call to getDeclaredMethods for a getMethods call, then the interfaces are found; but the behavior about visiting superclasses is going to change; because the method would be found in the wrapped class itself instead of the superclass.
I'd like to fix this, but need to understand the design intent behind visiting the super class hierarchy instead of allowing the getMethods call to find the methods; because to be consistent with the super class logic I need to visit the interfaces, after exhausting the rest of the method hierarchy.

Hi, I've already merged your PR. Could you pls also provide a test case for the fix.

Thank you for merging.  I've a pull request for the missing test case.
https://github.com/bcdev/jpy/pull/105


Events not fired on children of Group

I have a Group containing a Layer. The Layer has a onClick prop, and it does not get fired when clicked, although it works fine when the onClick prop is on the Group.
Is this some yet-to-be-done area ?

Make sure your Layer has both a width and a height and is “visible”. To be sure, give it a temporary backgroundColor: 'hotpink'. If you cannot see it, that’d explain why the event isn’t triggered.

Yes the Layer is visible and has width / height. I'll come back with a test sample here.

Nailed it. It is because the Group component has a translateY prop set. It makes the children actually move, but not their hit zone it seems.
By the way, is there a reason for Group not supporting top / left ?
Here is a sample :
var React = require('react/addons');
var ReactCanvas = require('react-canvas');

var Surface = ReactCanvas.Surface;
var Layer = ReactCanvas.Layer;
var Image = ReactCanvas.Image;
var Group = ReactCanvas.Group;

var App = React.createClass({

  handleClick: function(event) {
    console.log(event);
  },

  render: function () {
    var surfaceWidth = window.innerWidth;
    var surfaceHeight = window.innerHeight;

    var groupStyle = {
      translateY: 100,
    };

    var layerStyle = {
      width: 100,
      height: 100,
      top: 0,
      left: 0,
      backgroundColor: '#ff0000'
    };

    return (
      <Surface width={surfaceWidth} height={surfaceHeight} left={0} top={0}>
        <Group style={ groupStyle }>
          <Layer onClick={ this.handleClick } style={ layerStyle } />
        </Group>
      </Surface>
    );
  }

});

React.render(<App />, document.getElementById('app'));

Group should support top/left values. Child values for top/left are not relative to the parent though (e.g. position: relative inside position: absolute). Everything is essentially absolutely positioned.
That being said, hit testing should account for ancestor translations. Your example looks good so this seems like a bug, will have a look.


replaced form btn to btn

Description

Replace From_widget_button to widget_button in form widgets

Fixes #3613
Type of change

Update Widget (non-breaking change which adds functionality)

[x] My code follows the style guidelines of this project

[x] I have performed a self-review of my own code

[x] I have commented on my code, particularly in hard-to-understand areas

[ ]  I have made corresponding changes to the documentation

[x] My changes generate no new warnings

[x] I have added tests that prove my fix is effective or that my feature works

[x] New and existing unit tests pass locally with my changes

Test coverage results :test_tube:
:green_circle: Total coverage has increased
// Code coverage diff between base branch:release and head branch: update/formwidget-use-btnwidget

Status
File
% Stmts
% Branch
% Funcs
% Lines

:green_circle:
total
54.94 (0.02)
36.96 (0.02)
33.28 (0.02)
55.53 (0.03)

:red_circle:
app/client/src/mockResponses/WidgetConfigResponse.tsx
11.82 (-0.56)
0 (0)
0 (0)
12.62 (-0.65)

:green_circle:
app/client/src/utils/WidgetPropsUtils.tsx
72.51 (0.18)
64.4 (-0.06)
67.03 (0)
71.5 (0.2)

:sparkles: :new:
app/client/src/utils/migrations/FormWidget.ts
100
85.71
100
100

@techbhavin Tested this feature and found the below observation
1)The Visible JS and success text shows improper Ui when any of the existing form buttons property pane are opened

@YogeshJayaseelan  @somangshu

@YogeshJayaseelan  is it happens because migration is not working properly?

The migration script is written so All  Exstisting FormWidget  FormButton will convert into the Button widget. so Reset From onSuccess is no longer exists.

In the FormButton Widget Property Pan not modifying anything in this current PR. so if it was related to it can we create a new issue?

/ok-to-test sha=ba5aca4

@techbhavin I did not understand the 2nd point, Can you elaborate?

@techbhavin have we written migrations to change the old form buttons to the normal buttons?
Here is what we have to complete:

All ref to form button will be removed
New form will have the button widget (Completed)
All new form button should have the reset form functionality; i.e. all buttons.

cc @riodeuno

/ok-to-test sha= 8925425

@techbhavin Verified this fix and all the below points are working as expected
1)All ref to form button will be removed
2)New form will have the button widget (Completed)
3)All new form button should have the reset form functionality; i.e. all buttons.
but one old functionality breaks - The submit button is not disabled when the inner widget is marked as required and there is not input/data in the inner widget
https://loom.com/share/f1f54c9d7a454e8cb371c4d521b89da6

@somangshu
how do we can detect which button is the submitted button from all children widgets of Form Widget?

how do we can detect which button is the submitted button from all children widgets of Form Widget?

@riodeuno need some help here

@techbhavin If this is for migrations. We can check during migrations for properties which the form button for submit would have.
If we need it for new form widgets, we can do so by updating the form button template in the widgetConfigsResponse file.
Are there other scenarios for which we need to figure out which button is the submit button?

@riodeuno
FormButtonWidget has "disabledWhenInvalid" custom property. Which is true for Submit button and false for the other buttons (ex. reset button). Form Widget also sets "isFormValid" = false for every grandchild widget. So with these two properties Submit button can be disabled when a form is inValid but reset or other buttons will stay unaffected.
In our current update, we don't have "disabledWhenInvalid" on ButtonWidget. Which is the cause of the current issue.
I have tried to set disable of Submit button as binding property inside "widgetConfigsResponse". But FormWidget does not export any property ( i.e. {{Form1.isValid}} or {{Button1.isFormValid}} ) which can be set in binding to disable button on form inValid state.

@riodeuno we could put this in draft and remove the review request for now, until we have a solution

Closing this for now. This will need careful updates to deprecate without effecting UX.

@Nikhil-Nandagopal @somangshu @techbhavin Let's deprecate the current Button Widget. It will work as follows.

ButtonWidget will be removed
FormButtonWidget will be renamed to ButtonWidget
The widget type will be BUTTON_WIDGET
We migrate all FORM_BUTTON_WIDGET references to BUTTON_WIDGET.
The resetFormOnClick will continue to work as it does today, however, it will now also show in the property panes of button widgets which does not exist directly inside a form.
The following text should be changed.
Original: Resets the fields within the parent form when the click action succeeds"
New: Resets the fields of the form, on click, if this widget exists directly within a Form widget.
The following text should be changed.
Original: Disables the button when the parent form has a required widget that is not filled
New: Disabled if the form is invalid, if this widget exists directly within a Form widget.

These two fields needs to be organized properly, my suggestion would be add another section called "Form options" and put the above two property controls in this section.

@riodeuno shall we take this ahead, In that case we need to have a discussion with @techbhavin before hand

Closing this in favour of #11152


LXC support

Issue Type
Feature Idea
Your Environment

* Vagrant 2.2.2
* VirtualBox 5.2.18_Ubuntur123745

Your OS
Linux (Ubuntu 18.04)
Full console output
Summary
We didn't manage to get LXC working with the boxes listed here:
https://github.com/geerlingguy/drupal-vm/blob/master/docs/other/vagrant-lxc.md#modify-your-configyml
Some of dissapeared others are not working.
We are currently using vagrant_box: geerlingguy/ubuntu1604. Any plans to make this box work wiht LXC or any other suggestions?

As I don't currently use LXC directly I'm not inclined to work on it; but please see this older issue where many different potential paths towards doing that successfully were explored: https://github.com/geerlingguy/drupal-vm/issues/649

@geerlingguy ok .. maybe you can answer me one more question. I am still a Drupal n00b and therefore also Drupal VM n00b.
from my understanding Drupal VM supports different vagrant boxes. here are at Liip we have one office using the standard VM with Drupal VM and the other is using https://github.com/liip/drifter which is LXC compatible but there the team does not use Drupal VM.
Now I wonder can you give me some hints about what we would have to do to make Drifter work as Drupal VM base?

@lsmith77 - It looks like Drifter might be synonymous to Drupal VM. Drupal VM is basically a set of Ansible roles and playbooks which use Vagrant to manage a VM.
Using VirtualBox is a default implementation detail; in the past I used to also maintain a VMware Fusion base box and support Parallels, but since that required me to pay a few hundred bucks a year to maintain licenses I gave up. And since I don't run a Linux machine as a daily driver I don't maintain an LXC base box.
However, some (many) people still use Drupal VM successfully with Parallels and Fusion, and some have found ways to make it work with LXC and HyperV even... I just don't officially support less common (and sometimes non-free) configurations.
But back to your point, if there's anything Drupal VM can change to make it easier to use LXC instead of VirtualBox on Linux, which doesn't add additional maintenance burden, I'd be more than happy to merge it in. I will not be working on that myself though.

ok thx.


Linux LLDB debugging and documentation could use some love

I've been using vscode-cmake-tools for about a week now to write a lot of Vulkan graphics code. I think it's a great tool and is providing coverage that is sorely missing in every other IDE that's on Linux. I do have some requests that I think would benefit the vscode-cmake-tools ecosystem as a whole.
LLDB debugging
This feature does not seem to be fully implemented. I tried searching through the issues here, but the discussions are very windy with no conclusions. Currently, from vscode, setting this up seems to launch gdb instead of lldb. Changing the MImode does cause lldb to launch, but it doesn't seem usable.
Not expecting miracles to make LLDB work, but it would be nice if there was some clear documentation around to save one some time messing around with it.
Documentation
There are several areas of the documentation that are gaps. One example is the debugging sections. It's not clear, nor are examples provided on how to set an environment variable for launching a debug session. The syntax in vscode-cmake-tools shares DNA with JSON and CMAKE. Which isn't really a problem, but it would save a lot of time if there were examples.
In my case, vscode-cmake-tools is sufficient for basic debugging. But as debugging cases become more complex, one often has to fallback to command line gdb. Again, some of this is just due to lack of documentation.
Other
Might be also useful to provide build/install instructions for vscode-cmake-tools. Could possibly increase the likelihood of PRs.
Thanks!

Thank you for the response.  I've been all over the docs on github.io this weekend :)
The bit that I was referring to in my example was environment in the launch.json - and I realize this may be out of vscode-cmake-tools' purview. It took me a long longer than I want to admit to track down the formatting for environment:
"environment": [{"name" : "VULKAN_SDK", "value" : "$HOME/local/vulkan"}],

I'm not 100% sure it's correct, but it seems to be doing the right thing.
My suggestion is if something like that showed up in the docs, it would make getting up and going with vscode-cmake-tools a tad easier.

I'll update the docs for 1.1.2


fix(component): add forwardRef to TextInput

Fixes #211
Breaking changes
None

Sweet, I just wrote a test case and checked that it works. I'm not sure if I can add that to the PR or if we'll just have to add it later. Here's a gist of it: https://gist.github.com/tulup-conner/eaecb353448d98f04b5657cee903b139
Thank you for this! I think we'll want to do it for all of the form input components at some point, then.

@tulup-conner Yep, we will want to add it to all of them.
If you are marked as a maintainer, I believe you can add commits, the test looks great to me.

I tried but it looks like I don't have the right permissions, so I notified the maintainers :)

Hi, @davemooreuws. First at all, thanks for the PR. I'm getting an issue to run your code. Could you please check it?
WARNING in src/lib/components/FormControls/TextInput.tsx
  Line 1:1:  Imports "ComponentProps", "FC" and "ReactNode" are only used as types  @typescript-eslint/consistent-type-imports

1 warning has detailed information that is not shown.
Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.

webpack 5.72.0 compiled with 2 warnings in 11133 ms
ERROR in src/lib/components/FormControls/FileInput.tsx:10:11
TS2322: Type '{ type: "file"; value?: string | number | readonly string[] | undefined; checked?: boolean | undefined; multiple?: boolean | undefined; dir?: string | undefined; form?: string | undefined; slot?: string | undefined; ... 286 more ...; className: string; }' is not assignable to type 'RefAttributes<HTMLInputElement>'.
  Types of property 'ref' are incompatible.
    Type 'LegacyRef<HTMLInputElement> | undefined' is not assignable to type 'Ref<HTMLInputElement> | undefined'.
      Type 'string' is not assignable to type 'Ref<HTMLInputElement> | undefined'.
     8 |
     9 | export const FileInput: FC<FileInputProps> = ({ className, ...props }) => {
  > 10 |   return <TextInput className={classNames('!p-0', className)} {...props} type="file" />;
       |           ^^^^^^^^^
    11 | };
    12 |

ERROR in src/lib/components/FormControls/TextInput.stories.tsx:11:52
TS2322: Type '{ ref?: LegacyRef<HTMLInputElement> | undefined; key?: Key | null | undefined; accept?: string | undefined; alt?: string | undefined; autoComplete?: string | undefined; ... 288 more ...; icon?: FC<...> | undefined; }' is not assignable to type 'RefAttributes<HTMLInputElement>'.
  Types of property 'ref' are incompatible.
    Type 'LegacyRef<HTMLInputElement> | undefined' is not assignable to type 'Ref<HTMLInputElement> | undefined'.
     9 | } as Meta;
    10 |
  > 11 | const Template: Story<TextInputProps> = (args) => <TextInput {...args} />;
       |                                                    ^^^^^^^^^
    12 |
    13 | export const Default = Template.bind({});
    14 | Default.storyName = 'Text input';

Should all be good now, had to omit to old ref type.


[Feature] Add About Us Page

Description
Redesign the About Us page ! Please assign me under JWOC 2024 !
Screenshots
No response
Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[ ] I am a IWOC'24 contributor.
[X] I am a JWOC'24 contributor.
[ ] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

The issue is already open @SohanRC


Add conditional return type for EnvelopeCollection::messages

This will help to avoid useless assertion in tests just to please the static analysis tools

nice, thanks @norkunas


I want to add a js project.Pl assign it to me

Hi!  PLEASE assign to me
I am in open source  willing to contribute

@Abhishekjain113  pl make your separate issue


SPIKE: Creation of Azure DevOps CI/CD pipeline automation workspace w/ GitHub connection

Describe the issue
To create an Azure DevOps workspace for the Azure AppDev SEA CI\CD pipeline creation & automation work
Which Sprint Goal is this issue related to?

Note: 'Milestone' is a ZenHub term that we use synonymously with 'Sprint'.

The 'Milestone' description (created in ZenHub) should clearly list Sprint Goals. This section should indicate which 'goal' this issue is related to.
Additional context
Would still pull code from GitHub but would manage its deployment\pipeline automations from the Azure DevOps platform.  Can unify and improved the Azure deploy experience & act as a point of collaboration for technical team members, including for planning and the micro-task management that can be involved with IaC deploys, pipeline management and automation setups (macro-task management still covered through ZenHub)
Definition of done

Create a pipeline automation and collaboration workspace for both the Province technical cloud IoC team members and Microsoft technical resources
Create the DevOps workspace and invite all technical team members, including currently assigned Microsoft technical resources
GitHub repos don't exist and out of scope for this ticket
Create well-formed tickets as the result of this ticket

Blocked because Warren thinks he lacks proper permissions.


Document how to allow blocking requests when asyncio is running

Some environments, e.g. notebooks, spin up an asyncio runtime for you. Right now, this leads to breakages if you try to use stac_asset.blocking.* functions, since we use asyncio.run. ~We should update the blocking functions to use an existing runtime if possible, and only fall back to asyncio.run if need be.~
Fixing this feels out-of-scope, so we should just document the usage of nest_asyncio.

I ran into this the other day too. Looks like simply calling nest_asyncio.apply() is sufficient (example).
I'd be happy to make a PR for this. Is adding a note in the README good enough?

Yeah, for now a README note would be great, thanks so much! For reference, this is how I ended up using it, similar to yours: https://github.com/stac-utils/stac-task/pull/42/files#diff-0ed2cf4aaeba2d2a23f6230accc39f7aedcf80e0feea2a89639c7633282f293aR148-R156.


redesign build related make targets

The intention of this change is to streamline the functionality of the make targets and make the naming more intuitive. A few key features:

Make naming of targets more intuitive/consistent
Use current gcloud context to determine default GCP project. This helps support the model of a configurable dev project.
Use git describe to tag images instead of using timestamp in the image prefix with a latest tag. This makes it so that images can be separately built and published in an intuitive way. Using git describe in the tag version also provides more contextual information than a timestamp.
Replace build-oss with config-sync-manifest. The build-oss script was an initial take at building OSS Config Sync, but duplicates logic from config-sync-manifest. The config-sync-manifest target is also what we use now for producing release artifacts, so this makes the development target consistent with the release target.
Update development docs to provide more instruction on interacting with the make build targets.

/retest

/retest

/retest

/retest

/retest

/retest

/retest

@tomasaschan
There aren't any blockers AFAIK, just waiting for code review.


Passing arguments via command line.

Having some trouble trying to pass some data to the scene through the command line. Id like to be able to dynamically render the videos server side by just tacking on some text at the end of the shell command, like maybe:   " manim file.py Scene -pl data "  , but Im not entirely sure what mechanisms orchestrate the manim command, or how everything is parsed to python. If anyone could provide some insight here or point out some applicable functionality I may have missed that would be much appreciated!

I'm not an expert on this library, but it'll help.
I think you need to add a new flag --data here:
https://github.com/3b1b/manim/blob/master/manimlib/config.py#L25-L29
Then add a new dictionary entry "data" here:
https://github.com/3b1b/manim/blob/master/manimlib/extract_scene.py#L140-L150
Then any Scene can use this in the constructor :)
Can you tell more about what scene are you trying to use with dynamic data?

Thanks just what I needed! Im working on a web app that will generate animation's of the different sorting processes on the fly (with user inputted array), mainly to visualize whats going on during each pass.


[PubSub] Received message larger than max (5298508 vs. 4194304)

I'm using the PHP PubSub client and I'm getting this error while pulling messages:
"message": "Received message larger than max (5298508 vs. 4194304)",
The messages that cannot be read are written via PHP btw. So it's a bit strange that I did not suffer from this limit while writing.
Looking at these issues:
https://github.com/googleapis/google-cloud-php/issues/3120
https://github.com/googleapis/google-cloud-php/issues/1690
I looked at the pubsub client constructor. But it doesn't accept the transportConfig option. So how would I pass such configuration to the PubSub client?

Hi @jvdlaar. This sort of issue has addressed in some other clients such as Cloud Spanner, by accepting a config variable allowing the user to provide their own gapic client. Something like this:
$pubsub = new PubSubClient([
    'gapicPublisherClient' => new Google\Cloud\PubSub\V1\PublisherClient(),
	'gapicSubscriberClient' => new Google\Cloud\PubSub\V1\SubscriberClient(),
]);

You can see here how it's implemented in Spanner. We'd most definitely accept a pull request adding this functionality to PubSub, if you're able and willing to contribute.

Hi @jvdlaar. This sort of issue has addressed in some other clients such as Cloud Spanner, by accepting a config variable allowing the user to provide their own gapic client. Something like this:
$pubsub = new PubSubClient([
    'gapicPublisherClient' => new Google\Cloud\PubSub\V1\PublisherClient(),
	'gapicSubscriberClient' => new Google\Cloud\PubSub\V1\SubscriberClient(),
]);

You can see here how it's implemented in Spanner. We'd most definitely accept a pull request adding this functionality to PubSub, if you're able and willing to contribute.

I'll give it a shot!

I'll give it a shot!


Scary/spammy info logs as watcher restarts watches

Grepping for "error" in the felix/typha logs now turns up this background traffic over and over as we restart each watcher that times out.  We should at least squash the word "Error", which users will ask about even though it's an info log.  Ideally, we'd squash all these logs unless there's a "real" error, which really just mean "nothing happened so I'm renewing the watch".
2017-11-24 16:26:24.197 [INFO][7] watchersyncer.go 153: Error received in main syncer event processing loop error=watch terminated (closedByRemote:true): terminating error event from Kubernetes watcher: closed by remote
2017-11-24 16:26:24.197 [INFO][7] watchercache.go 127: Starting watch sync/resync processing ListRoot="/calico/resources/v3/projectcalico.org/felixconfigurations"
2017-11-24 16:26:24.197 [INFO][7] watchercache.go 129: Stopping previous watcher ListRoot="/calico/resources/v3/projectcalico.org/felixconfigurations"
2017-11-24 16:26:24.198 [INFO][7] watcher.go 124: Watch event indicates a terminated watcher resource="FelixConfiguration (custom)"
2017-11-24 16:26:24.199 [INFO][7] watcher.go 85: Kubernetes watcher/converter stopped, closing result channel resource="FelixConfiguration (custom)"
2017-11-24 16:26:24.199 [INFO][7] watcher.go 83: Kubernetes watcher/converter started resource="FelixConfiguration (custom)"

Expected Behavior

Non non-error logs with the word "Error" in them
Fewer logs for business-as-usual watch renewals.

Current Behavior

Possible Solution

Steps to Reproduce (for bugs)

Context

Your Environment

libcalico-go version:
Operating System and version:
Link to your project (optional):

Yes, this made my blood pressure rise.
So there messages are innocuous?
Error received in main syncer event processing loop error=watch terminated (closedByRemote:true): terminating error event from Kubernetes watcher: closed by remote

@edevil Yes, if the log level is [INFO] then it's not a problem even if the log itself talks about errors.

I believe these have been fixed in master be a couple of PRs:

https://github.com/projectcalico/libcalico-go/pull/915
https://github.com/projectcalico/libcalico-go/pull/909

These will show up in v3.3, unless someone feels like cherry-picking :)


Add $file(filename) text annotation macro

Is your feature request related to a problem?
We handle a variety of database values in text annotations.
Adding the ability to take arb. text from a file would really add a lot of generalization. The ith state would render the text on the ith line of the file.
In client/server, the file might need to exist in some /tmp path for engine to properly find it.
This came up as part of an answer to a #18464.

While waiting for develop to build, I've looked a bit and how to do this and have a basic design I'd like to get input on...
The way the current design works is that there is a set of pre-defined (e.g. at compile time) strings that serve as names of some database attribute (e.g. $time, $cycle, $dbcomment, etc.) All of these pre-defined strings are built up at compile time into a table. So, there is no way to have an entry that is instead specified at run time like $txtfile(<filename>) because the <filename> part is determined at run time.
However, I could define a handful of pre-defined strings, $tafile1, $tafile2, and $tafile3 (ta=text annotation) and VisIt would then look for a file named ~/.visit/tafile1.txt and as a fallback maybe /tmp/$USER/tafile1.txt or /var/tmp/$USER/.tafile1.txt
So, a user would have to create the desired content in a pre-defined file name and then ensure that file is in the right place (on both client and server...just like background image annotations (look at warning text in this section) have to be presently.
But, if that approach is acceptable, this enhancement is quite straightforward.
Thoughts?

have any inkling as to why this approach wouldn't be acceptable;

Well, its somewhat lacking in generality because the file names are fixed and at fixed path(s) (currently, I've only implemented ~/.visit/... path but I can easily add a few other optional places to look) and the number of available macro options is fixed at 3 (e.g. $stafile1, $stafile2 and $stafile3. Its a bit wonky in that the data type of the lines to be copied from these files gets separated out. So, integers must be in $itafileX whereas general strings are in $stafileX.
Now, that last part I did so the user can specify printf-style format conventions for the data. I could constraint this a bit more and simplify the implementation by only allowing string types and then it is up to the user to ensure the strings in the file are verbatim what they want to see in the annotation. Then, we'd have only the $stafileX (X is 1, 2 or 3) series of options.

BTW...@JustinPrivitera, I propose you indicate your it all looks good to me opinion by approving #18487 :wink: :laughing:

BTW...@JustinPrivitera, I propose you indicate your it all looks good to me opinion by approving #18487 😉 😆

Oops... it was in draft when I took a look, and I thought someone more experienced should take a look before I weighed in.


Fixed #34671 -- Inspectdb collation issue with oracle views

This should solve the view problem, any recommendation is more than welcome

@SecondPort Thanks for the patch 👍 However, this is not an acceptable solution. First of all, it doesn't fix the issue for materialized views. Secondly, regression tests are missing. Also, it's complicated, and we should avoid building queries this way. The only thing that we need from user_tables/users_views/users_mviews is default_collation, I'd fetch the default_collation in the separate query (similar to the one used in get_table_list()) and pass it in params to the main query in get_table_description(). This way we can avoid JOINing with user_tables/users_views/users_mviews.

Thank you very much for the answer and sorry for the mistake, I'll keep trying, have a good day. 😊

Superseded by #17012.


NODE_MEM doesn't work

The gtfs crashes with a Node out of memory error
info: >> Exporting to GTFS

<--- Last few GCs --->

 1379495 ms: Mark-sweep 1288.8 (1376.1) -> 1288.5 (1377.1) MB, 2426.2 / 0.0 ms [allocation failure] [GC in old space requested].
 1381833 ms: Mark-sweep 1288.5 (1377.1) -> 1288.5 (1340.1) MB, 2337.4 / 0.0 ms [last resort gc].
 1384150 ms: Mark-sweep 1288.5 (1340.1) -> 1288.5 (1337.1) MB, 2317.7 / 0.0 ms [last resort gc].

<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x22dc1f7cfb51 <JS Object>
    1: writeForStop(aka writeForStop) [/node_modules/podigg/lib/gtfs/GtfsBuilder.js:~147] [pc=0x3ce6ba1895ae] (this=0x22dc1f704381 <undefined>,stop=0x22c6585160f9 <an Object with map 0x5568686ac71>,i=5)
    2: /* anonymous */(aka /* anonymous */) [/node_modules/podigg/lib/gtfs/GtfsBuilder.js:~146] [pc=0x3ce6ba192c54] (this=0x22dc1f704381 <undefined>,connection=0x25ec5956efe9 <an Object with map...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [node]
 2: 0x109838c [node]

despite running with -e NODE_MEM=50000 as indicated in the docs. I believe the issue is that the parameter does not extend into the childProcess.spawn calls
As a dirty fix I replaced /usr/local/bin/node with a script that calls node --max_old_space_size=50000

I believe the issue is that the parameter does not extend into the childProcess.spawn calls

Hmmm, you're probably right.
A fix that would pass the active environment variables would probably be a clean solution: https://stackoverflow.com/questions/33593522/overcome-node-js-memory-limit-with-fork
I don't have the bandwidth to look into this in the near future, but I'm happy to accept a PR on this.
Thanks for reporting!


Internal Microphone cannot be selected after plugging in wired headphone-microphone.

The internal microphone is permanently disabled after connecting a wired headphone-microphone. Anyone else with the same issue?

Not really having this problem at my end :(

Sorted out the issue. Had to reset NVRAM from OpenCore boot menu.


RFP Steven Blacks hostmaster

https://github.com/StevenBlack/hosts
Extending and consolidating hosts files from several well-curated sources like adaway.org, mvps.org, malwaredomainlist.com, someonewhocares.org, and potentially others. You can optionally invoke extensions to block additional sites by category.

This is really just a file that is used by other apps to provide site blocking? I'm unsure whether it, as itself, constitutes a package, or whether it would need to be bundled with other apps to be useful.
For example you could bundle it with a Hostman install and it would then install the list for Hostman or create a package that updates your hosts file with this?
@AdmiringWorm what are your thoughts on this? Am I being clear on what I'm meaning?

I had more or less the same thought, I honestly don't know if it should be a package or not.
If it were to be created as a package though, I would hope to never see the script itself.
It either would be a huge complicated mess of if/else statements accepting parameters, or a package form every kind of the provided hosts files.

@ferventcoder @gep13 thoughts?

@AdmiringWorm @pauby perhaps what should be packaged up is this:
https://github.com/ScriptTiger/Unified-Hosts-AutoUpdate/blob/master/Hosts_Update.cmd

Sorry, I meant this link:
https://github.com/ScriptTiger/Unified-Hosts-AutoUpdate

@gep13 yeah, that one seems likely to be something that could be packaged.
@churchthecat is that the one you would perhaps to see packaged as a chocolatey package?

Well I wasn't aware about scripttigers script , but that looks cool :). However its not just a hostfile on stevenblacks its a tool for composing new hostfiles by selecting the different extensions and so on.  Selecting view code shows all of the files.  My idea was to make it easy to update a hostile based on different sources automaticly, a quick look at scripttigers seems to do just that. Not a coder so not sure if I understood everything correctly

@churchthecat can you answer the questions on this thread to progress or can the issue be closed?

Sorry , completely missed the replys.  Gep13s suggestion seems to be a better option. Close this would probably be best.


Allow data-src selector to be customized

I run into a conflict with lazy-load-xt plugin; both use data-src to interact with images.
would be great to be able to customize data-src like for example data-my-placeholder or something..

I figured this may come up. I'll add this to 2.6.

This is now implemented.


Installation of extension only works if home-data-dir already exists

VSCode Version: 1.2
OS Version: Ubuntu LTS 14.04

Steps to Reproduce:

Don't open vscode (at least don't install an extension via vscode-gui)
from console: code --install-extension eg2.tslint
you get an error - no such file or directory: /home/vagrant/.vscode/extensions

Temporary fix for me (I'm using this in vagrant):
mkdir -p /home/vagrant/.vscode/extensions
code --install-extension eg2.tslint
So I do a mkdir beforehand, so the install won't fail.
Thanks!

Great catch!

Just rerun my vagrant configuration from scratch and found out that /home/vagrant/.config/Code/User is missing too, if you never started vscode before.

Verification: install an extension from the command line, into an extensions folder that does not exist yet, eg --extensionHomePath ~/extensions --install-extension tinkertrain.theme-panda.


How to test a vue component write by tsx

Describe the bug
throw errors when try to test a tsx component.
deps:
"vue": "^3.2.25"
"@vitejs/plugin-vue": "^2.0.1",
"@vitejs/plugin-vue-jsx": "^1.3.3",
"@vue/test-utils": "^2.0.0-rc.18",
"happy-dom": "*",
 "vitest": "0.0.122"

error:
TypeError: Cannot read properties of undefined (reading 'modules')
> callWithErrorHandling ../../node_modules/.pnpm/@vue+runtime-core@3.2.26/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js:6737:22

Reproduction
Component:
// Case.tsx
import { defineComponent, ref, watchEffect } from "vue";

export default defineComponent({
  name: "TestComponent",
  props: {
    value: String,
  },
  emits: ["update:value"],
  setup(props, { emit }) {
    const local = ref("");

    watchEffect(() => {
      emit("update:value", local);
    });
    watchEffect(() => {
      local.value = props.value;
    });

    return {
      local,
    };
  },
  render() {
    return (
      <a-select v-model={[this.local, "value"]}>
        <a-select-option value="aaa">aaa</a-select-option>
      </a-select>
    );
  },
});

case.test.ts
import Case from "../components/Case";
import { shallowMount } from "@vue/test-utils";

test("mount component", () => {
  const wrapper = shallowMount(Case, {
    props: {
      value: "test",
    },
    global: {
      stubs: ["a-select", "a-select-option"],
    },
  });

  expect(wrapper.html()).toMatchSnapshot();
});

System Info
System:
    OS: Linux 5.10 Ubuntu 20.04.3 LTS (Focal Fossa)
    CPU: (3) x64 Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz
    Memory: 1.14 GB / 7.77 GB
    Container: Yes
    Shell: 5.0.17 - /bin/bash
  Binaries:
    Node: 16.13.1 - /home/packages/node/bin/node
    Yarn: 1.22.17 - /home/packages/node/bin/yarn
    npm: 8.1.2 - /home/packages/node/bin/npm
  npmPackages:
    vite: ^2.7.9 => 2.7.9
    vitest: workspace:* => 0.0.122

Used Package Manager
pnpm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Can you make a reproduction on https://stackblitz.com/ ?

Can you make a reproduction on https://stackblitz.com/ ?

https://stackblitz.com/edit/vue-vitest-tsx

Fixed in v0.0.139
Please add this to your test config:
import { defineConfig } from 'vite'

 export default defineConfig({
   test: {
     transformMode: {
       web: [/\.[jt]sx$/],
     },
   },
 })


use utf8 default encoding

Pydot was throwing unicoencode error ('ascii' codec) before that change, when I was using Polish national characters in labels but server was running in LC_ALL=C environment.

Thanks for the proposed change. It is similar to #143, which motivates more this API change.

The changes in #143, which has been merged, cover this behavior.


Webhook - Optional API Key in Header

API Key can be sent as part of the request parameter [x-api-key], it is specified by appending it to the webhook URL and separate it using a hash [#].

This will be super helpful, thanks @shaangill025

Based on @esune comment, including a test case for API Key in the header. Also, separating with and without API key cases.

@ianco Unit tests are passing now. I had to accommodate for the change in handle_message signature change inside test_send_message.

Codecov Report

Merging #878 (66e1a5e) into master (244194e) will decrease coverage by 0.02%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##           master     #878      +/-   ##
==========================================
- Coverage   97.38%   97.35%   -0.03%
==========================================
  Files         297      297
  Lines       16463    16471       +8
==========================================
+ Hits        16032    16036       +4
- Misses        431      435       +4


Revert "mobile: Add no-remote-exec in the Swift tests (#35345)"

This reverts commit 88374d7111706d058b15ce57a177a0c3b92214aa.
Risk Level: low
Testing: CI
Docs Changes: n/a
Release Notes: n/a
Platform Specific Features: n/a

/assign @phlax


Docs on Layout suggest they are not global, but in the default app they are

Description
Pardon the somewhat awkward title. In Core Concepts (https://gridsome.org/docs/core-concepts/), the docs for layouts say you must import them to use them, but that they can be made global. This leads you to this page (https://gridsome.org/docs/layouts/#make-a-layout-global) that explains how to do it.
It looks like now the default Gridsome app does this for you automatically. Therefore the docs are a bit confusing as it implies you may need to do something you don't have to.
Expected result
I'd suggest changing the docs in Core Concept to not include the Layout component as it's done by default now. In the Layout docs, definitely mention why this works, and that it is the default, but that a person may change that of course.

Very good suggestion @cfjedimaster . Maybe it's best to remove the global layout in the default starter? To make a layout global should just be a "Hot tip" or something.

As a Gridsome user for like 5 minutes (grin), my opinion is to keep it as is. It feels like something I'd want 90% of the time and I'd rather remove it when I don't need it.
But again - really new user so I don't know if most folks use this or remove it from the code.

Most people want a global layout. Taking it out would cause the majority of people a headache.

@cfjedimaster Would you be able to submit a PR with updates to the doc as you suggested?

Sure... can't promise how quickly. :)

Filed: https://github.com/gridsome/gridsome.org/pull/414

@tomtev Can be closed.

@cfjedimaster Will you be able to close the ticket?


BUILD FAILED: No rule found when resolving target //app:app in build file //app/BUCK

Hi.
I had just started learning okbuck. I used your project (just import it, sync and do nothing else) https://github.com/Piasy/BuckProjectEditDetectDemo and i get this eror when i build

root@cuong-K43E:~/Downloads/BuckProjectEditDetectDemo-master# /home/cuong/buck/bin/./buck build app
Not using buckd because watchman isn't installed.
[+] PROCESSING BUCK FILES...0.0s [100%]
BUILD FAILED: No rule found when resolving target //app:app in build file //app/BUCK
Defined in file: /home/cuong/Downloads/BuckProjectEditDetectDemo-master/app/BUCK

I also try with my project too and get same error.
Please show me how to fix it.
Thank you.

You should run buck build appDebug or buck build appRelease, these two names appDebug and appRelease can be found inside .buckconfig file generated by OkBuck.

I get this too and my .buckconfig file is empty. My app target's build.gradle file had multiple configurations (release, debug, production, etc), so I expected .buckconfig to reflect that


fix: Raise an error on unavailable excludes

Closes #2292.
But I now realize was here deliberately (the old code was more work than mine!)
That said I would think it's better to raise here — getting this wrong is still wrong...

Tests are failing because of https://github.com/PRQL/prql/issues/2079, so I guess we need to solve that first

I did not want throw an error here, because we don't have an easy escape path. (see the comment that was removed).

There are two cases I can see:

The group 1 — i.e. the test you added — I hadn't thought we had to throw an error there (assuming we wrote perfect code) — is that not correct? That query could compile to SELECT DISTINCT title FROM tracks, no?
The case where someone has specified a column to exclude. I thought that was what the comment was referring to. My vote would be to raise an error there — that the downside of the "no escape path" was lower than the downside of "I asked for the exclude and it just ignored me"...

The group 1 — i.e. the test you added — I hadn't thought we had to throw an error there (assuming we wrote perfect code) — is that not correct? That query could compile to SELECT DISTINCT title FROM tracks, no?

When there is take 1 it should yes, but group x (take 2) should not.
There may be other cases where a column is added and should later be removed without removing the unknown columns, but I cannot think of any right now.

When there is take 1 it should yes, but group x (take 2) should not.

Good point. Ideally we'd be able to handle those cases differently, I recognize that will require more work though.
I'll leave this open for a bit and see whether I / someone else gets to it. Otherwise we can close and attempt a broader effort.


gamnit: simple 2D API, input events and the game Asteronits

You should probably read this PR commit by commit, it is a bit long but it's mostly due to the sample game, a big XML file and changes to indentation.
The new API provided by simple_2d is meant to replace mnit for writing 2D games.
Client modules only have to create instances of Sprite which will be displayed as long as they are in App::sprites.
At this point, the simple_2d API is not optimized and you may see a slowdown at the insertion of new sprites. However, we could improve the performance by preallocating buffer space for more sprites, and by caching sprites state on the GPU to avoid unnecessary updates.
This PR also adds support for input events for Linux and Android. It uses the existing services from mnit::input, sdl and android::input_events.
Finally, the game Asteronits is an example for the simple_2d API. In this game, the player controls a ship, avoids asteroids and destroys them. The gameplay and UI is limited by design to be a simple example. Note that the touch_ui variant is used on Android only but it also works on Linux.
The tool texture_atlas_parser reads XML TextureAtlas files and produces Nit classes with one attribute per subtexture. We could move this tool if it is useful for any other projects.

Rerolled with comments and to fix tests.

Note that the Asteronits example is functional but incomplete. I plan to add particles (with the corresponding gamnit service), audio (when app::audio is decoupled from mnit), a static background with perspective and the globe example as background.

Rerolled to fix doc generated by texture_atlas_parser.

I think you should move the game to contrib instead of examples

the controls on android are just awful. +1

So make checks do not declare "NIT_TESTING"? Or should I not execute the game in the check rule?

make check should be executable in a headless environment without any prior configuration, so that a human or integration server can just execute it.

some check failed. http://gresil.org/jenkins/job/nit_test_tools/930/testReport/

Errors on mongodb connections? or is it a wrong link?

The last commit should fix the errors from http://www.google.com/url?q=http%3A%2F%2Fgresil.org%2Fjenkins%2Fjob%2Fnit_test_android%2F53%2F&sa=D&sntz=1&usg=AFQjCNH64gMliHWvQ_GuLstD3-mJPSaE_Q

still broken http://gresil.org/jenkins/job/nit_test_android/56/testReport/

These Makefiles are getting complex, but it should be fixed now.


Implement ballerina pull and push command

Purpose

This PR includes the implementation of the:

ballerina pull command which is used to pull/download files/packages from the ballerina central repository

ballerina push command which is used to push/upload packages which reside locally to the ballerina central repository

ballerina.compression library which is used to compress and decompress pulled and pushed packages

toml-parser to parse and read the toml files to extract the properties of the package
i.e. Extracting the org-name and version of the package from Ballerina.toml

Can we move the TOML parser to the ballerina-config module? It's not dependent on any other module and was intended to be used by any other module requiring access to the config registry. Since the TOML parser may be required by other modules (i.e: Config API itself) which needs to parse TOML files, it would be easier to have it in a module not dependent on other modules, so that cyclic dependencies can be avoided.

This PR is updated in https://github.com/ballerina-lang/ballerina/pull/5058, hence closing this


Unhandled Promise Rejection

Sentry Issue: KAP-BPF

macOS version:    Big Sur (11)
Kap version:      3.5.4
Unhandled Promise Rejection

Error: Command was killed with SIGTRAP: /Applications/Kap.app/Contents/Resources/app.asar.unpacked/node_modules/mac-screen-capture-permissions/screen-capture-permissions
    at makeError (/Applications/Kap.app/Contents/Resources/app.asar/node_modules/mac-screen-capture-permissions/node_modules/execa/lib/error.js:59:11)
    at Function.module.exports.sync (/Applications/Kap.app/Contents/Resources/app.asar/node_modules/mac-screen-capture-permissions/node_modules/execa/index.js:187:17)
    at exports.hasScreenCapturePermission (/Applications/Kap.app/Contents/Resources/app.asar/node_modules/mac-screen-capture-permissions/index.js:27:25)
    at ensureScreenCapturePermissions (/Applications/Kap.app/Contents/Resources/app.asar/dist-js/common/system-permissions.js:64:23)
    at Object.openCropperWindow [as open] (/Applications/Kap.app/Contents/Resources/app.asar/dist-js/windows/cropper.js:81:66)
    at Object.openCropperWindow (/Applications/Kap.app/Contents/Resources/app.asar/dist-js/tray.js:18:129)

Duplicate of #1070

Sorry how could I resolve this issue? Currently, I'm unable to use the app.
Thanks!

Just got to say that was a really sweet bug to issue flow. Seriously impressive error handling.


Reduce the Vulkan interop buffer kernel workgroup size to 128

Vulkan guarantees 128 is always supported.
Relates to #1828

As discussed on Memory subgroup call on November 21, 2023, waiting until CI is clean on this one.
Looks like the resubmitted jobs failed as well.

This looks like due to mismatch in headers and CTS, although I see the latest CTS doesn't have CL_DEVICE_HANDLE_LIST_KHR.
Not sure if CI is picking up some older version of CTS before #1814
/home/runner/work/OpenCL-CTS/OpenCL-CTS/test_conformance/extensions/cl_khr_external_semaphore/test_external_semaphore.cpp:123:26: error: ‘CL_DEVICE_HANDLE_LIST_KHR’ was not declared in this scope; did you mean ‘CL_MEM_DEVICE_HANDLE_LIST_KHR’?
123 |     SEMAPHORE_PARAM_TEST(CL_DEVICE_HANDLE_LIST_KHR, cl_device_id, deviceID);
|                          ^~~~~~~~~~~~~~~~~~~~~~~~~

Merging as discussed in Memory subgroup call on November 21, 2023. CI is clean now and all checks have passed.


Chaining rule in multilanguage

Hi,
Could you assist us with an issue we're facing? We have qna solution implemented in both English and Spanish, and we've created several flows using chaining rules in English. However, these chaining rules are not functioning when we switch to Spanish, as the values are not being converted to Spanish. Could you please help resolve this?

Thanks. We will revert back

The information shared is not specific.
With that, my best suggestion is that you go through https://github.com/aws-solutions/qnabot-on-aws/tree/main/source/docs/multilanguage_support, https://github.com/aws-solutions/qnabot-on-aws/tree/main/source/docs/handlebars and https://aws.amazon.com/blogs/machine-learning/building-a-multilingual-question-and-answer-bot-with-amazon-lex/ to get an understanding of multilanguage and handlebar.
Then you could use Handlebars templates to conditionally set session attributes or add 'if' statements to the answer field based on the detected language.
For conditional chaining, you can refer to https://docs.aws.amazon.com/solutions/latest/qnabot-on-aws/configuring-the-chatbot-to-ask-the-questions-and-use-response-bots.html
Thanks

Hi,
We ran a CloudFormation stack with the parameter Language = English and enabled ENABLE_MULTI_LANGUAGE_SUPPORT = true in the Content Designer. Below is the export of the welcome response. The user interacts with the bot in both English and Spanish. The chaining rule works as expected in English. However, when the user interacts in Spanish and says "Sí," the chatbot does not respond, whereas it responds correctly when the user says "yes" in English. Could you please assist with converting the chaining rule to support Spanish as well? Can this be achieved by modifying the chaining rule in the Esproxy layer of the fulfillment Lambda?
{   "qna": [     {       "a": "Greetings, Preethy! I'm Ada, your helper. Can we proceed?",       "elicitResponse": {         "response_sessionattr_namespace": "AcPersona",         "responsebot_hook": "QNAFreeText"       },       "alt": {         "markdown": "Greetings, Preethy! I'm Ada, your helper. Can we proceed?"       },       "conditionalChaining": "(SessionAttributes.AcPersona.FreeText == \"yes\" || SessionAttributes.AcPersona.FreeText == \"yes, that is correct\" ) ? \"Eligibility Criteria\" :SessionAttributes.AcPersona.FreeText",       "type": "qna",       "qid": "welcome",       "q": [         "greeting user"       ]     }   ] }

Hi @preethy-1
have you been through the documentation I shared? This will help you tremendously if you are doing multi-language o get an understanding of multilanguage and handlebar.

https://github.com/aws-solutions/qnabot-on-aws/tree/main/source/docs/multilanguage_support
https://github.com/aws-solutions/qnabot-on-aws/tree/main/source/docs/handlebars
https://aws.amazon.com/blogs/machine-learning/building-a-multilingual-question-and-answer-bot-with-amazon-lex/


use quantum-safe

Can I use quantum-secure encryption instead? Here's an example.
https://github.com/open-quantum-safe/oqs-demos/tree/main/openvpn

This project will respect defaults whenever reasonable, so not a this time.


[Draft] Implemented IReadableBitmapImpl for Avalonia.Skia.SurfaceRenderTarget

What does the pull request do?
Adds IReadableBitmapImpl to Avalonia.Skia.SurfaceRenderTarget such that you can call RenderTargetBitmpa.CopyPixels() when using Skia
What is the current behavior?
RenderTargetBitmpa.CopyPixels() currently asserts because Avalonia.Skia.SurfaceRenderTarget does not implement IReadableBitmapImpl
What is the updated/expected behavior with this PR?
as above
Checklist

[ ] Added unit tests (if possible)?
[x] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/Documentation with user documentation

Breaking changes
Does not break current API
Fixed issues
none
Relates to
https://github.com/AvaloniaUI/Avalonia/discussions/10283

You can test this PR using the following package version. 11.0.999-cibuild0029803-beta. (feed url: https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json) [PRBUILDID]

sorry, was a brain fart, reverted

It won't work without a PixelFormat since CopyPixels will check if it's not null

That's correct. I did miss that too thinking if RenderTargetBitmap.Format == SurfaceRenderTarget.Format (both null) might do it. Any idea about that?

Wanted to do that as a Draft only for now anyways to be able to consume it by NuGet...


Traffic split based on HTTP headers match conditions

In order to support A/B testing scenarios, the TrafficSplit could be extended with  HTTP headers match conditions.
E.g. route Chrome users with a canary=enabled cookie or those with a X-Canary header to the canary while all the others will be routed to the primary:
kind: TrafficSplit
metadata:
  name: website
spec:
  service: website
  http:
  - backends:
    - service: website-primary
      weight: 0
    - service: website-canary
      weight: 100
    match:
    - headers:
      - user-agent: ".*Chrome.*"
      - cookie: "^(.*?;)?(canary=enabled)(;.*)?$"
    - headers:
      - x-canary: "enabled"
  - backends:
    - service: website-primary
      weight: 100
    - service: website-canary
      weight: 0
    match: {}

As suggested by @nicholasjackson this is how an A/B test will look by using HTTP routes:
---
kind: HTTPRouteGroup
metadata:
  name: website-routes
matches:
- name: external-users
  pathRegex: ".*"
  methods: ["*"]
  headers:
   - user-agent: ".*Chrome.*"
   - cookie: "^(.*?;)?(canary=enabled)(;.*)?$"
- name: internal-users
  pathRegex: ".*"
  methods: ["*"]
  headers:
   - x-canary: "enabled"
- name: all-users
  pathRegex: ".*"
  methods: ["*"]
---
kind: TrafficTarget
metadata:
  name: website-canary
destination:
  kind: TrafficSplit
  name: website-canary
specs:
- kind: HTTPRouteGroup
  name: website-routes
  matches:
  - external-users
  - internal-users
---
kind: TrafficTarget
metadata:
  name: website-primary
destination:
  kind: TrafficSplit
  name: website-primary
specs:
- kind: HTTPRouteGroup
  name: website-routes
  matches:
  - all-users
---
kind: TrafficSplit
metadata:
  name: website-primary
spec:
  service: website-primary
  backends:
  - service: website-primary
    weight: 100
  - service: website-canary
    weight: 0
---
kind: TrafficSplit
metadata:
  name: website-canary
spec:
  service: website-canary
  backends:
  - service: website-primary
    weight: 0
  - service: website-canary
    weight: 100

I'm in favour of the first proposal, this is not only highly verbose but makes automation of an A/B test harder. For example Flagger would have to create the HTTPRouteGroups and TrafficTarget, that means users will have to add all routes to the Canary spec or the routes will overwritten by Flagger.
Another issue is that the routes approach needs two apex domains.

@stefanprodan thanks so much for going through the exercise. The more I thought about it yesterday, the more I appreciated the first approach coming from a UX perspective and it's nice to have all the traffic split functionality defined in one place like you mentioned. Even if we do header matching somewhere else eventually, this pattern of the match section is simple enough to repeat.

Oh, I hadn't even considered using TrafficTarget for anything other than ACLs. Here's what I was thinking:
kind: HTTPRouteGroup
metadata:
  name: the-routes
matches:
- name: metrics
  pathRegex: "/metrics"
  methods:
---
kind: TrafficSplit
metadata:
  name: website
spec:
  service: website
  matches:
  - kind: HTTPRouteGroup
    name: the-routes
  backends:
  - service: website-primary
    weight: 0
  - service: website-canary
    weight: 100

Things I like

HTTPRouteGroup was originally intended to be auto-generated from a swagger spec. While it isn't required, it is nice to be able to have a single definition of what the traffic for a service should look like that can be referenced and validated as part of an admission controller.

Using matches allows for different types of protocols, imagine using this for gRPC for example.

Makes it explicit what the split matches.

Looking down the road, this approach allows for doing things like only redirecting idempotent requests (selecting all the GET routes in a HTTPRouteGroup) without duplicating definitions everywhere.

Open Questions

How do users reason about two traffic splits that match the same apex service? Is this a valid use case? Should the admission controller manage this behavior?

I've not tried to add headers into HTTPRouteGroup. It'd be possible to either add them there or create a separate resource (neither way feels great right now).

I don’t see how your example covers the use case I’ve described. I see a single backend list and that can’t accommodate the A/B test.

In this instance, all traffic that matches /metrics will go to website-canary. All other traffic will go to website-primary. Ignoring the headers piece, which I definitely need to spend more time thinking about, it seems like it matches your use case? What am I missing?

There is no primary 100% in the definition. How you decide where the traffic goes that doesn’t match the conditions?

Whatever was happening beforehand. I'm trying to do the additive approach, eg. this TrafficSplit will only be evaluated if it matches the conditions - otherwise, everything behaves the way it did before the TrafficSplit was created.
You could also do:
kind: HTTPRouteGroup
metadata:
  name: the-routes
matches:
- name: metrics
  pathRegex: "/metrics"
---
kind: TrafficSplit
metadata:
  name: website
spec:
  service: website
  matches:
  - kind: HTTPRouteGroup
    name: the-routes
  backends:
  - service: website-primary
    weight: 0
  - service: website-canary
    weight: 100
---
kind: TrafficSplit
metadata:
  name: website
spec:
  service: website
  backends:
  - service: website-primary
    weight: 100
  - service: website-canary
    weight: 0

This raises a couple other questions though (which are also relevant for your original proposal) - how do we highlight hierarchy? Is it just done by specificity?
fwiw, given your confusion, this may not be the best suggestion =)

I thought that the apex replaces the Kubernetes service, but even if the TrafficSplit is additive I think merging can’t be avoided if we want to allow per route splitting. For example, if I want to route /login 10% to canary and logout 20% to canary I’ll have to create two splits with the same apex. I think that the only way to avoid merging is to allow pairs of conditions/backends in the a single TrafficSplit.

Yeah, my point is that we're gonna have to tackle merging no matter what.

The header match conditions have been merged into the spec, next is the TrafficSplit API spec update 🎉


CupertinoNavBar autosets an AnnotatedRegion and does not allow overriding SystemUiOverlayStyle

In CupertinoNavBar, there is a function _wrapwithBackground which will compute the luminance of the background on the navigation bar and wrap it with AnnotatedRegion<SystemUiOverlayStyle>. There is no way to override this, and in my application, I am already setting an AnnotatedRegion<SystemUiOverlayStyle> of a different color.
What ends up happening is that the screen enters with proper color (in my case white) and then ends with black once animation completes without any way to override or change this.
Flutter doctor:
[✓] Flutter (Channel stable, v1.0.0, on Mac OS X 10.14.2 18C54, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
[!] iOS toolchain - develop for iOS devices (Xcode 10.1)
    ✗ libimobiledevice and ideviceinstaller are not installed. To install with Brew, run:
        brew update
        brew install --HEAD usbmuxd
        brew link usbmuxd
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
[✓] Android Studio
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] Android Studio
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] IntelliJ IDEA Ultimate Edition (version 2018.3.2)
[✓] Connected device (1 available)

here is what is happening:

Can you please add a minimal runnable reproduction
as a single file so that we can just copy your code into lib/main.dart of a new project and run to reproduce.

Indeed, we need to add a public API to let people disable this.

the material AppBar has the same issue. Straw fix: add bool autoTheme to each widget, defaulting to true. If false, do not insert the annotation region widget into the tree.

Hello, are there any progress on this issue?
Felt into this problem too, but this one seems easy to implement (provide flag for CupertinoAppBar to control this behaviour?).
Or maybe someone will suggest how to overwrite this?

Hi @agrosner
Are you still experiencing this issue latest stable?
If so,  can you please provide your flutter doctor -v and flutter run --verbose? Also, to better address the issue, would be helpful
if you could post a minimal code sample to reproduce the problem
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so it's always better to open new issues and reference related issues.


Adding 404.js to catch 404s on website

404s on the website currently redirect to code.facebook.com because we have no root 404.html - this adds one that will be generated by the website script, that redirects all 404s to the root docs page.

Looks good to me: http://stackoverflow.com/questions/5411538/redirect-from-an-html-page


Android demo autoplay="false" doesn't display anything

Hi,
Thanks for great plugin. I just tried demo app and noticed that if autoplay="false" video and controls are not displayed. If I click on videoplayer area controls appears, then i click "play" and video appears and starts playing normally. It happens only on Android as ios works without any issue. Is this normal behaviour or there is any workaround? Any help would be appreciated. Thanks

That sounds exactly like Android video player works. Just like YouTube and
other video apps so think you're good to go :)
On Thu, Apr 27, 2017, 8:33 AM bachras<EMAIL_ADDRESS>wrote:

Hi,
Thanks for great plugin. I just tried demo app and noticed that if
autoplay="false" video and controls are not displayed. If I click on
videoplayer area controls appears, then i click "play" and video appears
and starts playing normally. It happens only on Android as ios works
without any issue. Is this normal behaviour or there is any workaround? Any
help would be appreciated. Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/bradmartin/nativescript-videoplayer/issues/67, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFulhAriQw51VLQk56Wvz6nUEgep5-5Cks5r0JkTgaJpZM4NKOJE
.

@bradmartin thanks for prompt reply, but youtube videos has a poster (preview image) which engages users. Is any way to do something like that here, as of now user sees only black screen. How they should now that video is there? Thnaks

One way is to use a Gridlayout and put an image on the same row/col as the
video player. Add a tap event to the image that removes it on tap and
programmatically start the video.
If you get stuck on it let me know. As for adding a preview from the video
my guess is YouTube uses an enhanced version of the media player, likely
ExoPlayer. Which @Nathanaela just released as a fork of this plugin. Search
for Nativescript-ExoPlayer and see if it loads up a still image of the
video. If so my guess is that's what YouTube uses since it's a Google
extension lib.
On Thu, Apr 27, 2017, 8:48 AM bachras<EMAIL_ADDRESS>wrote:

@bradmartin https://github.com/bradmartin thanks for prompt reply, but
youtube videos has a poster (preview image) which engages users. Is any way
to do something like that here, as of now user sees only black screen. How
they should now that video is there? Thnaks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/bradmartin/nativescript-videoplayer/issues/67#issuecomment-297718246,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFulhOYuKKhfiYlTMFJL3QGHGKNh3hIjks5r0JyQgaJpZM4NKOJE
.

I have tried Nativescript-ExoPlayer, but I couldn't see any difference from Nativescript-videoplayer. Thank you for suggestion with the image, I will try to implement that. I have one question regarding controls, should I create new issue? Thanks

That they aren't visible until tapping? Yea - I forget the specifics of the controls behavior but it's possible we can add a property that enables them to show initially. So let's track it with a new issue.
I played around with the YouTube app on android just now and from the behavior of it I think they're using images on the videoplayer control to hint the video. Because the image (on the videos I played) is not the first frame in the actual video. So it appears they use an image like a place holder which is what I suggested earlier. So keep me posted on how that works out for you 👍

@bachras - I'm 99% sure the exoplayer shows the first frame with autoplay=off.

@bradmartin and @NathanaelA  you are both right, it does display first frame, I just got confused as the first frame of sample video is the black screen :) My mistake. I just noticed another problem with Android, it is not displaying most of my videos. @bradmartin mentioned in other issues that Android is very picky with videos. Any chance you know what could be wrong with my videos as I convert all of them to mp4 without changing anything. Thanks

Hi @bachras I'd recommend giving exoplayer a go if its not playing videos.

I have tried on both:
Video player shows:
W/System.err(12430): 	at com.tns.Runtime.callJSMethodNative(Native Method) W/System.err(12430): 	at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1197) W/System.err(12430): 	at com.tns.Runtime.callJSMethodImpl(Runtime.java:1061) W/System.err(12430): 	at com.tns.Runtime.callJSMethod(Runtime.java:1047) W/System.err(12430): 	at com.tns.Runtime.callJSMethod(Runtime.java:1028) W/System.err(12430): 	at com.tns.Runtime.callJSMethod(Runtime.java:1018)
exoplayer shows:
JS: PlayerError com.google.android.exoplayer2.ExoPlaybackException
I tried to find out what is wrong with some videos and narrowed down that rotation from portrait to landscape mode using ffmpeg library ruins the video. Does anybody have any ideas ? Thanks

exoplayer shows PlayerError com.google.android.exoplayer2.ExoPlaybackException
any help on this?

@klever34 - Exoplayer is not part of this repo; I believe you want to post this issue to http://github.com/nathanaela/nativescript-exoplayer  and you need to post more information about what you are doing to cause it to fail.


The WebView2 instructions on this page do not work

Environment:
.NET Framework 4.7.2
Visual Studio
Microsoft Visual Studio Professional 2019
Version 16.8.4
VisualStudio.16.Release/16.8.4+30907.101
Microsoft .NET Framework
Version 4.8.04084
Installed Version: Professional
Visual C++ 2019   00435-60000-00000-AA961
Microsoft Visual C++ 2019
ADL Tools Service Provider   1.0
This package contains services used by Data Lake tools
ASA Service Provider   1.0
ASP.NET and Web Tools 2019   16.8.557.25636
ASP.NET and Web Tools 2019
ASP.NET Core Razor Language Services   <IP_ADDRESS>2803+84e121f1403378489b842e1797df2f3f5a49ac3c
Provides languages services for ASP.NET Core Razor.
ASP.NET Web Frameworks and Tools 2019   16.8.557.25636
For additional information, visit https://www.asp.net/
Azure App Service Tools v3.0.0   16.8.557.25636
Azure App Service Tools v3.0.0
Azure Data Lake Node   1.0
This package contains the Data Lake integration nodes for Server Explorer.
Azure Data Lake Tools for Visual Studio   2.6.1000.0
Microsoft Azure Data Lake Tools for Visual Studio
Azure Functions and Web Jobs Tools   16.8.557.25636
Azure Functions and Web Jobs Tools
Azure Stream Analytics Tools for Visual Studio   2.6.1000.0
Microsoft Azure Stream Analytics Tools for Visual Studio
C# Tools   3.8.0-5.20604.10+9ed4b774d20940880de8df1ca8b07508aa01c8cd
C# components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
Fabric.DiagnosticEvents   1.0
Fabric Diagnostic Events
IntelliCode Extension   1.0
IntelliCode Visual Studio Extension Detailed Info
Microsoft Azure HDInsight Azure Node   2.6.1000.0
HDInsight Node under Azure Node
Microsoft Azure Hive Query Language Service   2.6.1000.0
Language service for Hive query
Microsoft Azure Service Fabric Tools for Visual Studio   16.0
Microsoft Azure Service Fabric Tools for Visual Studio
Microsoft Azure Stream Analytics Language Service   2.6.1000.0
Language service for Azure Stream Analytics
Microsoft Azure Stream Analytics Node   1.0
Azure Stream Analytics Node under Azure Node
Microsoft Azure Tools   2.9
Microsoft Azure Tools for Microsoft Visual Studio 2019 - v2.9.30924.1
Microsoft Continuous Delivery Tools for Visual Studio   0.4
Simplifying the configuration of Azure DevOps pipelines from within the Visual Studio IDE.
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
Microsoft Library Manager   2.1.113+g422d40002e.RR
Install client-side libraries easily to any web project
Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers
Microsoft Visual C++ Wizards   1.0
Microsoft Visual C++ Wizards
Microsoft Visual Studio Tools for Containers   1.1
Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container.
Microsoft Visual Studio VC Package   1.0
Microsoft Visual Studio VC Package
Node.js Tools   1.5.20902.1 Commit Hash:b474efcb6f92db52a8f8e2e6a8cb9648476885cc
Adds support for developing and debugging Node.js apps in Visual Studio
NuGet Package Manager   5.8.1
NuGet Package Manager in Visual Studio. For more information about NuGet, visit https://docs.nuget.org/
ProjectServicesPackage Extension   1.0
ProjectServicesPackage Visual Studio Extension Detailed Info
SQL Server Data Tools   16.0.62012.31170
Microsoft SQL Server Data Tools
ToolWindowHostedEditor   1.0
Hosting json editor into a tool window
TypeScript Tools   16.0.21016.2001
TypeScript Tools for Microsoft Visual Studio
Visual Basic Tools   3.8.0-5.20604.10+9ed4b774d20940880de8df1ca8b07508aa01c8cd
Visual Basic components used in the IDE. Depending on your project type and settings, a different version of the compiler may be used.
Visual F# Tools   16.8.0-beta.20507.4+da6be68280c89131cdba2045525b80890401defd
Microsoft Visual F# Tools
Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio
Visual Studio Container Tools Extensions   1.0
View, manage, and diagnose containers within Visual Studio.
Visual Studio Tools for Containers   1.0
Visual Studio Tools for Containers
Visual Studio Tools for Kubernetes   1.0
Visual Studio Tools for Kubernetes
XAML
<Window x:Class="WpfApp3.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
        xmlns:local="clr-namespace:WpfApp3"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <DockPanel>
        <wv2:WebView2 Name="webView"
                      Source="https://www.bing.com"

    />
    </DockPanel>
</Window>

Installed NuGet Package

To recreate just follow the instructions on this page to add a webview2 to a WPF Application.

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

ID: ba9dc9d2-795c-9612-3585-408b4621c080
Version Independent ID: f73fc16d-d842-4507-9fdb-b42856720355
Content: Getting started with WebView2 for WPF apps - Microsoft Edge Development
Content Source: microsoft-edge/webview2/gettingstarted/wpf.md
Product: microsoft-edge
Technology: webview
GitHub Login: @MSEdgeTeam
Microsoft Alias: msedgedevrel

Closing this issue because an issue was opened on the engineering feedback repo. Thanks.

@Javaman2 Can you verify that you have the prerequisites?
https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/wpf#prerequisites
Specifically, you need the stable WebView2 Runtime or a Microsoft Edge Dev, Canary, or Beta channel installed on your machine.

I am experiencing the same issue as the original poster. Followed the example posted online, project builds fine no errors or warnings, however a blank view is displayed at runtime.
File New -> WPF App and followed the example at https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/wpf

@Predatorie Can you verify that you have the prerequisites?
https://docs.microsoft.com/en-us/microsoft-edge/webview2/gettingstarted/wpf#prerequisites
Specifically, you need the stable WebView2 Runtime or a Microsoft Edge Dev, Canary, or Beta channel installed on your machine (not Microsoft Edge Stable). If you do have it installed, can you let me know what version you have?

@champnic
I must have read and re-read the prerequisites several times and I assumed adding the nuget was sufficient. Upon checking my machines registry key for HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5} it appears the runtime is not installed.
I have a ticket into our IT department to allow me to download and install the runtime and then I can verify,
Thank you your time,

@champnic
I was able to download and install the runtime. I created a simple WPF application to test (following the example) and that works as expected, however, my use case is a little different and after some additional testing I may have discovered a potential issue.
For context, we ship a desktop application that exposes our  .NET API allowing customers to create add-ins using C# or VB.NET. Our desktop application is typically installed under Program Files and an Add-Ins folder is created under the users My Documents folder.
To run an add-in the customer has created the workflow is, run the desktop application and click the Run Add-In button to select the add-in to execute located in the add-ins folder under My Documents.
I created a simple WPF add-in with a view following along with the example mentioned earlier in this thread (the same as I used in my WPF application test) but I was presented with the following message:

I even went as far as manually creating the folder 'EBWebView' and set read only off  to see if I could get beyond the error message and have the webview render the page but nothing was displayed in the view and no further errors appeared.
It appears, per the message, that the webview is trying to write to program files and fails because our customers do not typically run with elevated permissions, they should not be creating anything under program files. I would have expected Edge to write to the location of the add-in (that contains the webview) and not the 'host' application?
Let me know if you need any further information. I do realize this might be a bit of an edge case (no pun intended)

@Predatorie It's fine to continue the discussion here :) If we discover a bug we need to go fix or a feature request I can move that comment into a new Feedback repo issue.
For the User Data Folder, you can specify a better location for it (like somewhere in your add-ins directory) when creating the CoreWebView2Environment. This would use the explicit initialization path (create environment, then use WebView2.EnsureCoreWebView2Async(env)), instead of just setting the WebView2.Source property.
https://docs.microsoft.com/en-us/dotnet/api/microsoft.web.webview2.core.corewebview2environment.createasync?view=webview2-dotnet-1.0.774.44#Microsoft_Web_WebView2_Core_CoreWebView2Environment_CreateAsync_System_String_System_String_Microsoft_Web_WebView2_Core_CoreWebView2EnvironmentOptions_
This doc may have other useful info around the User Data Folder:
https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/userdatafolder
Let me know if that works for you!

@champnic ah, I see, I ran with defaults just setting the source. I'll revisit this tomorrow and get back to you.
Thanks again.

@champnic
I have had additional time to do some testing. Unfortunately I am still unable to successfully display the WebView2 control in my WPF assembly that is loaded by our desktop application.
I am setting the user data folder in my class library as shown below but Edge still tries to create the folder where the exe (host) is running and not where the assembly is located.
My test code:

Same error:

From the docs:

I assume that Edge is looking for an exe only and not a simple class library that is my test add-in? I am not sure where to go from here.
Thanks.

It should be trying to use the userDataFolder you passed in C:\Users\.... Is the error message for the folder you manually created? Can you try deleting that folder?

@champnic
I wrapped a try catch around the InitializeAsync method by way of the Task extension, the error is not very helpful.

No folder is created under the exe folder as expected because I am setting the userDataFolder, however, no folder is created where I am setting the userFolderData path. The same path where my add-in is located that contains the WebView2..

We are actively working on improving the error message and making the UDF experience better here.
Access Denied is nearly always related to creating the User Data Folder. Is the "Mastercam\Add-Ins" folder protected in some way? Are you logged in to the same user that created and owns that folder? Could you try something like creating "C:\temp" and using that for the UDF?

@champnic
I have tried running as the same user and as Admin with same results. I have also tried with a temp folder with the same results.

@Predatorie  Can you please install process monitor https://docs.microsoft.com/en-us/sysinternals/downloads/procmon and configure it to filter for process name = "your process name" and process name = "msedgewebview2.exe".  What we want to see is what exactly the directory is that is getting the access denied.

@DavidShoe I have installed and configured Process Monitor per your request, If I add my add-in (WebView2Tests.dll) to the filter with the msedgewebview2.exe nothing is displayed in the results. Once I add our application, mastercam.exe that will load and execute my add-in I get a lot of information but I am not sure what it is I am looking for.


Remove github auth flows from migration

Summary
By now we've already deployed this and this temporary migration is ready
to be removed.
Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[x] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 47.679% (+0.01%) from 47.666%
when pulling 8594ec81aa0c88025add785becdef44045850ca1 on rm-gh-auth-migrate
into 78a89d417593050c81b52608d5bd7ed842a03e22 on main.


login fail due to CAPTCHA?

When going to Commons login page I'm ask to fill a CAPTCHA. Login is successful with credentials plus captcha.
Using pattypan with same login fail.
I reckon that's due to the CAPTCHA. Could you confirm?

After a few minute I was not presented with a CAPTCHA anymore and login worked.
So CAPTCHA do block login.


Added Safety Manual

The Safety manual, modified with all the changes requested is added.

@anushka1309paul Any updates?

@anushka1309paul Any updates?


fix: 3600 - user may be null for robotoff random questions

Impacted files:

pubspec.lock: wtf
pubspec.yaml: used new version of off-dart, with optional user for robotoff random questions
questions_query.dart: the user may be null

What

Now the user can be null for RobotOff random questions, so the user can be either logged in or not and the app won't crash here.

Fixes bug(s)

Fixes: #3600

Thank you @M123-dev!


Standalone OMERO.web image using whitenoise

This is the current released version of whitenoise, it will have to be updated with future releases.
In addition the FROM line will need to be updated when this repo is tagged.

Discussion with @manics, @kennethgillen, @rgozim, and @will-moore:

This issue likely has relevance to https://trello.com/c/VdQ4HAl6/65-using-nginx-in-development in that if we can prove that the performance of whitenoise is good enough (cc: @pwalczysko) then perhaps nginx need not be in the loop for docker/development, and is only a performance enhancement a la redis for real production.
Plan is to merge this as is and get a new build: omero-web-standalone for testing. That image may or may not become canon but it will allow us to begin testing serving statics without nginx.

Based on the descriptions of:

https://hub.docker.com/r/openmicroscopy/omero-web/ and
https://hub.docker.com/r/openmicroscopy/omero-web-standalone

I think we'll need to split the READMEs and put one in the subdir.

This is a working docker-compose.yml:
version: '3'

services:
  db:
    image: postgres
    environment:
      - POSTGRES_PASSWORD=postgres
  srv:
    image: openmicroscopy/omero-server:5.4
    environment:
      - CONFIG_omero_db_user=postgres
      - CONFIG_omero_db_name=postgres
      - CONFIG_omero_db_pass=postgres
      - ROOTPASS=omero
  web:
    image: openmicroscopy/omero-web-standalone:master
    links:
      - srv:srv
    environment:
      - OMEROHOST=srv
    ports:
      - 4080:4080

@joshmoore :

Why is it "bad" to test with nginx ?
(maybe a variation of ad 1.) I thought that we want to test something as close to production as possible. The "closeness" meant for me that we test nginx (I might be wrong there.) Here, some new workflow is being added with unknown performance and behaviour. This seems to not help testing, instead, adding complexity and performance testing tasks https://github.com/openmicroscopy/omero-web-docker/pull/12#issuecomment-339604053. Where are the advantages I am missing here please ?

Advantages:

easier to deploy (single container/application)
Avoids multiple Nginx layers in horizontally scaled deployments like the IDR (currently there are multiple OMERO.web servers, each with their own Nginx, with another front-end Nginx acting as a gateway)

Also in future this means web-apps can be more easily decoupled, e.g you could have your main OMERO.web in one place, then a more resource intensive web-app running separately so that it wouldn't impact the performance of the main client. Or you could have a second OMERO.web that's configured to allow large downloads.
All this could be run with a single Nginx but as you can imagine it means configuring that single Nginx server with the configuration (proxying, and copying the static files) from multiple separate apps.

Seems this discussion is relevant to @dpwrussell since he was asking about similar issues a while back: http://lists.openmicroscopy.org.uk/pipermail/ome-devel/2017-August/004034.html

And https://github.com/openmicroscopy/omero-web-docker/issues/2

@pwalczysko: personally I find the nginx setup for the development workflow not overly burdensome, so we may well want to maintain that across the team so that we are more realistically testing the production setup. That being said, it is a separate layer with different responsibilities, so not requiring it may make sense.
The problem that we're really addressing here is that the OMERO.web layer is somewhat incomplete. It needs nginx. With this change, it no longer needs nginx. Previously, if you wanted to have an nginx with OMERO.web and, for example, one web plugin: you needed to install the plugin on both the nginx machine and the OMERO.web machine. With whitenoise, the plugin is now only a concern for OMERO.web (as it should be), while nginx can happily be ignorant of the plugin, which is what leads to the simplifications that @manics is talking about.
So, the question is: how well does whitenoise do that job? And based on that answer, we'll look into updating the docs, the development workflow, dockers, ansible, etc.


Cannot use babel-plugin-transform-svg-component, throws error

🐛 Bug Report
When using @svgr/babel-plugin-transform-svg-component, or in my case the @svgr/babel-preset an error is thrown
TypeError: <path to file containing svg>: Cannot read property 'componentName' of undefined

I did some tracing and found this. It seems that the plugin makes a reference to opts.state.componentName without checking for it first, and doesn't provide a default value.
I'd like to be able to use svgr with just babel. Am I doing something wrong, or is there an actual bug here?
To Reproduce
Steps to reproduce the behavior:
Create a project with the following babel config, and import/require an svg file:
.babelrc.js
module.exports = {
  presets: [
    '@svgr/babel-preset'
  ]
}

Expected behavior
SVGR does it's magic and inlines the SVG.
Actual behavior
It throws an exception because an option has not been provided, that to my knowledge is impossible to pass.

I faced the same problem.

Babel plugins part of these repository are not designed to be used outside SVGR, that's why they are not documented.  Please don't try to use it outside SVGR.

Babel plugins part of these repository are not designed to be used outside SVGR, that's why they are not documented.  Please don't try to use it outside SVGR.

Babel plugins part of these repository are not designed to be used outside SVGR, that's why they are not documented. Please don't try to use it outside SVGR.

I'm not sure I understand what you mean. @robert-hurst-cmd is referring to:
https://github.com/gregberge/svgr/tree/main/packages/babel-preset
which is found in this repo and is further advertised on:
https://www.npmjs.com/package/@svgr/babel-preset
I don't think he was intending to use it outside of SVGR. If I'm wrong about that, then I also made the honest same mistake of thinking I could convert my SVGs to react components with @svgr/babel-preset during SSR. Maybe the README should change to state that you should not use this package for that purpose.

Yeah, SVGR is not available as a babel-plugin yet, but I will work on it.

babel-preset-svgr ;)

Follow up in #622


Updating local tool

Hi,
I am having trouble in using the updated tool in local development.
I have following code structure.
.
├── .config
├── My-local-tool
├── My-sample-app-that-uses-tool
├── My-another-app
As part of tool development, I'll frequently change code and test it using My-sample-app-that-uses-tool. Note process will be iterative.
I am following process as below for every code change in the tool.

Run dotnet pack in My-local-tool folder.
Run dotnet tool uninstall <my-tool-name> in the root folder.
Run dotnet new tool-manifest in the root folder.
Run dotnet tool install --add-source ./My-local-tool/nupkg <my-tool-name> in the root folder.
Run dotnet <my-tool-name> in the folder My-sample-app-that-uses-tool

However, changes in my tool - like hello world to hi world! don't appear when used from My-sample-app-that-uses-tool.
What am I missing?

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

ID: c9eeaac3-a5c0-5739-1a3e-8b47c8b916f3
Version Independent ID: 4fe6c87c-9fb5-33fb-7835-2e0b511dc5b3
Content: Tutorial: Install and use .NET local tools - .NET CLI
Content Source: docs/core/tools/local-tools-how-to-use.md
Product: dotnet-fundamentals
Technology: dotnet-cli
GitHub Login: @tdykstra
Microsoft Alias: tdykstra

@Mahesh-MSFT Hi there. Can you investigate the My-sample-app-that-uses-tool and see if the tool is:

Cached there (is there a .tool folder or something?)
Is the app referencing some sort of hash of the tool that is regenerated?
What is in the %userprofile%\.dotnet\tools folder?

thanks @adegeo . i managed to git rid of the problem by running dotnet nuget locals all --clear.