Redesign HTTP::Client to implement missing features

HTTP::Client is missing some quite essential feature, and while there are some individual issues about that, it is better to discuss necessary design changes in a central place.
Some missing features:

Proxy support #2963
Connecting to Unix socket #2735
Transparently re-use connections to different servers
HTTP/2 #2125
Mock connections (for testing)
Following redirects #2721
Session handling #3081
Integration of custom middlewares (for example authentication)
Timeout
Stream debugging #6335

The first group is about adding more flexibility to use different types of connections or enhance their usage. This needs to separate the implementation for establishing a connection from the HTTP::Client.
#6001 is an incomplete experiment for that.
The concept of using a configurable transport is employed by many other implementations of HTTP clients:

Go: RoundTripper (interface request -> response) and Transport (implementation, including proxy, reusing connections, HTTP/2 and a lot of basic HTTP workflow like redirects).
Java: com.google.api.client.http.HttpTransport: builds a request (method, url -> request ) and request.execute() gets the response.
Ruby: Faraday implements a middleware interface similar to HTTP::Handler.
Ruby: Hurley has a connection property which is a lambda request -> response

It makes great sense to have a HTTP::Client as a high-level interface delegate the heavy-lifting to a replaceable low-level API. User should be able to configure HTTP::Client to use a specific transport.
The default transport should allow to connect to any TCP server and maintain a connection pool to re-use idle sockets, even beyond the life-span of a single client instance. Other transports could connect to a proxy, a Unix socket or just mock a connection for testing purposes.
It is a question how the interface between HTTP::Client and transport should be designed. In the experimental PR #6001 the transport returns an IO for a specific request, but the client still writes the request and reads the response.
I'm more tending towards making the interface as simple as Request -> Response. This would obviously move most of the implementation of HTTP::Client to the transport, but I don't think that's a bad thing to move the internal heavy-lifting to the lower level. The interface is also more versatile because it allows the transport to manipulate the request before writing/response after reading. This is for example necessary for proxy requests, because they need the full URL as resource. An additional benefit is that requests and responses don't necessarily need to be sent through an IO. A transport can for example implement an in-memory client cache or directly create responses for non-HTTP protocols such as file.
Such a simple interface would also make it easy to chain transports for more flexibility and might be good place to inject middleware.
This brings us to the second group of missing, more high-level features. Some HTTP clients such as Faraday allow to inject custom middleware to the request-response-chain which can implement for example authentication or following redirects etc.
I am convinced that essential features such as following redirects, basic auth etc. should not require a middleware handler, but be implemented directly either in the low- or high-level API. They need to be optional and configurable, but I wouldn't like to see a HTTP::Client setup using a herd of middleware handlers just to provide basic HTTP. That should only be used for stuff that's on-top (for example OAuth) and can't reasonably be included in the default client implementation.
Related: #1330 (socket factory as transport)

Yes, that proxy support would be amazing!

@straight-shoota Just a suggestion; can you use checkboxes instead of bullet points in your OP? it will make it easier to follow the progress in individual points, instead of checking each item individually.
BTW, really love this list of proposed improvements. proxy and http/2 support are the biggest ones IMO. For basic auth, i am more used to the idea of using a middleware, ala Node but i will be fine with handling it in a separate layer.

@rishavs We're currently talking about rough design. The implementation of individual features is a far way to go.

But I'd like to see this discussion moving forward.
In my opinion, the exposed API of HTTP::Client needs to be dead simple but build on a complex backend. It should be as easy as running curl or accessing a website in a browser. In almost all cases, the application doesn't care about how a HTTP response is acquired. Does it create a new TCP connection or re-use an existing one? Is it a simple HTTP/1.1 protocol or multiplexing through HTTP/2 -- at some point even HTTP/3 HTTP::Client should simply use the best available method supported by the server.
This is obviously a very sophisticated goal and will take a long time to reach, most likely till after 1.0.
Maybe this complex implementation doesn't even need to be the default - or even included in the stdlib at all. But the stdlib HTTP::Client API should be designed in such a way that the transport adapter is easily exchangeable. Its interface should be simple enough (Request -> Response) and don't assume anything about connection details. This makes it easy to improve the implementation step by step. The start would be more or less a simple, one-shot connection implementation for TCP/IP. It might even keep the connection alive and reuse it, if the next request is for the same host. Otherwise, a new connection should be established. Proxy and Unix sockets are further feature improvements and relatively easy. A big step would later be a reusable connection pool and HTTP/2. Eventually even HTTP/3.

Has there been any movement recently on UNIX socket support?

Not yet, unfortunately. But I'd like to move on with this. Possibly for 0.29.0.

But I'd like to see this discussion moving forward.

+1 from me (a happy crystal user who started missing persistent HTTP connections today 😞).

It should be as easy as running curl

Perhaps it could make sense to rebuild HTTP::Client on top of libcurl?
I don't know how core team would feel about introducing an external dependency
for something as central as HTTP, but in my experience I end up reaching for the
curl-binding in most languages most of the time anyway (e.g. typhoeus or PycURL),
because the stdlib client usually lacks in features and/or performance.

@m-o-e I think this has been brought up in the discussion before, and it probably won't work to integrate libcurl into Crystal's event loop.

@straight-shoota Ah okay, understood. Sorry for the duplicate!

That would be great to have outgoing IP bind from HTTP::Client which tcpsocket have already. Its really useful when work with API's req/hour limits based on IP.

Are any of these, part of the 1.0 plan?

@rishavs no

In almost all cases, the application doesn't care about how a HTTP response is acquired. Does it create a new TCP connection or re-use an existing one?

For this specific point (reuse connection) I think the application should be aware of what is happening. Sockets is a limited resource and app should control how they use it. Coming from Python (where the most used HTTP lib is requests), I think a concept of session should be good:
session = HTTP::Session.new
session.get("https://crystal-lang.org")

Inside a session, calls reuse connections (if possible), but simple calls with HTTP::Client should not.

Most apps really don't need to care about that. It's good to have a low-level API for managing connections manually. But for typical use cases you just want to send HTTP requests from different parts of an application without having to drag a session object around. HTTP connection management can easily be abstracted away.

But if we do that I am worried about an app leaking sockets without control over them…
I went look at how other do it: Ruby doesn't do that by default, Python neither does it, Golang does it by default (you must instantiate a client to change it).

Leaking sockets is a real problem.  See https://github.com/taylorfinnell/awscr-s3/issues/77.  In this case the library could use a pool because all requests go to the same endpoint.
The same isn't true for the 100's of one off cases where a developer has a list of urls and tries:
urls.map { |url| HTTP::Client... }...

Often it will work in testing for a small list of urls then fail sporadically in production.
I think connection reuse should be opt in rather than opt out.  Whether through a session or other API I don't know, but with real use I'm hitting socket issues from 3rd party libraries with no way to control it.

If you run one-off requests with HTTP::Client's class methods, the connection should be properly closed automatically. That's expected behaviour. If you happen to observe socket leakage, it's a bug.


redirect urde to ../metaforce.md

the urde link was broken because it was attempting to redirect to urde.md, which was renamed. I'd also rename the link to Metaforce

Thanks for PR, but such a change is not needed. These files have been auto-created from the content. As for the static website output, I'll fix it in the future (it will still point at urde, not Metaforce, but I'm aware of it).


SAK-48219 Dark mode Highlight color could use more contrast

https://sakaiproject.atlassian.net/browse/SAK-48219

here is the proposed change


Cherry-pick enableBabelRCLookup option into 0.10

This just cherry-picks the commit that adds enableBabelRCLookup (0f3d7117d434f5b863ad8da08990d7642c912787) into the 0.10 branch. If this looks good and OK for a patch release could you merge and release 0.10.1?

0.11.0 was released few hours ago, so it'd have to make it 0.11.1 (I think we might have forgot to push the updated package.json, I'll check that as well.

I believe npm allows for older versions to be published (publishing 0.10.1 shouldn't disrupt 0.11.0) so 0.11.1 shouldn't be necessary?

Yup, so we'll release from your branch, then merge it later. Will do that tomorrow :)

Released as 0.10.1 on 2017-07-26T18:49:13.997Z.


Investigate: replace google analytics for website?

I don't really like having GA on all our pages, but I do really want to have a rough idea of traffic to the website. Is there a more privacy-forward solution with a free tier, if only for open-source projects?

I think the Sentry is actually a good solution, since we don't need to know marketing things, like country of origin, but instead diagnostic information, like errors and performance.


Retrolite directive: show the tree view if there is no Notebook passed as argument

Currently we require a Notebook passed as argument:
.. retrolite:: my_notebook.ipynb

We should allow the following notation that would show the tree view:
.. retrolite::

@labdala not sure this would help but maybe you can try with the following if using a .md file:
```{jupyterlite}
  :width: 100%
  :height: 600px

Mind opening a new issue otherwise so it's easier to track? Thanks!


Hide the global banner

What
Hide the global banner
Why
The fact we've left the EU is known, and transition information is well signposted around GOV.UK.

Should we remove the code for the eu exit banner?

@DilwoarH We don't want to remove the code as we may need the banner in future. This is essentially a component like the ones we have in govuk_publishing_components, but it lives in Static because we don't have a mechanism for deploying banners if they live in the gem yet.


x-ms-operation-wrapper: Generating Wrapper methods for similar operations

It would be nice if we can generate a wrapper method for similar operations, that give a subset of the result or a filtered result based on the parameters provided to the method.
Let us consider ListBySubscription() and ListByResourceGroup(string resourcegroup) over
StorageAccounts. They both return StorageAccounts (same type) but different items due to scope.
It makes sense to group/wrap them together in a wrapper method. This gives us a benefit to autogenerate CLI/powershell commands from the wrapper method.
What would be the best way to describe this wrapping/grouping in an extension using swagger?
One approach that I can think of is: To annotate/tag every operation that needs to be wrapped with an extension named:
"x-ms-operation-wrapper": {
     "WrappedOperationId": "OperationGroup_WrapperMethod",
      "description" : "Description for the wrapper method"
}

. . .
"paths": {
    "/subscriptions/{subscriptionId}/providers/Microsoft.Storage/storageAccounts": {
      "get": {
        "tags": [
          "StorageAccounts"
        ],
        "operationId": "StorageAccounts_ListBySubscription",
        "description": "Lists all the storage accounts available under the subscription. Note that storage keys are not returned; use the ListKeys operation for this.",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/StorageAccountListResult"
            }
          }
        },
>>> "x-ms-operation-wrapper": {
          "WrappedOperationId": "StorageAccounts_List"
         "description" : "Lists Storage accounts in a resource group if provided or in a subscription."
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts": {
      "get": {
        "tags": [
          "StorageAccounts"
        ],
        "operationId": "StorageAccounts_ListByResourceGroup",
        "description": "Lists all the storage accounts available under the given resource group. Note that storage keys are not returned; use the ListKeys operation for this.",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "required": true,
            "type": "string",
            "description": "The name of the resource group within the user's subscription."
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "schema": {
              "$ref": "#/definitions/StorageAccountListResult"
            }
          }
        },
>>> "x-ms-operation-wrapper": {
          "WrappedOperationId": "StorageAccounts_List",
          "description" : "Lists Storage accounts in a resource group if provided or in a subscription."
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    }
. . .
}

Some rules will be enforced when this extension is applied. They are as follows:

The Wrapper method will have a union of all the methods as its parameters in the method signature.
It will route the call to the right method, based on matching parameter sets

A required parameter in all the inner methods will be a required parameter on the wrapper method.
If the parameter is required in one inner method and optional in another then that parameter will be optional parameter on the wrapper method.

The return type of the wrapper method will be the same as the return type of all the inner methods
All the inner methods should belong to the same operation group if they follow the Noun_Verb format. If the inner methods are operations on the client then it should be fine.
AutoRest will throw an exception during generation if:

the return type of all the underlying methods is not the same (I am not sure if inheritance should be considered).
All the inner methods do not belong to the same operation group

Let me know your thoughts on this.

https://github.com/Azure/azure-rest-api-specs/issues/389

closing this ..proposal not accepted


Temperature parameter value can be set between '0 and 2' or '0 and 1'

[Enter feedback here]
https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/advanced-prompt-engineering?pivots=programming-language-chat-completions#temperature-and-top_p-parameters
Here it is mentioned that "The temperature parameter can be set between 0 and 2." But I think temperature parameter can be set only between 0 and 1.

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

ID: cb9e5229-1e4d-fc14-8845-013ec692aad4
Version Independent ID: cc651542-802d-1104-af78-6f6764f3b859
Content: Prompt engineering techniques with Azure OpenAI - Azure OpenAI Service
Content Source: articles/ai-services/openai/concepts/advanced-prompt-engineering.md
Service: azure-ai-openai
GitHub Login: @mrbullwinkle
Microsoft Alias: mbullwin

@kushaldugar thanks for reaching out. In the Studio playground experiences we artificially cap the range to between 0 and 1. But between 0 and 2 is supported by the API itself when making a direct API call. Generally speaking setting temperature to 2 does not yield desirable results which is why we limit the experience in the playgrounds.

#assign:mrbullwinkle

#please-close


README: Document missing dependencies

Signed-off-by: Andrei Gherzan<EMAIL_ADDRESS>

test this please

test this please

test this please

test this please

test this please

test this please

test this please

test this please

test this please

test this please


Add ability to hide icons on tabs

I would love to hide these icons

As I as user never use them and they clutter the interface.

/duplicate of #46403


Disable slide (not autocycle) when theres only one image?

How can I stop (and restart) the swipe gestures of a SliderLayout? I've got dinamic scenarios where I use a SliderLayout with only one image and sometimes with multiple images, or multiple images could be added dinamically.
When theres only one image I put the visibility of the indicators to View.GONE but I can still swipping the image. Is there a way to stop the swipe?
Thanks a lot for this amazing library and your work.

I also think that this is a must have feature.
Keep up the great work!

I overlap an ImageView with the first image over the Slider and change visibility when I receive the rest of the images, but it's only a patch.

This, and the fact that simply removing and adding slides dynamically makes it freak out and slide around a bunch on initializing is why I must ditch the use of this plugin. Great otherwise, look forward to this request being fulfilled.

hello, modification done.
I apply another modification about removing slides recently #99 .
Wish to help you.

I'm waiting for this feature too.
For while I did a workaround:
I created a ghost view in my layout

<FrameLayout
    android:id="@+id/container_layout"
    android:background="@color/gray_hard_text"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <LinearLayout
                android:id="@+id/my_tickets_header"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@color/gray_hint">

            <com.daimajia.slider.library.SliderLayout
                android:id="@+id/adp_my_tickets_banner_slider"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </LinearLayout>

    <FrameLayout
        android:id="@+id/ghost_view_workaround"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="gone">

    </FrameLayout>

</FrameLayout>

In code, I check if my list has one element, if yes, I set the visibility to VISIBLE and set a listener to onclick
if (purchase.getOrder().getTickets().size() < 2) {
                viewHolder.findViewById(R.id.ghost_view_workaround).setVisibility(View.VISIBLE);
                viewHolder.findViewById(R.id.ghost_view_workaround).setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                    }
                });
            }

@daimajia It would be great if you could implement this feature. Thanks! Great work.

+1 please provide this feature!

Why this is not yet supported? That's a pity..

Is there any workaround for that?

I've found a workaround I guess, this makes it unable to swipe but not sure if it will be stable :)
if (imageCount < 2) {
          sliderShow.stopAutoCycle();
          sliderShow.setPagerTransformer(false, new BaseTransformer() {
              @Override
              protected void onTransform(View view, float v) {
              }
          });
         //TODO: disable indicator
}

I donnot want it cycle,just one-way

@dgngulcan Thanks! Its works!

+1 definitely a must have feature.

how to make it one way slider, it will stuck on last item and not cycling to the first item. thank you

@dgngulcan Thanks a lot for this.

Thanks @dgngulcan

I've found a workaround I guess, this makes it unable to swipe but not sure if it will be stable :)
if (imageCount < 2) {
            sliderShow.stopAutoCycle();
            sliderShow.setPagerTransformer(false, new BaseTransformer() {
                @Override
                protected void onTransform(View view, float v) {
                }
            });
           //TODO: disable indicator
}

@dgngulcan But it's affecting the other images when we using it with recycler views that is because the recycler view inflating the views in which the transformation has been done.

@dgngulcan Can you have any solution for that using in recycler view???
Eagerly waiting for reply.............


Cannot read property 'ru' of undefined when using next-compose-plugins

Describe the bug
Cannot read property 'ru' of undefined when using next-compose-plugins
Occurs in next-i18next version
"next-i18next": "^6.0.1",
"i18next": "^14.0.1",
"next-compose-plugins": "^2.2.0",
Steps to reproduce

use examples/simple project in this repo
yarn add next-compose-plugins
in next.config.js:

const withPlugins = require('next-compose-plugins');
const nextPWA = require('next-pwa');
const nextEnv = require('next-env');
const dotenvLoad = require('dotenv-load');
dotenvLoad();

const { nextI18NextRewrites } = require('next-i18next/rewrites');

const localeSubpaths = { en: 'en', ru: 'ru' };

const nextConfiguration = () => ({
  rewrites: async () => nextI18NextRewrites(localeSubpaths),
  publicRuntimeConfig: {
    localeSubpaths,
  },
});

module.exports = withPlugins(
  [
    nextEnv,
    [
      nextPWA,
      {
        pwa: {
          disable: process.env.NODE_ENV === 'development',
          register: true,
          scope: '/app',
          sw: 'service-worker.js',
          dest: 'public',
        },
      },
    ],
  ],
  nextConfiguration
);

Expected behaviour
Work without errors
Screenshots
TypeError: Cannot read property 'en' of undefined
    at subpathFromLng (/Users/user/Test/project/node_modules/next-i18next/dist/commonjs/utils/subpath-from-lng.js:13:38)
    at /Users/user/Test/project/node_modules/next-i18next/dist/commonjs/middlewares/next-i18next-middleware.js:61:57
    at /Users/user/Test/project/node_modules/next-i18next/dist/commonjs/hocs/app-with-translation.js:249:38
    at new Promise (<anonymous>)
    at _loop$ (/Users/user/Test/project/node_modules/next-i18next/dist/commonjs/hocs/app-with-translation.js:248:36)
    at tryCatch (/Users/user/Test/project/node_modules/regenerator-runtime/runtime.js:63:40)
    at Generator.invoke [as _invoke] (/Users/user/Test/project/node_modules/regenerator-runtime/runtime.js:293:22)
    at Generator.next (/Users/user/Test/project/node_modules/regenerator-runtime/runtime.js:118:21)
    at tryCatch (/Users/user/Test/project/node_modules/regenerator-runtime/runtime.js:63:40)
    at maybeInvokeDelegate (/Users/user/Test/project/node_modules/regenerator-runtime/runtime.js:356:18)

OS (please complete the following information)

Device: MBP 2017 13"
Browser: Chrome 84.0.4147.105

Additional context
The problem is when we using next-compose-plugins and nextConfiguration is a Function instead Object. The point to use nextConfiguration as a function is to get webpack instance and etc

Sorry, I don't understand this issue. next-i18next does not modify the webpack config, or do anything outside of normal user presets. Can you explain how/why you think next-i18next could be causing an issue? This is most likely user error.

@isaachinman yes, I understand that next-i18next does not modify the webpack config, but I need to modify it. To modify webpack config in next.config.js I need to get webpack instance. So I need to define nextConfiguration as a function and it throw error (see Screenshot section).
All works fine if I define nextConfiguration as an object.

It sounds like you should open an issue in the next-compose-plugins repo, not here. I'm not sure what you would like next-i18next to do to "fix" this error.


Changes for python 3

I want to merge this change because...

Screenshots

Pull Request Checklist

[x] Privileged views and APIs are guarded by proper permission checks.
[x] All visible strings are translated with proper context.
[x] All data-formatting is locale-aware (dates, numbers, and so on).
[x] Database queries are optimized and the number of queries is constant.
[x] The changes are tested.
[x] The code is documented (docstrings, project documentation).

You provided no description of your changes which makes it hard to review your work. If you use virtualenv as suggested by the installation docs, you won't have to use python3 and pip3.

Oh, yes, i didn't account for virtualenv.


Run assembleRelease or assembleDebug task of example-lib, the output aar does not include the nested-lib and nested-native-lib

What are the steps to reproduce this issue?

Run the assembleRelease or assembleDebug task of example-lib;
The AAR is generated in the build/output/aar directory;
But the AAR does not include the example-nested-lib and example-nested-native-lib

What happens?
the AAR does not include the example-nested-lib and example-nested-native-lib
What were you expecting to happen?
Since the build.gradle of example-lib declared the dependencies of example-nested-lib and example-nested-native-lib, it should include the them in the AAR.
Any logs, error output, etc?
(If it’s long, please paste to https://ghostbin.com/ and insert the link here.)
Any other comments?
If the assembleRelease or assembleDebug of example-nested-lib and example-nested-native-lib is run before, let say these two AARs are generated. Then run the assembleRelease or assembleDebug of example-lib, the output AAR will include all its dependencies incorrectly.

@wingyippp What's your Gradle plugin version?

3.0

Let me check it out.

I also encountered this problem, as well as in the example project. I use gradle plugin3.1.4 and gradle 4.4。

I also encountered this problem on gradle plugin 3.0.0 and gradle 4.4


chore: Update memory report to run noir-contracts repo

Description
Problem*
Resolves #6883
Summary*
I just saw https://github.com/noir-lang/noir/pull/6807 and noticed that ram_blowup_regression went down by 50%. I remembered that this is a pattern common in the noir contracts so I want to test bringing back the noir-contracts repo to the memory report. Previously it took just under 30 minutes and had a peak memory of ~9 GB.
After #6875 the report now finishes in the CI report. It finishes in ~28 minutes.
Additional Context
Documentation*
Check one:

[X] No documentation needed.
[ ] Documentation included in this PR.
[ ] [For Experimental Features] Documentation to be submitted in a separate PR.

PR Checklist*

[X] I have tested the changes locally.
[X] I have formatted the changes with Prettier and/or cargo fmt on default settings.

Ok looks like the noir-contracts memory report still did not finish

Yeah I agree 28 minutes is too much.

We may want to pull out a couple of contracts in particular that are interesting but running a whole workspace is a waste of time.


Asyn Validation

Hi.
All worked fine, but I need an async validation on a field. When I put it, I get an error:
ERROR TypeError: Cannot convert undefined or null to object
    at Function.keys (<anonymous>)
    at ng-bootstrap-form-validation.es5.js:195
    at Array.forEach (<anonymous>)
    at FormGroupComponent.get [as messages] (ng-bootstrap-form-validation.es5.js:194)
    at Object.eval [as updateDirectives] (FormGroupComponent.html:3)
    at Object.debugUpdateDirectives [as updateDirectives] (core.es5.js:13067)
    at checkAndUpdateView (core.es5.js:12251)
    at callViewAction (core.es5.js:12599)
    at execComponentViewsAction (core.es5.js:12531)
    at checkAndUpdateView (core.es5.js:12257)

The line 195 is inside this method:
Object.defineProperty(FormGroupComponent.prototype, "messages", {
        /**
         * @return {?}
         */
        get: function () {
            var _this = this;
            var /** @type {?} */ messages = [];
            if (!this.isDirtyAndTouched || this.validationDisabled)
                return messages;
            this.FormControlNames.filter(function (c) { return !c.valid; }).forEach(function (control) {
                Object.keys(control.errors).forEach(function (key) { // <---- line 195
                    var /** @type {?} */ error = _this.errorMessages.find(function (error) { return error.error === key; });
                    if (!error)
                        return;
                    messages.push(error.format(_this.label, control.errors[key]));
                });
            });
            return messages;
        },
        enumerable: true,
        configurable: true
    });

I don't know what happens exactly. I think that the event is thrown when sync validations are done, but as field is marked as not valid but there is no errors (the field has erros = null), that line does not check if t's null and breaks.
I'm trying to validate on other ways, but i'm frustrating by the needed logic. Can you help me please? Any working example to manage the async validation on a field with reactive forms?
Thanks in advance.
Sergio

Hi @third774 and @kingcody
I see that this will be fixed by #26 but it seems to be available on v3.
It's possible to be available on v2.2 ? I need it.
I'm trying to use it adding it to package.json:
"ng-bootstrap-form-validation": "^2.1.0-dev.20180130230430257Z.878bd2d1a9ab7c12256a15e87a9fb32458fd56b1",
But it isn't there. And I can't use dev-master, i don't know why (sorry, i'm a bit newbie).
Can you help me, please?
Thanks in advance.

@ONbik-srebollo try this:
npm install --save<EMAIL_ADDRESS>
or
yarn add<EMAIL_ADDRESS>

Thank you so much!!!!
I don't know what happened, but now has installed correctly. Async validation know works perfectly!!!


Add commands to console logs page

Description
Fixes https://github.com/dotnet/aspire/issues/6626
Demo:

Checklist

Is this feature complete?

[x] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[ ] Yes
[x] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[x] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[x] No

Does the change require an update in our Aspire docs?

[x] Yes

Is this introducing a breaking change?

[ ] Yes

Link to aspire-docs issue (please use this breaking-change template):

[ ] No

Link to aspire-docs issue (please use this doc-idea template):

[ ] No

Microsoft Reviewers: Open in CodeFlow

Feels good to use. cc @davidfowl @DamianEdwards @leslierichardson95 in case you have any UI feedback.

This looks really good to me

I wonder if some users will expect this to stop the logs, rather than the resource, which could be annoying or even dangerous (in ACA for example).
Some ideas that might help with this:

Use a button with icon and text
Move the start/stop button into the ... menu, so it always appears with text
Move buttons next to resource combo box

The button icons and text come from the resource commands. Right now they just say Stop, Start, Restart. The text doesn't make it any clearer what the button does.
The buttons on the page could be removed and commands are only in a nested Resource commands menu.
e.g. to stop a resource, you would go ... -> Resource commands -> Stop

If we add log specific commands where would they go?

In the example above? Resource commands

The tooltip can say what the button does:

Is that enough to remove confusion?

Only if the user reads the tool tip. Having a button that stops a resource without any confirmation that might be mistaken to do something else seems like it could cause some undue problems.
I'm thinking of the scenario where something is logging rapidly and the user wants to pause the logs to make it easier to read them, so they click the "stop" button thinking that's what it does.
What about splitting that "toolbar" area such that all resource related stuff is on one side (combo box, commands) and all log related stuff is on the other side (status, future pause/resume/clear buttons).

I don't see a good place to put command buttons on the left. If they were placed between the dropdown and status message it wouldn't look good because there can be a variable number of commands for a resource, and the status message location would jump around.

How about this:

How about this:

This is what I had in mind. Seeing it, I think it's much clearer.


fix: resolve validation errors (fixes #163)

[x] This pull request has been linted by running npm run lint without errors
[x] This pull request has been tested by running npm run dev and reviewing affected routes
[x] This pull request has been built by running npm run generate without errors
[x] This isn't a duplicate of an existing pull request

Description
Resolves validation errors identified in #163.
Steps to test

Validate deploy preview: https://validator.w3.org/nu/?doc=https%3A%2F%2Fdeploy-preview-165--wecount.netlify.com%2F

Expected behavior: Errors are resolved.
Additional information
Not applicable.
Related issues
Resolve #163.

Thanks for the fix, @greatislander.
Could you take the chance to fix the warning on the views post page too?
One example: https://html5.validator.nu/?doc=https%3A%2F%2Fdeploy-preview-165--wecount.netlify.com%2Fviews%2Fcontinuing-our-work-during-covid-19&showsource=yes
Thanks.


[KYUUBI #3957][FOLLOWUP][1.7] Rename the config prefix from kyuubi.server.batch.limit to kyuubi.server.limit.batch

Why are the changes needed?

How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

thanks, merged to 1.7


Uncaught PHP_CodeSniffer\Exceptions\RuntimeException: trim(): Passing null to parameter #1 ($string)

Bug Description
When i want run the phpcbf i get the following error:
PHP Fatal error:  Uncaught PHP_CodeSniffer\Exceptions\RuntimeException: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /somePath/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php on line 280
Minimal Code Snippet

The issue happens when running this command:
vendor/bin/phpcbf --standard=WordPress someFilePath.php

... over a file containing this code:
// All PHP Code Files

Error Code

PHP Fatal error:  Uncaught PHP_CodeSniffer\Exceptions\RuntimeException: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /somePath/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php on line 280
Environment

Question
Answer

PHP version
PHP 8.1.4 (cli)

PHP_CodeSniffer version
PHP_CodeSniffer version 3.6.2

WPCS version
2.3.0

WPCS install type
Composer project local

Additional Context (optional)

Tested Against develop branch?

[ ] I have verified the issue still exists in the develop branch of WPCS.

@jrfnl what is the release cadence/when can we expect a new release? I'm encountering the same issue, but would like to know when I can stop using the develop branch?

@jrfnl what is the release cadence/when can we expect a new release? I'm encountering the same issue, but would like to know when I can stop using the develop branch?

@clintonb "When it's ready". Either run PHPCS on PHP < 8.0 or use develop for now if you must run it on PHP 8.0+.
Work on the 3.0.0 release is currently actively ongoing, but I'm not making any promises for release dates.

Also, the recommendation to use develop seems to conflict with this recommendation to not use develop: squizlabs/PHP_CodeSniffer#3110 (comment).

That was in response to a different question, different issue.

In which case all users who run latest composer will run into PHP Fatal error:  Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.1.0". You are running 7.4.30. in .../.composer/vendor/composer/platform_check.php on line 24
Is there any way to resolve that easily?
Thank you!

@smileBeda The platform check is triggered by one of your other dependencies, not by WPCS, Nothing to do with the latest Composer either, Composer has contained a platform check for a long time.
You could run Composer with --ignore-platform-reqs=php to get round it, but again: you'd be getting round a requirement of one of your other dependencies. This is unrelated to WPCS.

Looking at the error, this is due to a deprecation message getting bubbled up. While it is a workaround, if the error reporting level is set to ignore deprecated messages, it will no longer display throw this error. For instance phpcs -d error_reporting=24575 would execute PHPCS with error_reporting = E_ALL & ~E_DEPRECATED

As the values of the E_* constants can vary depending on the PHP version used, better to use phpcs -d error_reporting="E_ALL&~E_DEPRECATED"

Note that to apply this flag in a phpcs.xml configuration file rather than on the command line, you'd want to add the following:
<!--
Prevent errors caused by WordPress Coding Standards not supporting PHP 8.0+.
See https://github.com/WordPress/WordPress-Coding-Standards/issues/2035
-->
<ini name="error_reporting" value="E_ALL & ~E_DEPRECATED" />

The year is 2023, I have installed the WordPress Coding Standards on a fresh install... and I am still getting this error. I find this issue every time I wipe my Macbook...

I am getting the same error.

getting the same error, unable to install php < 8 because the older versions are no longer supported

getting the same error, unable to install php < 8 because the older versions are no longer supported
I think I just followed the first third of this tutorial, swapping out for 7.4
https://tecadmin.net/install-php-macos/
As mentioned previously idk if this is a good solution, but it works.

Others have suggested modifying your phpcs.xml file, but I don't install the coding standards on a per-project basis, and idk how to modify this globally so PHP 7.4 it is!!!

I was also running into this error with php 8.2 but setting my homebrew linked version to 8.0 resolved the error. No need to download 7.4 it seems

Still getting the same error on my MacBook with php 8.2.

As the values of the E_* constants can vary depending on the PHP version used, better to use phpcs -d error_reporting="E_ALL&~E_DEPRECATED"

To apply this flag in a phpcs.xml configuration file rather than on the command line, you'd want to add the following:
<!--
Prevent errors caused by WordPress Coding Standards not supporting PHP 8.0+.
See https://github.com/WordPress/WordPress-Coding-Standards/issues/2035
-->
<ini name="error_reporting" value="E_ALL & ~E_DEPRECATED" />

(Note that the & is an escaped & (ampersand); the & character must be escaped in XML documents.)

Working solution on m2 pro and PHP 8.1

I am getting the same error with PHP 7.4 on Centos 7, and have tried all of the solutions listed above, none of which work.
PHP Fatal error:  Uncaught PHP_CodeSniffer\Exceptions\RuntimeException: fclose() expects parameter 1 to be resource, bool given in /vendor/squizlabs/php_codesniffer/src/Util/Common.php on line 69 in /vendor/squizlabs/php_codesniffer/src/Runner.php:608
Could someone please list the necessary steps to get a working version of this installed from scratch, assuming that is possible?
This would be a very useful tool if I could ever get it going.
Thanks.

@tuberb The `README

Not helpful. I tried to follow the readme, which did not take into account the comments above about using the develop branch. And the readme says to start with "composer config allow-plugins.dealerdirect/phpcodesniffer-composer-installer true" and I got this error " File "./composer.json" cannot be found in the current directory". So I reversed the order of the installation commands and added a require command about the develop branch and still got the error I reported.
Instead of complaining about the "pollution" of issues, it would be more helpful to be able to point people to installation instructions that actually work.

If you haven't yet got a composer.json file, then you can run composer init.
While that step is not included in our instructions, it's assumed that someone who would be at the point of using Composer to install a set of packages would understand how to create a composer.json file, or more likely already has one for their project. It's the same reason we don't say how to install Composer or a PHP binary as well (Composer and PHP are listed as Minimum Requirements).

@tuberb There is absolutely no need to use the develop branch anymore. The advice above in this issue is outdated as WPCS 3.0 has been released. Which is exactly the kind of thing why you should not be commenting on old and unrelated tickets.


⚠ Bofrost.lu has degraded performance

In 05ea528, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 2491 ms

Resolved: Bofrost.lu performance has improved in b8c12dc.


Accessing Connected Call blocks and never returns.

require "signalwire"

# Signalwire::Logger.logger.level = ::Logger::DEBUG

MY_NUMBER = "+155512345657"

class MyConsumer < Signalwire::Relay::Consumer
  contexts ['incoming']
  def on_incoming_call(call)
    call.answer
    call.play_tts 'Welcome to Relay'
    dial = call.connect [[{ type: 'phone', params: { to_number: MY_NUMBER, from_number: call.from, timeout: 30 } }]]
    pp "Connected"
    pp dial.successful
    dial.call.play_tts "Hello!" if dial.successful
    pp "Waiting on Ending"
    dial.call.wait_for_ending
    call.play_tts 'finished. hanging up.'
    call.hangup
  end
end

MyConsumer.new.run

If I run the above and dial in, I hear the TTS, then it'll dial my phone number and connect. I can hear myself talking but "Hello!" TTS is never played, nor is "Waiting on Ending" output. When I hang up the connected call, the initial call leg just sits and waits. I have to manually hang it up.
Seems dial.call.<foo> stops the execution.

#30 doesn't seem to fix this. Just tried it again with 2.1.1.
I will see output:
"Connected"
true

but it just hangs on dial.call.play_tts "Hello!"
To reproduce:

Have a number forward to a relay context.
Call that number. (Leg 1)
Leg 1 will get answered, say Welcome to Relay.
Leg 1 will dialMY_NUMBER (Leg2)
Leg 1 and 2 will be connected, I can hear audio on both.
Hello! is never heard, "Waiting on Ending" is not displayed.
Hanging up Leg 2 does not trigger dial.call.wait_for_ending. Leg 1 continues to hang until I manually hang it up.

Fixed in #34


[Bug] Stretched Textures

As you can see the spray can has a stretched texture. i had this happen with the flashlight as well. I believe it is random.

This could be a small visual bug that occurs with compatibility with other mods.
I have not yet seen this visual bug happen yet.
But if it does not break the game or ruin gameplay, then I think its not something to worry about.
Thank you for reporting the bug.


Update zh.php

Coverage increased (+14.6%) to 71.802% when pulling 1f30039697f54820df29ae9f2ab5d4e267f75397 on A013AA:patch-17 into 4c23a4a8facd7d8adffce2146df5b7c2ca4ce01c on autowp:master.


Cannot find Operating System using eval iso

The ISO used is 14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US
The error is

Can you please check the OS build your are running the deployment on?
Can you mount the ISO using the Windows Explorer?
Have you tried pointing Get-LabAvailableOperatingSystem directory to that image using the Path parameter?
Get-LabAvailableOperatingSystem should at least return one OS.

@outek, FYI

Os Build is:
`PS C:> [System.Environment]::OSVersion.Version
Major  Minor  Build  Revision

10     0      16299  0
PS C:>`
I can mount this ISO without any problems. I can start the setup.exe too
PS C:\> Get-LabAvailableOperatingSystem -Path C:\LabSources\ISOs 14:59:07|00:05:57|00:05:34.850|   - found 1 OS images in the cache 14:59:07|00:05:57|00:05:34.861|   - Scanning 4 files for operating systemsFound 0 OS images.
`PS C:> Get-ChildItem C:\LabSources\ISOs
Verzeichnis: C:\LabSources\ISOs

Mode                LastWriteTime         Length Name

-a----       18.04.2018     13:41<PHONE_NUMBER> 14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US (1).ISO
-a----       17.04.2018     17:34<PHONE_NUMBER> 14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO
-a----       18.04.2018     04:37             83 README.md
-a----       18.04.2018     09:27<PHONE_NUMBER> SQLServer2017-x64-ENU.iso
-a----       18.04.2018     08:39      671088640 tfsserver2018.2_rc2.iso`

@outek what happens when you
Get-LabAvailableOperatingSystem -Verbose

Last resort: Try Clear-LabCache.
If it does not work, @Raimund is preparing sticks in the presenter room

Do you have found a solution for using German OS and English ISO. Have also some trouble like this:
14:49:21|23:33:52|23:32:38.815|   - Scanning 1 files for operating systemsAUSFÜHRLICH: Mounting ISO image 'C:\Labsources\ISOs\14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO'
AUSFÜHRLICH: Getting disk image of the ISO
AUSFÜHRLICH: Got disk image 'E'
AUSFÜHRLICH: OS ISO mounted on drive letter 'E'
AUSFÜHRLICH: The Windows Image list contains 0 items
AUSFÜHRLICH: Dismounting ISO
Found 0 OS images.
AUSFÜHRLICH: Get-LabAvailableOperatingSystem...leaving...(Time elapsed: 00:00:00:190)

Sounds good, tried that version of code, one or two steps later...
PS C:> Install-Lab
20:56:00|00:09:55|00:00:00.000|                       - Creating virtual networks
20:56:00|00:09:55|00:00:00.000|                         - Creating Hyper-V virtual network 'MyFirstLab'
20:56:00|00:09:55|00:00:00.087|                           - The network switch 'MyFirstLab' already exists
20:56:00|00:09:55|00:00:00.097|                           - Done
20:56:00|00:09:55|00:00:00.110|                         - done
20:56:00|00:09:55|00:00:00.000|                         - Creating base images
There isn't a single operating system ISO available in the lab. Please call 'Get-LabAvailableOperatingSystem' to see
what AutomatedLab has found and check the LabSources folder location by calling 'Get-LabSourcesLocation'.
In C:\Program Files\WindowsPowerShell\Modules\Automatedlab\<IP_ADDRESS>\AutomatedLabDisks.psm1:21 Zeichen:9

    throw "There isn't a single operating system ISO available in ...

PS C:> (Get-LAb).Sources
ISOs                                   AvailableOperatingSystems UnattendedXml

{783b8479-d605-4e57-b206-511e431ceda9} {}                        C:\AutomatedLabs
PS C:> Get-LabAvailableOperatingSystem
21:04:07|00:18:02|00:08:07.279|                           - found 4 OS images in the cache
OperatingSystemName             : Windows Server 2016 Standard Evaluation
Version                         : 10.0.14393.0
PublishedDate                   : 16.07.2016 18:54:00
Size                            :<PHONE_NUMBER>
Edition                         : ServerStandardEval
Installation                    : Server Core
AzureImageName                  :
VMWareImageName                 :
ProductKey                      : WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
IsoPath                         : C:\LabSources\ISOs\14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US.ISO
IsoName                         : 14393.0.161119-1705.RS1_REFRESH_SERVER_EVAL_X64FRE_EN-US
BaseDiskPath                    :
LinuxPackageGroup               : {}
LinuxType                       : SuSE
OperatingSystemType             : Windows
OperatingSystemImageName        : Windows Server 2016 Standard Evaluation
OperatingSystemImageDescription :
ImageIndex                      : 1
...................
Hope the output will help?

Don't know why, but now it seems to work quit correctly. That version works for me, thank you!

I am closing that issue and hope deployment issues are solved now. Please reopen the issue anytime if things do not work as expected.


Price handler returns

Coverage decreased (-0.02%) to 63.95% when pulling b3665e4f8c797cb12900e4ccb1227d544fb216cd on price_handler_returns into 53fe7e0647a0e5db1ba2f6fa2c16e76d6cdf2489 on master.


Can display push notification now

Added line "sendNotification(remoteMessage.getNotification().getBody());" which will now show the notificaiton in the status bar

I signed it!

Thanks for the PR however the sendNotification is an optional call, so would be best for us to leave it as a todo for the developer as the comment below your change indicates.


Automated Package Upgrade

:tada: This PR is included in version 25.6.79 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Interface type check fails on maybe types

The following code generates flow errors. However, if I change A to be a type, everything checks out. Seems similar to #1569
declare interface A {
    hello: string,
    foo?: string
}

const obj: A = {
    hello: 'world'
};

const copy: A = { ...obj };
const copy2: A = Object.assign({}, obj);

Yeah it's similar. Will fix.

Simple example:
interface A {
  a: ?number
}

var a: A = { a: null }

👍

They now error by saying you cannot spread interfaces.


Add missing impersonate groups for serviceaccounts

What it does
This PR adds missing impersonate groups for ServiceAccounts.
Context
When clients request to impersonate user, the group impersonation should be done only when also clients request explicitely to impersonate group.
The problem
Nevertheless, an exception should be considered for service accounts.
With service account built-in authenticator, requests made with service account token are authenticated as:

user name: system:serviceaccount:<namespace>:<serviceaccount_name>
groups:

system:serviceaccounts
system:serviceaccounts:<namespace>
system:authenticated (included for all authenticated users)

The solution
This patch considers the case of service accounts adding the mentioned groups to the list of impersonate groups, when requests try to impersonate a service account's user.
Related issue
Fixes #349
Additional info
More details in the official documentation about service account authenticator [1] and user impersonation [2].

https://kubernetes.io/docs/reference/access-authn-authz/authentication/#service-account-tokens
https://kubernetes.io/docs/reference/access-authn-authz/authentication/#user-impersonation

JFI @prometherion I've made a change as the block was on the wrong path (in the impersonate group condition, which in this specific case was never taken. Instead, I've moved it inside the impersonate user condition block.


Should we translate source code outputs and comments?

Regarding the scope of translation, we need to discuss what to translate and what not to translate.
Any suggestion?

I don't have any strong opinion about translating string values. But in my opinion, we must translate source code comments since they are highly associated with contents of documents.

In my case, I translate only comments, nothing else.

I think it would be a good idea to translate the comment.

This will be fixed in #14


Beta 5.0 has error on Get.arguments

ATTENTION: DO NOT USE THIS FIELD TO ASK SUPPORT QUESTIONS. USE THE PLATFORM CHANNELS FOR THIS.
Fill in the template. Issues that do not respect the model will be closed.
Describe the bug
A clear and concise description of what the bug is.
When I used Beta 5.0, Get.arguments returns a Map List error.  When I switch back to production in pubspec.yaml, it works.
But not after a week of trying to figure out what I did to break it.
Reproduction code
NOTE: THIS IS MANDATORY, IF YOUR ISSUE DOES NOT CONTAIN IT, IT WILL BE CLOSED PRELIMINARY)
example:
First I route and that's where I pass the values:
Get.toNamed('/landingPage', arguments: {
      "referralID": "$passedReferralID",
      "creatorID": "$passedCreatorID",
      "campaignID": "$passedCampaignID"
    });

Then I try to retrieve it as a value in the route.
import 'package:get/get.dart';

class LandingPageWidget extends StatefulWidget {
  const LandingPageWidget({Key key}) : super(key: key);

  @override
  _LandingPageWidgetState createState() => _LandingPageWidgetState();
}

class _LandingPageWidgetState extends State<LandingPageWidget> {
  final scaffoldKey = GlobalKey<ScaffoldState>();

  @override
  void initState() {
    debugPrint("override in landing page initState");
    super.initState();
    logFirebaseEvent('screen_view', parameters: {'screen_name': 'landingPage'});

    debugPrint(Get.arguments);
    // print(Get.arguments[0]);
    // debugPrint(Get.arguments['referralID']);

    String passedReferralID = Get.arguments['referralID'];
    print(passedReferralID);

    // setState(() => FFAppState().localReferralID = passedReferralID);
  }

To Reproduce
I would be curious if anyone else has the problem in their own script.
The key workflow I have in mine is:

Get.toNamed(/route, arguments)
Get.arguments from the named Route

Expected behavior
A clear and concise description of what you expected to happen.
I expect the named route to be able to retrieve Get.arguments.  Works in stable, error in beta.
Screenshots
If applicable, add screenshots to help explain your problem.
Flutter Version:
Enter the version of the Flutter you are using
Getx Version:
get: ^4.6.5 works
get: ^5.0.0-beta.51 did not for me
Describe on which device you found the bug:
ex: Moto z2 - Android.
Minimal reproduce code
Provide a minimum reproduction code for the problem

Same issue ,did you got any solution?

A-->B--C
我遇到的情况：
 A--> B 传递参数1，B-->C 传递参数2，然后再B页面打印 Get.arguments 内容，结果B界面的Get.arguments 变成了 2，而不是A传递到B的 1


Add functionality to save model in .pb format

Is your feature proposal related to a problem? Please describe.
No, new feature
Describe the solution you'd like to implement
Add functionality to save model in .pb format allowing it to be frozen and used with OpenVINO/NCS2
Describe alternatives you've considered
NA
Additional context
NA

Closed with 0.2.1


Error running rapidnj in poppunk_visualize

Versions
poppunk v2.2.0
sketchlib v1.7.3
In a WSL2 Ubuntu
42 Staph genomes in .fna downloaded from NCBI
Commands:
poppunk --create-db --output SaureusPoultryGenomes --r-files r-list.txt --qc-filter continue --threads 8
poppunk --fit-model lineage --ref-db SaureusPoultryGenomes --output PopPunkLineageModel --graph-weights --qc-filter continue
poppunk_visualise --ref-db SaureusPoultryGenomes --model-dir PopPunkLineageModel --output SaureusPoultryGenomes_viz --microreact
Output of error in the poppunk_visualize:
(Poppunk) dougrhoads@ARSC-GP50LH2:/mnt/e/DNAwork/Saureus/PopunkSaureus908PI2$ poppunk_visualise --ref-db Saureus908PI2 --model-dir PopPunkLineageModel --output Saureus908PI2_viz --microreact > report.txt
Graph-tools OpenMP parallelisation enabled: with 1 threads
PopPUNK: visualise
Loading lineage cluster model
Completed model loading
Reading existing tree from Saureus908PI2_viz/Saureus908PI2_viz_core_NJ.nwk
Traceback (most recent call last):
File "/home/dougrhoads/miniconda3/envs/Poppunk/bin/poppunk_visualise", line 11, in
sys.exit(main())
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/PopPUNK/visualise.py", line 452, in main
generate_visualisations(args.query_db,
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/PopPUNK/visualise.py", line 390, in generate_visualisations
existing_tree = load_tree(output, "NJ")
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/PopPUNK/trees.py", line 107, in load_tree
tree = dendropy.Tree.get(path=tree_fn, schema="newick", preserve_underscores=True)
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/datamodel/treemodel.py", line 2758, in get
return cls._get_from(**kwargs)
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/datamodel/basemodel.py", line 156, in _get_from
return cls.get_from_path(src=src, schema=schema, **kwargs)
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/datamodel/basemodel.py", line 217, in get_from_path
return cls._parse_and_create_from_stream(stream=fsrc,
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/datamodel/treemodel.py", line 2659, in _parse_and_create_from_stream
tree_lists = reader.read_tree_lists(
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/ioservice.py", line 370, in read_tree_lists
product = self._read(stream=stream,
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/newickreader.py", line 324, in _read
for tree in self.tree_iter(stream=stream,
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/newickreader.py", line 301, in tree_iter
tree = self._parse_tree_statement(
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/newickreader.py", line 381, in _parse_tree_statement
self._parse_tree_node_description(
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/newickreader.py", line 557, in _parse_tree_node_description
self._parse_tree_node_description(
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/newickreader.py", line 557, in _parse_tree_node_description
self._parse_tree_node_description(
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/newickreader.py", line 557, in _parse_tree_node_description
self._parse_tree_node_description(
[Previous line repeated 6 more times]
File "/home/dougrhoads/miniconda3/envs/Poppunk/lib/python3.9/site-packages/dendropy/dataio/newickreader.py", line 632, in _parse_tree_node_description
raise NewickReader.NewickReaderMalformedStatementError(
dendropy.dataio.newickreader.NewickReaderMalformedStatementError: Error parsing data source 'Saureus908PI2_viz/Saureus908PI2_viz_core_NJ.nwk' on line 1 at column 32: Malformed tree statement
(Poppunk) dougrhoads@ARSC-GP50LH2:/mnt/e/DNAwork/Saureus/PopunkSaureus908PI2$

My first guess with these things is that one of the sample names might have a character the reader doesn't like for whatever reason – do you have any special characters in the names?
Otherwise:

Are you able to share the Saureus908PI2_viz/Saureus908PI2_viz_core_NJ.nwk file here? Does it open correctly in another tree viewer?
Can you try adding --rapidnj rapidnj to the visualisation command. And also just --rapidnj which should turn it off?

I did have to replace a space in one isolate designation with a _ but now that you mention there are two isolates with parentheses in their name and now it is obvious that will screw up a nwk tree.  Close this incident.  Sorry for the problems (and dumb questions).!

No problem at all, the best kind of issue is an issue that's easy to resolve 🙂


wrote example code for search filters

This pull request is to merge the search filters code with the main branch so we can get our search function rolling.  The code contains an example of how we need to filter out our parameters we set up.  This code will need to be rolled into the index and js files.  This resolves issue #2  and is a step needed to complete )User Story: Search Parameters.
We should plan on setting aside some time to finalize the parameters we will use and how we want to list them.

Great work, Nate! Let's add the search parameters code to our JS files as soon as possible to make sure it's up and running smoothly. I don't see any issues with the code so I vote we merge this branch!


Do not codesign transitive dependency iOS pod resource bundles

Bundles can contain resources like images and localization files.  They are embedded in the framework and should not be codesigned. Xcode 14 changed behavior and is erroneously codesigning these.  CocoaPods has not yet added a workaround on their side https://github.com/CocoaPods/CocoaPods/issues/11402.
Confirms this also works for add-to-app hosts.
Fixes https://github.com/flutter/flutter/issues/111475
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

ETA to release this to stable channel ?

Soon, this has already merged into the next hotfix branch: https://github.com/flutter/flutter/pull/111759


CC3XX: Add AEAD multipart entry points

Same as #17

What's the purpose of this?

What's the purpose of this?

Not sure! I thought I had updated something from your PR but I was mistaken! :)


Added rules for TypeScript and Jest.

@rskrz looks good, but your git commit message is too long. See error in the CI server.

Same PR but with shorter commit message

@rskrz Congrats! Your PR got merged! Pretty cool.
Pro tip: In the future, a better commit message for:
fix: fixed Jest plugin, eslint plugin, camelCase would be refactor: fixed Jest plugin, eslint plugin, camelCase.
This is because that commit technically was not a bug fix that you did. It was you doing some misc work to satisfy the pull request review. Misc work to get the PR merged.


Avoid storing both coffee and js files in repository

Problems:

mess in code and PR
different output on every platform / system / coffee version

To avoid this we can:

move to plain JS (whatever version we will decide)
compile coffee to JS locally, but don't version JS files (and just add them to released gems) this probably will block using repository as bundler git dependency
?

I think move to plain JS make sense here, but it will need a little refactoring since complex constructs like extends are used in coffee files. My initial idea was to use ES6, but it is not supported natively by PhantomJS.
/cc @teampoltergeist/committers

For 2) you mean to compile coffee to js?

Yup. Fixed.

I don't think moving to plain js makes any sense here -- if we can't even have the features of ES6 then it really would be a move backwards and there is nothing to justify it.
The issue of different output from different versions of coffeescript should be fixable by locking the version of coffeescript required, although even then what is the real issue with different JS output as long as it passes the test suite?
Having both the JS and coffee in the repo - whats the negative other than a little bit of extra storage.  It's not like people are offering up PRs with the JS edited instead of the Coffeescript.

Moving to ES6 was reasonable if PhantomJS would have support it, otherwise we are in the same situation.

I still remember we got commits in master that were fixing coffee, but js files were untouched ;)

@route - yeah -- but the JS gets compiled for the test runs - so any coffee changes are being tested - and master would be no worse than it was before the PR - as long as the files get compiled before any gem is released there is no harm done.

Yes, at first I thought it is supported. Actually it is not a big deal to transform current coffee syntax into JS also with "advanced" constructs.
My rationale behind this idea is to keep it clean and straightforward. There's no reason to keep source and compiled files as part of the source code.
For example this example commit. You need to check coffee changes, also compile them in head into JS and check those. Or alternatively you can just try to compile those files locally and compare to those commited one. Also you can force CI to check for changes. But as was written before - for different systems you can get different results.
tl;dr - bigger change == bigger headache

Also I forgot to mention the opposite way pains. When you're debugging some issue, you're getting stacktrace for JS files, not for coffee files.

Also I can share a short story. Yesterday I was debugging some problem in JS part and I had to do some tracking in compiled js files. Since this whole process is anoying:

find JS line in stacktrace
find it manually in source coffee file
change it
compile
test
back to 1 if not solved

Everytime I end up with this:

find JS line in stacktrace
change line in compiled JS line
test
back to 1 if not solved
move that change to source coffee file
compile
test again

Ideal process should be IMHO:

find JS line in stacktrace
change line in compiled JS line
test
back to 1 if not solved

@teampoltergeist/committers I heard PhantomJS will support es6 soon. Thoughts on this?

Yes - PhantomJS 2.5 supports ES6/2015 and Coffeescript 2 just released it's first alpha which generates ES2015 output.  If we're willing to go PhantomJS 2.5 only (once it stabilizes) then we could support those, but if we still want to support PhantomJS 2.1 and 2.5 then we'd need to run through Babel or equivalent to output ES3 for PhantomJS 2.1 - or (the easier option) just stay with the coffeescript we have now which will work on both.

Is there a way to use PhantomJS 2.5 or Poltergeist with ES6 now? If so, how?

@johnlpollard PhantomJS 2.5 is still very much an alpha and has been abandoned, you can use it with Poltergeist but there are some broken things. There is work ongoing to produce a Poltergeist compatible driver that uses Puppeteer rather than PhantomJS but it is not in a releasable state yet.


[ConstraintSystem] Allow function-function conversions for keypath literals

Currently the keypath-to-function conversion is extremely narrow—root and value types of the keypath must exactly match the function argument and result types of the function, respectively.
This PR allows the keypath-to-function conversion to partake in the full generality of function-function type conversion. This means a keypath literal can be covariant in result type and contravariant in argument type, etc.

@swift-ci please smoke test

Sounds good, just making sure that we don't drop a ball on this one. Please feel free to assign me and/or Holly as a reviewer once it's ready.

@swift-ci please smoke test

Hey @hborla @xedin I finally had a chance to iron out the last details here, this should be ready for review!

@swift-ci please test

@swift-ci please test source compatibility

Build failed
Swift Test OS X Platform
Git Sha - 0e8cfe5aa72e5b5353fe35d651ec48ef57229a6c

@swift-ci please test macOS

Build failed
Swift Test OS X Platform
Git Sha - 0e8cfe5aa72e5b5353fe35d651ec48ef57229a6c

@swift-ci please test macOS

@swift-ci please test Linux

@swift-ci please test linux

@Jumhyn This is in my queue, will try to take a look before the end of this week.

@swift-ci please test source compatibility

@swift-ci please test source compatibility

@xedin looks like source compat suite is failing rn?

@slavapestov Looks like some recent requirement machine changes broke source compat suite…

@xedin I'm working on a fix, will have it up shortly

@swift-ci please test source compatibility

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test

@DougGregor as I was bringing this implementation up to date I noticed a problematic interaction between the keypath-function conversion and the requestified discriminator implementation from #62705 when using -debug-constraints. In an expression like:
func f() {
  let _: (S) -> Int = \.x
}

when we finish typechecking the \.x expression we immediately attempt to print out the expression. Since we model the keypath-function conversion as an AutoClosureExpr like { [kp = \.x] in $0[keyPath: kp] }, printing this expression triggers a local discriminator request for the expression, which for an AutoClosureExpr actually uses the parent DC, in this case the AFD for f.
Because this request occurs immediately after we've finished type checking the expression, it appears that when we actually go to evaluate the request we pull the AFD body before it has been rewritten with the results of type checking, meaning we walk through the body still containing the unchecked KeyPathExpr. I.e., the discriminator doesn't get set for the synthesized AutoClosureExpr which fails an assertion later on.
Seems not that bad if it just affects -debug-constraints, but I don't know enough about how or when discriminators get used to know if this ordering issue might rear its head in other ways. Happy to try to tackle a fix but wanted to ask if you had any ideas off the top of your head about the 'right' way to do this, if you still remember enough context from nearly a year ago. :)

@swift-ci please test

@swift-ci please test source compatibility

Hey @xedin, I'm picking this up again to try to land the associated proposal, and I wanted to ask for your thoughts on an (existing) bug that causes some problems for the keypath-function conversion. In a snippet like the following:
struct S {
    var x: Int
}

func evil(_: String) {  } // (1)
func evil(_ x: (S) -> Int) {  } // (2)
evil(\S.x)

we will fail to typecheck with a 'no exact matches error', but we can successfully typecheck if we comment out the obviously-nonviable overload (1). We can also successfully typecheck this if we remove the explicit base type on the keypath and write the call to evil as evil(\.x).
It appears the culprit is how we currently simplify keypath constraints. Paraphrased from ConstraintSystem::simplifyKeyPathConstraint:
// If we have a function type, attempt an SE-0249 key-path-function conversion.
if (auto fnTy = type->getAs<FunctionType>()) {
  definitelyFunctionType = true;
  [...]
  matchTypes(kpFnTy, paramFnTy, ConstraintKind::Conversion, flags, locator);
} else if (auto bgt = type->getAs<BoundGenericType>()) {
  definitelyKeyPathType = true;
}
[...]
if (definitelyFunctionType) {
  // we already added the necessary constraints, treat this case as solved
  return SolutionKind::Solved;
} else if (!anyComponentsUnresolved || definitelyKeyPathType) {
  auto resolvedKPTy =
    BoundGenericType::get(kpDecl, nullptr, {rootTy, valueTy});
  return matchTypes(resolvedKPTy, keyPathTy, ConstraintKind::Bind, subflags, loc);
}

In other words, if we're able to resolve the entire keypath, we'll eagerly bind the expression type to be an actual KeyPath, which is then set in stone and not able to be changed later. Because this logic kicks in before we attempt the overload disjunction and infer any contextual information from the evil parameter types, we never have a chance to set the definitelyFunctionType flag.
It looks like @beccadax already stumbled on a closely related issue: #55436. Similarly there, the problem goes away if the explicit base type is dropped from the keypath expression.
Was wondering if you had any thoughts about what the right approach here might be... should we try to move logic into the bindings that can be inferred from a keypath constraint rather than immediately binding to a KeyPath<Root, Value> as soon as the path can be resolved?

@Jumhyn Coincidentally, I'm actually working on fixing this exact problem right now and I think I mostly got it besides a couple of diagnostic regressions.

@xedin Ha, perfect timing! Glad I didn’t sink much time into this before tagging you 😄
Would love to take a look once you have a PR up!

Sure, I'll tag you!

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci please test

@swift-ci please test

@swift-ci please test source compatibility

@swift-ci Please build toolchain

@swift-ci please test compiler performance

@swift-ci please test Linux platform

Hey @xedin I rebased this against your latest work on keypaths and the proposal has been approved! And further work you'd want to see on this before merge? Source compatibility suite is passing but think we should do any broader analysis?

@xedin just bumping now that we're a bit further into the new year!

Sorry, I'll try to get some time this week to review this!

I didn't forget, this is in my queue for tomorrow. @Jumhyn could you please rebase meanwhile?

@xedin thanks, done!

@swift-ci please test

@swift-ci please test source compatibility


Does Reactjs.Net supports Redux ?

I wanted to create an application with react and redux store. Does Reactjs.Net supports redux? If Yes can i have some documentation?

Thank you

Did you get chance to update the sample for redux?

@dustinsoftware I'm also interested in seeing an example too if you have time. Thanks!

So there isn't really anything special you have to do to get Redux to work. Here's a gist that demo's the basics of wiring it up: https://gist.github.com/dustinsoftware/320c3877e3d4cb96e468eb3ecab9367a#file-commentsbox-redux-jsx-L113-L125
(The webpack sample in this repo will probably fail to run because I forgot to add in the necessary prop-types package when updating everything...I'll fix that)
I didn't put any effort into wiring up dispatching actions and testing that flow, but the server-render works fine, and you can see the global store getting passed in to the top level component.
It might be worth having a sample checked into this repo that demonstrates Redux since it's commonly used in large applications.

Closing since this question is answered, please feel free to re-open if you'd like some more help! 😄

i have implemented reactjs.net with redux and getting error
JsScriptException: Script threw an exception.
JavaScriptEngineSwitcher.ChakraCore.JsRt.JsErrorHelpers.ThrowIfError(JsErrorCode errorCode)
JsRuntimeException: Invariant Violation: Could not find "store" in the context of "Connect(Login)". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to Connect(Login) in connect options.
can you please help me
Thanks in advance .

Sorry, I can’t help debug redux problems. You could try asking on stack
overflow. My first step would be to add redux to a fresh app using
create-react-app.
It’s also possible that this library doesn’t work with redux either anymore
due to a redux update; I haven’t investigated. There might be some
documentation somewhere that talks about how to set up SSR with redux. :)
On Tue, Nov 19, 2019 at 20:22, Sayed Azharuddin<EMAIL_ADDRESS>wrote:

i have implemented reactjs.net with redux and getting error
JsScriptException: Script threw an exception.
JavaScriptEngineSwitcher.ChakraCore.JsRt.JsErrorHelpers.ThrowIfError(JsErrorCode
errorCode)
JsRuntimeException: Invariant Violation: Could not find "store" in the
context of "Connect(Login)". Either wrap the root component in a , or pass
a custom React context provider to and the corresponding React context
consumer to Connect(Login) in connect options.
can you please help me
Thanks in advance .
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/reactjs/React.NET/issues/513?email_source=notifications&email_token=AAHGCFSOM3OTME2LJUDH2Q3QUS3OXA5CNFSM4ER2FKHKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEQU6RI#issuecomment-555831109,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHGCFWRWVHBSH5UOEELL23QUS3OXANCNFSM4ER2FKHA
.

Can you please help me in one more case i have SSR and after getting the response from the server controller method on a button click i want to redirect to another page i am doing it like below ,please let me know is this the correct approach
fetch(${this.props.submitUrl +
"?userName=" +
this.state.usr +
"&password=" +
this.state.pwd}, {             method: 'get',             headers: {                 'Content-Type': 'application/json'             }         })             .then(res => {                 console.log(res);                 //this.props.history.push("/dashboard");                 //console.log(window.location);                 window.location = window.location.origin+"/dashboard";                 //this.props.toggle();                 //this.props.updateUserIntoState(this.state.id);             })             .catch(err => console.log(err));         //console.log(response);     };


Specify the config directory and file permissions

The ark install may create /etc/duo and touch /etc/duo/login_duo.conf with the correct permissions but it's always nice to be explicit and important when using a wrapper cookbook.

Thanks!


Bundled cabels Input/Output Support for Redstone Integrator block

Describe your idea
In redstone lib in CC:Tweaked setBundledOutput/getBundledInput methods used to control cabels from "project red" or "more red" mods. Can you please add them to your redstone integrator block?
It's realy difficult to connect all of cabels I have in my game right to my Personal Advanced Computer (because each side of it connected to other peripherals)... Thank you for your attention.
Describe alternatives you've considered if you've any
No response
Additional context
No response
Linked Issues
No response

1.18x label mean that feature will be realized only in 1.18x game versions? But I used the lower one... Ba-dum-tss)))
Thanks for adding this to TO DO in Features, sadly I think it's imposible for me to test it in my modpack for now, because it works only in 1.16.5v...

Yeah, only 1.18+
I can't add features to two minecraft versions, this just takes too long for me


fix(pure-cell): added ability send additional props

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 79.601%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
8145

Relevant Lines:
9251

💛  - Coveralls


Cython can't parse nested ctuples inside of a std::vector

This code here: cdef vector[(vector[(double, double, double)], (unsigned char, unsigned char, unsigned char, unsigned char))] polygons throws an error: Expected ')', found 'char'

Interesting. I don't even know if nested ctuples are supported. There's no reason not to support them, but I think that's at least not currently tested for. Probably doesn't work.

Actually... If i break up the nested tuple cdef vector[(vector[(double, double, double)], unsigned char, unsigned char, unsigned char, unsigned char)] polygons, still giving me the same error, i think Cython fails to understand it after i put a ctuple in a vector. Ctuple in vector does work, btw

Let me clear this up... vector[(double, double)] like that does work normally. But the problem i mentioned earlier doesn't

Also! if i remove the unsigned, so cdef vector[((char, char, char, char), vector[(double, double, double)])] polygons it returns another error vector templated type receives 2 arguments, got 3

Okay then. Anyway, I've did a couple of grammar fixes to the previous messages.


string(channel) should be quoted

echo string({"channel": term_getjob(2)})

The value in dict should be quoted, I think.

Yasuhiro Matsumoto wrote:

echo string({"channel": term_getjob(2)})

The value in dict should be quoted, I think.

This breaks the channel test
--
-rwxr-xr-x  1 root          24 Oct 29  1929 /bin/ed
-rwxr-xr-t  4 root      131720 Jan  1  1970 /usr/ucb/vi
-rwxr-xr-x  1 root  5.89824e37 Oct 22  1990 /usr/bin/emacs
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Codecov Report

Merging #1930 into master will decrease coverage by 0.29%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #1930     +/-   ##
=========================================
- Coverage   75.09%   74.79%   -0.3%
=========================================
  Files          76       72      -4
  Lines      125300   124275   -1025
=========================================
- Hits        94088    92951   -1137
- Misses      31212    31324    +112

Impacted Files
Coverage Δ

src/eval.c
80.76% <100%> (+0.11%)
:arrow_up:

src/version.c
32.32% <0%> (-47.98%)
:arrow_down:

src/gui_beval.c
40.06% <0%> (-3.91%)
:arrow_down:

src/gui_gtk_x11.c
46.65% <0%> (-0.85%)
:arrow_down:

src/if_py_both.h
75.27% <0%> (-0.75%)
:arrow_down:

src/window.c
80.77% <0%> (-0.56%)
:arrow_down:

src/search.c
72.29% <0%> (-0.52%)
:arrow_down:

src/memfile.c
79.14% <0%> (-0.47%)
:arrow_down:

src/buffer.c
75.04% <0%> (-0.44%)
:arrow_down:

src/mbyte.c
61.62% <0%> (-0.43%)
:arrow_down:

... and 58 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eb44a68...f666ae8. Read the comment docs.

Fixed tests.

Yasuhiro wrote:

Fixed tests.

It appears this causes more quotes than necessary:

call assert_equal('''no process''', string(ch_getjob(handle)))

"no process" is a string, thus no extra quotes are needed.
We should not change this test.
It appears you are doing this for "string(job_info(job))".
We probably need something extra to say that when turning a dictionary
into a string, the string arguments need quotes.
--
[SIR LAUNCELOT runs back up the stairs, grabs a rope
of the wall and swings out over the heads of the CROWD in a
swashbuckling manner towards a large window.  He stops just short
of the window and is left swing pathetically back and forth.]
LAUNCELOT: Excuse me ... could somebody give me a push ...
"Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


Possible Use Case for Live Share ?  Client Screen/mouse sharing possible from within our C# Blazor App...

<!--
Could Live Share be integrated in our APP in C# to do Distant Live Client Support (App/Screen sharing) ?

Thanks for the feedback. We’re not able to prioritize this issue over the other higher-impact issues we receive every week, based on the votes and comments from others in the community and our understanding of the issue. However, rest assured that we love your input. If you feel it deserves to stay open, then clarify your use case and contact us to let us know how severe it is for you.


[BEAM-2119] Fix FileSystems to have the local filesystem installed by default.

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[x] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[x] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @vikkyrk @tgroh @dhalperi

Thanks.

Coverage increased (+0.001%) to 69.685% when pulling 3423bfd48a3f44e0b58eaef870b6adae45db3af6 on lukecwik:master into a8a04a2905e1ff639f403be7d9132acb77365e84 on apache:master.


33Across User ID sub-module: Introduce a new supplemental ID

🏷 Type of documentation

[ ] new bid adapter
[ ] update bid adapter
[x] new feature
[ ] text edit only (wording, typos)
[ ] bugfix (code examples)
[ ] new examples

📋 Checklist

[x] Related pull requests in prebid.js or server are linked -> https://github.com/prebid/Prebid.js/pull/11614

The recommendation on the related prebid.js PR is to incorporate the changes on prebid.js 9.0... label "Pending Next Major Release" should be added.


Allow injection of arbitrary application secrets into driver/executor Pods

Spark applications running in Kubernetes may need application credentials to access certain services, for example, to read data from or write data to database or storage services. As an example, for an Spark application to access Google Cloud Storage (GCS) or Cloud BigQuery through the GCS or BigQuery connectors, a GCP service account key with the right permissions granted must be injected and made available to the connectors. GCP service account keys are certainly not the only type of credentials. Other types of credentials may be needed to access other types of services outside GCP. So we need a generic way of injecting arbitrary application credentials in the form of Kubernetes secrets into the driver/executor Pods.

Can spark.files be used to inject your secrets? See https://github.com/apache-spark-on-k8s/spark/issues/393

Could this be generalized to include configmap injections?

Also, secrets and configmaps can be exposed via env-vars.  Is this a useful alternative mechanism for #395 ?

I think the implementation in #395 should be preferred because 1) it feels abusing secrets just for setting env variables, which can be done directly at Pod creation time, and 2) Spark already has native support for setting executor env-vars through the spark.executorEnv. property prefix so we should leverage that.

I've been using podpresets:
kind: PodPreset
apiVersion: settings.k8s.io/v1alpha1
metadata:
  name: app-env-presets
  namespace: default
spec:
  selector:
    matchLabels:
      role: appRoleExample
  env:
    - name: exampleEnvVar1
      value: valueEnvVar1
    - name: etcEnv
      value: etcEnvValue

Docs:
https://kubernetes.io/docs/tasks/inject-data-application/podpreset/
Needs admission controller configs set:
minikube start --extra-config=apiserver.Admission.PluginNames=PodPreset,ServiceAccount

PodPreset is the one you need for PodPresets.
I haven't quite gotten this into production, prod admissionController configs are different.
I needed ServiceAccount as well with minikube v.021
⇒  minikube version
minikube version: v0.21.0

You need to assign a matching label in your spark-submit call like:
      --conf spark.kubernetes.driver.labels=role=appRoleExample \
      --conf spark.kubernetes.executor.labels=role=appRoleExample \

I haven't tried yet, but there's no reason why you shouldn't be able to use secrets...

On futher reflection, podPresets are still alpha.  Not sure if / when they'll go to beta: https://github.com/apache-spark-on-k8s/spark/issues/38
However, they sure would solve allot of use cases.
Does anyone know when we'll see these in beta? I've been using podPresets quite effectively for env vars, it seems like it's purpose built for the use case.

One problem with PodPreset is it applies to all Pods with matching labels in a namespace. If a user needs to inject secrets not included in the PodPreset, she's out of luck. Another problem with PodPreset is if the admission controller fails to apply some PodPreset to a Pod, e.g., due to conflicts, it still allows the Pod to be created without having the PodPreset applied. This might cause an affected Spark application to exhibit unexpected behavior instead of failing fast.

If a user needs to inject secrets not included in the PodPreset, she's out of luck

@liyinan926 I'm not sure if that's a problem. My use case envisions strictly the case where I want to provision env / secrets to env for an executing spark job.    If I needed to inject secrets not included in a pod preset could I not make another pod preset that applied to a specific label.
I'd be at least as concerned with having multiple tools that do almost the same job.  Code sprawl and confusion and all that.

Another problem with PodPreset is if the admission controller fails to apply some PodPreset to a Pod, e.g., due to conflicts, it still allows the Pod to be created without having the PodPreset applied

This is a legitimate concern, given the choice between two separate but similar mechanisms I'd lobby for one mechanism.  I was just doing some research on pod presets.  Their still somewhat up in the air.  In an ideal world I'd want a mechanism to flag apply failures.
There seems to be allot of discussion on the subject.  Hopefully there'll be more clarity soon.
https://github.com/kubernetes-incubator/service-catalog/issues/1041#issuecomment-317560100

Given that's it's still alpha things could definitely move around.  One of the things that could be done would be to inspect if podPresets are mapped.  You get this podpreset.admission.kubernetes.io/podpreset-podprset-env:  99999 applied to the pod.    https://kubernetes.io/docs/tasks/inject-data-application/podpreset/#behavior  I'm wondering if you'd want to check for that label and see if it happened.  also, if there were other labels applied if something went wrong.


Getting overlay exception

I am getting overlay state exception when i am running the example provided with plugin as is.
/C:/flutter/.pub-cache/hosted/pub.dartlang.org/hover_menu-1.0.1+1/lib/hover_menu.dart:41:27: Error: Method 'insert' cannot be called on 'OverlayState?' because it is potentially null.
- 'OverlayState' is from 'package:flutter/src/widgets/overlay.dart' ('/C:/flutter/packages/flutter/lib/src/widgets/overlay.dart').
overlay.dart:1
Try calling using ?. instead.
      Overlay.of(context).insert(_overlayEntry!);
                          ^^^^^^

If i update line 41 in hover_menu class by adding "?" it does resolve the issue. Just sharing it so you can fix the plugin and I don't have to use custom code.
       Overlay.of(context)?.insert(_overlayEntry!);

Please make sure the SDK is
sdk: '>=2.19.0 <3.0.0'

Please try to upgrade Flutter.
What version do you have?
Because it is not nullable in the latest version:


TLS Handshake failures with BCJSSE on the server side and a client using SunJSSE with Java 1.8.0_181

When trying to connect to a ServerSocket that is using BCJSSE as provider and the client is using Java 1.8.0_181 the handshake fails because the TlsServer claims that no fitting cipher can be used. When doing the same test the other way around, i.e. a BCJSSE provider based Socket is connecting to a SunJSSE based ServerSocket the handshake succeeds. After trying out many things I found out the reason. Java 1.8.0_181 reports 10 algorithms in the extension signature_algorithms where the BC TlsServer doesn't seem to like any.
The strange thing about this is that as BC-based client the agreed on signature algorithm rsa_pkcs1_sha256 (0x0401) is used which is also in the list of signature-algs when SunJSSE is the client.
I've attached a Wireshark trace showing the failing handshake (plus some others because it's been created while testing something else, session resumption related) and a JUnit testcase where it's shown that it's the signature_algorithms extension leading to the handshake failure.
tlstest_bcjsse_sunjsse.zip
__Run_SunJSSE_BCJSSE_ProblemRecreation.zip

@kimmerin Hi Lothar, sorry it took so long to take a look at this. I've now run your unit tests using latest BC code, and saw one failed test in testConnectWithExtensionsOfOtherWiresharkTrace. Debugging, I noticed that the test was using SunX509 KMF and TMF, which is not supported by BCJSSE (in the general case).
So, replacing the KMF/TMF creation in your createContext with:
KeyManagerFactory km = KeyManagerFactory.getInstance("PKIX", BC_JSSE_PROVIDER);
TrustManagerFactory tm = TrustManagerFactory.getInstance("PKIX", BC_JSSE_PROVIDER);

all the tests now pass.

Thanks for taking a look into it.

Debugging, I noticed that the test was using SunX509 KMF and TMF, which is not supported by BCJSSE (in the general case).

If that's the case, wouldn't it be helpful for a user to throw an exception in SSLContext.init(KMF, TMF, random) if the passed KeyManager and/or TrustManager are not supported?

We still allow "wrapper" implementations, as long as they essentially decorate an underlying BCJSSE one. We could consider some sort of detection for JDK implementation classes specifically.

Changed my implementation to use not use SunX509 (PKIX is supported as well if SunJSSE is used as provider, so it was a simple change) and my (real) tests run through now as well. They still fail when using Java 16 but I have to dig into that in more detail but I don't think it has something to do with this particular case.