Add support for generic URI in Storage object

What this PR does / why we need it:
This adds support for a generic uri over HTTP or HTTPS in the Storage object responsible for pulling remote model objects, as mentioned in this issue. This would allow for the inclusion of serialized models available on the web (e.g. on GitHub, ModelZoo, etc.) in the KFServing framework.
Re-opens https://github.com/kubeflow/kfserving/pull/972.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #826
Special notes for your reviewer:

Please confirm that if this PR changes any image versions, then that's the sole change this PR makes.

Release note:

/ok-to-test

I will add a sample here, as requested in the previous review.

I'm running into an error when attempting to apply any of the manifests in the samples directory:
$ kubectl apply -f docs/samples/
error: error when retrieving current configuration of:
Resource: "serving.kubeflow.org/v1alpha2, Resource=inferenceservices", GroupVersionKind: "serving.kubeflow.org/v1alpha2, Kind=InferenceService"
Name: "sklearn-iris", Namespace: "default"

I tried deploying them into a different namespace and got the same error. Similarly, both deploying via make deploy and make deploy-dev return the same issue. I'm on k8s v1.16.0 and KNative version v0.15.0. I can see the kfserving controller running:
$ kubectl get pods -n kfserving-system
NAME                             READY   STATUS    RESTARTS   AGE
kfserving-controller-manager-0   2/2     Running   0          ----

Attempting to curl it (after messing with the RBAC) also returns the same message as above.
$ curl -k -v -XGET  -H "Accept: application/json" -H "User-Agent: kubectl/v1.16.0 (linux/amd64) kubernetes/2bd9643" 'https://localhost:8443/apis/serving.kubeflow.org/v1alpha2/namespaces/kfserving-test/inferenceservices/sklearn-iris'

/retest

/retest

@yuzisun I've hit a bit of a fork in the road here and wondering what you (or others) might think about the best way forward is here. The current implementation will only work for frameworks which require a single model artifact, e.g. sklearn (which I successfully tested). However, other supported frameworks require access to multiple files (like Tensorflow) in order to pull down the serialized model and turn it into a servable.
Which means, pulling down a single serialized object isn't going to cut it. All the other storage representations currently implemented provide some kind of directory listing which makes traverse down the directory structure straightforward, however, this is not really how the web works (most servers aren't going to tell us what the paths are).
I see two potential solutions for handling all the frameworks kfserving supports while still being able to specify any http(s) path:

Introduce a new dependency like BeautifulSoup or scrapy and essentially take the base path,

spec:
  default:
    predictor:
      tensorflow:
        storageUri: https://someurl/model/

and attempt to crawl from the top and downloading all the artifacts under that path. This would have the benefit of maintaining the current structure of the InferenceService CRD, but might lead to some undefined behavior that the user probably won't have visibility into unless they are manually checking the objects downloaded by the storage-initializer container.

Add a new (optional) field to the CRD like this:

  default:
    predictor:
      tensorflow:
        storageUri: https://someurl/model/
          paths:
            - 0001/saved_model.pb
            - 0001/variables/variables.data-00000-of-00001
            - 0001/variables/variables.index

while this doesn't explicitly break the current CRD contract of just providing storageUri it does introduce a new field (and that would only be required for model objects available from this storage type (that said I guess we could add support for the others). But has the benefit of being obvious to the user what should be downloaded to fully specify the kfserving-container.
That said, if you (or others) have ideas about how to approach this (the two above or others), I'd be interested in hearing them.

You're completely right -- this is a sticky issue with a conceptual mismatch.
I'm not a fan of the paths approach. Your YAML also isn't valid. Paths would either need to be a sibling to storageUri, or storageUri would need to become an object. Both approaches are not ideal.
I could see using some sort of directory lister, like an index.yaml, scrappy, or other way of listing files.

I would rather not touch the current CRD structure, so makes sense that the paths approach is not desirable.
I have a concern about how general of a solution we can provide here without throwing another config at the problem. As an example, even building a solution that would work on a Github directory, like
...
    storageUri: https://github.com/<owner>/<repo>/<path>/<to>/<serialized>/<model>/

is tricky because the raw binaries Github  are not hosted under that url, but under https://raw.githubusercontent.com/<owner>/<repo>/<path>/<to>/<serialized>/<model>/<object>. We can eventually get there by crawling the links, but cannot verify that the files are directly under the path the user specified in the CRD. Trying to find a generic enough solution for this, given the possible redirections a site may take us through seems difficult, and has what I'm guessing is an incredible number of edge cases.
So, I would think that the introduction of declarative directory listing from the user would allow us to maintain the current proposal of accepting any http(s) path. Otherwise, it might be more appropriate to make this more specific to different potential hosts, e.g. github://<some>/<path>/..., gitlab://<some>/<path>, with the unfortunate side effect of probably bloating the Storage class with all the possible options.

We will need to be a little strategic if we go this route, as the storage initializer component will soon be deprecated in favor of the new puller agent that enables support for multi-model serving. I'm a little nervous about where this road leads. I see storing models in github as your cloud storage provider as something of an anti-pattern.
Is it possible to mirror the github directory into cloud storage somewhere?

Perhaps if this is being deprecated soon we should close the issue (and this PR). I'm in agreement that using GitHub (or another publicly accessible location) is probably not a valid use case for production-level artifact storage. I didn't open https://github.com/kubeflow/kfserving/issues/826 but my guess is that this would probably only be useful for learning purposes (which certainly shouldn't discounted) or an easy proof-of-concept.
As to the second question, one would think a simple sync command on AWS / GCP / Azure / take your pick in a standard CI/CD pipeline would allow mirroring that structure (even if you are committing artifacts directly to git). I don't have a use case for this (simply picked it up because of the good-first-issue label), but someone else might :shrug: .

@tduffy000 @ellistarn The original issue is for learning purpose, not everyone has a proper artifact storage. I think the PR still has value and I am not sure if we should deprecate storage initializer yet for single model serving case. Perhaps we can limit the scope to only allow single file or tarball if multiple model files are needed, it can also be used for e2e testing purpose.

I'm okay with that, I think it will be a nice way for folks without dedicated storage to get a feel for the framework. I will add support for .zip and .tar files (along with a nice warning about only pulling those in from trusted sources) along with samples for each framework (given that some will require artifacts and others won't).

I like this tar support! Nice!
On Mon, Aug 3, 2020 at 10:34 AM Tom Duffy<EMAIL_ADDRESS>wrote:

I'm okay with that, I think it will be a nice way for folks without
dedicated storage to get a feel for the framework. I will add support for
.zip and .tar files (along with a nice warning about only pulling those
in from trusted sources) along with samples for each framework (given
that some will require artifacts and others won't).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/kubeflow/kfserving/pull/979#issuecomment-668149034,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AATXLCHJW5SNF2CPCUKCSKLR63YMDANCNFSM4PK5UUJQ
.

@yuzisun @ellistarn This is ready for review, I've added the example covering both the single file model case (sklearn) and a tarball for tensorflow. Thanks for you time!

/retest

/assign @ellistarn

I just want to chime in that this is great work! Thank you!

/retest

/retest

/retest

/retest

/retest

@tduffy000 Can you help do a rebase ?

/retest

Looks like we are keep getting this error and katib is making a fix here https://github.com/kubeflow/katib/pull/1316
ERROR: (gcloud.builds.submit) [Errno 104] Connection reset by peer
This may be due to network connectivity issues. Please check your network settings, and the status of the service you are trying to reach.

/retest

/retest

/retest

thanks @yuzisun , lmk if I can do anything to help out.

Keeps failing on gcloud auth login.. one more time.. We need the fix to add retries.
/retest

/retest

/retest

The teardown cluster step is passed now, but the e2e steps failed.
_______________ ERROR collecting transformer/test_transformer.py _______________
ImportError while importing test module '/root/go/src/github.com/kubeflow/kfserving/test/e2e/transformer/test_transformer.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.6/importlib/__init__.py:126: in import_module
   return _bootstrap._gcd_import(name[level:], package, level)
transformer/test_transformer.py:18: in <module>
   from kfserving import KFServingClient
E   ModuleNotFoundError: No module named 'kfserving'

That's strange, I reviewed code changes, should not cause the E2E test issue. Try again.
/retest

/retest

Failed again when build image, guess that's caused by gcloud build?
ERROR: (gcloud.builds.submit) [Errno 104] Connection reset by peer
This may be due to network connectivity issues. Please check your network settings, and the status of the service you are trying to reach

/retest

/test kubeflow-kfserving-presubmit

@tduffy000 Sorry for the delay of fixing the CI issues, can you help rebase again now?

No worries @yuzisun , thanks for all your help :smile:

/retest

omg! finally! @tduffy000 Thanks for your great contribution! Sorry for the long delayed mergy.
/lgtm
/approve


groupBarsPosition is null

Hi, thanks for this awesome library, but when i using BarChart, i got a exception as follow:

How to re-produce
When touch the bar to show a tooltips, and then move finger to another bar, the tooltips won't show any more, and print the error-log.
Possible reason
It seems the groupBarsPosition property  is NULL in bar_chart_painter.dart

And in this commit c0a14f97
It looks like this bit of commented out code might help?
https://github.com/imaNNeoFighT/fl_chart/blob/master/lib/src/chart/bar_chart/bar_chart_painter.dart#L571
if (groupBarsPosition == null) {
  return null;
}

This error also occurs in exmple  bar_chart_sample1.dart  .
and this issue issuecomment-616123536

#313
Duplicate!

Fixed in 0.9.3,
Thanks for reporting!


[FR] Easily add a search bar

HI ! Thanks for your package, it's awesome!
I would like to put a search bar in my blog.
I found this: https://gohugo.io/tools/search/
But I was not able to implement with this because I basically only know R.
It would be nice if the package have this option.

I don’t have the JavaScript experience (or time) to implement this, but I did some searching because I’d love this feature too!
lunr.js seems like a good option, and it’s one of the ones recommended in the Hugo docs page @rtheodoro shared above. Here is a really great Hugo specific tutorial if someone wants to give this a go:

Add Search to Your Static Site with Lunr.js (Hugo, Vanilla JS)

We might not need every feature there, but I really like how it implements the search feature like it’s a single page app (rather than redirecting to a new page when you search).
One other thing we might want to think about in implementing this is where to actually put the search box. I think a nice place for it would be in the sidebar for the various page types (e.g., blog, talks, etc.). And then whether it’s displayed or not can be toggled with a YAML parameter.

I agree- I think I may be able to take a swing but I know @dcossyleon used this post to implement search in the new and improved RStudio blog, so leaving the link here in case someone wants to dig into it!
https://twitter.com/dcossyle/status/1461690409642610693?s=20
https://palant.info/2020/06/04/the-easier-way-to-use-lunr-search-with-hugo/

Thanks for the information!
Unfortunately, I still haven't been successful in adding the search bar :( Sounds easy with the palant tutorial, but I don't know where I'm failing.
About the place to put it, I think would be nice to put in the header too, like palant did in MemE theme, here https://github.com/reuixiy/hugo-theme-meme/tree/1322fdde91af3a147ce9881892a432ebfaf9b535
Again, thanks a lot!

You may find this handy to add a hugo contact form


Don't Latch on NotActive activation

The special NotActive activation placeholder appears to be triggering a Latch:

Similarly:

In the OnDelay case, this may be because state is ActiveLatched.   We need to guard against OnDelay as well if NotActive, and perhaps also when Latched.   This gets confusing as you start to mix and match overrides: https://github.com/JeffersonLab/jaws/issues/24

Effective processor does not appear to latch on NoActivation.    More investigation needed.  Perhaps on startup some channels take too long to connect to EPICS and result in ChannelErrors, which eventually resolve to NotActive.  In this case the issue might be the audit logger is capturing the wrong state: expected would be type ChannelError, not type NotActive.

The unexpected part is the activation type.   Perhaps the stream join on override isn't grabbing the updated activation type? Starting from empty history a fresh restart results in the following notification history examples:
Example 1:

Example 2:


Podman user gets gcl-cmd: applet not found error

Minimal .gitlab-ci.yml illustrating the issue
---
myjob:
  stage: check
  image:
    name: mysteriouscode/cfn-lint:latest
    entrypoint: [""]
  script:
    - cfn-lint CloudFormation.yml

Expected behavior
Same behaviour as docker users, but I'm unsure why it's different on podman yet...
Host information
MacOS podman
gitlab-ci-local 4.55.0
Containerd binary
podman
Additional context
We run the jobs with docker most of the team, but the license cost is starting to be a concern.  Some people were already using podman, but were unable to get the same jobs as us to run.  You have a snippet of the code that fails.  The error message seems to be caused by this line ; https://github.com/firecow/gitlab-ci-local/blob/4.55.0/src/job.ts#L872C143-L872C151
This is the only place where I found "gcl-cmd".
I will try to dig out more details.

I will be closing this, the issue was how the project was mounted onto a different drive then the root one.

I think it's because the base image is a busybox and that the "cmd" doesn't have a #! for busybox to interpret the script correctly.  Still have to figure out how come it works on docker though...
https://github.com/firecow/gitlab-ci-local/blob/4.55.0/src/job.ts#L847C1-L847C40

Is there a way to leave the container in place on failure ?  I would like to explore the filesystem to figure it out...

@elafontaine Does this work on gitlab.com?

cat > foo <<EOF
echo 1
EOF
chmod +x foo

cat > Dockerfile <<EOF
FROM docker.io/mysteriouscode/cfn-lint:v1.16.1
COPY foo foo
RUN /foo
EOF

docker build works but podman build doesnt..
not too sure why the difference in the behavior tho...

Does this work on a gitlab instance using where the runner is using podman?

Sorry for the delay in response, I was out of commission.
@firecow, for your question on if this is gitlab.com;  yes, this is on gitlab.com.  Same as for the other tickets I'm opening.
For you question on if we have runners that use podman, I don't have such runner unfortunately.  Team members are trying to avoid the docker desktop license and that's why they have issues.  I'm unsure of why this happens though... the only problem I could see is the volume mapping...
@ANGkeith Thanks for testing this out :D I've been running out of time to do everything I need to get to.

Ok, we will try to fix. Just wanted to know, if you have seen a podman gitlab-runner perform these tasks for us to better debug.


Custom HTML properties don't work

Trying to add a custom property to an HTML element doesn't do anything.  Can be reproduced with:
import Html exposing (..)
import Html.Attributes exposing (..)
import Json.Encode exposing (string)

main =
  div [ property "data-dismiss" (string "modal") ] [ text "I should have a data-dismiss='modal' attribute, but I don't have any!" ]

Just figured out I should be using attribute instead of property :)


[Administration] Upgrade npm packages and use new GraphQL code generator

Merge if you feel comfortable.

The only thing I am uncomfortable with is the annoying issue https://github.com/zxing-js/library/issues/499 which makes the zxing library shout a huge number of warnings (involving source maps) when building.

The only thing I am uncomfortable with is the annoying issue zxing-js/library#499 which makes the zxing library shout a huge number of warnings (involving source maps) when building.

I left a comment in that issue to give it a bump. I would say we just merge with warnings and ignore them. Having warnings is better than not having source maps :D

Seems good to me!


Swagger data model

Add flask-restx in dependencies, including requirements.txt
Add flask_restx.Api in service/__init__.py
Add create_model, inventory_model, and reqparse in routes.py

The api docs can be accessed and checked in {base_url}/apidocs
Please remember to delete previous docker volume and rebuild the container before checking.

@zhengtr everything seems to be working as expected but I can't see any of the models on the /apicdocs page. Will they only appear after the endpoints are refactored to use flask-restx?

Yes. I think they will only appear after the resource class is implemented (i.e. refactored endpoints). I will take an issue and working on the endpoint after this PR.

Also, you may have to rebase with master. I just approved Sahil's PR

Also, you may have to rebase with master. I just approved Sahil's PR

Since the changes were in different files, you can rebase and merge it through GitHub directly. You can click on the dropdown in the Merge Pull Request option.

IBM Cloud toolchain: Delivery Pipeline deployed inventory to inventory, including commit 31084b233f8edcf501ed4ec1b5593508d868f0a7


You should mention that until 2016/10, netstat was inaccurate.

This blog post is better than the other two you reference I think, and newer;
https://blogs.technet.microsoft.com/yongrhee/2018/01/09/windows-server-2012-r2-ephemeral-ports-a-k-a-dynamic-ports-hotfixes/
please border your screenshot
Fixes for netstat were backported to 2012 R2
https://support.microsoft.com/en-us/help/3123245/update-improves-port-exhaustion-identification-in-windows-server-2012
About this update
Network reporting tools, such as Netstat and PowerShell-based Get-NetTcpConnection don't report Transport Control Protocol (TCP) or User Datagram Protocol (UDP) port usage correctly since Windows Vista because some new TCP/IP features are introduced. This update brings some changes to Netstat.exe and Get-NetTcpConnection so that they can correctly report the TCP or UDP port usage in Windows Server 2012 R2.

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

ID: 75c2ae54-4348-565f-ffbc-e9d95436ac8e
Version Independent ID: f3c8b6f8-ed47-3628-f064-8773b91cd921
Content: Troubleshoot port exhaustion issues
Content Source: windows/client-management/troubleshoot-tcpip-port-exhaust.md
Product: w10
GitHub Login: @kaushika-msft
Microsoft Alias: kaushika

Been two months, any thoughts?

@officedocsbot assign @e0i

Hello, @jeffstokes72
The issue is under investigation and you will be updated with any changes on the go.
Thank you for providing feedback and following up.

@jeffstokes72 Thanks Jeff. I'll work on getting the updated blog added as well as bordering the screenshot.  For the fixes for netstat, are you suggesting adding a note to the article about the update?

Yeah I think that's a good idea
On Fri, May 10, 2019, 5:11 AM Lindsay<EMAIL_ADDRESS>wrote:

@jeffstokes72 https://github.com/jeffstokes72 Thanks Jeff. I'll work on
getting the updated blog added as well as bordering the screenshot. For the
fixes for netstat, are you suggesting adding a note to the article about
the update?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/windows-itpro-docs/issues/2419#issuecomment-491219232,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACFOL6KLT4E4Q2EL7SFCHKTPUU35BANCNFSM4GNHUV7Q
.

@jeffstokes72 Thanks Jeff.  I'm working with the team to have the changes made and approved soonest.

@jeffstokes72
Upon your feedback, We have updated the content with relevant changes accordingly. Thanks.

@officedocsbot close


PHIH-284-implement-logging-in-relevant-actions

added logging for all relevant actions in the backend for both file and console

LGTM, logging is very important for future work and debugging!
Hopefully it helps in the prod environment!


DL3009 info: Delete the apt-get lists after installing something

hadolint throws this

DL3009 info: Delete the apt-get lists after installing something

for https://github.com/Hongbo-Miao/hongbomiao.com/blob/c45ec2e2a74807306ff447c2899af1258337fb96/hm-keydb/Dockerfile#L9-L9

Tracking at https://github.com/hadolint/hadolint/issues/872

Temp fixed by #6451


Add option to sign in with social media accounts also.

Task:  Currently, It only have email/password based login, We can add login option using social media accounts too.

Hello @msk4862  I would like to work on this one.

Can I do that?

@yoBoyio go ahead!

Track your progress here @yoBoyio

@yoBoyio  you can also implement just signin with Google option for now.

@msk4862

@yoBoyio you can also implement just signin with Google option for now.
Or any one of the social account.

im working on google and facebook both .


DOC: Remove unused var & add txns to create_position_tear_sheet

I couldn't find any usage of set_context in create_position_tear_sheet so I removed it and also added info in the docstring for transactions.

@eigenfoo Fixed 🙂

Thanks @FreddieV4!


Laravel 5 Pagination Support

Hi,
Can you add support for Laravel 5 Pagination? The current implementation doesn't work and it throws an error "Class 'Illuminate\Support\Facades\Paginator' not found - since it doesn't exist", And the errors keeps on coming for every fix made.
Hopefully you will provide a fix soon.
Thanks.

Thanks for reporting. I don't have a running ElasticSearch setup, so you'd help if you can test. L5 has changed a bit how the Paginator works and removed the facade.

I performed a search with $pages = Page::search( $params )->paginate( 10 ) option and this time it didn't show any error, I am using $pages-render() method to show pagination links instead of $pages->links() since this method no longer exists.
Anyways this just shows results for the first page and pagination never gets displayed.
Dumping the $pages variable, I get
Paginator {#408 ▼
  #hasMore: false
  #items: Collection {#411 ▶}
  #perPage: 10
  #currentPage: 1
  #path: "/"
  #query: []
  #fragment: null
  #pageName: "page"
}

And without the paginate() option i..e $pages = Page::search( $params ) , I get the results
ElasticCollection {#206 ▼
  #response: array:4 [▼
    "took" => 1
    "timed_out" => false
    "_shards" => array:3 [▼
      "total" => 5
      "successful" => 5
      "failed" => 0
    ]
    "hits" => array:3 [▼
      "total" => 149
      "max_score" => 2.7690523
      "hits" => array:149 [ …149]
    ]
  ]
  #instance: Page {#208 ▶}
  #items: array:149 [▶]
}

So even though it doesn't show any errors, The pagination links are not displayed.

And i confirm the pagination works when i directly change the page parameter in url &page=1, &page=2, ... &page=10 in the url (in this case results per page is 15, and total records are 149).
And except the first page &page=1, For every other page i can see the pagination links, However the links url is set as base/domain url and not the current page/route url.

The new paginator is either buggy or I don't understand it fully. Having an incorrect url is understandable, but not having the links display on the first page makes no sense. I'll investigate.

I managed to fix both wrong URLs and not displaying at the first page (at least for my use case) by changing paginate() to:
    /**
     * Paginates the Elasticsearch results.
     *
     * @param int $perPage
     * @return mixed
     */
    public function paginate($perPage = 15)
    {
        $page   = Paginator::resolveCurrentPage() ?: 1;
        $path   = '/' . \Request::path();
        $sliced = array_slice($this->items, ($page - 1) * $perPage, $perPage + 1);

        return new Paginator($sliced, $perPage, $page, compact('path'));
    }

Oh, and btw this is Laravel 5' simple pagination, so $results->total() will not work.
The L5 equivalent to paginate() is:
    /**
     * Paginates the Elasticsearch results.
     *
     * @param int $perPage
     * @return mixed
     */
    public function paginate($perPage = 15)
    {
        $page   = Paginator::resolveCurrentPage() ?: 1;
        $path   = '/' . \Request::path();
        $sliced = array_slice($this->items, ($page - 1) * $perPage, $perPage);
        $total  = count($this->items);

        return new LengthAwarePaginator($sliced, $total, $perPage, $page, compact('path'));
    }

@rscafi can you create a pull request on the l5 branch using your modification? Preferably using the new LengthAwarePaginator.

@fadion sure I can. I'm just testing it a little longer.
I have a few ideas for this package, are you still using it in production? Is it open for "breaking changes" or should I just fork it?

It would be great!  What do you think?

@fadion I have modified the code according to AlexanderWright's code it worked fine. Kindly accept his merge request.


K-allagbe/issue1-setup-repo

Closes #1: repo setup and initial code

[x] decontainer config
[x] workflows
[x] initial code (notebook)
[x] documentation

@ThomasCardin please help me fix this: https://github.com/ai-cfia/llamaindex-db/actions/runs/7726927165/job/21064230103?pr=2. LICENSE file is present in this branch but not in main branch.


Loading XML scene, doesn't load VariantMap contents

if Scene is Saved using this method:
                    XMLFile file = new XMLFile(Context);
                    var fileroot = file.CreateRoot("RootNode");
                    _scene.SaveXML(fileroot);

it indeed saves all variables with their values to an XML file but when loading to the scene, all variables are successfully assigned back except for VariantMap... I can see the VariantMap is initialized but it is empty.
a repo is here
[SerializeField]
public VariantMap Vmap { get; set; }

the exportedXML is like this
 <component id="5" type="CustomNodeComponent">
      <attribute name="Vmap">
        <variant Key="Comments" type="String" value="testingcode" />
      </attribute>
 </component>

Problem with this and some other containers is that during loading we "steal" instance pointer from a Variant that is later destroyed. Instead contents should be copied. Assigning to myself.


[homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found

Home Assistant release with the issue:

0.101.3
Last working Home Assistant release (if known):
Unknown
Operating environment (Hass.io/Docker/Windows/etc.):

venv on Debian 9.11
Integration:

cloud
Description of problem:
2019-11-19 16:48:41 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-19 16:51:12 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-19 17:40:11 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-19 18:13:34 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-19 22:27:41 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-20 06:36:07 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-20 08:22:21 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-20 08:50:44 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.
2019-11-20 09:06:44 WARNING (MainThread) [homeassistant.components.cloud.google_config] Error reporting state - 5: Requested entity was not found.

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
cloud:

Traceback (if applicable):

Additional information:
Also reported by others in the HA Discord

This happens if Home Assistant is trying to report a state while the entity has not been configured on Googles side to have states reported.
Do you have state reporting enabled ?
I wonder if it has something to do with the recent changes to the local Google implementation.

Same issue here. Have 500 errors now

arch
x86_64

dev
false

docker
false

hassio
false

os_name
Linux

python_version
3.7.5

timezone
Asia/Jerusalem

version
0.101.3

virtualenv
true

Do you have state reporting enabled ?

Yes, I do

Same error on 102.2

resolve. I did new installation and don't added "cloud:" section in configuration.yaml

Wait, I am confused. Did you get this error while you are using a manual set up of Google Assistant ?

I had the same error (using the home assistant cloud. I fixed it by commenting out the following lines
tts:
- platform: google_translate
`

Realized that this would disable tts completely. So to fix it i changed my config as follows.
tts:
  - platform: google_translate
    service_name: google_translate_say

I got the same problem.
A question have come to my mind.
Is it supported to have config in cloud: and at the same time config the entities in the web ui?

I have the same problem.
I configured the integration via the web ui.  I just checked my config and I do have an entry for cloud:

We're working on getting re-certified that should hopefully fix this problem.

I had the same problem. Fixed it by adding service_name to my tts section. It now looks like this.
tts:
  - platform: google_translate
    service_name: google_translate_say

Thank you.  This fixed it for me, too.

Home Assistant release with the issue:
0.103.5
Operating environment (Hass.io/Docker/Windows/etc.):
venv on Ubuntu 18.04
Integration:
cloud
I get the same thing. I even can't restart home assistant, have to restart the system (ubuntu) to get home assistant to boot up again.
The last error I get is:
ERROR (Thread-7) [pychromecast.socket_client] [PhilipsTv:8009] Failed to connect. No retries.
It's not only the philips tv It's the pychromecast.socket_client in general. It's stalling at any og my chromecast devices ramdomly when I try to restart home assistant.

@balloob How long is the recertification process going to take?

Apologies. Realized it was caused by another bug. Releasing fix in 0.103.6. You will need to trigger one more sync from another location, then everything will be working again.

@balloob what does that mean?

Report state works again once you upgrade to 0.103.6 and ask Google Assistant to "Sync my devices"

Awesome! Good news!

I still get some errors on this subject...
2020-01-08 01:14:29 ERROR (MainThread) [hass_nabucasa.google_report_state] Unexpected error
Traceback (most recent call last):
File "/srv/homeassistant/lib/python3.7/site-packages/hass_nabucasa/iot_base.py", line 108, in connect
await self._handle_connection()
File "/srv/homeassistant/lib/python3.7/site-packages/hass_nabucasa/iot_base.py", line 147, in _handle_connection
await self.cloud.auth.async_check_token()
File "/srv/homeassistant/lib/python3.7/site-packages/hass_nabucasa/auth.py", line 145, in async_check_token
await self.cloud.run_executor(self._check_token)
File "/srv/homeassistant/lib/python3.7/site-packages/hass_nabucasa/init.py", line 169, in run_executor
return self.client.loop.run_in_executor(None, callback, *args)
File "/usr/lib/python3.7/asyncio/base_events.py", line 747, in run_in_executor
executor.submit(func, *args), loop=self)
File "/usr/lib/python3.7/concurrent/futures/thread.py", line 163, in submit
raise RuntimeError('cannot schedule new futures after shutdown')
RuntimeError: cannot schedule new futures after shutdown

@DKFrederik please open a new issue and also include your versions in use and when it occurs.

@DKFrederik Did you open a new issue? Could you link it here please? I'm also still getting the same error after upgrade to 103.6, and a resync of my devices.

@martinlong1978 No i did not. But I found my root cause. It was the entry mobile_app: in the configuration.yaml file.
I didn't investigate further yet due to lack of time. I just comment it out until I get the time to look into it....
I just started to comment out all of my entries until I didn't get the above error any more

ok. Thanks for responding
Martin
On Thu, 9 Jan 2020 at 23:39, Frederik Kristian Pedersen <
<EMAIL_ADDRESS>wrote:

@martinlong1978 https://github.com/martinlong1978 No i did not. But I
found my root cause. It was the entry mobile_app: in the configuration.yaml
file.
I didn't investigate further yet due to lack of time. I just comment it
out until I get the time to look into it....
I just started to comment out all of my entries until I didn't get the
above error any more
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/issues/28894?email_source=notifications&email_token=AACJ7G6WXD6NZGPYPNRFOYLQ46YUHA5CNFSM4JPPRLXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEISFQDY#issuecomment-572807183,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACJ7GYT35BGN6G2BZPAWYTQ46YUHANCNFSM4JPPRLXA
.

@martinlong1978
Sorry to disturb you again, but i made some progress that might interest you.
So I got the time to look into this (or rather the problem came back, so I had to look into it!). It seems that, at the time when things went bad with nabu casa vs. google integration, some funky things went on with the auth core component. Can't seem to figure out what exactly, but by the logs, it seems tight couplet.
So what I did was (to be sure I was on the right track) rename the hole hidden folder in the config directory ".storage" (I renamed it to be sure that I could return to the same state). After I renamed the folder, I forced Home Assistant to shut down (killed the service) and then restarted the system (Home Assistant) I then had to reintergrate my intergrations!
I have now been up and running, without any problems what so ever, for the entire day!
Just thought I would share my "findings", it might help you too!
Best regards
Frederik


Fix issue 5576 (regex matching bug in expr)

Fixes uutils/coreutils#5576
Issue 5576 reported a bug in expr, found by the fuzzer. The problem
turns out to be with the regex match operator :, which is defined in
POSIX and the GNU manual to match the pattern only when it occurs at
the beginning of the string, i.e., the regex has an implicit ^
prepended to it. We hadn't been doing that.
References:
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/expr.html
https://www.gnu.org/software/coreutils/manual/html_node/String-expressions.html

Thanks for your PR!


⚠ ClamAV has degraded performance

In cf8ca03, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 84 ms

Resolved: ClamAV performance has improved in 7933451.


Add arrow (or other symbols) at the middle of the lines

[x] I am using English in this issue. 在这个 Issue 中我使用了英文（强烈建议）。

General Questions

PLEASE MAKE SURE OF ALL THE FOLLOWING OPTIONS IN REQUIRED FIELDS ARE TICKED (with x)!
Otherwise, the issue will not be answered.
And think before you tick. :)
请确保以下每项都打上勾了！并且确保都做了这些事哦~ 这将大量简化我们的工作流程，使你的问题更快速得到解答。

[x] Required: I have read the document and examples and tried to solve it by myself. （必填）我读过了文档和教程，并且曾试图自己解决问题。
[x] Required: I have searched for similar issues and that didn't help. （必填）我搜索过 issue 但是没有帮助。
[x] Required: I have tried with the latest version of ECharts and still have this problem. （必填）我试过最新版本的 ECharts，还是存在这个问题。

In this issue, I have provided information with: 在这个 issue 中我提供了以下信息：

[x] Required: issue type；（必填）issue 类型
[x] Required: one sentence description in issue details；（必填）一句话的问题描述
[ ] Required: demo；（必填）能反映问题的例子（如果你想提问或报 bug）
[x] Required: ECharts version；ECharts 版本

Issue Type

[ ] I have a question to ask about how to use ECharts to ...；我想提问如何使用 ECharts 实现某功能
[ ] I have a bug to report；我想要报 bug
[x] I have a feature to request, e.g.: I'd like a new feature that ...；我需要一个新功能
[ ] I have a feature to enhance, e.g.: The current feature should be improved in the way that ...；我希望改进某个功能
[ ] There's something wrong with the documents；文档有些问题
[ ] Others, or I'm not sure which issue types to choose here；其他，或我不知道应该选什么类型

Issue Details

{DESCRIBE_HERE}
Add arrow (or other symbols) at the middle of the lines
Expected Behavior

{DESCRIBE_HERE}
Add arrow (or other symbols) at the middle of the lines
Current Behavior

{DESCRIBE_HERE}
Now symbols can only be added at the end or both end of the lines.
 如果是提问或报 bug 一定要提供这一项！
{ADD_LINK_OF_DEMO_HERE}

{PASTE_RELATED_CODE_HERE}
Topics

[ ] Legend
[ ] Tooltip
[ ] Event
[ ] Performance
[ ] SVG
[ ] Map
[ ] ECharts GL
[ ] Third-party libraries, e.g.: Vue.js, React

Anything Else We Need to Know

{DESCRIBE_HERE}
Environment

ECharts version；ECharts 版本: ^4.1.0
[ ] It happens only on certain browsers or operating systems. 对于特定浏览器或操作系统才会出现的问题，请提供相应环境信息：{BROWSER_VERSION_OR_OS_INFORMATION_HERE}

@mzy2240 http://www.echartsjs.com/option.html#series-lines.label.position
label.position set middle,

Wow thanks man. However, I already have other text labels in the middle of the lines, so this may not work for me. Any other ideas? Thanks!

For example, I want the arrow in the middle of the lines, while the labels will be above the lines.


[fix] support data:image URLs in prerendering

fixes: https://github.com/sveltejs/kit/issues/2645
Before submitting the PR, please make sure you do the following

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[ ] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpx changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

Would nice to add a test case for this as well

Discussion on Discord about whether we might need to do HTML parsing to make this work: https://discord.com/channels/457912077277855764/781266015601295360/904411015083606106

there is long discusion https://discord.com/channels/457912077277855764/781266015601295360/906016984267886682 about using combination of more regexes with JS logic...
I liked idea of using something like @syberag suggested
function extractData(source) {
    let getTag = /<(a|link|img|source)\b/g
    let getAttributes = /(?<name>\w+)\s*(?:=(?:"([^"]*)"|'([^']*)|([^>]+)\b))?/g
    let tags = source.matchAll(getTag)

    return Array.from(tags).map(tag => {
        let start = tag.index
        let subSource = source.substr(start + tag[0].length) // Issue is probably here, because I take the document until the end instead of just the tag
        let attributes = Array.from(subSource.matchAll(getAttributes))
        return {
            tag: tag[1],
            attributes: attributes.map(attr => ({name: attr.groups.name, value: attr[2]||attr[3]||attr[4]}))}
    })
}

even tho, this doesn't work correctly, but with this approach I think, we can make performance fast, dependency less and less buggy solution.

My understanding from the Discord thread is that the issue here is attributes containing the > character. It feels like the proper solution here is for attribute values to be properly escaped by Svelte, so that we are able to use regexes safely — parsing the HTML would be a hugely expensive change. Does that feel like a good approach?

My understanding from the Discord thread is that the issue here is attributes containing the > character. It feels like the proper solution here is for attribute values to be properly escaped by Svelte, so that we are able to use regexes safely — parsing the HTML would be a hugely expensive change. Does that feel like a good approach?

In input, we get string, that contains HTML code... but in this string how we can detect which > character to escape, and which not? Resp. do we escape all of them? If so, how will that regex match, what is tag, what attribute, and where tag ends?
Now imagine You have this crazy input:
<img data-something=" src=" crossorigin src="dog>cat.png"> crazy link </a>

It means, that " src=" is not attribute name, but value. Regex is chomsky type 3 grammar, while HTML is type 2.
We write regex, that will find something between " and "... what we will get in match:

 src=
 crossorigin src=
dog>cat.png

And that's when there is not another tag before or after.
If we match anything between < and > we get:
img data-something=" src=" crossorigin src="dog -> our issue now.
When we want to read src value, we get:

 crossorigin src=
dog

those both values are incorrect, we want dog>cat.png
I'm not sure how we would be able to fix it with escaping, when we still needs to find where to escape > character and where not. Also there is still a lot of other issues related to how we parse it with regex. For example: https://github.com/sveltejs/kit/issues/2742
where @Conduitry answered https://github.com/sveltejs/kit/issues/2742#issuecomment-962531568
I think, because regex can't cover all cases of HTML language parsing, I'm sure it would be good to rewrite it, and use parse5 parser instead. It would fix a lot of bugs, and even those, we don't know about today.

I see there is good solution with parse5 in PR https://github.com/sveltejs/kit/pull/2923 ... that fix this problem.


Png images background

When I load an image .png with transparency, when export, it doesn't keep the transparency and put a light gray in background.
There's any way to solve this?

Are you exporting in png format? If you do, it should keep the transparency.

Yes, I was mistaken again. The way that firefox shows the exported image, seems it doesn't have transparent background.


Rework palette element view

Palette view should use Render Service getNodeView() function if it's available.
Also I think we should mark Render Service extension functions deprecated:

initializeNewNode()
initializeNewDecoration()
initializeNewHandle()

Reasoning behind this is it is best to provide getNodeView() function in the Render Service and override render() or renderMarkup() functions.
@aclement we should probably briefly discuss this.

Merged


Adding Github Actions

Hi
This commit will add automatic deployment to Github Pages.
This will make it easier for people to use their Portfolio freely and readily.
KR
Jens

Hi
This commit will add automatic deployment to Github Pages.
This will make it easier for people to use their Portfolio freely and readily.
KR
Jens

Hey @jensdufour !
Thank you for this, it would be good to add some documentation explaining how to deploy the site using Github pages. Because I only explained how to do it using Netlify.
I will merge the PR! but waiting your response anyways 👍

Hi
Basically, this just compiles it to a different branch and that branch can be published for free by Github Pages.
You can see it in action here : https://github.com/jensdufour/jensdufour.github.io


list merge field create returns a data with 'merge_id'

… and not 'id' in it.

Could you release this to pypi?

Updated version in README files and package version. Paging @charlesthk to push to PyPi.


golang: fix longpollingtimeout

Fixed long polling timeout

Codecov Report

Merging #290 (ac91d64) into master (acba52c) will decrease coverage by 0.06%.
 Consider uploading reports for the commit 02ec57d to get more accurate results

@@             Coverage Diff              @@
##             master     #290      +/-   ##
============================================
- Coverage     35.93%   35.86%   -0.07%
+ Complexity      666      662       -4
============================================
  Files           220      220
  Lines         11213    11234      +21
  Branches        276      275       -1
============================================
  Hits           4029     4029
- Misses         6930     6957      +27
+ Partials        254      248       -6

Flag
Coverage Δ

golang
37.74% <16.66%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

golang/simple_consumer.go
0.00% <0.00%> (ø)

golang/client.go
44.18% <100.00%> (ø)

...ent/java/impl/producer/PublishingLoadBalancer.java
34.88% <0.00%> (-30.34%)
:arrow_down:

...cketmq/client/java/message/MessageBuilderImpl.java
77.77% <0.00%> (-5.15%)
:arrow_down:

.../org/apache/rocketmq/client/java/route/Broker.java
50.00% <0.00%> (-4.55%)
:arrow_down:

...e/rocketmq/client/java/route/MessageQueueImpl.java
75.00% <0.00%> (-2.78%)
:arrow_down:

cpp/include/rocketmq/Message.h
38.70% <0.00%> (-1.30%)
:arrow_down:

...cketmq/client/java/impl/producer/ProducerImpl.java
31.41% <0.00%> (-1.03%)
:arrow_down:

...ache/rocketmq/client/java/metrics/ClientMeter.java
66.66% <0.00%> (-0.73%)
:arrow_down:

.../client/java/impl/consumer/SimpleConsumerImpl.java
41.93% <0.00%> (-0.69%)
:arrow_down:

... and 15 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


fixes broken link to eslint

I noticed the link to ESLint in the JavaScript coding guidelines README was broken. Since GitHub now supports relative links, a prefix needs to be prepended to a URL, or else it will try linking to the URL from within your repo.
Currently, the link leads to https://github.com/lyst/MakingLyst/blob/master/javascript/coding-standards/eslint.org/docs/rules. I've added an http:// prefix, so now it leads to the right place.

Thanks @msmichellegar ! :D

Thanks @phalt :)


hitting reply on a post redirects me to internal ip, not reverse proxy

Sorry, I can't fix the issue because I don't understand much of the code in the views templates.

this is the form were I get the bad redirect.

Does the last commit solve this issue? Redirects were not affected by url_prefix

Does the last commit solve this issue? Redirects were not affected by url_prefix

no, I am using the master so the last commit doesn't solve the issue

no, I am using the master so the last commit doesn't solve the issue

This commit? 89bf7ebc909b2cc4468a2c4a249aee28a837623c

This commit? 89bf7ebc909b2cc4468a2c4a249aee28a837623c

It now works. Thank you very much!

It now works. Thank you very much!


fix latticectl colon:syntax

216 broke the latticectl colon:syntax. unclear if we want to use it, but should fix it regardless
also should temporarily add a way to set colon use by checking for a file at ~/.config/latticectl/use-colons

fixed in https://github.com/mlab-lattice/lattice/pull/230


Extract test app + Switch to pnpm

Context, Plan, etc: https://gist.github.com/NullVoxPopuli/eafc7dad6547de5e730098498b829e1f
Due to errors discovered in the test-app extraction PR, here: https://github.com/emberjs/ember-qunit/pull/1061
I'm exploring using pnpm, in part because:

pnpm is really good
yarn is not

it's not worth anyone's time to try to get yarn and monorepos working well :tada:
Requires that this be merged first:

https://github.com/emberjs/ember-qunit/pull/1060

Does knowing that the test-app is the addon, copied, help?
Just missed a couple files in the adaptation to a real app is all

Pr updated, you'll want to keep going through the commits tho, because each commit is not a at the level of a whole PR would be. later commits address issues in earlier commits.


[Bug]: waitForNavigation({ waitUntil: 'networkidle0' }); does not behave the same as await page.waitForNetworkIdle

Bug description
Working with puppeteer in Linux environment i have found await page.waitForNavigation({ waitUntil: 'networkidle0' }); does not behave the same as await page.waitForNetworkIdle();
await page.waitForNavigation({ waitUntil: 'networkidle0' }) seems to not wait until the images are fully loaded. after using this in a personal project and trying to
cosnt imageWidth= await imageElementHandle.evaluate(
      (imageDomElement) => imageDomElement.naturalWidth,
    )

await page.waitForNavigation({ waitUntil: 'networkidle0' })  is not waiting for the image to be fully loaded and it cause imageWidth to be 0
in opposition await page.waitForNetworkIdle(); properly wait until the image is loaded and define imageWidth with the propper width of the image
Puppeteer version
"puppeteer": "14.3.0"
Node.js version
v16.15.0
npm version
8.9.0
What operating system are you seeing the problem on?
Linux
Relevant log output
No response

Hi @Josehower
pass the options in array its should works.
await page.[waitForNavigation](''url")({ waitUntil: ['networkidle2'] })

Do you have a script to reproduce the issue? I think there is a difference in that waitForNavigation seems to be using the backend/chromium events and waitForNetworkIdle has it own logic for seeing if there are any network events reported.

Hi @OrKoN!
I hope you're doing well. I saw the issue @Josehower posted about the differences between the waitForNetworkIdle and waitForNavigation methods when searching for an image.
I wrote a small script using Puppeteer to compare the two methods. Here's the test script I used:
import { launch } from 'puppeteer';

(async () => {
  const browser = await launch();
  const page = await browser.newPage();

  await page.goto('https://www.google.com');

  // Wait for the image to load using waitForNetworkIdle()
  const imageElementHandle1 = await page.$('img');
  await page.waitForNetworkIdle();
  const imageWidth1 = await imageElementHandle1.evaluate(
    (img) => img.naturalWidth,
  );
  console.log('Image Width (waitForNetworkIdle):', imageWidth1);

  await page.goto('https://www.google.com');

  // Wait for the image to load using waitForNavigation()
  await page.waitForNavigation({
    waitUntil: 'networkidle0',
    timeout: 3000,
  });

  const imageElementHandle2 = await page.$('img');
  const imageWidth2 = await imageElementHandle2.evaluate(
    (img) => img.naturalWidth,
  );
  console.log('Image Width (waitForNavigation):', imageWidth2);

  await browser.close();
})();

After running the script, I found that the first console.log for using waitForNetworkIdle logs:
Image Width (waitForNetworkIdle): 272

The second method using waitForNavigation throws an error:
TimeoutError: Navigation timeout of 3000 ms exceeded

I hope this helps provide more information on the issue.

@ProchaLu these two lines are likely flaky
await page.goto('https://www.google.com');

  // Wait for the image to load using waitForNavigation()
  await page.waitForNavigation({
    waitUntil: 'networkidle0',
    timeout: 3000,
  });

navigation might happen before page.waitForNavigation is called and there is no second nav so it never resolves.

await page.waitForNetworkIdle(); is not flaky because it waits for the state (no requests within 500ms) and not for a navigation event reporting networkidle0

The following works for me:
import { launch } from 'puppeteer';

(async () => {
  const browser = await launch();
  const page = await browser.newPage();

  await page.goto('https://www.google.com');

  // Wait for the image to load using waitForNetworkIdle()
  const imageElementHandle1 = await page.$('img');
  await page.waitForNetworkIdle();
  const imageWidth1 = await imageElementHandle1.evaluate(
    (img) => img.naturalWidth,
  );
  console.log('Image Width (waitForNetworkIdle):', imageWidth1);

  const nav = page.waitForNavigation({
    waitUntil: 'networkidle0',
    timeout: 3000,
  });
  await page.goto('https://www.google.com');
  // Wait for the image to load using waitForNavigation()
  await nav;

  const imageElementHandle2 = await page.$('img');
  const imageWidth2 = await imageElementHandle2.evaluate(
    (img) => img.naturalWidth,
  );
  console.log('Image Width (waitForNavigation):', imageWidth2);

  await browser.close();
})();

So to summarise: my opinion is that in this example it works as expected. These are different methods checking slightly different but related things.

Interesting approach with starting the page.waitForNavigation promise early:
const nav = page.waitForNavigation({ waitUntil: 'networkidle0', timeout: 3000 });
await page.goto('https://www.google.com/');
await nav;

Would Promise.all be another option? I think I've seen this pattern also in the docs:
await Promise.all([
  page.waitForNavigation({ waitUntil: 'networkidle0', timeout: 3000 }),
  page.goto('https://www.google.com/'),
])

yes, the Promise.all pattern also works (it's practically the same).

  {
    const targetPage = page;
    const promises = [];
    const startWaitingForEvents = () => {
      promises.push(targetPage.waitForNavigation());
    }
    await puppeteer.Locator.race([
      targetPage.locator('div.zm-message-box__wrapper button.zm-button--primary > span')
    ])
      .setTimeout(timeout)
      .on('action', () => startWaitingForEvents())
      .click({
        offset: {
          x: 11.453125,
          y: 9,
        },
      });
    await Promise.all(promises)
  }

This code gives me an error
TimeoutError: Navigation timeout of 60000 ms exceeded
at new Deferred (/Users/anmolvarma/projects/scripting/wfm_req/automation/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:59:34)
at Deferred.create (/Users/anmolvarma/projects/scripting/wfm_req/automation/node_modules/puppeteer-core/lib/cjs/puppeteer/util/Deferred.js:21:16)
at new LifecycleWatcher (/Users/anmolvarma/projects/scripting/wfm_req/automation/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/LifecycleWatcher.js:66:60)
at CdpFrame.waitForNavigation (/Users/anmolvarma/projects/scripting/wfm_req/automation/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Frame.js:184:29)
at CdpFrame. (/Users/anmolvarma/projects/scripting/wfm_req/automation/node_modules/puppeteer-core/lib/cjs/puppeteer/util/decorators.js:98:27)
at CdpPage.waitForNavigation (/Users/anmolvarma/projects/scripting/wfm_req/automation/node_modules/puppeteer-core/lib/cjs/puppeteer/api/Page.js:616:43)
at startWaitingForEvents (/Users/anmolvarma/projects/scripting/wfm_req/automation/util/zoom.js:362:32)
at /Users/anmolvarma/projects/scripting/wfm_req/automation/util/zoom.js:368:27
at /Users/anmolvarma/projects/scripting/wfm_req/automation/node_modules/puppeteer-core/lib/cjs/third_party/mitt/mitt.js:62:7
at Array.map ()
If I use sleep then it works fine. I have used it in the same way as described in the comments. Ideally it should wait for the page to load and then run the action.


HTTP module does not work

Version (which release did you use?): Latest commit , built locally
Describe the bug
I was unable to use the HTTP module to pull data from a server. It says, module HTTP not found (something like that, I'm currently AFK, will elaborate later)
To Reproduce
Steps to reproduce the behavior:

In config.nog, import 'nog/http'
Create a custom component and call HTTP::get in the render function

Expected behavior
My MOTD is pulled and displayed on the bar, day is saved and I'm happier
Actual behavior
An error saying that module HTTP not found, no MOTD is displayed, day is slightly ruined.

Nevermind, I didn't know that functions in rhai are supposed to be pure.


Polymorphic responses

The API we develop uses quite some inheritance in its models. The approach Kiota takes with allOf suits us quite well, but we are having problems defining paths with polymorphic responses. Our API is a bit too large to share here, but I've created a similar situation using the inheritance example from the documentation. This example API has one path that returns a directoryObject, which can be either a user or a group.
If the response references the directoryObject, the resulting code only contains this directoryObject and no code is generated for the user and group. In this situation the entire typing is lost. If I change the type of the response to a oneOf, the resulting code does contain model classes for directoryObject, user and group. However, the result type of the request method will be a union type or wrapper. Although this is technically correct, it is not very convenient. The OpenAPI specification needs to enumerate all possible types and the user of the API has to check the returned type on every call.
I'm looking for a way to have the request method use directoryObject as return type, but use the actual subtype (user or group) as value.
The example OpenAPI specification is:
{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "OpenAPI polymorphism",
    "version" : "1"
  },
  "servers" : [ {
    "url" : "http://localhost:8080"
  } ],
  "paths" : {
    "/example" : {
      "get" : {
        "summary" : "Read a polymorphic type",
        "operationId" : "example",
        "responses" : {
          "200" : {
            "description": "Example",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/microsoft.graph.directoryObject"
                }
              }
            }
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "microsoft.graph.directoryObject": {
        "allOf": [
          {
            "title": "directoryObject",
            "required"<EMAIL_ADDRESS>            "type": "object",
            "properties": {
<EMAIL_ADDRESS>{
                "type": "string",
                "default": "#microsoft.graph.directoryObject"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName"<EMAIL_ADDRESS>          "mapping": {
            "#microsoft.graph.user": "#/components/schemas/microsoft.graph.user",
            "#microsoft.graph.group": "#/components/schemas/microsoft.graph.group"
          }
        }
      },
      "microsoft.graph.user": {
        "allOf": [
          { "$ref": "#/components/schemas/microsoft.graph.directoryObject" },
          {
            "title": "user",
            "type": "object"
          }
        ]
      },
      "microsoft.graph.group": {
        "allOf": [
          { "$ref": "#/components/schemas/microsoft.graph.directoryObject" },
          {
            "title": "group",
            "type": "object"
          }
        ]
      }
    }
  }
}

Hi @papegaaij
Thanks for using Kiota and for reaching out.
Which language are you generating for? What you're describing should already be the case but some languages are more mature than others?
Which version of kiota are you generating with? Have you tried with 1.3.0?

Hi @baywet
I was using 1.2.1, but just tried with 1.3.0 as well. I've generated code for CSharp, Go and Java from the example OpenAPI specification I posted above, and all 3 generate very similar output. There is no models package/directory and the response of the single operation is placed in a DirectoryObjectResponse. This does not contain the user or group types, only the directoryObject. When I put additional properties in user, these will not be generated anywhere in the code.
It could be that the example I provided is wrong or not in the format expected by Kiota. OpenAPI is rather free and there are many ways to write the same spec. If so, could you please explain how to change to spec? The documentation only contains an example about the inheritance, not with a polymorphic response.

It might be because your user and group schemas don't have any properties of themselves and are getting trimmed (unless you simplified them for this discussion).
Could you compare your definition with our official ones please? https://github.com/microsoftgraph/msgraph-metadata/blob/master/openapi/v1.0/openapi.yaml
Case and point /groups/id/members returns a collection of directory objects (wrap in a response class in that case, but similar to yours) https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/10eaf4b4bc7f0dc535b41938402bedb60d95cc7f/src/Microsoft.Graph/Generated/Models/DirectoryObjectCollectionResponse.cs#L17

No, the outcome is the same with 1.1.3. I've also added a property to both user and group, to make sure these were not trimmed because they are empty, but that doesn't help either.
I decided to take a different approach and trim down the MSGraph openapi.yaml and I think I may have found the cause. In the example on https://learn.microsoft.com/nl-nl/openapi/kiota/models the base class is directoryObject, but it contains a reference to its superclass entity. I removed that reference to keep the inheritance 1 level deep, however, I left the remainder of the type the same. It turns out that the allOf in the base class confuses Kiota and breaks the polymorphism. If I change the definition of directoryObject to the following, it works fine again:
      "microsoft.graph.directoryObject": {
        "title": "directoryObject",
        "required"<EMAIL_ADDRESS>        "type": "object",
        "properties": {
<EMAIL_ADDRESS>{
            "type": "string",
            "default": "#microsoft.graph.directoryObject"
          }
        },
        "discriminator": {
          "propertyName"<EMAIL_ADDRESS>          "mapping": {
            "#microsoft.graph.user": "#/components/schemas/microsoft.graph.user",
            "#microsoft.graph.group": "#/components/schemas/microsoft.graph.group"
          }
        }
      },

It turns out that our own OpenAPI has the exact same issue, with the base type consisting of a single allOf.

Thanks for the additional information. I'm guessing this is somewhat related to #2720 and #2434.
It really looks like a duplicate of #2434 in facts... Would you mind trying the earlier form for directoryObject, but removing any other property besides the allOf please?

@baywet I don't really understand what you mean. The original form only had a single property, the discriminator. I don't see any part besides the allOf I could remove workout breaking the example. This is the original definition:
      "microsoft.graph.directoryObject": {
        "allOf": [
          {
            "title": "directoryObject",
            "required"<EMAIL_ADDRESS>            "type": "object",
            "properties": {
<EMAIL_ADDRESS>{
                "type": "string",
                "default": "#microsoft.graph.directoryObject"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName"<EMAIL_ADDRESS>          "mapping": {
            "#microsoft.graph.user": "#/components/schemas/microsoft.graph.user",
            "#microsoft.graph.group": "#/components/schemas/microsoft.graph.group"
          }
        }
      },

I mean this
 "microsoft.graph.directoryObject": {
        "allOf": [
          {
            "title": "directoryObject",
            "required"<EMAIL_ADDRESS>            "type": "object",
            "properties": {
<EMAIL_ADDRESS>{
                "type": "string",
                "default": "#microsoft.graph.directoryObject"
              }
            }
          }
        ]
      },

I've tried several different setups, but as soon as the base type has an allOf, the inheritance is broken. I've also tried adding the microsoft.graph.entity with an allOf, and it gives the same issue. The base type cannot have an allOf.
In the same category, I've also spotted an issue with the subtypes: these must have an allOf and it must have exactly 2 parts. If, for some reason, I split the allOf of the subtype in 3 parts, the reference to its supertype, the first half of the properties and the second half of the properties, code generation is also broken: only the second half of the properties get generated.
It seems Kiota is quite strict in the format of the OpenAPI file, while the OpenAPI specification allows for a lot of variation. Maybe Kiota could benefit from a normalization step in the generation process, where these variations are all converted into a single canonical format?

base type being an all of and derailing inheritance: if you could come up with a unit test as found in KiotaBuilderTests it'd be super helpful to investigate this issue.
x > 2 entries: this should get flattened into a single class (with all properties) after implementing #2438 (version 1.2)
We did a lot of thinking and adjustments on the types projection. The gist being JSON schema (what OpenAPI uses to describe the payloads) is a validation schema and not an IDL. People use AllOf to materialize inheritance by convention, there are a couple of different conventions going on, but it's not what JSON schema is designed for. While there are ongoing efforts to define an IDL vocab (extension) for JSON schema, we're still a long way out from broad adoption. For this reason we've had to make judgement calls.

@baywet as you can see, I've created a PR with 2 new tests. Please note that these were my first lines of C# ever, so it could be that did not do things entirely correct.


[Cloud Deployment IVd] AWS usage docs

Does not technically depend on the other PRs, but of course would not be usable without them
Feel free to trim/reword/modify as needed
It's pretty hefty on the amount of setup required, but I don't see any way to reduce that. It is what it is I suppose...

@h-mayorquin is this PR ready to merge? It would be nice if I could point to the AWS demo on the main docs.


Add sierra college domain

@jakeslye I am sorry, the domain student.sierracollege.edu is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Error: Could not locate the bindings file

I am currently trying to install this module using repl.it.I am using node version 12.18.3 and npm version 6.14.6.
My only issue is that whenever I try and import the module I get the error:
(node:12944) UnhandledPromiseRejectionWarning: Error: Could not locate the bindings file. Tried:
→ home\runner\Billybobbeep\better-sqlite3\build\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\build\Debug\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\build\Release\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\out\Debug\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\Debug\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\out\Release\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\Release\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\build\default\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\compiled\12.18.2\win32\x64\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\addon-build\release\install-root\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\addon-build\debug\install-root\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\addon-build\default\install-root\better_sqlite3.node
→ home\runner\Billybobbeep\better-sqlite3\lib\binding\node-v72-win32-x64\better_sqlite3.node
at bindings (C:\Users\tyler\OneDrive\Billybobbeep\node_modules\bindings\bindings.js:126:9)
at Object. (C:\Users\tyler\OneDrive\Billybobbeep\better-sqlite3\lib\database.js:9:24)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Module.require (internal/modules/cjs/loader.js:1026:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object. (C:\Users\tyler\OneDrive\Billybobbeep\better-sqlite3\lib\index.js:2:18)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
(node:12944) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:12944) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
I have tried installing it as a node module and it doesn't work so I downloaded the source from github and I'm getting the same error.

do you have ignore-scripts=false in ~/.npmrc as a security precaution?
I think those hooks are used to compile the necessary binaries?
Removing that line worked for me.
with ignore-scripts=true
npm install better-sqlite3
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

+<EMAIL_ADDRESS>added 65 packages from 38 contributors and audited 132 packages in 2.757s

5 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

without setting ignore-scripts=true
npm install better-sqlite3

><EMAIL_ADDRESS>install /Users/nori/projects/wallet/server/node_modules/better-sqlite3
> prebuild-install || npm run build-release

prebuild-install WARN install No prebuilt binaries found (target=14.15.1 runtime=node arch=x64 libc= platform=darwin)

><EMAIL_ADDRESS>build-release /Users/nori/projects/wallet/server/node_modules/better-sqlite3
> node-gyp rebuild --release

  TOUCH b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
  ACTION deps_sqlite3_gyp_locate_sqlite3_target_extract_sqlite3 b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
  TOUCH Release/obj.target/deps/locate_sqlite3.stamp
  CC(target) Release/obj.target/sqlite3/gen/sqlite3/sqlite3.o
  LIBTOOL-STATIC Release/sqlite3.a
  CXX(target) Release/obj.target/better_sqlite3/src/better_sqlite3.o
  SOLINK_MODULE(target) Release/better_sqlite3.node
  CC(target) Release/obj.target/test_extension/deps/test_extension.o
  SOLINK_MODULE(target) Release/test_extension.node
rm b857c92884e9598d609f6be182a2595df7a8e00f.intermediate
npm WARN<EMAIL_ADDRESS>No description
npm WARN<EMAIL_ADDRESS>No repository field.

+<EMAIL_ADDRESS>added 65 packages from 38 contributors and audited 132 packages in 50.082s

5 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities`

I encountered this error using Windows 10, Node 14, Electron, and esbuild.
I get this error because the bindings package searches the project root instead of node_modules for the native modules.
I could not reproduce this issue with a very simple from-scratch example, but I was able to reproduce it in the electron-esbuild-create-app hello world. I've posted a repo here to reproduce:
https://github.com/parkertomatoes/electron-better-sqlite3-bindings-error
steps after cloning:
npm install
npx electron-rebuild -v 12.0.2
npm run dev

if I create a folder, build in the project root, and copy better_sqlite3.node into there from node_modules\better-sqlite3\build\Release, the error does not occur.

I think this has to do with the following behavior in the bindings package:

The searching for the .node file will originate from the first directory in which has a package.json file is found.

When running a bundled version of better-sqlite3, it won't be loaded from the node_modules folder, and therefore it tries loading the package from the project root.
Not sure how to work around that for now.

no

I'm also dealing with this issue, manually copying the file to the build folder provides temporary relief, but isn't a long-term fix

Nevermind, I was able to resolve my issues with https://github.com/JoshuaWise/better-sqlite3/issues/126#issuecomment-535459620

Closing this as a duplicate of https://github.com/JoshuaWise/better-sqlite3/issues/126

I solved it by installing better-sqlite3 in Dockerfile instead of package.json & using pnpm's supportedArchitectures feature.


hot_mode_dev_cycle__benchmark_hotReloadMillisecondsToFrameAfterChange regression

Possibly a candidate for rebaselining. No clear culprit.

This is possibly related to https://github.com/flutter/flutter/issues/49893 and the identified fix at https://dart-review.googlesource.com/c/sdk/+/134164 , since this regressed along with the flutter_tester benchmark and the analyzer benchmark

A bunch of hot reload numbers got worse recently:

Dropping TODAY label as we believe we have a fix in flight and don't want to block the roll.

We're now at dart c8ed304e979a283f10e28a4104e0da31a3f114ff and performance has not returned to previous levels

I miscounted, we're still behind by a Day

These are back to normal levels now


PI nanomsg hangs if the corresponding switch crashes

I have been successfully using nanomsg instead of virtual interfaces to run simple switch. An example is this PR:
https://github.com/p4lang/p4c/pull/3951
However, there is one problem. If simple_switch crashes, the nn framework seems to get stuck at this point:
https://github.com/p4lang/ptf/blob/7494366607e2e4c171439df3585eba3c9769fad8/src/ptf/dataplane.py#L384
It tries to remove the port but does not get a response back, presumably because the socket is blocking indefinitely? Is there a straightforward way to fix this?

It's not supported by PTF currently, but I would recommend the gRPC service for injecting packets (https://github.com/p4lang/behavioral-model/blob/main/services/p4/bm/dataplane_interface.proto), instead of the nanomsg socket. You could consider adding that support to PTF...
The nanomsg stuff we use doesn't seem to be actively maintained any more. There are new implementations (both for the core library and the Python module). I don't know if using these would help.
I could think of the following workaround (not guaranteed to work): force delete the socket files after you detect that simple_switch_grpc has crashed. I assume this is an unplanned crash (e.g. segfault), and not a signal we could trap in bmv2 to close the socket before exiting.

Thanks, will try to give the hack a shot.


Line of code doesn't make sense

https://github.com/DaoDeCyrus/geocoder/blob/master/lib/geocoder.ex#L50\
@iloveitaly what do you think?

@DaoDeCyrus what doesn't look right to you?


Binary search related approach to search in a row wise & column wise sorted matrix

💥 Proposal
I want to add C++ code for Binary search related approach to search in a row wise & column wise sorted matrix under Gssoc'21.
Have you read the Contributing Guidelines on Pull Requests?
Yes
(Write your answer here.)

/assign


Investigate how to use fuzzing in Spring unit tests

Description
We should finally investigate what to do with fuzzer in unit tests.

First of all, how can it be used in No configuration mode?

May be for non-Spring classes (that do not inject mocks)
May be for the items, that cannot be injected from Spring (e.g. collections passed to constructors)?

Investigate is it useful to generate unit tests with Fuzzing with Spring configuration applied
Substitute interfaces with implementations.
Seems that at least non-Spring classes (that do not inject mocks) Fuzzer may be useful in the mode with configuration too.
Investigate other cases to use Fuzzing with configuration.

There is a connected question how do we test some Utils class in Spring projects now, that injects nothing

with engine?
with fuzzer?

One not mentioned alternative, is to always use fuzzing in unit tests, and generate two (possibly nested) test classes:

test class with @InjectMock and engine generated tests;
test class without @InjectMock and fuzzer generated tests.

Furthermore, if either of these classes turns out to be empty we should skip it.
Finally, the only scenario when these two test classes can be merged into one seem to be when we have no @Mock fields.

@IlyaMuravjov Please discuss possibility of mocking in Spring-specific-only Fuzzing


Having trouble getting the class defaults of your blueprint.

I am trying to automate your plugin and need access the the heightmap property.  For some reason I can't get to it using code like I normally do.  Please see this post for details https://forums.unrealengine.com/t/how-do-you-get-nested-editor-properties-from-class-default-object-using-python/683451.  Any help would be appreciated. TY!

Did you try to debug or print out all elements in blueprint_class_default? Maybe this could yield a clue on the correct key.


daytime nighttime sensors

Implements sensors for daytime and nighttime.
It uses the sunrise and sunset rather than dusk to dawn, or night and night end so it's consistent with the sunsrise/sunset sensors (e.g someone triggers something on sunset they can assume then that nighttime has started).

Thanks for the PR! This has been released in 0.0.4


Update README.md

🚀 🚀 Pull Request
Checklist:

[ ]  My code follows the style guidelines of this project and the Contributing document
[ ]  I have commented my code, particularly in hard-to-understand areas
[ ]  I have kept the coverage-rate up
[ ]  I have performed a self-review of my own code and resolved any problems
[ ]  I have checked to ensure there aren't any other open Pull Requests for the same change
[ ]  I have described and made corresponding changes to the relevant documentation
[ ]  New and existing unit tests pass locally with my changes

Changes

@istranic just a small note, if we're saying that an ORGANIZATION is created, shouldn't we also say
ds = deeplake.load('hub://<ORGANIZATION_NAME>/test-dataset') instead of ORG_NAME?
no strong feelings about this either way.

@mikayelh I fixed the org name comment.


Supports returning abstract types setup calls to be overriden.

This PR fixes #346.

Thank you for your contribution! It's now live as AutoFixture.AutoNSubstitute 3.23.2.
Sorry that it took so long, but I've been really snowed under lately :grimacing:


Allow non-named function parameters in type aliases and generic types (optionally)

Suggestion
Add optional support of shorthand notation (non-named) for function parameters in type aliases and generic parameter declarations. For example:
type Fn = (number, string) => void

function foo<Cb = (number) => void>(callback: Cb) {}

instead:
type Fn = (num: number, str: string) => void

function foo<Fn = (num: number) => void>(callback: Fn) {}

Which strictly required for now.
Maybe I have missed something and this is an important feature of TS without which the type checking system will not work properly?
🔍 Search Terms
function parameters named non-named notation declaration type alias
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

📃 Motivating Example
Most of the languages support shorthand function notation in type aliases for such cases like Rust, Dart, Kotlin, Swift  and etc

Duplicate of #16668 and others.
See this comment: https://github.com/microsoft/TypeScript/issues/13152#issuecomment-269099764

Thanks! While that issue was closed I would like to bring it up again.
From https://github.com/microsoft/TypeScript/issues/13152#issuecomment-269099764

I think it is too late to make this sort of change. Because of the current behavior, interpreting a single identifier as a type would be a breaking change.

I disagree about breaking change. If this feature will be optional. For example has compiled could handle mixed cases:
lat b = 0;
type Fn1 = (a, string) => void // Error: 'a' unknown type
type Fn2 = (b, string) => void // Error: 'b' is not a type

mixed cases:
type Fn1 = (num: number, string) => void  // Ok
type Fn2 = (num: number, str: string) => void  // Ok
type Fn3 = (number, str: string) => void  // Ok

I also believe that it helps with documentation. Having used Haskell in the capacity that I have, I will say that omitting parameter names helps doesn't help anybody when they're learning a new library. While there's something to be said about an easier syntax, types being the only form of documentation for people often makes it difficult to understand intent, so requiring a parameter has its benefits.

Yes, I agree with that, and it is probably the only useful feature of this convention. But I'm not suggesting to remove naming in signatures at all, just to make it optional; it's quite feasible and won't lead to any breaking changes or deprive the possibility to declare parameter names more explicitly for, say, a better docs

It even could be very easy implement without any huge changes. Just syntactically de-sugar this
(number, string) => void

to
(number: number, string: string) => void

It is a breaking change, because (number, string) => void currently means (number: any, string: any) => void.

Just syntactically de-sugar this [..] to [..]

This would be a massive breaking change, which according to the comment in #13152 the team is not willing to do (see also goal 11 of the TypeScript Design Goals).

Just syntactically de-sugar this [..] to [..]

This would be a massive breaking change, which according to the comment in #13152 the team is not willing to do (see also goal 11 of the TypeScript Design Goals).

I already mentioned [this comment] above. I don't see any breaking changes. Could you elaborate how this may break existing code? I would like to see a counterexample

It's not invalid syntax.  It's an implicit-any error, but only with strict (specifically, noImplicitAny) enabled.

Wait, what? So language syntax / behavior depends on config option?

Of course language behaviour depends on the config option, otherwise flags like strictNullChecks wouldn't work. But the config options do not have an effect on the syntax of the language. No matter if you have noImplicitAny enabled or not, the syntax and behaviour are the same.

TS has already made much more serious breaking changes in recent releases

These are usually a worthwhile trade-off to improve type-safety.

This seems to be the case.

:shrug: Personally I'd say no. The team apparently thought the same in the other issue. This hardly brings any benefit, is a huge breaking change and will lead to less documentation (people omit the parameter names).

And expects that parse accept only string inputs, but in fact parse allows inputs with any types. (with noImplicitAny disabled). Isn't this unsound?

It's not unsound, because that's what the any type is there for. Unsoundness refers to cases where the type system is simply wrong (compile time and run time type differ).
And yes, you should avoid writing this code, that's why noImplicitAny exists and is part of the strict family.

Wait, what? So language syntax / behavior depends on config option?

The confusion here is what you're asking to introduce, because to not make this a breaking change, we'd have to interpret type F = (string) => number differently depending on whether noImplicitAny is set. In general the syntactic interpretation of a line of TS code is not configurable at all, and that's a good thing.


ui-sref-active with anchor

So I have an ui-sref who is using an anchor to go to an specific section of the Home page but when someone use it from other page the "li" doesn't get the class active from ui-sref-active. How can I fix this ?
<"li" ui-sref-active="active"><"a" href ui-sref="base.home({'#': 'page-welcome'})">Home

I'm not really sure what you are trying to accomplish there. Can you paste a plnkr example please?

So I have a navigation menu like this
<"ul id="main-menu" class="collapse navbar-collapse main-menu">
<"li ui-sref-active="active">Home
<"li ui-sref-active="active">Portfolio
<"li ui-sref-active="active">Services
<"li ui-sref-active="active">Team
<"li>Contact
<"/ul>
When someone enter the website the "Home" button has class active then you go to other page and click again "Home" button to go back home, when you do that the "Home" button doesn't get the active class anymore.

plnkr.co please as I want to see specifically what you are doing. Your second example is missing the ui-sref attribute

http://plnkr.co/edit/9p66ED/ sorry I kept you waiting

You are missing an index.html in that example. Also, what state should things go to as I only see an abstract state.

closing due to no activity


Leap year display in posts list show as 1 a 0001

Today is leap year feb 29th and in my posts it shows up as Jan 1st 0001 ?
when I change the date for 2024-02-28 instead of -29 then it works.
Maybe it is some templating of the awesome-hugo-blog theme I'm using that does that too? I have no idea.
It only happens every 4 year so maybe no one else noticed?

What version of Hugo are you using (hugo version)?

$ hugo version
hugo v0.123.0+extended linux/amd64 BuildDate=unknown VendorInfo=gentoo:0.123.0

Does this issue reproduce with the latest release?
I believe it is latest release

Unable to reproduce when testing at 2024-02-29T16:26:44-08:00.
{{ now.Format "2006-01-02" }}          --> 2024-02-29
{{ now | time.Format "2006-01-02" }}   --> 2024-02-29
{{ now | time.Format ":date_medium" }} --> Feb 29, 2024

I suggest you reach out to the theme author:
https://github.com/hugo-sid/hugo-blog-awesome


Fuzzy segmentation issue

Hey,
I have played around with the Vista3D model as I want to pseudolabel a few CT images from the LIDC dataset for MAISI. Unfortunately, I am encountering a problem where the segmentations look quite fuzzy.
For reproduction:
I am running inference as explained in the README via
export CUDA_VISIBLE_DEVICES=0; python -m scripts.infer --config_file 'configs/infer.yaml' - infer_everything --image_file '<filename>nii.gz'
And this is the minimal code I use to get the LIDC sample:
import pylidc as pl
import nibabel as nib
import numpy as np

os.environ['PYLIDC_PATH'] = '/path/to/LIDC-IDRI'
patient_id = 'LIDC-IDRI-0001'

#Query for the scan
scan = pl.query(pl.Scan).filter(pl.Scan.patient_id == patient_id).first()

if not scan:
    print(f"Scan with patient ID {patient_id} not found.")
    exit()

#Load scan volume
volume = scan.to_volume() #Gives volume in Hounsfield units
print(f"Volume shape: {volume.shape}") #(512, 512, 133)

#Clip volume (align with a_max and a_min in infer.yaml)
a_max=1053.678477684517
a_min=-963.8247715525971
volume = np.clip(volume, a_min=a_min, a_max=a_max)

#Get voxel spacing
voxel_dims = scan.spacings

#Create affine transformation matrix
affine = np.diag(np.append(voxel_dims, 1))

#Create and save the NIfTI image
nifti_img = nib.Nifti1Image(volume, affine)
output_filename = f"/tmp/{patient_id}.nii.gz"
nib.save(nifti_img, output_filename)
print(f"NIfTI file saved to {output_filename}")

I have also tried varying the transforms and patch size in the infer.yaml without being able to improve the result by much. I would appreciate if you have any hint as to what might be the problem (e.g. data input format, config settings, ...).
Thanks in advance!

Hi @thatsvenyouknow1
Thanks for testing vista3d out! appreciate the feedback. I believe the issue might due to how you save the LIDC data to nifiti file. You should not perform that intensity clip because that's not how MONAI scaleintensity transform (clip =True) work. I'm not familiar with pylidc so not sure if the header part is correct or not.
I downloaded the 'LIDC-IDRI-0001' from https://www.cancerimagingarchive.net/collection/lidc-idri/ and used the following command to convert it to nifti files, you change that path to your downloaded dicom:
dcm2niix -z y -o folder_to_dcm_files .

Then I use monai bundle which wraps this vista3d repo and is much more memory efficient.
pip install monai==1.4.0;
python -m monai.bundle download "vista3d" --bundle_dir "bundles/";
cd bundles/vista3d

and change the input_dict in configs/inference.json to "input_dict": "${'image': 'lidc.nii.gz'}". I ran this command on a 12G old GPU and get the results.
python -m monai.bundle run --config_file configs/inference.json


Pip Disappears

It worked at first on Respondus, but once it got to the page where you have scan your room Helium disappears

Try this - https://gist.github.com/anukul/3e12c2fb3d5935edcf9920fd34845af4


All user's drives have the same name.

When a user has several drives, name given by graph is always 'OneDrive' whereas the real drive's name is in the webUrl.
For instance, on a demo tenant, https://graph.microsoft.com/v1.0/me/drives?$select=name,weburl gives me the following response:
{
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/$metadata#drives(name,webUrl)",
"value": [
{
"name": "OneDrive",
"webUrl": "https://m365x******-my.sharepoint.com/personal/admin_m365x*******_onmicrosoft_com/PreservationHoldLibrary"
},
{
"name": "OneDrive",
"webUrl": "https://m365x*******-my.sharepoint.com/personal/admin_m365x*******_onmicrosoft_com/Documents"
},
{
"name": "OneDrive",
"webUrl": "https://m365x*******-my.sharepoint.com/personal/admin_m365x*******_onmicrosoft_com/Another%20library"
}
]
}
This is definitely a bug.
Any idea whether it'll be fixed one day?

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

ID: a83333f0-4746-a5d6-d66d-b1a5fccba828
Version Independent ID: dfad0e75-10f8-374d-4dde-65372c4019da
Content: List Drives - Microsoft Graph v1.0
Content Source: api-reference/v1.0/api/drive-list.md
Product: sharepoint
Technology: microsoft-graph
GitHub Login: @JeremyKelley
Microsoft Alias: MSGraphDocsVteam

As part of a repository clean up effort we are closing older issues. If this issue remains, please: open a new issue, reference this issue, and provide any additional details that may help in resolution. Thank you for your understanding as we work to improve our responsiveness.

@PaoloPia I'm sorry but I'm fed up with Microsoft always closing the issues without fixing them! Just do your job for once!


add Contact Us in readme

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 increased (+0.2%) to 73.828%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
4519

Relevant Lines:
6121

💛  - Coveralls


[4.0] Add title attribute for table headers.

This is useful when the column name does not fully fit the dimensions of the column.

Released on v4.4.1 🚀 thanks!


(BOLT-965) bolt-server Dockerfile to use alpine

What this changes This updates the pe-bolt-server dockerfile to use the alpine linux base image instead of the ruby base image. It then installs ruby and dependencies, and installs and starts pe-bolt-server just as the previous dockerfile did.
Why This is slimmed-down container that only includes what we need for bolt-server, and is more consistent with the image layering we use throughout Puppet.

@lucywyman I don't think we should use alpine as the base of the ssh targets.(re your question)

Waiting for CLA signature by @lucywyman
@lucywyman - We require a Contributor License Agreement (CLA) for people who contribute to Puppet, but we have an easy click-through license with instructions, which is available at https://cla.puppet.com/
Note: if your contribution is trivial and you think it may be exempt from the CLA, please post a short reply to this comment with details. http://docs.puppet.com/community/trivial_patch_exemption.html

Tested against ssh and winrm tasks. Both worked as expected. Also looks like image size went from 1.03GB to 122MB. I looked briefly at building with https://github.com/docker-library/ruby/blob/9af33e632f173e90b4a7aba7644f2080b574e54f/2.5/alpine3.8/Dockerfile but it did not seem to be any smaller image size.


Ansible 9 support

refs #1053

Tests pass, but it takes serveral retries. The problem predates adding Ansible 9, but it's getting worse. Causes unknown. Linux+ANsible tests are most susceptible.


channeldb+invoices: add set id index for AMP

This PR adds an additional invoice index to track invoices by the set id of AMP style payments. The control paths for accepting real AMP payments are not enabled by this PR, however it does automatically convert new legacy keysend payments into the internal AMP format so that they can be handled by nearly identical pathways. This also provides a contained way of testing the logic without needing to hook up secret share reconstruction.
Summary of changes:

persist additional AMP related fields on each InvoiceHTLC
introduce HTLCSet method to compute the Accepted HTLCs belonging to a particular set id
adds an invoice index over set id, mapping non-nil set ids to invoices with HTLCs that carry a particular set id. this is can be used by users to lookup, cancel, or settle AMP HTLC sets.
add additional safety checks to invoice state transitions

ensure that HTLCs can only be persisted when added through UpdateInvoice
ensure that an invoice can only enter the Accepted or Settled state when targeting a non-empty HTLC set
validate the per-HTLC hash/preimage pairs for AMP HTLCs when transitioning an invoice to Accepted or Settled. for legacy keysend, this check is already done when adding the invocie, but it will be more relevant when the secret share reconstruction is fully integrated.

promote legacy keysend payments into AMP payments internally
assert that the exepcted AMP-related fields are exposed via RPC when sending a legacy keysend payment

Can it be done with manual custom record sending?

I think one way would be to manually create a new "compliant" key-send and verify that it goes thru the new code paths. Also that once it's settled, then the relevant fields show in in ListInvoices on the other end.

Can it be done with manual custom record sending?

Mock payloads? https://github.com/lightningnetwork/lnd/pull/4338/files#diff-912650820f0598a654610a053ad16954R26

So currently the only way this PR is not dead code is for keysend right?

Yes without the last commit that promotes keysend this be mostly dead code. Some minor things would not be, e.g. the way HTLC sets are now computed, but most of it would

@Roasbeef @joostjager ready to commence final review passes! PTAL

Unfortunately we are making the difficult decision to push this off to 0.12, which will give us more time to consider the effects of AMP on the upcoming rewrite of our invoice subscription and rpc interfaces 😢

@cfromknecht Needs rebase!

@halseth @Roasbeef rebased. removed the final commit which converts the legacy keysend payments into AMP payments, should be gtg now

Needs a rebase.

@cfromknecht  Please re-request review when ready.

Type mismatch related assertion failure?
    lnd_single_hop_invoice_test.go:178:
        	Error Trace:	lnd_single_hop_invoice_test.go:178
        	            				test_harness.go:112
        	            				lnd_test.go:14583
        	Error:      	Not equal:
        	            	expected: int(0)
        	            	actual  : uint64(0x0)
        	Test:       	TestLightningNetworkDaemon/15-of-71/btcd/single_hop_invoice

@Roasbeef weird how this never showed up before? fixed now