Failed to import -<EMAIL_ADDRESS>

Failing module

GitHub: https://github.com/firebase/firebase-js-sdk
npm: https://www.npmjs.com/package/firebase

import { initializeApp} from<EMAIL_ADDRESS>
Error message
After onload I got this:
Uncaught SyntaxError: Invalid or unexpected token (at app:1:2))

Additional info

esm.sh version:128 I think (X-Esm-Deps: https://esm.sh/v128/<EMAIL_ADDRESS>Browser version: Chrome 114

This was working yesterday for me.

This looks to be a serious issue with esm.sh in general. Most of the libraries I am using are scrambles in the same way including back to version v89 (the oldest I use)
I thought the whole point of esm.sh was that any updates DO NOT affect older versions already in the CDN
example<EMAIL_ADDRESS>output
!�� W����s�O�
6�D,����e���9^�KĐ�=_+ЍY�V��e�+2Qȯi\6�p|4Q�m��bk��e������(��Y�+��F~�

yeah, i'm getting this too. seems to happen basically at random

sorry, a mistake i made broken the cache key of CF R2, i am going to revert the commit

the server is back to normal, @smcardle @nojaf @thatcher-gaming can you please try again

all good now :)

Thanks for the quick fix @ije
Unfortunately it's still not fixed for me requesting this URL<EMAIL_ADDRESS>

same problems with these packages :
https://esm.sh/<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

update: it appears to be broken again

This affects loads of the libraries for instance
<EMAIL_ADDRESS>still returns scrambled data

updated, can you please try again?

let me explain what happened

Every request for an esm.sh library from my code is now resulting in a 502

Seems to be working for me now, although required a force refresh. Thank you for your quick response 🙏

Definitely still NOT working
<EMAIL_ADDRESS>

Definitely still NOT working
<EMAIL_ADDRESS>
did you try to purge your browser/deno cache? seem it works for me

OK. It is now working....
I have no reason to purge the cache as I run in dev tools mode with cache disabled
Anyway thanks for fixing and a bit of re-assurance this will not happen again would be good.
A discord server or something to report these types of issues and get a "conversation" going would be useful in the future. This kind of issue is a critical issue to some of us and knowing some of the devs are watching / online would be great.
Anyway, esm.sh is my favourite CDN but an explanation of what caused the issue so I can go back to my boss with a "why it happened" scenario would be great.
Also, why would this have affected older version i.e. v89 that were already available and cached ? I thought the whole point of the versioning is that older versions we depend on never get regenerated

Let me explain a bit what happened.
In latest update, I updated the stable build version from v118 to latest(v112) to fix some invalid source map (#668) for react.
The testing was passed in github CI env, but i made a mistake to use a different KV that is used to store esm.sh modules at edge. since the new KV is empty the worker need to fetch the module from origin server, but I have no idea why CF worker's fetch get garbage content from the esm.sh origin server with correct headers. This doesn't happen in local/CI env.
To fix this, i have to added an isValidUTF8 function to check the content from origin server.

A discord server or something to report these types of issues and get a "conversation" going would be useful in the future. This kind of issue is a critical issue to some of us and knowing some of the devs are watching / online would be great.

Discord server: https://discord.gg/XDbjMeb7pb
Status page: https://esm.instatus.com

Also, why would this have affected older version i.e. v89 that were already available and cached ? I thought the whole point of the versioning is that older versions we depend on never get regenerated
I agree, this is why the version exists. The issue was caused by the cache layer not the build server, i didn't handle it careflully. I should change the KV config seriously in feature updates!

Not sure if I'm also seeing a downstream effect due to these changes, but I'm now seeing Invalid Body for some packages in addition to 502 responses.
For one of my transitive dependencies (e.g. he) there's no longer any valid output (i.e<EMAIL_ADDRESS>

The problem is still ongoing for me in Europe. Getting 502's as well.
It might be a caching problem at this point.
As a local workaround, I spun up a Docker container

docker run -p 9004:8080 -d --name esm ghcr.io/esm-dev/esm.sh:latest

<EMAIL_ADDRESS>works like a charm.

Works again for me:

Thanks to everyone involved!


unrecognized field name "arena_pitch"

When opening an experiment from another machine via Experiment Designer and then choosing to Save As, I see the following output and the export stops half way through:

G4_Experiment_Designer

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

ans =

     1219591

Unrecognized field name "arena_pitch".

Error in G4_document/export (line 1363)
                    newcurrentExp.pattern.arena_pitch(j) = self.Patterns.(field).pattern.param.arena_pitch;

Error in G4_document/saveas (line 1465)
            export_successful = self.export();% 0 - export was unable to complete 1- export completed successfully 2-user canceled and export not attempted

Error in G4_designer_controller/saveas (line 1370)
            self.doc.saveas(full_path, prog);

Error in G4_designer_controller>@(varargin)self.saveas(varargin{:}) (line 379)
            uimenu(menu, 'Text', 'Save as', 'Callback', @self.saveas);

Error while evaluating Menu Callback.

Were the patterns in the experiment you loaded created with the Pattern Generator? It seems like at least one of the patterns in the pattern folder was missing the arena_pitch field. I don't know how necessary that particular field is but we decided at one point a long time ago that patterns loaded to the software had to have all the fields created by the Pattern Generator, so if they're made another way, they need to have all the matching fields. Would need to reproduce the error and figure out which pattern it is and check to make sure it has all its fields. If it does, then this is definitely a bug, but if it is missing the field then I think this error is expected.  Unless we want to allow certain fields to be missing? I can test this out if you let me know what protocol it was.

@leburnett sends list of required and optional parameters in the next month

Copied from slack, posted by @taylorlm88 :

These pictures show the fields currently expected in patterns and functions when they are imported. I gather most are not always necessary. Which fields, besides the actual data, do you want to be required, if any? Are there any that would cause problems if the user forgot to include them?

Fixed pending testing


Please provide documenation for effects

Please provide documenation for effects

Planning on updating the docs over the next few weeks, but basically just do this:
state.Effect(func,props)

Where func is the function you want to run and prop is a list of properties that have to change for fun to be called. If the second argument is left out then func will be called after any state change.
You can see an example here:
https://codepen.io/daz4126/pen/QWZwwYx


Error creating looker_project_git_repo

I'm trying to create a project by cloning an existing repo using this resource. It gives out an error 404:

What I did to recreate this:

Hi Danial, it seems like Looker doesn't find your project. Do you have sufficient permission with your account to retrieve the project? Is the name of the project completely correct?

I was under the impression that this resource would create a project instead of looking for an existing one. If this isnt what I think it is, is there a way to create a project from a clone repo?

The first step is to create a project using the "looker_project" resource. Then, you can bind your project to an existing git repository using the "looker_project_git_repo" resource.
Don't forget to add username and password as parameters, for more information about the needed parameters refer to the documentation at this page.

I created a blank project using "looker_project". But I still cant bind/link the repo to the created project, as it gives the same error. I tried to link using SSH instead of HTTPS to avoid using git username and password:

Looker still can't seem to find the resource I want to create.


C++ support?

Hello,
I am trying to add cooler format into input type list for my tool. As my tool is written in C++, I am wondering if there is an example code for reading cooler files with C++?
Thanks
Lin

Unfortunately, we don't have an example yet. I have never used HDF5 from C++, but this guide should help. With C++, you should be able to use either use the native C API or the C++ wrapper.
If you simply want to load the any of the tables (chroms, bins or pixels) from a file, you'll need to (1) open the file, (2) open the datasets (i.e. arrays) corresponding to the columns of the table you want, e.g. to load the pixel table of a 10kb resolution heatmap in a mcool, you'll need to access datasets /resolutions/10000/pixels/bin1_id, resolutions/10000/pixels/bin2_id and /resolutions/10000/pixels/count.
For more complex queries, you'll want to access the indexes, described here.
If you get a simple example working, please share!

Oh, this project may be just what you want: https://github.com/BlueBrain/HighFive


Surface forcing file paths contain are setup for payu users

In the ERA5 example, the paths to each folder begin with INPUT as though the user were using payu. Better to just incorporate the inputdir that users provide when setting up the experiment.
Originally posted by @ashjbarnes in https://github.com/COSIMA/regional-mom6/issues/79#issuecomment-1907414149

yeap, let's do that or have payu as dependency of the package and explain what payu is briefly in the docs?

@ashjbarnes, is this still the case?
I noticed that in the ERA5 example, use_payu is set to False (by default)

Yeah the use_payu is only turned on for the ACCESS example. To do this we'll just need a bit of logic to leave things as INPUT/ when payu is on, and inputdir when it's off


Circe fails exhaustiveness checks for scala 2.13.4

I've upgraded to scala 2.13.4 (to get better exhaustiveness checks when using pattern matching guards) and now a case class is no longer able to be encoded or decoded (using the generic.auto functionality)
I thought initially that it was because the sealed trait heirachy was too deep and wide, but even the following fails:
case class MyCaseClass(a: A, b: B) extends SealedTrait

CaseClass(A(), B()).asJson

with
match may not be exhaustive. It would fail on the following input: MyCaseClass(_,_)
(Types A and B do not have issues with encoding)

Upgrade to 2.13.5+ :).
I couldn't find an issue, so I thought it best to raise one here so that the next searcher can find the solution


Add Search bar to TechDocs when displayed in the entity tab

Add the TechDocs search bar to the "Docs" entity page tab
This PR fixes the issue #23004.
The search bar inside TechDocs is only rendered when viewing docs in /docs/x/y/z/*, not when viewing the same docs in /catalog/x/y/z/docs/*. The reasoning is likely what's written in #23004 i.e. that the search results locations go to /docs/* which would be a surprising result to users (being routed to a completely different view/part of Backstage).
This PR adds the search bar, and re-routes the locations when displayed in the entity page, from /docs/x/y/z/* to /catalog/x/y/z/docs/*. The logic is a bit cumbersome, as one needs to use the route refs for both the root docs and the catalog docs pages, and figure out how to re-route based on that. useRouteRef will throw when used in a component from where the ref isn't mounted, so this needs conditional hooks, which is generally a bad idea. However, these two pages (and their components) have totally different parent hierarchy, so they won't (from what I can tell after some manual testing) re-render with a different prop (reRouteToCatalog) and cause hook order mismatch. The solution works well from what I can tell.
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Would anyone working on TechDocs be able to take a look at this? 🙏

Hey @grantila - Thanks for the PR, this is a great addition... In regards to the conditional hook, my only thought would be to update the TechDocsSearchBar component to instead take the location function (either the identity or the redirect one) and then create a new TechDocsSearchWithRedirect component below the existing TechDocsSearch component that passes in your new redirect function (without the try-catch now). Then update the TechDocsReaderPageContent to instead optionally take the Search Bar component as a parameter instead of the redirectToEntityPage boolean (and default it to the existing TechDocsSearch component)  and pass the new TechDocsSearchWithRedirect on the EntityPageDocs.
I know this introduces a new component into the wild, but it makes it should remove the hook confusion and also make it clearer if you add the wrong search bar to the wrong page. But interested to hear your thoughts on it too

Sometimes you get lost in a new code base, you're absolutely right @alexlorenzi that hoisting the logic to the
EntityPageDocs makes sense.
However, a custom component is tricky, as it needs props from within TechDocsSearchBar as well as the redirect function.
I solved it by allowing a custom redirectUrl prop, injected from EntityPageDocs, otherwise left undefined. It resolves the issue with conditional hooks and is a lot cleaner than before. Tested locally and search works fine, both from the entity page and the global /docs page.

@alexlorenzi please take a second look at this, it's working fine on my side. It's also rebased on latest master.

Hi @grantila, these updates look good! One small note, the team has some concerns with the variable name, redirectUrl. This could be confused with the mkdocs-redirect plugin functionality and the name implies a string type, but it is a function. For clarity, we were thinking something like searchResultUrlMapper, but open to suggestions.

Glad to be able to help @squid-ney. I see there are some error in the release process: https://github.com/procore-oss/backstage-plugin-announcements/actions/runs/12002387031/job/33454275718 making the publishing fail 🤔


Proxy seems to only work for most recently started container

Hi all,
Forgive me if this has been seen, but could not find any existing issues similar to this one.
Environment
Proxmox 5.1-41
RancherOS 1.3.0
Docker 17.09.1-ce
jwilder/nginx-proxy:0.7.0
Setup
Three Docker containers. One jwilder/nginx-proxy, another portainer, and the last one being owncloud.
I have been able to access both webpages separately, just not at the same time, so I believe I can rule out any A record or port forwarding issues, and nslookup resolves to my ip correctly, both for the 'parent' subdomain 'homelab' as well as all subdomains below that.
To my knowledge no other ports are exposed by either the portainer or owncloud dockerfile, so there should be no need to set VIRTUAL_PORT (as I understand it).
Observed Behavior
I'm able to navigate to whichever container was restarted most recently, either the owncloud or portainer landing page, yet never both pages at the same time.
Expected Behavior
Regardless of non-proxy container start order, both should be reachable at their appropriate subdomains (which are specified by the VIRTUAL_HOST env var).
Replication
Confirmed using both the latest chrome and firefox.
In my RancherOS host, I run the following
docker volume create portainer-data
docker network create reverse-proxy

docker run -d -p 80:80 -p 9000:9000 --name reverse-proxy --net reverse-proxy -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy:0.7.0

#see https://www.reddit.com/r/docker/comments/61zsz8/portainer_container_with_nginxproxy_container/dfjxut0 for details for the below vhost.d addition
echo '''proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header Connection "";''' | sudo tee /etc/nginx/vhost.d/portainer.homelab.example.com

docker run -d --expose 9000 --name portainer --net reverse-proxy -v /var/run/docker.sock:/var/run/docker.sock -v portainer-data:/data -e VIRTUAL_HOST=portainer.homelab.example.com portainer/portainer

docker volume create owncloud-data
docker volume create owncloud-apps
docker volume create owncloud-config
docker run -d --expose 80 --name owncloud --net reverse-proxy -v owncloud-data:/var/www/html/data -v owncloud-apps:/var/www/html/apps -v owncloud-config:/var/www/html/config -e VIRTUAL_HOST=owncloud.homelab.example.com owncloud:10.0.8

If it would be helpful I can provide the nginx-proxy logs after running each docker container restart command, but am hoping I missed something silly that's visible in the config above.
Any help would be appreciated!
-Cameron

I think I must be majorly misunderstanding the uses for this proxy. Is it not possible to run two containers that expose the same port behind this proxy?
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

docker run -d --expose 80 --name test -e VIRTUAL_PORT=80 -e VIRTUAL_HOST=test.homelab.example.com nginxdemos/hello

docker run -d --expose 80 --name test2 -e VIRTUAL_PORT=80 -e VIRTUAL_HOST=test2.homelab.example.com nginxdemos/hello

This gives me the following in the proxy's stdout logs, showing that only one of the containers is reachable at it's appropriate domain:
WARNING: /etc/nginx/dhparam/dhparam.pem was not found. A pre-generated dhparam.pem will be used for now while a new one
is being generated in the background.  Once the new dhparam.pem is in place, nginx will be reloaded.
forego     | starting dockergen.1 on port 5000
forego     | starting nginx.1 on port 5100
dockergen.1 | 2018/05/10 23:42:29 Generated '/etc/nginx/conf.d/default.conf' from 1 containers
dockergen.1 | 2018/05/10 23:42:29 Running 'nginx -s reload'
dockergen.1 | 2018/05/10 23:42:29 Watching docker events
dockergen.1 | 2018/05/10 23:42:30 Generated '/etc/nginx/conf.d/default.conf' from 2 containers
dockergen.1 | 2018/05/10 23:42:30 Running 'nginx -s reload'
dockergen.1 | 2018/05/10 23:42:30 Received event start for container 32a54a7e8115
dockergen.1 | 2018/05/10 23:42:30 Contents of /etc/nginx/conf.d/default.conf did not change. Skipping notification 'nginx -s reload'
dockergen.1 | 2018/05/10 23:42:32 Received event start for container 2e77b237353d
dockergen.1 | 2018/05/10 23:42:32 Generated '/etc/nginx/conf.d/default.conf' from 3 containers
dockergen.1 | 2018/05/10 23:42:32 Running 'nginx -s reload'
nginx.1    | test.homelab.example.com <IP_ADDRESS> - - [10/May/2018:23:42:35 +0000] "GET / HTTP/1.1" 200 7273 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
nginx.1    | test.homelab.example.com <IP_ADDRESS> - - [10/May/2018:23:42:37 +0000] "GET / HTTP/1.1" 200 7271 "http://test.homelab.example.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
nginx.1    | test.homelab.example.com <IP_ADDRESS> - - [10/May/2018:23:42:38 +0000] "GET / HTTP/1.1" 200 7272 "http://test.homelab.example.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
nginx.1    | test.homelab.example.com <IP_ADDRESS> - - [10/May/2018:23:42:41 +0000] "GET / HTTP/1.1" 200 7271 "http://test.homelab.example.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
nginx.1    | test.homelab.example.com <IP_ADDRESS> - - [10/May/2018:23:42:44 +0000] "GET / HTTP/1.1" 200 7272 "http://test.homelab.example.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"

and generates the following /etc/nginx/conf.d/default.conf:
# If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the
# scheme used to connect to this server
map $http_x_forwarded_proto $proxy_x_forwarded_proto {
  default $http_x_forwarded_proto;
  ''      $scheme;
}
# If we receive X-Forwarded-Port, pass it through; otherwise, pass along the
# server port the client connected to
map $http_x_forwarded_port $proxy_x_forwarded_port {
  default $http_x_forwarded_port;
  ''      $server_port;
}
# If we receive Upgrade, set Connection to "upgrade"; otherwise, delete any
# Connection header that may have been passed to this server
map $http_upgrade $proxy_connection {
  default upgrade;
  '' close;
}
# Apply fix for very long server names
server_names_hash_bucket_size 128;
# Default dhparam
ssl_dhparam /etc/nginx/dhparam/dhparam.pem;
# Set appropriate X-Forwarded-Ssl header
map $scheme $proxy_x_forwarded_ssl {
  default off;
  https on;
}
gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
log_format vhost '$host $remote_addr - $remote_user [$time_local] '
                 '"$request" $status $body_bytes_sent '
                 '"$http_referer" "$http_user_agent"';
access_log off;
resolver <IP_ADDRESS>;
# HTTP 1.1 support
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
# Mitigate httpoxy attack (see README for details)
proxy_set_header Proxy "";
server {
        server_name _; # This is just an invalid value which will never trigger on a real hostname.
        listen 80;
        access_log /var/log/nginx/access.log vhost;
        return 503;
}
# test.homelab.example.com
upstream test.homelab.example.com {
                                ## Can be connected with "bridge" network
                        # test
                        server <IP_ADDRESS>:80;
}
server {
        server_name test.homelab.example.com;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        location / {
                proxy_pass http://test.homelab.example.com;
        }
}
# test2.homelab.example.com
upstream test2.homelab.example.com {
                                ## Can be connected with "bridge" network
                        # test2
                        server <IP_ADDRESS>:80;
}
server {
        server_name test2.homelab.example.com;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        location / {
                proxy_pass http://test2.homelab.example.com;
        }
}

What am I missing?

You can have multiple containers using the same exposed ports.  I just tried the commands you posted and they work correctly for me.
curl -H "Host: test.homelab.example.com" localhost
curl -H "Host: test2.homelab.example.com" localhost

This hit both containers and I see:
nginx.1    | test.homelab.example.com <IP_ADDRESS> - - [11/May/2018:02:31:34 +0000] "GET / HTTP/1.1" 200 7237 "-" "curl/7.54.0"
nginx.1    | test2.homelab.example.com <IP_ADDRESS> - - [11/May/2018:02:31:42 +0000] "GET / HTTP/1.1" 200 7243 "-" "curl/7.54.0"

Thank you for taking the time to look into this! Can I ask what OS you're using? I'm thinking it is an issue with Rancher, so I may look at another such as CoreOS


Rustfmt everything

Thoughts on taking this opportunity to add rustfmt --check to Travis as a lint that must pass? That way we can avoid 'Rusfmt everything' to be the latest commit for every file :P

@Vtec234 Sure, let's give it a shot!

rustfmt could have failed due to missing cargo fmt, since it's not installed by default by rustup.

Thanks for fixing this! :)
bors r+


Generator does not work.

These are the evidences...

AB#3580

Hi @zuyiro Thank you for reaching us.
I have few questions

Have you tried to provision project with different name?
Is this happening all the time you tried to create project?
Is this happening only in specific organization or in all other organizations as well?

Please let us know if the issue still persists.

Hi @zuyiro Thank you for reaching us.
I have few questions

Have you tried to provision project with different name?
Is this happening all the time you tried to create project?
Is this happening only in specific organization or in all other organizations as well?

Please let us know if the issue still persists.

Hi,

Yes, I have.
It started to fail the second day of the course.
It happened in different organizations

Finally, I can do it after restarting my computer.
I am going to check it again today. If problem persists, I will notify you.
Thanks and regards,
Zully
On Wed, 20 Jan 2021, 01:44 Akshay H<EMAIL_ADDRESS>wrote:

Hi @zuyiro https://github.com/zuyiro Thank you for reaching us.
I have few questions

Have you tried to provision project with different name?
Is this happening all the time you tried to create project?
Is this happening only in specific organization or in all other
organizations as well?

Please let us know if the issue still persists.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/AzureDevOpsDemoGenerator/issues/373#issuecomment-763377463,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANNHO5MWN4XTBNG6GOPETEDS2Z3WXANCNFSM4WJO3N3A
.

Hi,

Yes, I have.
It started to fail the second day of the course.
It happened in different organizations

Finally, I can do it after restarting my computer.
I am going to check it again today. If problem persists, I will notify you.
Thanks and regards,
Zully
On Wed, 20 Jan 2021, 01:44 Akshay H<EMAIL_ADDRESS>wrote:

Hi @zuyiro https://github.com/zuyiro Thank you for reaching us.
I have few questions

Have you tried to provision project with different name?
Is this happening all the time you tried to create project?
Is this happening only in specific organization or in all other
organizations as well?

Please let us know if the issue still persists.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/AzureDevOpsDemoGenerator/issues/373#issuecomment-763377463,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANNHO5MWN4XTBNG6GOPETEDS2Z3WXANCNFSM4WJO3N3A
.


First class support for Docker containers

Related to the discussion on https://gitter.im/datawire/telepresence?at=593eaed0c59bd9c4640b6f8d

Preface
Given the current maturity of local Docker solutions, for many projects, developing against a local container offers more benefits than drawbacks. Not only can a developer benefit from having an execution environment that closely matches the production one, it also helps aligning it with the environment on CI which is a common source of pain specially when tuning a build procedure.
Moreover, with the current trend of having many small projects to map the micro services architectures running on production, it becomes very important to improve the on-boarding experience for new hires or existing company personal, allowing to isolate arbitrarily complex build schemes from the peculiarities of personal computers.
Audience
Developers that work on different projects, probably based on different technologies, and that see containerization as a means to simplify their development setup effort but won't give up on having a quick feedback loop while developing.
Problem
Currently telepresence cannot directly proxy a Docker container which forces the developer down an uncomfortable path of modifying their containers so they run telepresence from inside Docker. Even if doable the UX is not great.
Subjectively it's hard to grasp why a tool specifically designed to simplify the development with container orchestrators doesn't offer great support for their atomic units. It certainly came as a surprise to me since like many others I've meet, we started working with containers locally before stepping into  tools like Kubernetes.
Hypothesis
@itamarst proposed a clever approach to solve the issue at the lower level, yet without a great UX but something easy enough to mechanise if technically viable.
Building on top of Docker's support for sharing a network namespace among different containers (similar to Kubenertes' Pod concept), it becomes possible to isolate the telepresence VPN setup from the developer's container. This is a great solution since it not only hides the magic via UX, it actually offers guaranties that the proxying setup won't interfere with your own program.
Proof of concept
After putting together a quick test against a kubernetes cluster on AWS and minikube, the approach seems to work reliably and even solves some of the caveats with running the proxying directly on the host machine:

.local DNS resolution works properly since we can control the resolv configuration on the proxying container
minikube is also fully supported and shows no problems with DNS resolution
Cloud resources seem to be properly routed without requiring --also-proxy (haven't tested externalName yet but I don't see why it wouldn't work)
Multiple proxying containers can be launched on a single host
Proxying container requires some extra capabilities but not full --privileged mode
And obviously, the proxying doesn't interfere with other software running on the host :)

The solution is really simple and elegant, just requires a proper UX to make it useable at the same level as the other approaches.
Proposal
Some random thoughts about how this could be implemented:

Define a new --method named container since the caveats of vpn-tcp do not apply, so it'll be less confusing in the docs. Also it can come handy in the future if we can find a better vpn software (i.e. UDP support).
--run-docker [docker flags] <image> [program flags] seems a sensible UI being an alias for docker run *args. It would complain if --method is defined but it is not container. Also paves the way for a --run-rkt command.
Proxying container is launched (random name suffix?), cluster is updated, then the developer's container with the shared network and kube's config mount.
publish an optimized image with all the requirements for the proxying container (telepresence, kubectl, oc?)
telepresence will need to mount the $KUBECONFIG, taking into account that it can point to external files (i.e certs). Maybe we can use kubectl on the host to generate a materialized dump of a specific context?
workaround for core tools (i.e. ping) should not be used. They seem to work properly.
How to sync the life cycle of the proxying container and the developer's container? it's important to clean up properly.
This is more general but setting up and tearing down the VPN and volumes takes a bit of time. It'll be great if there is some trick to speed it up for repeated executions.

Note that while the proposal mechanizes the proof of concept approach, perhaps a more sensible solution would be to do all the kubectl interaction from the host, splitting the vpn setup code so it can be run on its own inside the container.

Notes on what gets proxied:

Cloud names might work by accident, unrelated to Docker usage - telepresence guesses the IP ranges it should route to remote cluster, and if cloud resource happens to be in that range it'll work. But it won't always be.
I'm surprised ping works, too. Will investigate.

Notes on UX:

--method=container is good point... but then there's the argument coupling with --docker-run, where it's verbose and makes reading help harder. Given less caveats being its own method does seem to make sense.
Definitely want to publish an image, yes.

Notes on implementation:

Really only sshuttle needs to run inside the container, and it just needs access to the ssh tunnel. Getting the host's Docker-facing IP is annoying, but certainly possible (route | awk '/^default/ { print $2 }' inside container is best suggestion I've found so far, but need to test on Mac). That suggests container can just run sshuttle and no need to do kubectl inside the container.

About the UX perhaps it should follow other tools that modify a program behaviour like xargs or nohup, taking all the arguments since the first non option and launching them, which should be backwards compatible with the current behaviour:
telepresence -n test   # runs default shell since there is no arguments given
telepresence -n test program  # runs program
telepresence -n test program --foo  # runs program --foo
telepresence -n test docker run -it busybox /bin/sh # runs docker -it busybox /bin/sh (warn?)
telepresence -n test -m container docker run -it busybox /bin/sh  # runs docker run --network container:xxx -it busybox /bin/sh

The container case is a bit weird since it'll have to modify the arguments to inject some stuff for docker but it removes the coupling between --method and --run which is indeed an issue.
Regarding what to run inside the container I think sshuttle, sshfs/fuse and ssh should run inside the container, this removes almost all requirements from the host system (perhaps even working on plain windows?) which is one of the core benefits of this approach.

Oh, right, sshfs. That's more issues:

fuse is a kernel module which may not be available in the VM(?) that Docker uses... so sshfs may still not work.
After further thought: filesystems are not shared across containers. Having the telepresence container run sshfs doesn't help other containers that share network namespace... the only way to work is to do sshfs on parent and mount that in.

Plus, there's environment variables, which in fact was reason why I had telepresence run the other docker container.
That means we have to have Telepresence run the user container, because it needs to do environment variables and volumes and whatnot.
Current design plan, then:

sshfs and ssh run on host.
Telepresence container runs sshuttle.
telepresence starts the user's container for them, adding a number of options.

UX idea:
$ telepresence-docker --new-deployment mydeployment -- [arguments to docker run go here]

I guess I'll go with:
# Works:
$ telepresence -n test --docker-run -i -t alpine /bin/sh

# Works:
$ telepresence -m container -n test --docker-run -i -t alpine /bin/sh

# Complains that --docker-run requires "-m container":
$ telepresence -m vpn-tcp -n test --docker-run -i -t alpine /bin/sh

Technical risks: mostly that sshuttle doesn't work with Docker somehow. Since @drslump verified this it's probably going to work, but will try it myself too to get and sense,  and also see if I can reproduce some of the lack of limitations he described.

Testing with setup @drslump posted on gitter. ping doesn't work, as expected. It probably worked for him because he has a host on his local network with same IP as the Service. In general, seems to work.

Some testing on my side:

Host: Mac OSX Yosemite
Docker For Mac 17.06.0-rc2-ce-mac14
Kubectl 1.6.4
Minikube 0.19.1 (kubernetes 1.6.4)

With this telepresence image:
# TODO: Base the image on Alpine so we generate a leaner image
FROM ubuntu:xenial

# Install some required base software
RUN apt-get -qq update  && apt-get -qq install -y curl sudo iptables

# Install kubectl
RUN curl -sLO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && \
    chmod +x kubectl && \
    mv ./kubectl /usr/local/bin/kubectl

# Install telepresence
RUN curl -s https://packagecloud.io/install/repositories/datawireio/telepresence/script.deb.sh | bash && \
    apt-get -qq install -y --no-install-recommends telepresence

# HACK: allow to run against minikube
RUN apt-get -qq install sed && sed -ri 's/minikube/patched-minikube/' /usr/bin/telepresence

# Clean up a bit
RUN rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["telepresence", "--method", "vpn-tcp"]

and launching with:
#!/bin/bash

kubecfg=${KUBECONFIG:-~/.kube/config}
eval kubecfg=$kubecfg  # expand home directory

minihome=${MINIKUBE_HOME:-~/.minikube}
eval minihome=$minihome

docker build -t telepresence-docker:latest .

docker run 													\
  --cap-add NET_ADMIN 				`# required to setup the VPN` 					\
  --cap-add SYS_ADMIN --device /dev/fuse  	`# required for sshfs mounts` 					\
  --security-opt seccomp=unconfined             `# only needed on Docker < 1.12`				\
  --rm --name telepresence-vpn 											\
  -v "$kubecfg:/root/.kube/config"   		`# expose the kubect configuration to the container` 		\
  -v "$minihome:$minihome"                	`# expose the minikube config to the container (if any)`	\
  -it  														\
  telepresence-docker:latest 											\
    --new-deployment test-telepresence-docker 									\
    --expose 8080 												\
    --run-shell

In the launched shell:
@minikube|bash-4.3# apt update && apt install inetutils-ping
...
@minikube|bash-4.3# /bin/ping google.com
PING google.com (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: icmp_seq=0 ttl=37 time=0.238 ms
...
@minikube|bash-4.3# /bin/ping hello-minikube.default.svc.cluster.local
PING hello-minikube.default.svc.cluster.local (<IP_ADDRESS>): 56 data bytes
64 bytes from <IP_ADDRESS>: icmp_seq=0 ttl=37 time=0.143 ms

Same for a remote kubernetes cluster on AWS. Also dig, traceroute, host and nslookup seem to work properly.

Regarding sshfs support, indeed the Docker For Mac virtual machine already includes /dev/fuse so sshfs works out of the box inside the container (with custom capabilities). I guess docker uses fuse for something internally. My thinking was to mount with sshfs inside the container and then use appropriate docker -v params to mount the telepresence container sshfs mounts to the host and then to the user container, something like [k8s] <-(sshfs)-> [telepresence] <-(docker)-> [host] <-(docker)-> [container].
It's a bit complex and unless it simplifies mounting on Windows it's probably better to just require sshfs on the host across all platforms and avoid bridging the mounts between both containers. Installing fuse+sshfs on Mac is simple enough nowadays.

Re ping:
It's possible things like ping would work on Mac, yes - sshuttle uses a different mechanism there than Linux where I tested. But it's also possible you're pinging <IP_ADDRESS> on your local network, rather than the Kubernetes network.
If you look at sshuttle docs you'll see it only captures TCP and DNS packets on OS X, though perhaps those docs are out of date: http://sshuttle.readthedocs.io/en/stable/requirements.html#client-side-requirements
So what may be happening is that for TCP it gets routed via sshuttle to Kubernetes, and for ICMP (ping) it gets routed to <IP_ADDRESS> on your local network. Just guessing, of course.
Re sshfs:
Even if it's there, I'm hesitant to rely on Docker VM continuing to provide fuse, since it's not part of their public API. So will stick to plan of doing it on host, for now.

Starting work in docker-support branch.

Tasks:

[ ] Test for connecting to cluster
[ ] Test for env variables
[ ] Test for connection from cluster
[ ] Test for volumes
[ ] --method container complains when used with --run and --run-shell
[ ] --docker-run complains when used with --method that isn't docker
[ ] Environment variables passed to --docker-run via envfile
[ ] --docker-run uses network namespace of proxy container
[ ] --docker-run gets volumes via volume mount; make sure TELEPRESENCE_ROOT adjusted
[ ] Containers shut down on exit, notice when they exit (attach?)
[ ] Changelog
[ ] Howto for Docker
[ ] Remove docker mention from generic limitations
[ ] Describe Docker method in proxying methods, or at least mention
[ ] Optional: --method container can be omitted when --docker-run is used


clarify wrapper task and task variable

The API documentation mentions wrapper task and task variable
https://github.com/microsoft/azure-pipelines-task-lib/blob/c1183894df5189eb7479b901633f5ccf460c96a5/node/docs/azure-pipelines-task-lib.md?plain=1#L327
I've seen regular tasks before.
I've seen pipeline variables.
However, I've never seen the other terms in that combination defined in documentation here or elsewhere.
The simplistic custom task tutorial doesn't mention anything about wrapper tasks.
Please link to proper documentation defining and explaining those terms or do so in your documentation.
What are they?
How do we create them?

Not stale.


Shell latency

Hi, I have started using this package and I think its great!
While working on the console, I noticed quite a bit of a latency (letters appear about 100-200ms after typing).
Is that normal? Do yo have an idea how to tackle it? I dont know if thats relevant, but im located in germany.
Cheers.

Hello @ValeKnappich,
Sorry for the inconvenience, unfortunately the latency is due to the fact that the SSH connection passes by the cloudflare servers (since we are using cloudflared). In other words, this is the route for the cloudflared SSH connection:
your machine <----------> cloudflare <----------> Google Colab Virtual Machine

While direct SSH connection has the following route:
your machine <----------> Google Colab Virtual Machine

The bad news
The bad news is that we don't officially support direct SSH connection yet because it's a bit delicate to use and has some security risks.
The good news
The good news, it's implemented already. There is no documentation on how to use it. But to solve your problem here's how I use it:

⚠ Caution ⚠:  This may not reduce latency, because it depends on a lot of factors

⚠ Caution ⚠: Do not do these steps if you don't know what you are doing. Opening an SSH port and allowing passwords may expose you to security threats

First open your SSH port through your router. For example from port 22 of your machine to port 5000 of the router. the 5000 is the YOUR_OPEN_PORT

Check if your port is open using this online tool

Create a private/public key pair on the Google Colab VM
Make sure you copy the public key that you generated to your authorized_keys files (This will allow Google Colab to access your machine through the open SSH port)
Put this code in your Google Colab notebook. This function will:
Connect to your machine
Copy your public key to the authorized_keys file on google colab
Start the SSH server

from colab_ssh.launch_direct_ssh import launch_direct_ssh
launch_direct_ssh("<YOUR_USERNAME>", "<YOUR_IP_ADDRESS", "<YOUR_OPEN_PORT>", reverse_ports=["6022:<IP_ADDRESS>:22"], public_key_path="<YOUR_PUBLIC_KEY_PATH_ON_YOUR_MACHINE>")

YOUR_IP_ADDRESS This is ip address of your local machine (you can type "What is my ip" on Google)
<IP_ADDRESS>:22 is the internal address and port of the SSH server on Google Colab
6022 is the local port that will let you connect to Google Colab from your machine
YOUR_PUBLIC_KEY_PATH_ON_YOUR_MACHINE By default it's %USERPROFILE%/.ssh/id_rsa.pub (supports windows by default). You can change this path to /root/.ssh/id_rsa.pub for example to support Linux.

Now, you just need to use the command ssh to test the connection by executing the following command

ssh<EMAIL_ADDRESS>-p 6022

or use this configuration in your ~/.ssh/config file
Host GoogleColab
  HostName <IP_ADDRESS>
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User root
  Port 6022

I hope this helps :)

Hello @ValeKnappich,
Sorry for the inconvenience, unfortunately the latency is due to the fact that the SSH connection passes by the cloudflare servers (since we are using cloudflared). In other words, this is the route for the cloudflared SSH connection:
your machine <----------> cloudflare <----------> Google Colab Virtual Machine

While direct SSH connection has the following route:
your machine <----------> Google Colab Virtual Machine

The bad news
The bad news is that we don't officially support direct SSH connection yet because it's a bit delicate to use and has some security risks.
The good news
The good news, it's implemented already. There is no documentation on how to use it. But to solve your problem here's how I use it:

⚠ Caution ⚠:  This may not reduce latency, because it depends on a lot of factors

⚠ Caution ⚠: Do not do these steps if you don't know what you are doing. Opening an SSH port and allowing passwords may expose you to security threats

First open your SSH port through your router. For example from port 22 of your machine to port 5000 of the router. the 5000 is the YOUR_OPEN_PORT

Check if your port is open using this online tool

Create a private/public key pair on the Google Colab VM
Make sure you copy the public key that you generated to your authorized_keys files (This will allow Google Colab to access your machine through the open SSH port)
Put this code in your Google Colab notebook. This function will:
Connect to your machine
Copy your public key to the authorized_keys file on google colab
Start the SSH server

from colab_ssh.launch_direct_ssh import launch_direct_ssh
launch_direct_ssh("<YOUR_USERNAME>", "<YOUR_IP_ADDRESS", "<YOUR_OPEN_PORT>", reverse_ports=["6022:<IP_ADDRESS>:22"], public_key_path="<YOUR_PUBLIC_KEY_PATH_ON_YOUR_MACHINE>")

YOUR_IP_ADDRESS This is ip address of your local machine (you can type "What is my ip" on Google)
<IP_ADDRESS>:22 is the internal address and port of the SSH server on Google Colab
6022 is the local port that will let you connect to Google Colab from your machine
YOUR_PUBLIC_KEY_PATH_ON_YOUR_MACHINE By default it's %USERPROFILE%/.ssh/id_rsa.pub (supports windows by default). You can change this path to /root/.ssh/id_rsa.pub for example to support Linux.

Now, you just need to use the command ssh to test the connection by executing the following command

ssh<EMAIL_ADDRESS>-p 6022

or use this configuration in your ~/.ssh/config file
Host GoogleColab
  HostName <IP_ADDRESS>
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
  User root
  Port 6022

I hope this helps :)

Hi @WassimBenzarti ,
thanks for the very detailed answer! I'll give it some consideration given the caviats and maybe try it.
Just one more, completely off-topic question:
It is a common problem that colab disconnects you quickly when being inactive and normally you would paste a js snippet in the console to click the connect button. Do you plan on including a function in the repo that automates this?
Cheers

Hi @WassimBenzarti ,
thanks for the very detailed answer! I'll give it some consideration given the caviats and maybe try it.
Just one more, completely off-topic question:
It is a common problem that colab disconnects you quickly when being inactive and normally you would paste a js snippet in the console to click the connect button. Do you plan on including a function in the repo that automates this?
Cheers

I remember there was a discussion about this, I think it's in this issue #13. Check it out and tell me if you have any further questions or suggestions.
You can start a new discussion in the discussions page (on Github) if you feel that we missed something. And if you feel that we need to provide this feature you can share with us a working code snippet to see if it's still feasible.
I think I will close this issue for now, you can reopen it whenever you have a problem.
Thank you for your input and suggestions :)

I remember there was a discussion about this, I think it's in this issue #13. Check it out and tell me if you have any further questions or suggestions.
You can start a new discussion in the discussions page (on Github) if you feel that we missed something. And if you feel that we need to provide this feature you can share with us a working code snippet to see if it's still feasible.
I think I will close this issue for now, you can reopen it whenever you have a problem.
Thank you for your input and suggestions :)


Material: Action Grid Component

Grid-style bottom sheet with icons

Will look, probably worth to implement, but again, can be done with few custom additional CSS styles on action sheet

@nolimits4web
If you like I can integrate that and commit it then :)

@J05HI please open a PR

Done in v2


Define Manual Test cases and procedures

These are being accomplished with sub-tickets currently:
#20
#19
#21
#22


Official Support for Pytorch 1.10

🚀 Feature
A clear and concise description of the feature proposal.
Motivation & Examples
Officially support Pytorch 1.10. Sync with @iseessel first and then @bottler for any more information regarding this.
Building and releasing APEX will be required for full VISSL support; however, most functionality should be available without APEX.
User wants to try to use: https://developer.nvidia.com/blog/accelerating-inference-up-to-6x-faster-in-pytorch-with-torch-tensorrt/

@pietroastolfi
FYI

use the code torch.version[0:5:2] to remove the dots from the version string and get e.g. 191 from e.g. PyTorch 1.9.1. But This fails if you need to get 1100 from PyTorch 1.10.0.
When/if you make apex builds for PyTorch 1.10, you'll need to update Install.md, dev/packaging/apex_pip/README.md, docs/source/installation.rst and some tutorials
Also S3 details have changed since fs3cmd has been deprecated.
Sync with @iseessel first and then @bottler for any more information regarding this.


Add Windows installation

Partially addresses https://github.com/ignitionrobotics/docs/issues/117
Moved Documentation and Testing sections from the installation tutorial back to README - looks like a mistake that they were moved before. These two sections stayed in the README for other libraries.
One of the dependencies, libignition-rendering, is not yet on conda-forge and needs to be installed from source.
libignition-gui is also not on conda-forge, so we don't have binary install instructions for Windows in this PR.
Both libraries need to be added to conda-forge.

Moved Documentation and Testing sections from the installation tutorial back to README - looks like a mistake that they were moved before

I think I did that on purpose on https://github.com/ignitionrobotics/ign-gui/pull/127 because they seemed out of place in the README. A README user had no context for generating docs or running tests... But I think that you are adding enough context in this PR. Maybe we can consider moving those to their own tutorials in the future. I think the README could be more focused on highlighting features and quick onboarding, and specific development details can be left to tutorials.

Thanks for the PR. Just curious, did you try running ign gui? Does it work? How about the 3D scene plugin (ign gui -c examples/config/scene3d.config)?

Closing to retarget at Citadel. https://github.com/ignitionrobotics/ign-gui/pull/168

Closing to retarget at Citadel. https://github.com/ignitionrobotics/ign-gui/pull/168

Thanks for the PR. Just curious, did you try running ign gui? Does it work? How about the 3D scene plugin (ign gui -c examples/config/scene3d.config)?

For visibility, I tested this out by attempting to run a few examples and Qt crashed every time, for what it's worth, here is the error message in case this may be relevant later:
(test_ws) C:\Users\asus\test-ws\src\ign-gui\examples\standalone\window\build\Release>window.exe
Hello, GUI!
qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Not sure if this may be a local issue or if reinstalling Qt would actually work, it could also be some sort of issue with the version of Qt that conda-forge brings in.

Thanks for the PR. Just curious, did you try running ign gui? Does it work? How about the 3D scene plugin (ign gui -c examples/config/scene3d.config)?

For visibility, I tested this out by attempting to run a few examples and Qt crashed every time, for what it's worth, here is the error message in case this may be relevant later:
(test_ws) C:\Users\asus\test-ws\src\ign-gui\examples\standalone\window\build\Release>window.exe
Hello, GUI!
qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Not sure if this may be a local issue or if reinstalling Qt would actually work, it could also be some sort of issue with the version of Qt that conda-forge brings in.


fixSupport COM_CHANGE_USER and other mysql command.


Add BuildTools 1.1.0 and 2.0.0 branches

https://github.com/dotnet/buildtools/blob/release/1.1.0/netci.groovy
https://github.com/dotnet/buildtools/blob/release/2.0.0/netci.groovy
/cc @eerhardt

@dagood,
Thanks for having already signed the Contribution License Agreement. Your agreement was validated by .NET Foundation. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot


Add bloqs for modular arithmetic from PsiQuantum

Initial PR to add black box bloq implementations of subroutines displayed in Figure 6 of https://arxiv.org/pdf/2306.08585.pdf. I plan to next implement the bloq decompositions of each of these subroutines using qualtran native basic gates.

I am open to any organization strategy for these bloqs. I wasn't sure if I should add all of these to arithmetic.py instead or the existing factoring/mod_xxx.py files. I was hoping to start here and then build the decompositions of the subroutines with existing bloqs from arithmetic.py anyway such as Add().


DRILL-6634: Add udf module under contrib directory and move some udfs into it

Created new contrib/udf module.
Moved distance, phonetic, networking, crypto functions from java-exec to contrib/udf module.
Moved functions from gis module to contrib/udf module. Removed gis module.
Removed unnecessary dependencies from java-exec module.
Minor refactoring of moved functions code.

Jira - DRILL-6634.

@arina-ielchiieva: question: as you know, Drill functions are quite difficult to debug -- they rely on code generation and code rewriting, one cannot simply step through the code.
UDFs are also hard to test: one needs to set up the inputs to the functions just right to test all cases.
I've found that using the Drill unit test framework is very helpful, especially for setting up input data and verifying output data. However, as some dev list user pointed out, the test classes were not historically available to code outside the exec module. Perhaps Tim's recent changes fixed this so that unit test classes are available in contrib?
In short, the request is that we ensure that code in contrib can be debugged and tested the same way as code in exec. Else, people will have to do what I found I had to do recently: develop the code in exec, then, once it is done, move it to contrib.  Let's make sure that this is no longer necessary.

@paul-rogers not sure to which issue you are referring to, never heard about it. Anyway new udf module has test dependencies to exec module including tests part, so all handly test classes available in exec are available in udf. When I moved udfs, I have moved unit tests testing these udfs as well. You can checkout my branch and check in case there are some concerns or I did not understand possible issue correctly.

@arina-ielchiieva, if the test dependencies are available than all is good. Any remaining issues can be addressed if/when they occur.


First pass at optional feed relation skipping for validation

in regards to #20

hi @laidig
Thanks for the PR. I like the approach, but I have one comment. What do you think about leaving the model validate_feed methods unchanged, and having the the skip_relations flag in Feed.validate method skip calling validate_feed for each gtfs entity. (I perhaps should have named the validate_feed method 'validate_relations')
Also, there's one debugging print statement.


STP 38 supports parsing of the font-display property

Haven't tried it yet, does this actually mean there's support for it? Seems like just "parsing" may just be a first step in supporting it.

Ah, yeah sorry, you’re right. Here is the umbrella bug for it https://bugs.webkit.org/show_bug.cgi?id=167332


Fix/use attribute selector to style elements/added acceptance of spaces

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] All the files I changed are in the same world language, for example: only English changes, or only Chinese changes, etc.

Closes #38329

Allowed for spaces where they weren't allowed prior. It was a very small change within the basic css challenge set.

I vote to review the earlier PR for this issue that is ready to go pending another review. And if that one looks good, we can probably close this.

@moT01 I cannot remember why we opened the issue to others, when there was already an open PR aimed at it, but the other PR still has the issue Randell pointed out:
[type == 'checkbox']

Would pass

Thank you for opening this pull request.
This is a standard message notifying you that we’ve reviewed your pull request and have decided not to merge it. We would welcome future pull requests from you.
Reason: An earlier PR which was recently merge has fixed this issue.
Thank you and happy coding.


Update application.yml

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

This seems to be a test so I'm not merging it. @VigneshNayam if you want to make changes and tests, you can fork this repo.


Weekly update of translations in released iD

It would be helpfull if it is possible to separately update the code and the translations. Maybe we could have another preview-installation for release. There result of translations could be tested and the released iD could be updated ever week or so.

I do try to release iD roughly once or twice a month, but this current 2.2 release (with the revised walkthrough and right-click menu) has an unusual amount of translation work associated with it.
Part of the reason we can't easily separate them is because the translations are pinned to the master branch of iD, not the release branch.  This is necessary so that new features can get translated before they are released.
Another reason is that, ideally, the translations get some review before a release.  (if we just automatically pulled whatever was available onto the live openstreetmap.org site, people might vandalize the translations)
Some things that will help:

http://preview.ideditor.com/master will continue to auto-update with latest code and translations
If anyone really does need a new version of iD released (because of updates to translations or imagery), just ask on IRC or Slack and I will probably do it, even if it's out of the normal schedule.
return to more frequent releases


Possible to disable underlines?

Hi folks, just came across this project and it looks pretty great!
However, a combination of not using a terminal that supports underlines properly, and a personal distaste for them (I tried them for a bit in a different terminal), I wondered if there's a way to disable underline from Trouble theming?
Apologies if I missed something in your documentation, and thanks for the lovely work here!

I figured it out, its not caused by this plugin (I'd disabled it in old, broken config).  For future reference for others, this is enough:
lua<<EOF
  vim.diagnostic.config({underline = false})
EOF

see :h vim.diagnostic.config() for more info.


Could you release the sdist on pypi besides the wheels

Hello,
For the python version, would it be possible to release the sdist files on pypi besides the wheel files? Thanks!

I think that's a good idea. With the revamped cmake build, the build system could potentially auto-discover available libraries for integration when building. The relevant work would be to add the logic for triggering cmake build into the setup.py.

I think that's a good idea. With the revamped cmake build, the build system could potentially auto-discover available libraries for integration when building. The relevant work would be to add the logic for triggering cmake build into the setup.py.

@KaixuYang would you like to help improve the setup.py. I'm happy to advise on any questions

@KaixuYang would you like to help improve the setup.py. I'm happy to advise on any questions

@leezu I have no background in this but I would like to give it a try if that’s something I could learn in a short time. Is there a guide or example?

@leezu I have no background in this but I would like to give it a try if that’s something I could learn in a short time. Is there a guide or example?

@KaixuYang you can take a look at scikit-build https://scikit-build.readthedocs.io/en/latest/usage.html or "raw" pyproject.toml file: https://setuptools.readthedocs.io/en/latest/build_meta.html

@KaixuYang you can take a look at scikit-build https://scikit-build.readthedocs.io/en/latest/usage.html or "raw" pyproject.toml file: https://setuptools.readthedocs.io/en/latest/build_meta.html

@leezu Is the goal to first install scikit-build in the setup.py file, then call it to include cmake? What are the dependencies that cmake is supposed to find automatically? Like the openblas or the other python dependencies?

@leezu Is the goal to first install scikit-build in the setup.py file, then call it to include cmake? What are the dependencies that cmake is supposed to find automatically? Like the openblas or the other python dependencies?

cmake will find native dependencies, such as openblas and will error out if they can't be found. So you don't need to worry about them. Installation of sdist will only be supported if user has all native build dependencies installad. You can refer to https://mxnet.apache.org/versions/master/get_started/build_from_source.html for list of recommended dependencies
You use scikit-build in setup.py and declare that you need scikit-build in pyproject.toml. Then pip will ensure it's available when executing setup.py.

cmake will find native dependencies, such as openblas and will error out if they can't be found. So you don't need to worry about them. Installation of sdist will only be supported if user has all native build dependencies installad. You can refer to https://mxnet.apache.org/versions/master/get_started/build_from_source.html for list of recommended dependencies
You use scikit-build in setup.py and declare that you need scikit-build in pyproject.toml. Then pip will ensure it's available when executing setup.py.

@leezu I'm not sure if I did it in the correct way,  but I keep getting this error calling setup.py. What is the expected behavior   of find_lib_path?
File "setup.py", line 47, in <module>
    LIB_PATH = libinfo['find_lib_path']()
  File "mxnet/libinfo.py", line 73, in find_lib_path
    raise RuntimeError('Cannot find the MXNet library.\n' +
RuntimeError: Cannot find the MXNet library.
List of candidates:
/Users/kaixuyang/mxnet/python/mxnet/libmxnet.dylib
/Users/kaixuyang/mxnet/python/mxnet/../../lib/libmxnet.dylib
/Users/kaixuyang/mxnet/python/mxnet/../../build/libmxnet.dylib
/Users/kaixuyang/mxnet/python/mxnet/libmxnet.so
/Users/kaixuyang/mxnet/python/mxnet/../../lib/libmxnet.so
/Users/kaixuyang/mxnet/python/mxnet/../../build/libmxnet.so

@leezu I'm not sure if I did it in the correct way,  but I keep getting this error calling setup.py. What is the expected behavior   of find_lib_path?
File "setup.py", line 47, in <module>
    LIB_PATH = libinfo['find_lib_path']()
  File "mxnet/libinfo.py", line 73, in find_lib_path
    raise RuntimeError('Cannot find the MXNet library.\n' +
RuntimeError: Cannot find the MXNet library.
List of candidates:
/Users/kaixuyang/mxnet/python/mxnet/libmxnet.dylib
/Users/kaixuyang/mxnet/python/mxnet/../../lib/libmxnet.dylib
/Users/kaixuyang/mxnet/python/mxnet/../../build/libmxnet.dylib
/Users/kaixuyang/mxnet/python/mxnet/libmxnet.so
/Users/kaixuyang/mxnet/python/mxnet/../../lib/libmxnet.so
/Users/kaixuyang/mxnet/python/mxnet/../../build/libmxnet.so

@leezu Where are the libmxnet.so and  libmxnet.dylib files?

@leezu Where are the libmxnet.so and  libmxnet.dylib files?

@leezu Where are the libmxnet.so and libmxnet.dylib files?

You need to setup the scikit-build to create these files with cmake

@leezu Where are the libmxnet.so and libmxnet.dylib files?

You need to setup the scikit-build to create these files with cmake

@leezu The build fails if cmake is not installed, is there a way to check this? (The brew install cmake, not the pip install cmake). Also how to turn off CUDA? The build checks for CUDA but it is not available.

@leezu The build fails if cmake is not installed, is there a way to check this? (The brew install cmake, not the pip install cmake). Also how to turn off CUDA? The build checks for CUDA but it is not available.

@leezu This also happens with opencv.

@leezu This also happens with opencv.

@KaixuYang you can refer to https://github.com/apache/incubator-mxnet/blob/master/config/linux_gpu.cmake / https://github.com/apache/incubator-mxnet/blob/master/config/linux.cmake config files for a list of configuration options (including how to turn off cuda). For your initial development, I think you can hardcode this configuration option. Later you can try to auto-detect it.

@KaixuYang you can refer to https://github.com/apache/incubator-mxnet/blob/master/config/linux_gpu.cmake / https://github.com/apache/incubator-mxnet/blob/master/config/linux.cmake config files for a list of configuration options (including how to turn off cuda). For your initial development, I think you can hardcode this configuration option. Later you can try to auto-detect it.

@leezu Yeah I see these files. I'm wondering where does cmake learn which config (darwin.cmake,  linux.cmake,  linux_gpu.cmake) to use?

@leezu Yeah I see these files. I'm wondering where does cmake learn which config (darwin.cmake,  linux.cmake,  linux_gpu.cmake) to use?

For example, when I don't have cuda on my machine, it should use the version without CUDA.

For example, when I don't have cuda on my machine, it should use the version without CUDA.

These configs only take effect if you copy them to the main folder (next to CMakeLists.txt) under the name config.cmake:
https://github.com/apache/incubator-mxnet/blob/1c3fcad78caa7e58f81045d6128435a59222dfdd/CMakeLists.txt#L28-L31
They are just for convenience. If the config is not present, the default values will be used
https://github.com/apache/incubator-mxnet/blob/1c3fcad78caa7e58f81045d6128435a59222dfdd/CMakeLists.txt#L39-L96
You can manually pass option to cmake via -DCONFIG_NAME (eg -DUSE_CUDA=1) to overwrite the default / config option.

These configs only take effect if you copy them to the main folder (next to CMakeLists.txt) under the name config.cmake:
https://github.com/apache/incubator-mxnet/blob/1c3fcad78caa7e58f81045d6128435a59222dfdd/CMakeLists.txt#L28-L31
They are just for convenience. If the config is not present, the default values will be used
https://github.com/apache/incubator-mxnet/blob/1c3fcad78caa7e58f81045d6128435a59222dfdd/CMakeLists.txt#L39-L96
You can manually pass option to cmake via -DCONFIG_NAME (eg -DUSE_CUDA=1) to overwrite the default / config option.

So at this time you can either detect if cuda is present inside the setup.py and then pass -DUSE_CUDA=1 or 0, or you can refactor the CMakeLists.txt file to support a -DUSE_CUDA=Auto option (which would try to find cuda and disable cuda if it can't be found)

So at this time you can either detect if cuda is present inside the setup.py and then pass -DUSE_CUDA=1 or 0, or you can refactor the CMakeLists.txt file to support a -DUSE_CUDA=Auto option (which would try to find cuda and disable cuda if it can't be found)

Yeah this makes sense, thanks!

Yeah this makes sense, thanks!

Ok, thank you! For purpose of development, you can just set -DUSE_CUDA=0 inside setup.py for now (until you get that to work. Then take the next step).

Ok, thank you! For purpose of development, you can just set -DUSE_CUDA=0 inside setup.py for now (until you get that to work. Then take the next step).

@leezu seems like I got into another existing issue #16245

@leezu seems like I got into another existing issue #16245

It will be fixed by https://github.com/apache/incubator-mxnet/issues/19610 For now you can delete this code or add an extra condition to ensure you take the else branch:
https://github.com/apache/incubator-mxnet/blob/1c3fcad78caa7e58f81045d6128435a59222dfdd/CMakeLists.txt#L415-L430

It will be fixed by https://github.com/apache/incubator-mxnet/issues/19610 For now you can delete this code or add an extra condition to ensure you take the else branch:
https://github.com/apache/incubator-mxnet/blob/1c3fcad78caa7e58f81045d6128435a59222dfdd/CMakeLists.txt#L415-L430


Implement  to [exhaustively] satisfy

// cc @Munter

Coverage increased (+0.02%) to 95.152% when pulling 3dd798cee45f1257300ae34e6f193485c9600236 on papandreou:feature/textNodeToSatisfyRegExp into d6514c000293280403726b7b8d77898bf0c90955 on Munter:master.

That's a nice improvement on both performance and output :)

I guess that this is a major version bump, since the output changed?

I'd say patch or minor. Previously expect(textNode, 'to satisfy', regexp) would unconditionally throw, which (I believe) is a bug that nobody is likely to have relied on.

I'll release a patch

Released in v3.1.1


Add two arm specific syscalls to seccomp profile

These are arm variants with different argument ordering because of
register alignment requirements.
fix #30516
Signed-off-by: Justin Cormack<EMAIL_ADDRESS>

cc @vieux can we cherry pick for 1.13.1?

LGTM

LGTM

cherry-picked through https://github.com/docker/docker/issues/30577


Remove float from grid-collapse

per https://github.com/thoughtbot/neat/issues/528#issuecomment-278168504

I have tested out this feature out in contrib and it results in practical changes real changes.
For those using collapse on the grid container it is important to remember that this will cause the container to overflow the view resulting in a x-scroll. To resolve this you will need to add overflow-x: hidden to the collapsed object's parent. This, however is a secondary use-case as the primary function of grid-collapse() is to allow for easily nested grids.
I have created a short gif of what this overflow-x issue looks like. It feels like the sort of thing that could act differently from browser to browser so use with discretion.

Overall, this change looks good to me and barring objection will get merged tomorrow AM

@kgcreative your changes did not update the test suite. I have pushed up a fixup commit to address this. Can you fixup these changes in to you commit. https://github.com/thoughtbot/neat/commit/c9524404465ab4726f9334c6dc9d18709a64995d

git fetch && git cherry-pick c9524404465ab4726f9334c6dc9d18709a64995d

git rebase origin/master -i

@whmii - yep! I'll do this shortly

Merged. I had to rebase it again so this PR wont autoclose


Program translations use labels for the field rather than placeholder text

Description
While here, I also grouped the two existing fields inside of a "Program details" fieldset since we'll soon be adding application statuses as well.
Note: renderTranslationForm no longer takes a list of FieldWithLabels and instead takes a set of Tags since the former was inflexible for trying to add additional layout to the form (e.g. fieldsets).
Before:

After:

Issue(s)
#2752

Please add a "Release notes:" section to the description with the changes our partners will observe.

LGTM
Please add a "Release notes:" section to the description with the changes our partners will observe.

Done. Since changes were requested, reapproval is needed.


Use wget to download models in the onnx model zoo

The current script CheckONNXModelZoo.py uses git lfs to checkout models in the model zoo, which does not support parallelism.
This patch uses wget instead to download models so that we can download and check multiple models at the same time.
Some other improvements in CheckONNXModelZoo.py:

allow checking segfault error.
exclude integer models since onnx-mlir does not support quantized models.

On my Z machine, it takes about 17 minutes to check 124 models in the model zoo when using 16 processes, e.g. python CheckONNXModelZoo.py -njob 16 -compile_args="-O3 --mcpu=z14". FYI, this is the result: https://github.com/onnx/onnx-mlir/issues/128#issuecomment-1128755672

@gongsu832 @chentong319 any comments on this? Thanks!

Jenkins Linux ppc64le Build #5020 [push] Use wget to download mod... started at 00:35

Jenkins Linux amd64 Build #5883 [push] Use wget to download mod... started at 23:33

Jenkins Linux s390x Build #5898 [push] Use wget to download mod... started at 00:33

Jenkins Linux s390x Build #5898 [push] Use wget to download mod... passed after 56 min

Jenkins Linux ppc64le Build #5020 [push] Use wget to download mod... passed after 1 hr 9 min

Jenkins Linux amd64 Build #5883 [push] Use wget to download mod... passed after 1 hr 9 min


Update troubleshoot-tcpip-port-exhaust.md

https://github.com/MicrosoftDocs/windows-itpro-docs/issues/2419
Added updated blog link and added note.

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@kaushika-msft Would you review this PR based on issue #2419 ? Thank you.

@kaushika-msft @Justinha Would you review this PR based on issue #2419 ? Thank you.


Feature request: Hotkey for Speech-to-text

Currently, I can press '*' and '3' to enter Speech-to-text. i've found this really useful and would love to be able to program it to a hotkey. My phone has a PTT key which would be an awesome thing to program to, as it would allow for very quick note taking, but just being able to hold the '#' or 'Call' key to enter this mode would be great

One of the reasons for introducing the command palette was to reduce the complexity of handling many hotkeys. I may think about it, but as of now, I don't feel like going back to that. I can't promise I'll do it. Sorry!

Closing this in favor of #581.
PTT buttons are specific to each device. Unfortunately, I can't provide support for that button, unless I have the phone to test with.


Export plugins to share directory

This PR is proposing to export the plugins to the package_name/share directory to make it easy for other ROS packages to find the plugins. It also fixes the registration function to the SleepAction example.

thanks!


investigate whether links in repo can work

When looking at the content of .md pages in https://github.com/cf-convention/cf-convention.github.io, most links don't work (though they work fine on the actual site). This is perhaps unavoidable, but it makes it hard to maintain the site and check for broken links while editing the pages.
So this task is to see whether there is a way to manage the links so that they are internally consistent in the repository, as well as in the web site itself. (Maybe involving localizing them?)
This task is meant for John G, as a training exercise. But feel free to add comments/suggestions/wisdom.

This looks stale - I'm closing it but please re-open if relevant!


Make code ORC Friendly?

I was wondering if there was a way to make my pararules integration more ORC friendly? At the moment I can't really integrate it as part of the engine because I've set up my project to use ORC, and it won't let me access anything defined at the top level, including sessions and rules because it's unsafe and collected by the GC.
For reference, here is the file that uses paranim in my project:
import godot
import godotapi/spatial
import asyncdispatch
import pararules
import heapqueue
import source/combat/[battler, stats]
import source/party/skill
import options
import macros

type
  Id* = enum
    Arena,
  Attr* = enum
    CurrentTurn, NextTurn,
    # Stats, Skills,
    IsPlayerControlled,
    ActiveBattler
    # AllBattlers
  TurnQueue* = seq[Battler]
  # SkillSet = ref seq[Skill]
  # Battlers = ref seq[Battler]

proc pop(q: TurnQueue): Battler =
  q.pop()

schema Fact(Id, Attr):
  CurrentTurn: TurnQueue
  NextTurn: TurnQueue
  # Stats: Stats
  # Skills: SkillSet
  IsPlayerControlled: bool
  ActiveBattler: Battler
  # AllBattlers: Battlers

let rule1 =
  rule getCurrentBattler(Fact):
    what:
      (Arena, ActiveBattler, battler)
      (Arena, CurrentTurn, currentTurn, then = false)
    cond:
      battler == nil
    then:
      let currentBattler: Battler = currentTurn[0]
      session.insert(Arena, ActiveBattler, currentBattler)

var
  session = initSession(Fact, autoFire = false)
  initialSession = deepCopy(session)

session.add(rule1)

gdobj BattleArena of Spatial:
  signal battle_ends()
  signal victory()
  signal game_over()

  proc battleStart*() =
    session.add(rule1)
    discard

and here's the error that the compiler is throwing:
/Users/arun/RPG/src/source/combat/battle_arena.nim(54, 7) template/generic instantiation of `gdobj` from here
/Users/arun/RPG/src/source/combat/battle_arena.nim(61, 8) Error: 'battleStart' is not GC-safe as it accesses 'rule1' which is a global using GC'ed memory
     Error: Execution failed with exit code 256
        ... Command: /Users/arun/.nimble/bin/nim c --noNimblePath -d:NimblePkgVersion=0.1.0 --path:'/Users/arun/.nimble/pkgs/godot-#master' --path:/Users/arun/.nimble/pkgs/compiler-1.5.1 --path:/Users/arun/.nimble/pkgs/pararules-0.14.0 --path:/Users/arun/.nimble/pkgs/macroutils-1.2.0 -o:../_dlls/nim_mac.dylib ../src/stub

I stumbled upon this article, and it seems like I could theoretically use shared and guarded pointers, that would require getting the types for Session right in my code, which I haven't been able to do. Any ideas on how to proceed from here?

I have compiled my games with orc without any problems, but i guess this is an issue when interacting with godot. What do you mean by "getting the types for Session"?
Sessions and rules don't need to be defined at the top level. Is there a more local place where you could define them, if that is the problem?
Also are you sure the problem isn't deepCopy? I thought that was problematic with orc. Try using the second suggestion i made for removing all facts instead:
for fact in session.queryAll():
  session.retract(fact.id, Attr(fact.attr))

What I mean by "getting the types for Session" is writing the type annotations as such:
var session: Session[?] = initSession(Fact, autoFire = false)

I removed deepCopy entirely and it's still giving me that error. I defined it as a variable of the class I'm defining, but i'm still getting this:

import godot
import godotapi/spatial
import asyncdispatch
import pararules
import heapqueue
import source/combat/[battler, stats]
import source/party/skill
import options
import macros

type
  Id* = enum
    Arena,
  Attr* = enum
    CurrentTurn, NextTurn,
    # Stats, Skills,
    IsPlayerControlled,
    ActiveBattler
    # AllBattlers
  TurnQueue* = seq[Battler]
  # SkillSet = ref seq[Skill]
  # Battlers = ref seq[Battler]

proc pop(q: TurnQueue): Battler =
  q.pop()

schema Fact(Id, Attr):
  CurrentTurn: TurnQueue
  NextTurn: TurnQueue
  # Stats: Stats
  # Skills: SkillSet
  IsPlayerControlled: bool
  ActiveBattler: Battler
  # AllBattlers: Battlers

gdobj BattleArena of Spatial:
  signal battle_ends()
  signal victory()
  signal game_over()

  var session = initSession(Fact, autoFire = false)

  var rule1 =
    rule getCurrentBattler(Fact):
      what:
        (Arena, ActiveBattler, battler)
        (Arena, CurrentTurn, currentTurn, then = false)
      cond:
        battler == nil
      then:
        let currentBattler: Battler = currentTurn[0]
        session.insert(Arena, ActiveBattler, currentBattler)

  proc battleStart*() =
    self.session.add(self.rule1)
    discard

and here's the error:
/Users/arun/RPG/src/source/combat/battle_arena.nim(38, 7) template/generic instantiation of `gdobj` from here
/Users/arun/.nimble/pkgs/godot-#master/nim/godotmacros.nim(666, 37) Error: 'init' is not GC-safe as it accesses 'thenFn' which is a global using GC'ed memory
     Error: Execution failed with exit code 256
        ... Command: /Users/arun/.nimble/bin/nim c --noNimblePath -d:NimblePkgVersion=0.1.0 --path:'/Users/arun/.nimble/pkgs/godot-#master' --path:/Users/arun/.nimble/pkgs/compiler-1.5.1 --path:/Users/arun/.nimble/pkgs/pararules-0.14.0 --path:/Users/arun/.nimble/pkgs/macroutils-1.2.0 -o:../_dlls/nim_mac.dylib ../src/stub

I think it has something to do with the godot integration and the memory management model of Godot trying to access something from Nim that can be collected by the GC.

I think it will be Session[Fact, Table[string, Fact]], try that.

Hey sorry for the late response, I was caught up with work.
I'm getting:
    Error: Execution failed with exit code 256
       ... Command: /Users/arun/.nimble/bin/nim c --noNimblePath -d:NimblePkgVersion=0.1.0 --path:'/Users/arun/.nimble/pkgs/godot-#master' --path:/Users/arun/.nimble/pkgs/compiler-1.5.1 --path:/Users/arun/.nimble/pkgs/pararules-0.14.0 --path:/Users/arun/.nimble/pkgs/macroutils-1.2.0 -o:../_dlls/nim_mac.dylib ../src/stub

Let me know if this is still a problem; closing because this issue is a year old and pararules works well with orc.


libwacom: 0.33 -> 1.1

Despite the version jump, as far as I can tell there are no incompatible or even large changes; just one new API and some bugfixes/added devices. This release also installs udev rules by default, which will aid in fixing #52490.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip" (was previously checked, but it turns out I ran the wrong command, currently rerunning.)
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

I've ran the gnome3 NixOS test and I am using this build locally with SwayWM without issue.

I'm seeing upstream uses the meson build system, can you port to using this?
I know for sure we'll need to disable the tests.
mesonFlags = [
  "-Dtests=false"
];

Sure! I also noticed this and am excited to see it, I just didn't know that it would be preferable to switch already, since it's still new. I'll do this now.

Can you also add the udev rules to the wacom module?
I believe it should be as simple as adding this package at
https://github.com/NixOS/nixpkgs/blob/d8adf06d355e9f49c86089c7231202094f4ede05/nixos/modules/services/x11/hardware/wacom.nix#L41

I was thinking about doing this kind of thing in a followup PR. As for why I don't just add it there, I have some reservations: This is an X11 specific file, but these udev rules are just as important if you are using Wayland. Would it make sense to perhaps have a config.hardware.wacom config option instead that includes the udev rules? Not sure exactly how it should be structured in relation to config.services.xserver.wacom.

Ported to use Meson.

Sure! I also noticed this and am excited to see it, I just didn't know that it would be preferable to switch already, since it's still new. I'll do this now.

:fireworks: Meson :smile:

I was thinking about doing this kind of thing in a followup PR. As for why I don't just add it there, I have some reservations: This is an X11 specific file, but these udev rules are just as important if you are using Wayland. Would it make sense to perhaps have a config.hardware.wacom config option instead that includes the udev rules? Not sure exactly how it should be structured in relation to config.services.xserver.wacom.

It appears to be organized at modules/services/x11/hardware/wacom.nix.
I agree it would be a good followup PR, it appears the module is outdated and predated wayland's relevance. I'd say a hardware option would make sense, though I probably need to refresh my memory on this component.

So here's the diff between the .pc files with meson
--- /nix/store/ljvlm1b2fyqci1kli0ljbfmr2mizs97m-libwacom-0.33/lib/pkgconfig/libwacom.pc	1969-12-31 19:00:01.000000000 -0500
+++ /nix/store/m5izrmjgx82b60i8a9sfmfb1lhki84ga-libwacom-1.1-dev/lib/pkgconfig/libwacom.pc	1969-12-31 19:00:01.000000000 -0500
@@ -1,11 +1,9 @@
-prefix=/nix/store/ljvlm1b2fyqci1kli0ljbfmr2mizs97m-libwacom-0.33
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
+prefix=/nix/store/i75ix7wz0p0sk0948sfkax74vpkpxh10-libwacom-1.1
+libdir=${prefix}/lib
+includedir=/nix/store/m5izrmjgx82b60i8a9sfmfb1lhki84ga-libwacom-1.1-dev/include

-Name: libwacom
+Name: Libwacom
 Description: Wacom model feature query library
-Version: 0.33
-Requires.private: glib-2.0
-Cflags: -I${includedir}/libwacom-1.0
+Version: 1.1
 Libs: -L${libdir} -lwacom
+Cflags: -I${includedir}/libwacom-1.0
``

No use of `Requires.private`?

Interesting. My best guess is its an artifact of switching to Meson.
I'm currently running nix-review and I don't think the lack of Requires.private is causing any real side-effects, and in fact I'm kind of curious what kinds of side-effects that could cause. Checking the pkg-config docs right now.
May be worth filing a bug upstream if there's real benefit to having Requires.private...

I'm filing a bug upstream. It looks like this difference between autotools and meson is not intended. The current autotools build still contains the Requires.private.

We actual patch away the main thing with Requires.private
https://bugs.freedesktop.org/show_bug.cgi?id=4738
But I still think the deps should be in the pkgconfig file.

I'm filing a bug upstream. It looks like this difference between autotools and meson is not intended. The current autotools build still contains the Requires.private.

Thanks, I made a PR also.
It also appears the udev rules are needed by libinput which uses libwacom

https://github.com/linuxwacom/libwacom/commit/e1de16aca27cbf7ccc86f93051ebf5bc30cec8d9
So I guess those rules can get unconditionally added to the libinput module, or only when the wacom option is turned on.

Merged to staging in b54065a5f6ba62e30cf5cdb974271507d6f600c7. Don't think the requires.private thing will cause an issue for us.
Thanks @jchv.


pyright lags when exiting nvim

nvim 0.5 with minimal config and only pyright server installed I observe the following behaviour:
When I am in a python file (empty or not) and I try to quit nvim :q there is a ~1sec lag.
If I uninstall pyright there is no lag when exiting nvim.
Also, it seems that the location of the file plays a role for some reason if I create it in my home dir or in a dir with multiple python files it lags. If I create it in the ~/.config/nvim folder the exit is instant.
I am not sure if it is a nvim-lspconfig issue or more of a pyright issue.
Thank you for any advice in advance!

(automatic reply)
Lspconfig is meant to operate on projects. It has the notion of root_dir, which is used for two purposes:

To identify which files (under a project) should be attached to a given language server process. This is what is used to setup the autocommand to attach buffers to the server.
To send to the language server the root directory so that the language server can index and provide completion/diagnostics/navigation results on all files under its root

Because lspconfig has historically been used for only well-formed projects, these two are tied together.
This bothered users, who began requesting hacks to allow lspconfig to run on single bare files outside of a project. Falling back to the parent root directory has the advantage of auto-attaching/sharing the same language server (this is an lspconfig thing, not a language server protocol thing), and allowing things like local imports/multi-file detection to transparently work.
Currently, we do not exempt large directories from this, so the server will index the root directory we send.
I am current working on a rewrite to our (internal to lspconfig, not lsp.start_client) root directory system to support local project configuration, bare files (via a scratch language server), but unfortunately it is pretty time consuming. We also can't just omit root_dir in initializationOptions for many servers, pyright is fine (now, historically it required workspaceFolders), but many other servers like scala require a rootUri and will not work in a pseudo single file mode by omitting rootUri in the initializationOptions.
I would personally recommend only using lspconfig with real "projects" and using lsp.start_client directly to attach language servers to bare files.


[WIP] Tf engine dtype

Before submitting
Please complete the following checklist when submitting a PR:

[ ] All new features must include a unit test.
If you've fixed a bug or added code that should be tested, add a test to the
test directory!

[ ] All new functions and code must be clearly commented and documented.
If you do make documentation changes, make sure that the docs build and
render correctly by running make docs.

[ ] Ensure that the test suite passes, by running make test.

[ ] Add a new entry to the .github/CHANGELOG.md file, summarizing the
change, and including a link back to the PR.

[ ] The Strawberry Fields source code conforms to
PEP8 standards.
We check all of our code against Pylint.
To lint modified files, simply pip install pylint, and then
run pylint strawberryfields/path/to/file.py.

When all the above are checked, delete everything above the dashed
line and fill in the pull request template.

Context:
Description of the Change:
Benefits:
Possible Drawbacks:
Related GitHub Issues:

@josh146 I'm just coming back to this one today and it looks to me like the simple change to ops.def_type is not a valid proof of concept anymore (errors coming back from thewalrus). Want me to push up that line change here so you can take a look at test errors?

Want me to push up that line change here so you can take a look at test errors?

Yes, that would be helpful!

@Aaron-Robertson do you see issues if you replace the built-in type with another precision of complex number? (I doubt things would work with floats, a lot of things under the hood leverage complex numbers)

@co9olguy gotcha, that makes sense. I was confused by the float64 use case from the issue/related comment, but see now it's in reference to the Tensor rather than ops.def_type. And yep, complex128 does complete in tests.

TF's DType only defines complex128 and complex64 though, so maybe just allow user to specify a bool mem_intense or something similar?

Nice idea, but I wonder if there is a need for that level of control? From feedback I've heard in the past, I would say it's sufficient to stick with complex64 as the default dtype, but allows users to change it to complex128 if they desire

Nice idea, but I wonder if there is a need for that level of control?

I just meant True => complex128 and False => complex64 as default.

I would say it's sufficient to stick with complex64 as the default dtype, but allows users to change it to complex128 if they desire

Can do, I just thought it would be confusing if there's a dtype arg but the only accepted values are complex64 and complex128. Maybe call it complex_dtype?

Oh I see! Thanks for the clarification @Aaron-Robertson. I'm happy with either solution, but tend to lean more towards the complex_dtype solution, since it makes it more explicit which dtype is being used by the backend

Since having mem_intense as an argument would already require a docstring describing what exactly that means, I'd be in favour of instead just having dtype as the name, saying the acceptable values in the docstring (i.e., the two complex variants), and throwing an direct error message if any other dtype is received

Alright, made enough bandwidth for this one in the next few days (and probably want to clarify before I get too much deeper). Do we want to follow existing patterns for backend args? Essentially add to each tfbackend/ops.py function as optional and pass down from circuit/states?
I can push what I have, but that's about where I landed after testing a couple other approaches. Happy to switch it up too if there's a better recommendation!

Tried a couple cleanups and oddly ran into pipeline test failures that didn't occur locally. Let's merge this one and I can make a cleanup PR for some of the todos in the tf backend, and to similarly replace def_type with dtype param for the fock backend 😄


Frozen marquee on production (works fine on development)

I am using ember-cli-sass to compile my stylesheets. In order to get ember-fast-marquee to work on production, I have to copy and paste the included CSS into a seperate marquee.scss file, which I include in my app.scss.
This works fine on development, but when building to production, the marquee is completely frozen.
It turns out something in my build pipeline removes all units like 'px' from variables with a value of 0. So, '0px' in css becomes '0', which usually is perfectly fine. However, it also did it with the calc() inside the @keyframes definition.
Switching from the use of calc(0px - var(...) to calc(-1 * var(...) in the @keyframes definition fixes this issue:
@-webkit-keyframes marquee_scroll__KV5JD {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(calc(-1 * var(--marquee-scroll-amount)), 0, 0);
  }
}

@keyframes marquee_scroll__KV5JD {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(calc(-1 * var(--marquee-scroll-amount)), 0, 0);
  }
}

Thanks for the report @eelke.


Issue

This issue was made by minemobs#6904<PHONE_NUMBER>88721930) on the Pépite d'or Bot server.
Issue:
846048803554852904

Yay ! It work


Improvements

The openlayers library is very well documented and is a good example to test tsd-jsdoc. Running the tool on the library, I get several errors that could help to improve tsd-jsdoc. Here is a list:

Array of Array: When a type or an argument is defined as Array<Array<something>>, only one Array is processed, ending with Array<something[]>. The same way, an Array<Array<Array<something>>> ends as Array<Array<somthing[]>>.
Inner classes: Inner classes should be generated in a specific module. For example, the Collection class defines an Event inner class. In Typescript, that Event class should be generated in a Collection module:

class Collection {
...
}

module Collection {
    class Event {
    ...
    }
}

Some jsdoc special characters are not ignored: I think this is an issue with jsdoc but it could be managed easily in tsd-jsdoc. For some complex type definitions, the leading '!' or the trailing '=' are kept. For example, {ol.geom.Geometry|Object.<string, *>=} ends in the tsd as (ol.geom.Geometry|{ [k: string]: any }=) or !Array.<string> ends as !string[]. It could be nice to ignore these characters.
Function prototype: openlayers doc precisely defines the function prototypes. It could be nice to generate equivalent Typescript definition. For example, the StyleFunction type is defined as function((ol.Feature|ol.render.Feature), number): (ol.style.Style|Array.<ol.style.Style>) but generated as: () => any. It should be (feature: (ol.Feature|ol.render.Feature), resolution: number) => (ol.style.Style|ol.style.Style[]).
{Array.<function(new: ol.format.Feature)>|undefined} is converted to ((() => any)(new:ol.format.Feature)[] | undefined). The first problem is with the argument that is not well positioned. The second problem comes with the name of the argument: 'new'. Arguments name should be checked to ensure they are not keywords. They could be replaced by the first letter of the argument: (((n: ol.format.Feature) => any)[] | undefined).

To reproduce:

clone the openlayers library
run npm install tsd-jsdoc
update the template line of config/jsdoc/info/conf.json with ./node_modules/tsd-jsdoc
run ./node_modules/.bin/jsdoc config/jsdoc/api/index.md -c config/jsdoc/api/conf.json --package package.json -d build/tsd

Thanks for the notes, I am working on a few of these now; but some of them are new. I will try to get something going here over the next few weeks but I am pretty busy atm.

Getting closer on this, just a few more things to work out and I should be able to release v2 soon. Sorry its been so long :(

Got the module declaration stuff working for inner classes and types.
One note about the function stuff is that while I don't support inline function definitions (yet), your use case is supported if you use the JSDoc @callback tag to create a named callback, that you then use elsewhere.
You can see an examp[le declaration of a callback here and the usage here.
Thanks for being patient, I'll put out a v2 beta build soon.

Just released v2.0.0-beta.1, there are still bugs (the issues I opened) but please feel free to try it out and file more bugs!


Add CancellationRequested to the Cancelled event so we can determine …

…the comms cancelled by the request.

🥇 👍


can't send messages while being in gamemode 3 (spectator)

so, we cannot send messages while being in spectator mode, I don't know if it is supposed to be that way.

Resolved in 9d9e3aec49554e4c8ac6f1e1637615d9c5064584.


PoSMinting race condition

There is a race condition in case you call StopStake and Stake at the same time:
First Stake will create a new stakeCancellationTokenSource  and StopStake will dispose it so by the end of the Stake call staking won't start. Also this race condition covers the whole staking loop itself.

Is that an issue? Staking can then just be called again and will work properly.
Is stop staking was called it was intentional

I guess it is an issue in case in UI we will have a button Start staking/Stop staking. Calling stop and after that start might produce such a race condition so node stats will say that staking is on when it's off.

I am not sure you are right, the cancellation will be cancelled the loop will stop, and this code will still be called this.rpcGetStakingInfoModel.Enabled = false;
So the UI will see staking is not on and user will try again.
Yeah it might crash the node if the cancellation is not initialized already.
But I agree we should put a regular lock around the code in the methods just to be safe.

This is a race condition, I appeal to argument by authority and conclude that I am right. LOL
Anyway, seriously, it can crash the node, I can show you on Skype.

Fair point a race condition as small as it is will bite back eventually I learned that the hard way.