IP no longer allowed in ServiceEntry host field

Describe the bug
With the 1.1 release, the host field of a service entry can no longer be an IP address.  Perhaps this is intended, but if so, additional documentation needs to be added on how to allow an IP address for a service entry.
Expected behavior
An IP address is allowed for a service entry.  Our mesh is configured with REGISTRY_ONLY and our application needs to access the AWS ec2 metadata endpoint at <IP_ADDRESS>.  Have tried
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: aws-metadata
spec:
  hosts:
  - ec2-metadata.local
  endpoints:
  - address: <IP_ADDRESS>
  ports:
  - number: 80
    name: http-aws-metadata
    protocol: HTTP
  resolution: STATIC
  location: MESH_EXTERNAL

as a hopeful workaround, but this doesnt work either.
Steps to reproduce the bug
Unable to create the following service entry which worked in istio 1.0.6
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: aws-metadata
spec:
  hosts:
  -<IP_ADDRESS>
  ports:
  - number: 80
    name: http-aws-metadata
    protocol: HTTP

Version
client version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.0-17-g2b13318"}
citadel version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
galley version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
galley version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
ilbgateway version: version.BuildInfo{Version:"", GitRevision:"", User:"", Host:"", GolangVersion:"", DockerHub:"", BuildStatus:"", GitTag:""}
ilbgateway version: version.BuildInfo{Version:"", GitRevision:"", User:"", Host:"", GolangVersion:"", DockerHub:"", BuildStatus:"", GitTag:""}
ingressgateway version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.0-17-g2b13318"}
ingressgateway version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Clean", GitTag:"1.1.0-17-g2b13318"}
nodeagent version: version.BuildInfo{Version:"", GitRevision:"", User:"", Host:"", GolangVersion:"", DockerHub:"", BuildStatus:"", GitTag:""}
nodeagent version: version.BuildInfo{Version:"", GitRevision:"", User:"", Host:"", GolangVersion:"", DockerHub:"", BuildStatus:"", GitTag:""}
nodeagent version: version.BuildInfo{Version:"", GitRevision:"", User:"", Host:"", GolangVersion:"", DockerHub:"", BuildStatus:"", GitTag:""}
nodeagent version: version.BuildInfo{Version:"", GitRevision:"", User:"", Host:"", GolangVersion:"", DockerHub:"", BuildStatus:"", GitTag:""}
pilot version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
pilot version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
policy version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
policy version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
sidecar-injector version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
telemetry version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}
telemetry version: version.BuildInfo{Version:"1.1.1", GitRevision:"2b1331886076df103179e3da5dc9077fed59c989-dirty", User:"root", Host:"7077232d-4c6c-11e9-813c-0a580a2c0506", GolangVersion:"go1.10.4", DockerHub:"docker.io/istio", BuildStatus:"Modified", GitTag:"1.1.0-17-g2b13318"}

Client Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.0", GitCommit:"ddf47ac13c1a9483ea035a79cd7c10005ff21a6d", GitTreeState:"clean", BuildDate:"2018-12-03T21:04:45Z", GoVersion:"go1.11.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.7", GitCommit:"65ecaf0671341311ce6aea0edab46ee69f65d59e", GitTreeState:"clean", BuildDate:"2019-01-24T19:22:45Z", GoVersion:"go1.10.7", Compiler:"gc", Platform:"linux/amd64"}

Installation
via helm template
Environment
AWS
Cluster state
Will provide if necessary, but dump script doesnt work with multiple pilot pods.

We're seeing this too. Any workarounds?

If you specify the meta data IP using CIDR notation, that should fix it for you. See the documentation here: https://istio.io/docs/reference/config/networking/v1alpha3/service-entry/#ServiceEntry.

@neiltoshten i have the same issue upgrading from 1.0.6 to 1.1.6. I did not see any mention about this breaking change and i ran the google tool to ensure the cluster is ready for upgrade but it s apparently not checking service entries.
for google metadata server, i did the following:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: whitelist-egress-googleapis
spec:
  hosts:
    - "metadata.google" # GCE metadata server
    - "metadata.google.internal" # GCE metadata server
    - "accounts.google.com" # Used to get token
    - "*.googleapis.com"
  addresses:
    - <IP_ADDRESS> # GCE metadata server
  ports:
    - number: 80
      protocol: HTTP
      name: http
    - number: 443
      protocol: HTTPS
      name: https

but for single ip service entries, i am not sure what it needs in the hosts since it is required:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: whitelist-cloudsql-egress
spec:
  hosts:
    - w.x.y.z
  addresses:
    - w.x.y.z/32

@Jonathan34
I think something like that will work
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: kube2iam
spec:
  hosts:
  - example.com
  addresses:
  - <IP_ADDRESS>/32
  ports:
  - number: 80
    name: http
    protocol: HTTP
  resolution: NONE
  location: MESH_EXTERNAL

@Jonathan34
I think something like that will work
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: kube2iam
spec:
  hosts:
  - example.com
  addresses:
  - <IP_ADDRESS>/32
  ports:
  - number: 80
    name: http
    protocol: HTTP
  resolution: NONE
  location: MESH_EXTERNAL

What if i dont have a example.com domain for it? i m trying to connect to a public cloudsql instance.
It seems it will be ignored when connection is TCP. I am deploying and will test soon.

In this case, would a hosts: * work when you just have IP but don't have a domain ?
@frankbu @hzxuzhonghu - I think we tightened up checking for hosts in 1.1. Thoughts?
cc @mbanikazemi @howardjohn

@linsun admission webhook "pilot.validation.istio.io" denied the request: configuration is invalid: invalid host *
if i put 'foobar' as host, it creates the entry (have yet to try if it works)

You should use the addresses field to set the IP. When addresses is set, hosts is ignored, so it can be any hostname you like. I wonder why we don't just make hosts optional, and generate some name in this case?
^^^ @rshriram

@frankbu the host name is not fully ignored, our docs are not entirely correct. I think it is used to match VS at the very least. See https://github.com/istio/api/pull/932.

i can confirm what @howardjohn says:
2019-05-31T21:40:29.005021Z    info    parseHostname(unused) => error missing service name and namespace from the service hostname "unused"

I set unused but it still does something with it. It seems the serviceentry works though with such host. So it's parsed but not used.
There is still some other breaking changes related to ServiceEntry that I have not identified yet.
The following service entry works in istio 1.0.6 but generates ECONNRESET with istio 1.1.3.
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: whitelist-egress-cosmosdb
spec:
  hosts:
    - <xyz>.documents.azure.com
  ports:
    - number: 443
      protocol: HTTPS
      name: https

I updated it to the below and at least it does not complain anymore about the connection but any query to my service returns 503, no healthy upstream.
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: whitelist-egress-cosmosdb
spec:
  hosts:
    - <xyz>.documents.azure.com
  ports:
    - number: 443
      protocol: TLS
      name: https
  resolution: NONE
  location: MESH_EXTERNAL

This is a Azure CosmosDB instance using Gremlin Graph API... may be some can share some lights here?

@mbanikazemi @howardjohn @frankbu @linsun would you please provide some guidance on how to debug that on istio 1.1.3?

@Jonathan34 Have you tried using Istio 1.1.7? On Istio 1.1.4+ you should be able to access the db even without a ServiceEntry. See: https://istio.io/docs/tasks/traffic-management/egress/#envoy-passthrough-to-external-services

@frankbu i'm using the GKE-managed istio addon. So I cannot really control the version... I am fine in providing a serviceentry and i think it s aogod practice to exaustively whitelist the egress traffic, but i can't understand what changed between istio 1.06 and 1.1.3 that either break the service entry i had or make it incomplete.

I don't think this is supposed to have changed, but maybe there's a bug in 1.1.3???
Does this example work in your env: https://istio.io/docs/tasks/traffic-management/egress/#access-an-external-https-service?
If it does, can you do the same thing using your db URL and see what it has in the logs?

Using a dummy hostname as suggested in the thread is working for me on GKE
with managed Istio 1.1.3.
On Tue, Jun 4, 2019 at 10:53 Frank Budinsky<EMAIL_ADDRESS>wrote:

I don't think this is supposed to have changed, but maybe there's a bug in
1.1.3???
Does this example work in your env:
https://istio.io/docs/tasks/traffic-management/egress/#access-an-external-https-service
?
If it does, can you do the same thing using your db URL and see what it
has in the logs?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/issues/13009?email_source=notifications&email_token=AAFWH2QCO3DEM4D657CK4CDPY2T3BA5CNFSM4HDGBW42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW5LPIA#issuecomment-498775968,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAFWH2UTDQTS6NZHTN57QZLPY2T3BANCNFSM4HDGBW4Q
.

@frankbu
it does not behave the same way as the documentation.... I scripted the commands run in the documentation and the behavior is different. see below the commands and output.
the namespace default is empty.
--> Applying resources...
serviceaccount/sleep unchanged
service/sleep unchanged
deployment.extensions/sleep configured

--> Waiting...

-->SOURCE_POD=sleep-654d99c54c-snc98
kubectl get configmap istio -n istio-system -o yaml | grep -o "mode: ALLOW_ANY"
mode: ALLOW_ANY
mode: ALLOW_ANY

-->Make a couple of requests to external HTTPS services from the SOURCE_POD to confirm successful 200 responses
command terminated with exit code 51
command terminated with exit code 51

-->Make a couple of requests to external HTTPS services from SOURCE_POD to verify that they are now blocked
command terminated with exit code 51
command terminated with exit code 51

-->Accessing an external HTTP service - creating service entry on port 80
serviceentry.networking.istio.io/httpbin-ext created

--> Waiting...

-->kubectl exec -it sleep-654d99c54c-snc98 -c sleep -- curl http://httpbin.org/headers

-->kubectl logs sleep-654d99c54c-snc98 -c istio-proxy | tail
[2019-06-04 18:09:53.922][11][warning][config] [external/envoy/source/server/listener_manager_impl.cc:307] adding listener '<IP_ADDRESS>:443': filter chain match rules require TLS Inspector listener filter, but it isn't configured, trying to inject it (this might fail if Envoy is compiled without it)
2019-06-04T18:09:55.379488Z	info	Envoy proxy is ready
[2019-06-04 18:39:02.258][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 18:39:02.591][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2019-06-04 19:09:49.921][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 19:09:50.204][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2019-06-04 19:39:26.529][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 19:39:27.064][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2019-06-04 20:08:24.005][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 20:08:24.345][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.

-->kubectl -n istio-system logs -l istio-mixer-type=telemetry -c mixer | grep 'httpbin.org'

-->Access an external HTTPS service - creating service entry om port 443
serviceentry.networking.istio.io/google created

--> Waiting...

-->kubectl exec -it $SOURCE_POD -c sleep -- curl -I https://www.google.com | grep  "HTTP/"
command terminated with exit code 51

-->kubectl logs $SOURCE_POD -c istio-proxy | tail
[2019-06-04 18:09:53.922][11][warning][config] [external/envoy/source/server/listener_manager_impl.cc:307] adding listener '<IP_ADDRESS>:443': filter chain match rules require TLS Inspector listener filter, but it isn't configured, trying to inject it (this might fail if Envoy is compiled without it)
2019-06-04T18:09:55.379488Z	info	Envoy proxy is ready
[2019-06-04 18:39:02.258][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 18:39:02.591][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2019-06-04 19:09:49.921][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 19:09:50.204][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2019-06-04 19:39:26.529][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 19:39:27.064][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.
[2019-06-04 20:08:24.005][11][warning][config] [bazel-out/k8-opt/bin/external/envoy/source/common/config/_virtual_includes/grpc_stream_lib/common/config/grpc_stream.h:86] gRPC config stream closed: 13,
[2019-06-04 20:08:24.345][11][warning][misc] [external/envoy/source/common/protobuf/utility.cc:174] Using deprecated option 'envoy.api.v2.Listener.use_original_dst' from file lds.proto. This configuration will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/intro/deprecated for details.

-->kubectl -n istio-system logs -l istio-mixer-type=telemetry -c mixer | grep 'www.google.com'

-->cleanup
serviceentry.networking.istio.io "httpbin-ext" deleted
serviceentry.networking.istio.io "google" deleted

In that case, I think you must have some kind of bad configuration in your cluster that is interfering with outgoing calls. Do you have any other ServiceEntry or DestinationRules defined? Are you running Istio with PERMISSIVE or STRICT auth?
I would suggest trying again using a clean cluster.

. Do you have any other ServiceEntry or DestinationRules defined

I have other service entries for CloudSQL, one for some internal appspot urls, and one for google metadata server. I am using Permissive.
I just tried to disable/uninstall istio and reinstall using GKE commands but that does not really fix anything.
It seems what fixes it is to have the Gateway resource in the same namespace as the service entries (i am not using default). That used to work fine in 1.0.6.
Documentation says it It is recommended that the Gateway resource reside in the same namespace as the gateway workload. This may become a requirement in the future.

Seeing this issue in 1.2 also:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: aws-metadata
spec:
  endpoints:
    - address: <IP_ADDRESS>
  hosts:
    - <IP_ADDRESS>
  location: MESH_EXTERNAL
  ports:
    - name: http
      number: 80
      protocol: HTTP
  resolution: STATIC

You need to set a hostname, but what it is doesn't really matter for these cases which is a bit confusing. https://github.com/istio/api/pull/932 just landed which improves the docs. Basically, the hostname is used to match the serviceentry to DestinationRules and VirtualServices, but otherwise isn't needed.
This change is expected and documented (well, it should be now at least :slightly_smiling_face: ).
Is there anything else we need to do here? In retrospect this should have been in the release notes probably, as some other users ran into this as well

I still haven't found a permutation that works in 1.2.0.  Previously, was using this in GKE on Istio up to 1.1.8:
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: gce-metadata
spec:
  hosts:
  - metadata.google.internal # not used with addresses
  addresses:
  - <IP_ADDRESS>
  ports:
  - number: 80
    name: http
    protocol: HTTP
  resolution: STATIC
  location: MESH_EXTERNAL
  endpoints:
  - address: <IP_ADDRESS>

That still passes the validation, but doesn't work.  I've tried appending a /32 to the addresses: line, but that apparently gets evaluated in a way that the validator thinks there's no change and discards te edit.  I added a suffix to the port name to force a change, but I still get 403 in the application container.  Dropping the endpoints attribute and changing resolution to NONE also doesn't work.  Putting the endpoints back and changing resolution to DNS also didn't work.  I'm sure that the endpoint is available because if I exec into the istio-proxy container instead, I can curl it just fine.
(Note that this is for a freshly-deployed cluster, not upgraded from 1.1.x.)
Does anyone have something that actually works with Istio 1.2.0?  And could we get that added as an example to the ServiceEntry page since that's going to be a very popular use case and would work in both GKE and AWS EC2?

I did spend a little more time looking here.  istioctl authn tls-check for the service that needs to connect to the metadata endpoint does return the following:
metadata.google.internal:80                                   CONFLICT     mTLS          HTTP       default/                                     gce-metadata/stackrox
Note there was no change in mTLS auth (required by default), outbound traffic policy (REGISTRY_ONLY) from the 1.1.8 installation to 1.2.0.    Already for Istio 1.1.x, we also had a DestinationRule:
kind: DestinationRule
metadata:
  name: gce-metadata
spec:
  host: metadata.google.internal
  trafficPolicy:
    tls:
      mode: DISABLE

These are the types of error i get using 1.2.0:
2019/06/26 08:37:05 rpc error: code = Unauthenticated desc = transport: compute: Received 403 `<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 403 (Forbidden)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7%!a(MISSING)uto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100%!p(MISSING)x no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0%/100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100%}}#logo{display:inline-block;height:54px;width:150px}
</style>
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>

and if I put my destination rule in the namespace i get this:
2019/06/26 08:41:32 rpc error: code = Unauthenticated desc = transport: compute: Received 403 `<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 403 (Forbidden)!!1</title>
<style>
*{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7%!a(MISSING)uto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100%!p(MISSING)x no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0%/100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100%}}#logo{display:inline-block;height:54px;width:150px}
</style>
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>

below are my definition (namespace for service entry do not seem to have any effect n the behavior):
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: whitelist-egress-googleapis
  # namespace: development
spec:
  hosts:
    - "*.googleapis.com"
    - "accounts.google.com"
  ports:
    - number: 443
      name: https
      protocol: HTTPS
  location: MESH_EXTERNAL
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: whitelist-egress-google-metadata-server
  # namespace: development
spec:
  hosts:
    - metadata.google.internal
  addresses:
    - <IP_ADDRESS>
  ports:
    - number: 80
      name: http
      protocol: HTTP
    - number: 443
      name: https
      protocol: HTTPS
  resolution: DNS
  endpoints:
    - address: <IP_ADDRESS>
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: gce-metadata-internal
  namespace: development
spec:
  host: metadata.google.internal
  trafficPolicy:
    tls:
      mode: DISABLE

@kbruner The TLS conflict seems to imply that your DestinationRule isn't being found. Note that the scope of visibility has been tightened up recently. It won't be found in just any namespace. The search path is: 1. client namespace, 2. service namespace, 3. istio-system. If it's in any other namespace it won't be used.

@frankbu In my case, the ServiceEntry, DestinationRule and Deployment are all in the same namespace.

i managed to get it working using the below and I don't get 403 anymore:
PS: i am not using workload identity
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: metadata-google-internal
spec:
  hosts:
    - metadata.google.internal
  http:
    - route:
        - destination:
            host: metadata.google.internal
          headers:
            request:
             remove:
                - x-forwarded-for
---
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: metadata-google-internal
spec:
  hosts:
    - metadata.google.internal
  addresses:
    - <IP_ADDRESS>
  ports:
    - name: http
      number: 80
      protocol: HTTP
    - name: https
      number: 443
      protocol: HTTPS
  location: MESH_INTERNAL
  resolution: DNS

Are you sure the x-forwarded-for header is the problem? I'm wondering if the problem is visibility of the DestinationRule when there's no VirtualService. If you just add a NOOP VirtualService that simply forwards to the same host (i.e., take out the headers part, does that work too?

Are you sure the x-forwarded-for header is the problem? I'm wondering if the problem is visibility of the DestinationRule when there's no VirtualService. If you just add a NOOP VirtualService that simply forwards to the same host (i.e., take out the headers part, does that work too?

I do not have any DestinationRule anymore; I opened 80 and 443 to make the access happy although metadata only access 80.

@frankbu the x forwarded for header was changed in 1.2.0 which causes this issue, Here is the PR with merge resolved. https://github.com/istio/istio/pull/15167 reverts it which fixes the issue. I tested this by manual curling with x forwarded for (not through envoy) and it fails

@frankbu the x forwarded for header was changed in 1.2.0 which causes this issue, Here is the PR with merge resolved. #15167 reverts it which fixes the issue. I tested this by manual curling with x forwarded for (not through envoy) and it fails

Google support mentioned a fix is in preparation for 1.2.2 and being tested. Now i don't know if the fix means revert. Just FYI
Having an example from istio team is required now, we are all losing time deploying istio on GKE and using GCP services because of the lack of examples and guidance from the Google/Istio team. So it will be highly appreciated to have a recommended approach for that metadata access

As of 1.4.5, the ServiceEntry below allows access for both http://<IP_ADDRESS> and http://metadata.google.internal
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: gke-metadata-server
spec:
  hosts:
    - metadata.google.internal
  addresses:
    - <IP_ADDRESS>
  ports:
    - name: http
      number: 80
      protocol: http
  resolution: STATIC
  location: MESH_EXTERNAL
  endpoints:
    - address: <IP_ADDRESS>

Would the same ServiceEntry work for AWS?  Getting 403 errors as well connecting to <IP_ADDRESS>.

As of 1.4.5, the ServiceEntry below allows access for both http://<IP_ADDRESS> and http://metadata.google.internal
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: gke-metadata-server
spec:
  hosts:
    - metadata.google.internal
  addresses:
    - <IP_ADDRESS>
  ports:
    - name: http
      number: 80
      protocol: http
  resolution: STATIC
  location: MESH_EXTERNAL
  endpoints:
    - address: <IP_ADDRESS>

Thanks. This was really helpful. Ultimately, I had to use a shortened name for the hostname for my env to work:
  hosts:
    - metadata


Merge pull request #1 from Zaidimai1971:box2d-2.4

#1

@shakiba will these pull requests be merged soon?

Let me see what is done here. I'm going to publish v1-beta over next two weeks, may include this PR as well.

I cherry-picked 94bd7a7...f9d2a69 into v1-beta branch.
I guess we can close this PR.


Support compileServerOptions for when you need to compile with a javac with options set

You'll get a bloop server with these flags set, isolated from those with same version but other flags.
You specify the options in yaml:
jvm:
  name: ...
  compileServerOptions:
    - foo
    - bar

You can also set compileServerOptionIncludeDefault = false if your needs conflict with the default flags from bloop

This works, and lets me work with experimental JVM options and so on, which is awesome.
I'll let it linger a bit more, because I'm wondering if these flags should be propagated to the normal javacOptions in all the projects. Gonna have a to investigate a bit


Project: Financial Control

Project name
FinancialControl
Description
Hey you all, thanks in advance for the time considering my project :))
My project was thought by my wife, so, here are the credits, darling.
We pass through tough times leading with lack of money and not knowing what to pay, and when..
So, I tried to integrate my own calendar in this Blazor page (Im new to Razor), and show me a more intuitive calendar view of my incoming and outcome bills!
Its a simple project, but, I hope to get my badge!
If not asking too much, if you could send me a feedback, and if Waldek, could give me tips to be a MVP, that'd be awesome!
Thanks guys, see you around! :)
Repo URL
https://github.com/PabloVenino/hack-together
Team members
PabloVenino

I submit the appsettings.Json with my credentials, I know, but its because I created a brand new account that I wont use.

Very nice @PabloVenino! Would you be willing to record a short video to demonstrate the app? It's not required for the hackathon but it would help us showcase your work internally at Microsoft and publicly in the community 😊

As for tips for becoming an MVP: join a community, either a local one where you live/work, or the M365 & Power Platform Community and help others by sharing your experience.

Very nice @PabloVenino! Would you be willing to record a short video to demonstrate the app? It's not required for the hackathon but it would help us showcase your work internally at Microsoft and publicly in the community 😊

Hey @waldekmastykarz, thanks for the rapdly reply!
Uhh, I can try, Im not the video maker but its no problem!
There is a deadline to the video to be done? Where could I sent it to?
Thanks again

Hello Susanadev<EMAIL_ADDRESS>Mr. Mastykarz
First and foremost: I’m the author of electrifier:
Project: electrifier integrated desktop environment · Issue #188 · microsoft/hack-together (github.com)https://github.com/microsoft/hack-together/issues/188
My Name is Thorsten Jung from Germany. You should be able to watch the video here: https://youtu.be/ZbIb03M76Hg
Thanks in advance, glad to be part of the contest. Great Job! 😊
Regards,
Thorsten Jung aka tajbender
From: Waldek Mastykarz @.>
Sent: Thursday, March 16, 2023 3:11 PM
To: microsoft/hack-together @.>
Cc: Subscribed @.***>
Subject: Re: [microsoft/hack-together] Project: Financial Control (Issue #210)
It would be awesome if you could do the video in the next few days. It can be a simple screen capture, doesn't have to be anything fancy. You can either add it to a comment here, add it to your repo or upload to YouTube, whichever is the most convenient for you.
—
Reply to this email directly, view it on GitHubhttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fhack-together%2Fissues%2F210%23issuecomment-1472055148&data=05|01||1ad9607ce1ec4e80db7a08db26283c2e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638145726464227623|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=BDo5alXwBytLtiQI%2B3ZDvsxmeCCNUEvG73Zkp15RZ9w%3D&reserved=0, or unsubscribehttps://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FACTUEW6L57O5Z4ZKXSVO3TLW4MNOJANCNFSM6AAAAAAV4UJO4M&data=05|01||1ad9607ce1ec4e80db7a08db26283c2e|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638145726464227623|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=V7GBsq%2FV4K1Zt8LlCMhg4jYcfYIj%2FPqjQXvub5pAq3k%3D&reserved=0.
You are receiving this because you are subscribed to this thread.Message ID<EMAIL_ADDRESS>


chore: update readme, add requirements.txt and minor improvements

The changes mentioned here are already taken care of and will be released soon. Thank you for these.

The changes mentioned here are already taken care of and will be released soon. Thank you for these.

ok, anyways, I was wondering if you will handle in this repository the conversion of the "pose estimation" from camera world to world position, having as reference noted position in the world coords, will you?


Precision loss and incompatible precisions between select and select last.

Describe the bug

I can not get precise result of float values using  select query.
When executing select and select last, I got float values in different precisions.

To Reproduce
Steps to reproduce the behavior:

Create timeseries:  CREATE TIMESERIES root.t.d WITH DATATYPE=FLOAT, ENCODING=RLE
Insert data: INSERT INTO root.t(timestamp,d) VALUES(1,1.23456789)
Select data: SELECT * FROM root.t, the returned value is 1.23.
Select data using last:  SELECT LAST * FROM root.t, the returned value is 1.2345679.

Expected behavior
It should return at least the precise float value instead of an approximate one.
The result is expected to at least be the same as the returned value using select last.
Screenshots

Desktop (please complete the following information):

OS: Windows10
Version iotdb 0.10.1

Additional context
No

Hi, I think RLE is not a good choice for high precision. If you looking for high precision, better to use GORILLA instead.
Please see this doc on website for more information of the encoding precision.
https://iotdb.apache.org/UserGuide/Master/Concept/Encoding.html
The reason why select last doesn't loss precision is the result is cached when the data insert. :)


Fix predicate output and add threeDayPredicate

This PR adjusts the predicate output so that they compare tuples of full datestrings, instead of tuples of partial date integers. (i.e. the dayPredicate for May 6th, 2015 used to return (2015, 5, 6), and now returns ('2015-5-6').)
Also adds a threeDayPredicate for comparing days with slight differences.

lgtm

I just love those internal list comprehensions, don't I?
On Fri, Jun 9, 2017 at 7:36 PM Forest Gregg<EMAIL_ADDRESS>wrote:

@fgregg commented on this pull request.
In dedupe/variables/datetime_predicates.py
https://github.com/dedupeio/dedupe-variable-datetime/pull/3#discussion_r121217187
:

@@ -18,6 +20,7 @@ def make_predicate(attrs):
output = tuple(attrs)
# Check that all resolutions are present in the string
if all(output):

   output = tuple(['-'.join(str(dt) for dt in output)])

don't need the internal list comprehension, I don't think?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dedupeio/dedupe-variable-datetime/pull/3#pullrequestreview-43255474,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ANg6Gn5zgnGL9OtQmUiFZNuVYX2fClnBks5sCeUjgaJpZM4N1yx2
.

oh right! but you could just write this as
('-'.join(str(dt) for dt in output), )
On Wed, Jun 14, 2017 at 9:45 AM, Jean Cochrane<EMAIL_ADDRESS>wrote:

@jeancochrane commented on this pull request.
In dedupe/variables/datetime_predicates.py
https://github.com/dedupeio/dedupe-variable-datetime/pull/3#discussion_r121968397
:

@@ -18,6 +20,7 @@ def make_predicate(attrs):
output = tuple(attrs)
# Check that all resolutions are present in the string
if all(output):

   output = tuple(['-'.join(str(dt) for dt in output)])

Turns out in this case we do need the internal comprehension:
[image: screen shot 2017-06-14 at 9 43 55 am]
https://user-images.githubusercontent.com/14170650/27138403-0e519ea0-50e6-11e7-9498-86a34eb68205.png
Which makes sense, because string.join() transforms the output of the
comprehension into a string.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/dedupeio/dedupe-variable-datetime/pull/3#discussion_r121968397,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAgxbbvv9lMMjT5POkancOw1p1ozYj2Eks5sD_IagaJpZM4N1yx2
.

--
773.888.2718


Update identify-a-hold-on-an-exchange-online-mailbox.md

Needed to update a couple of areas to reflect information about user accounts being disabled.  Work item 3145695

Learn Build status updates of commit c078888:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/identify-a-hold-on-an-exchange-online-mailbox.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit dbb7ba4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/identify-a-hold-on-an-exchange-online-mailbox.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@braalf, kindly commit the suggested change. Thanks.

Learn Build status updates of commit dc9b5ab:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/identify-a-hold-on-an-exchange-online-mailbox.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@JohanFreelancer9 when will this merge and be live in the doc?

@JohanFreelancer9 when will this merge and be live in the doc?

@yogkumgit, can you please help to get this merged? Thanks.

@robmazz Please merge this PR. Thanks

Learn Build status updates of commit 36af3ea:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/identify-a-hold-on-an-exchange-online-mailbox.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Learn Build status updates of commit 9586480:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-365/compliance/identify-a-hold-on-an-exchange-online-mailbox.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel


Added Documentation

This is an attempt to organize and prioritize added documentation that would be helpful. The priorities allow me to get the most useful content done first. I am planning to get a good part of this done, but likely not all of it.
The list is based on my incomplete information. It describes purely additions to the current documentation. Please get in your feedback - should it be structured differently? Did I forget something important? Did I order the importance incorrectly?
Note 1: I'm planning to update this list continuously based on your comments. Thus, when you add a new comment, you can always see the most up-to-date information.
Note 2: I use bold question marks to ask for your opinion when I'm not sure whether a section should be included or what it should contain.
The following is ordered by importance:

[ ] Getting started

[ ] Adding REPL output to block code when helpful

[ ] Importing and exporting

[ ] RDA
[ ] A list to packages that read data of various format (Matlab, SAS, Stata, Excel...)

[ ] API reference, automatically generated from docstrings (Example: http://pandas.pydata.org/pandas-docs/dev/api.html)
[ ] Comparison to R & Pandas (Example: http://pandas.pydata.org/pandas-docs/stable/comparison_with_r.html)
[ ] Extended example: Start from raw data, clean it, create a model, predict, graph results. Use GadFly to create graphs.
[ ] FAQ

[ ] Why does this algorithm require a matrix and does not work with a DataFrame?
[ ] Why do I need to use symbols for columns instead of strings?
[ ] Some of John's blog posts would fit well here (probably shortened)
[ ] ...

[ ] Cookbook (Example: http://pandas.pydata.org/pandas-docs/stable/cookbook.html) ?

[ ] ... various examples to later be filled in

[ ] Various (not yet organized into sections)

[ ] The ways you can generate a dataframe from data
[ ] Deleting/appending dataframe or columns
[ ] Performance discussion ?

Great outline. As far as a reference API, it'd be nice to use docstrings in the code. These can be used in Julia 0.4 or lower versions with Docile/Lexicon. That way, functions have help in the REPL. I started adding docstrings to some of the code:
https://github.com/JuliaStats/DataFrames.jl/blob/master/src/abstractdataframe/reshape.jl
These docstrings are in Markdown format, so using them with Sphinx will require a conversion with Pandoc or something else. The Markdown docstrings work great with Mkdocs, but then the rest of the docs would need to be in Markdown format. Readthedocs supports both Sphinx and Mkdocs, but I don't know if you can mix them.

@tshort Yes, for the API reference, I realize using docstrings is the only practical way (this is also how Pandas does it (http://pandas.pydata.org/pandas-docs/dev/api.html). I can look into whether these can be automatically converted from Markdown to Sphinx.
From what I can see, docstrings have relatively small coverage of the code. Is there general agreement to move towards them?

Within the Julia community, I think there's a general approval to move towards docstrings. Other DataFrames developers will need to chime in on suitability for DataFrames in particular. I know @johnmyleswhite has used them quite well. We should also think about coordination with DataArrays; there are docstring-like comments in DataArrays, but I'm not sure what the target for those is.
I can help with docstrings for parts of DataFrames that I'm familiar with.

I'd be happy to participate in that rewrite. Having recently switched to docstrings in another project, it turned out to be much less work than expected.

It looks like the existing documentation uses fairly plain reStructuredText. I just tried converting a couple of the rst files to Markdown with pandoc, and it works well. It might be pretty easy to convert everything to Markdown and then use Mkdocs for the core documentation and the API. I like that approach. Here are examples of packages that do that:

https://michaelhatherly.github.io/Docile.jl/
https://tshort.github.io/Sims.jl/
https://www.google.com/search?q=mkdocs.yml+jl+site:github.com&ie=utf-8&oe=utf-8

@garborg will need to chime in before doing anything drastic like that.

Nothing against docstrings and Markdown here, either. I would caution against sinking too much time into DataArrays, though -- removing them completely in favor of something with the less troublesome semantics of the NullableArray concept is a high priority -- hopefully it happens soon.

I did a quick-and-dirty conversion to Markdown for use with Mkdocs. Here is the branch:
https://github.com/JuliaStats/DataFrames.jl/tree/mkdocs
Here is the result:
http://juliastats.github.io/DataFrames.jl/
It needs some work, but it might be a starting point if we want to go this route. The API part is quite sparse because we don't have many docstrings, yet.

@tshort Thanks for starting on this! My feeling is that this should already be its own issue: "Convert documentation to docstrings" where this can be discussed further? Since conversion is easy, I can start extending the non-API documentation and convert to the format we'll end up choosing in the end.

I added some more docstrings to the mkdocs branch and updated the docs in the link above. I'll probably do a WIP pull request on this branch soon.

@tshort this is fantastic. How do you want to proceed if I write added documentation? I am thinking of branching off mkdocs, adding some documentation, getting everyone's feedback, and then merging into mkdocs when it looks good. Let me know if there's a better way to get this done.

For proceeding, options could include:
(1) Get what we have merged (after suitable review), and keep submitting PR's for both API and non-API docs as they are done. This assumes we are planning to go with the Mkdocs approach and standardize on Markdown.
(2) Split up the existing Mkdocs branch into a docstrings branch and a non-API docs branch. The non-API docs branch could be either Mkdocs or Sphinx, depending on preference.
Option 1 is the easiest. However, @garborg or other key developers might not be comfortable with the rather sudden switch in documentation formats. Option 1 is not a no-return path. We can keep both the Sphinx and Mkdocs in parallel for a while in case we decide that Mkdocs isn't working. But, any additions on the Markdown side to the non-API docs would have to be ported if we wanted to switch back to Sphinx.
@cgoldammer, if you want to start adding docs immediately, your plan to branch mkdocs sounds fine.

I think the direction you're headed is the right one.

@tshort and @johnmyleswhite this all sounds good. I have already started writing added documentation in markdown, but I'll wait for feedback from @garborg before putting in pull requests. Then, I'll submit them in the chosen format, one section at a time. I'd also be happy to convert the format afterwards if that becomes necessary.

@cgoldammer I'm on board, too -- go for it!

@garborg @tshort. Apologies for removing the comment, used the wrong account.
I have written additional documentation in markdown, and I proposed adding it as pull requests one section at a time. So all is good from my side, you'll hear again from me once I have the stuff written.

@garborg @tshort. Apologies for removing the comment, used the wrong account.
I have written additional documentation in markdown, and I proposed adding it as pull requests one section at a time. So all is good from my side, you'll hear again from me once I have the stuff written.

ReadTheDocs (still with Mkdocs) has a couple of advantages over using Github Pages for hosting:

It has searching.
It can host multiple versions.
The theme will match Julia base as well as other packages.

Here's a test of it:
http://testdataframesjl.readthedocs.org/en/readthedocs/
I like the looks a bit better than the default Mkdocs look on gh-pages.

@tshort, I'm going through the docs folder and cleaning it up right now - that'll be my first pull request. Do you have preferences for writing section headers? The docs currently use === and ---; I prefer the # notation (easier to write and seems cleaner to me) but am happy to stick with the status quo.

Great! I prefer # notation, too. The === just came in as part of the conversion from RST.

@tshort, one more question: For code blocks, I assume we want to use ```julia```? It's a little more work but simply seems like the right thing to me.

Yes, we want ````julia`. That gives us decent syntax highlighting. The indented blocks came in again as part of the conversion.

@tshort Finally done with the cleaning! Since you already merged mkdocs into master, are you ok with a pull request into master?

Yes on the PR to master.

I've got additional documentation written and would appreciate your feedback. @johnmyleswhite or @tshort, a quick question about organizing the commits: I'm currently working in my own branch, added-documentation. Do you want me to push this new branch to origin or instead directly merge this branch into master? Thanks!

I think pushing your documentation branch here is fine, but @garborg is the main gatekeeper here. If it's here, it's easier for others to push to.

@cgoldammer agreed with Tom -- go ahead and push it here.

Closing due to inactivity.


Fix error output

Maybe also remove libass:  from those not from libass?
https://github.com/libass/JavascriptSubtitlesOctopus/blob/8b1014b921f9c73187c59fcdac320d344ca59e0a/src/SubtitleOctopus.cpp#L237
https://github.com/libass/JavascriptSubtitlesOctopus/blob/8b1014b921f9c73187c59fcdac320d344ca59e0a/src/SubtitleOctopus.cpp#L277

ass_utils.h is an internal header and not installed to the system; including it outside of libass is not expected to work.
I've added jso prefixes and touched up the commit messages a bit here: https://github.com/TheOneric/JavascriptSubtitlesOctopus/commits/error-output. Does this seem alright @dmitrylyzo ?

Does this seem alright @dmitrylyzo ?

Verbose but fine :wink:

Merged as e6eee9ea7485969db8af2260f05eba4fcba676d2 + dfada30df1ab19e68671930244542dde5be55763 and implemented the suggested prefix change as 882fa5aa9c078859dc911f8e281f799593950e00.


Request for addition

Can you add a way to make the bot post status once every 30mins?

Hi!
So I just want to start this off by saying I'm not a programmer and this is all 100% a project of love, and this was only tested VERY briefly so it may not work 100%, but if you want to have it auto run instead of being manually updated, here's what I got. Also, this only does currently downloading stuff, not completed (though if you want to change it you can.
First thing at the top of the file you'll see a few lines that say "import...." - I want you to add one extra line beneath it for "import time". This will mean your code at the very top will look like this:
import discord from discord.ext import commands import requests import time
Next at the very bottom, you'll see on line 237 of the current version (probably 238 once you add the import time line) this bit of code:
async def status(ctx, *args):
Delete everything from that point to the very end of the document. The last command should now be this (keep that as the last command):
@bot.command(         help = "Use this to see the status of what's currently downloading."+"\n"+"If you want to get fancy, you can search for movies/tv shows specifically by type $status movies or $status tv."+"\n"+"You can also see what's completed by doing $status completed, or $status all to see everything."+"\n"+"Finally, you can combine these (like $status tv completed) to only see completed tv shows."+"\n"+"(tip: you can see everything by typing $status all)",         brief = "Use this to see what's currently downloading"     )
After that command is done, paste in this code at the very very bottom of the file:
async def autorun(ctx, *args):
    channelID=ctx.message.channel.id
    if botChannel==channelID:
        def not_pinned(message):
            return not message.pinned
        await ctx.message.channel.purge(check=not_pinned)
        while True:
            updateStatus=DownloadingStatus
            Category="all"
            DiscordList=updateAll(Category,updateStatus)
            if DiscordList!=NothingDownloading:
                for i in range(len(DiscordList)):
                        await ctx.channel.send(DiscordList[i])
            else:
                await ctx.channel.send(NothingDownloading)
            time.sleep(1800) # time in seconds until next update (30 minutes = 1800 seconds)

bot.run(TOKEN)

That's it! Now if you want to change how often it updates you can change the 1800 line (though I'm not sure how often bots can delete/update/send messages on discord without being throttled, so you may have to keep an eye out if it's too often)
To run it: instead of typing $status, now type $autorun
This will then delete all the messages in your current channel and update this every 30 minutes with the new information.
ONE NOTE: I haven't made a way to officially stop it, so if you want to, you'll have to stop the program manually. Just watch out as if it's in the middle of its 'sleep' cycle, you may have to potentially wait for it to finish its cycle before it closes, which could potentially mean waiting 30 minutes for it to close.
Hope this works! Let me know if it does and how it goes!
Good luck!

Sweet thank you!

Bad news, it doesn't run the purge command correctly and it just builds up.

Bad news, it doesn't run the purge command correctly and it just builds up.

Whoops, made a mistake on the repeat part of it.
In that last section, instead of what I had before, put this in instead (I'm also going to edit my earlier comment so others won't have the same issue):
async def autorun(ctx, *args):
    channelID=ctx.message.channel.id
    if botChannel==channelID:
        while True:
            def not_pinned(message):
                return not message.pinned
            await ctx.message.channel.purge(check=not_pinned)
            updateStatus=DownloadingStatus
            Category="all"
            DiscordList=updateAll(Category,updateStatus)
            if DiscordList!=NothingDownloading:
                for i in range(len(DiscordList)):
                        await ctx.channel.send(DiscordList[i])
            else:
                await ctx.channel.send(NothingDownloading)
            time.sleep(10)

bot.run(TOKEN)

That should do the trick!

Works great now thank you!

No worries! Closing this off now, but enjoy!


chaostoolkit-kubernetes: Stress memory calls a stress cpu

Hi,
Not sure about my conclusion but I think there is an issue with stress_memory function. It's currently calling a chaosMesh CPU stressor.
https://github.com/chaostoolkit/chaostoolkit-kubernetes/blob/b1019b2a810683dda6fafc4d9cae2de433314966/chaosk8s/chaosmesh/stress/actions.py#L128
Correction proposal:
Stress the memory to impact a process/container.
See: https://chaos-mesh.org/docs/simulate-heavy-stress-on-kubernetes/
"""

r = yaml.safe_load(
    dedent(
        """---
apiVersion: chaos-mesh.org/v1alpha1
kind: StressChaos
metadata: {}
spec:
  selector: {}
  stressors:
    memory: {}
"""
    )
)

r["metadata"]["name"] = name
r["metadata"]["ns"] = ns

s = r["spec"]
m = s["stressors"]["memory"]
m["workers"] = workers
m["size"] = size
m["time"] = time_to_get_to_size
m["oomScoreAdj"] = oom_score    """

PR created.
Done on web IDE so I was not able to run 'make test', 'make format' and 'make lint'.
Not familiar with Github so let me know if I have things to correct

Thank you for the change. It's now merged in :)


Vault service fails to start

Vault service is not starting properly.  Looks like it requires root access but we run it as the vault user?  @johnbellone how are you tackling this?  I grabbed this snippet from the /etc/init/vault.conf.
Have any way we can chat re: this?  Maybe slack? I am on the chef-brigade channel. https://brigade-slackin.herokuapp.com/
% sudo su -c "vault server -config=/home/vault/.vault.json" -s /bin/sh vault
Error initializing core: Failed to lock memory: cannot allocate memory

This usually means that the mlock syscall is not available.
Vault uses mlock to prevent memory from being swapped to
disk. This requires root privileges as well as a machine
that supports mlock. Please enable mlock on your system or
disable Vault from using it. To disable Vault from using it,
set the `disable_mlock` configuration option in your configuration
file.

Side Note: I worked around this issue by setting the service_user to root in my wrapper cookbook.  Mostly asking if this should be the default as opposed to vault that is currently the default.

I'll take a look into this. I think I have a working case locally.


Add sim_plots testing with Dash testing (Dash duo)

Work on #1209.
What was done:

add dependencies for dash duo end-to-end-testing, removed an unused dependency from the codebase
integration testing for sim_plots dashboard:

test all tabs show up
test clicking on tabs display each figure/figure group as needed
[ ] PENDING: test clicking on bars in var_imps chart toggles contour/line plot -> see below for details
improve coverage for various modules -> see below for details

Varimps issue
I have to work with test parameters to ensure we get a contour plot and varimps can have both variables displayed. However, there is also an UX issue. Due to resizing and adding tabs, the tooltip of the varimps bar covers the bar itself and prevents clicking. We need to fix that first and I'll talk to @KatunaNorbert about it + create a follow-up issue. In the meantime, I propose we merge this branch and continue integration tests for other dashboards.
Coverage changes
dash_plots/callbacks.py: 31% -> 75% (probably full coverage after fixing varimps and adding test for click changes)
dash_plots/view_elements: 97% -> 100%
sim_dash.py: 80% -> 75% (removed some rows and left as a simple wrapper)
sim_engine.py: 99%->98%
sim_plotter.py: 36% -> 80% (probably full after fixing varimps and adding test for click changes)
sim_state.py: 96% remained the same

UX issue that prevents me from clicking the bar is attached.

Update ref. the var_imps issue:

the visual click issue is minor and we'll see what we can do, but that will surely be a separate task
I don't think the effort into adding and testing the varimps bar click is warranted, at least not right now. It's very difficult due to the following factors:

there is no way to manipulate the test data in sim_engine.py to balance variable importances so that multiple bars appear. And if just a single bar appears, all bars are considered "selected" so there is no way to distinguish through the "selected vars" if the click was done
no way to detect the redraw of the line/contour plot itself. We could try some "fireworks" like giving it a unique id to fix this, but still, see (3)
It is incredibly difficult to perform the click. Plotly figures are svgs, so we can not detect individual elements with selectors. We could try offsets of x/y from the corner of the figure but since the selenium backend uses who-knows-what resolution it will take a very long time to figure out and it's possible it will behave badly on other setups.

TL;DR: I think we can close the sim_plots part of this task. @trentmc, what do you think?

TL;DR: I think we can close the sim_plots part of this task. @trentmc, what do you think?

OK.


tetrio-plus: 0.23.13 -> 0.25.2

Description of changes
Simple version bump to newest version of tetrio-plus. @wackbyte for review.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

:+1: it works with the change i requested


Update mae.py

This pull request fixes the positions of masked and unmasked tokens in decoder_tokens - #241

@Vishu26 thanks for the PR! i don't have MAE in my headspace at the moment, but does this not mean you'll also have to change the splicing out of masked tokens logic from the output of the decoder?
mask_tokens = decoded_tokens[:, :num_masked] # needs to be changed?

@Vishu26 would be happy to accept this PR otherwise! :pray:

@Vishu26 thanks for the PR! i don't have MAE in my headspace at the moment, but does this not mean you'll also have to change the splicing out of masked tokens logic from the output of the decoder?
https://github.com/lucidrains/vit-pytorch/blob/456fad2390bedf581cd42364d4756dded2305116/vit_pytorch/mae.py#L92

Yes you are correct! I forgot to add that. I just fixed it.

@Vishu26 eggcellent :) :pray:


Fix mutex copy

If we use peerMap as value, then we copy its mutex on
pMap = d.peerDb.mp[nid] and lock entirely different mutexes every
time.

LGTM

LGTM.


Avoid generating .class files

I've noticed that the tests produce .class files locally sometimes, which is definitely undesirable behavior.
I would have preferred to disable code generation rather than just putting the .class files somewhere else (since either way code generation is definitely creating I/O we don't need!), but this at least hides the problem from users.

LGTM.
Actually Specimin has a method to delete all the .class files in the end. But if Specimin crashes, then that clearing method is never called.


i18n(fr): update various content layer related pages

Description
This PR updates the French version of the following pages with the changes from #2707, #2676, and #2612 which are all Content Layer related to I decided to group them together in one PR:

guides/i18n
guides/project-structure
guides/site-search
manual-setup
reference/frontmatter
reference/overrides

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

fr
guides/i18n.mdx
Localization changed, will be marked as complete.

fr
guides/project-structure.mdx
Localization changed, will be marked as complete.

fr
guides/site-search.mdx
Localization changed, will be marked as complete.

fr
manual-setup.mdx
Localization changed, will be marked as complete.

fr
reference/frontmatter.md
Localization changed, will be marked as complete.

fr
reference/overrides.md
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


No skype icon in task bar

http://i.imgur.com/mhiLNoX.jpg
No skype icon in task bar, so it's hard to recognize it.

I do see the Skype icon in Cinnamon 2.6.13.

I also can't see the Skype icon in the task bar, I'm using Cinnamon 2.6.13, default setup for Antergos.

Xfce4 - not working

+1, no icon in kde either. Also a systray icon would be useful

xfce4 - no icon and I can't even configure kdocker for it.

Gnome Shell 3.18.3 has the same problem
It is caused by the window not having a WM_CLASS set

Guys, icon problem was solved for kde, gnome-shell and xfce4? Cinnamon still fine?

Well, seems everything is okay now. Anything reopen the issue.

What about the systray icon?

On GNOME 3.18.3 my dash shows the hardcoded icon (instead the one from my icon theme) and the name is "chromium-browser"

XFCE4 - no systray

@Hori873 I will update the .desktop file. @ShareDVI its up to @haskellcamargo to take a look at the binaries, running from nw.js works.


fix: use Double over Float to fix native video rendering

If an app is built using Xcode 9 or newer, videos with a decimal videoViewWidth or videoViewHeight fail to render.
This is caused due to the iOS SDK no longer supporting 32-bit architecture. Apple's 64-bit transition guide specifically calls out uses of CGFloat needing careful examination, where the library was previously instantiating CGFloat with Float values (32 bit) instead of Double values (64bit).
Fixes https://github.com/BasqueVoIPMafia/cordova-plugin-iosrtc/issues/346, https://github.com/BasqueVoIPMafia/cordova-plugin-iosrtc/issues/332 and probably other issues that are less descriptive.

😍


IBMBackend.name has different API from IBMQBackend.name

Describe the bug
IBMBackend.name is a string whereas IBMQBackend.name is a function. They should be consistent for user-friendliness.
Steps to reproduce
from qiskit import IBMQ
from qiskit_ibm_runtime import QiskitRuntimeService

backend_name = "ibmq_guadalupe"

IBMQ.load_account()
provider = IBMQ.get_provider(hub='ibm-q-internal', group='deployed', project='default')
backend = provider.get_backend(backend_name)
print(type(backend))
print(backend.name())

service = QiskitRuntimeService()
backend = service.backend(backend_name)
print(type(backend))
print(backend.name())

<class 'qiskit.providers.ibmq.ibmqbackend.IBMQBackend'>
ibmq_guadalupe
<class 'qiskit_ibm_runtime.ibm_backend.IBMBackend'>
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [1], in <cell line: 15>()
     13 backend = service.backend(backend_name)
     14 print(type(backend))
---> 15 print(backend.name())

TypeError: 'str' object is not callable

Expected behavior
The APIs should be consistent as much as possible.
Suggested solutions
Make the APIs consistent.
Additional Information

qiskit-ibm-runtime version: 29acd55eb443f770dce0837f343ace00ffa0586e
Python version: 3.9.13
Operating system: Arch Linux

I think the change is coming from the backend interface version difference. qiskit-IBM-runtime uses BackendV2 while qiskit-ibmq-provider still uses BackendV1. You can see this migration guide for more details about the API changes in BackendV2 and how to migrate from BackendV1: https://qiskit.org/documentation/apidoc/providers.html#migrating-between-backend-api-versions

I have also reported this.  I would say this is a different issue (unless the migration guide is incomplete).  Namely the move from name() to name means that one now has to type check everything to see if an user is passing an IBMBackend or an IBMQBackend.  This makes compatibility between Runtime and regular backend more of a headache then it should be.

Closing for now, following qiskit-terra interface

@kt474 could you clarify why you closed this issue? I don't understand the meaning of your last comment.

qiskit-ibm-runtime uses the new backendv2 where backend.name is a string - the old qiskit-ibmq-provider still uses backendv1. The old provider will soon be deprecated for the new qiskit-ibm-provider which uses backendv2


json: true behaviour confusing

Ok so I just spent 1 hour trying to figure out why my code wasn't working. I was trying to use the code below, but it just didn't seem to want to work.
options.transform: function (body, response, resolveWithFullResponse) {
    return body.split('').reverse().join('');
};

The body was already transformed as JSON and I could not for the life of me understand why. Why why why is there a transform function running before my transform function, I thought. Well, apparently options.json was set to true earlier in my code (because my requests were being sent to a json api) and this led to my transform function being rendered completely useless.
Workaround
Set options.json to false and then manually stringify the body before it's sent.
Suggested solution
Disable the parsing if there is a transform function present. Or just run options.transform before parsing the body. Or if this is intended behaviour, please make it more clear that this is going to happen if I switch the options.json flag.

You actually have a good point here. I myself was confused by the json option in the beginning.
Fyi, the json option is implemented by request which is used by request-promise to do all the heavy lifting. request-promise only adds the promise support and a few extra options like transform.
Disabling the parsing – the first part of your suggested solution – would be more confusing in my opinion. Suddenly there is a dependency between two options with a changed behavior that only kicks in if both options are used. But not if either one of them is used. Also, if you are working with a JSON api practical implementations of a transform function operate on the parsed JSON anyway. Why would you want to manipulate the string itself? Or do you?
I certainly agree with your second part of your suggested solution – we need to improve the docs. To date a new user needs gather the pieces at different locations. For one you find the documentation of the transform option in request-promise's README and the second piece is the documentation of the json option in request's README.

json - sets body to JSON representation of value and adds Content-type: application/json header. Additionally, parses the response body as JSON.

I am blind if it comes to that because I know the libraries in and out. What would you say as a fairly new user? What should we improve upon?

Put the pieces closer together? In the past many users already overlooked that they also need to check the documentation of request and thus mostly just missed some important information.
Or would you say after having read those pieces it is still unclear how the library works in this regard?

Hmm ok, my bad I guess hehe :)
Mostly I think the documentation is so good that it's easy to forget that it's just a wrapper. But am I correct in saying that the transform function is an extra function that gets added by request-promise ? Because then I can understand why it works as it is.
Disabling the parsing
That is not exactly how I see it. The json option is more or less a transform function on it's own, right? It takes a string and returns JSON. So the way I see it, the transform function would override the json transform function. But maybe that's just me 😉
Improvement
Even after reading the request documentation the functionality remains fuzzy to a degree. I understand what the json flag does. The fact that cleared it up for me was the knowledge that the json functionality comes from request and therefore it's behavior cannot be modified by request-promise.  It then suddenly became clear that transform cannot override anything, because it's not part of the same library as the json flag/function.
Maybe just specify that json comes from request and then put a big(er) warning at the top of the readme for request-promise that refers people to request for further documentation (just like the one that already exists, just move it up).

Yes, you got that right. The json = true logic is implemented by request. So request-promise couldn't change it anyway other than manipulating the request options – setting json = false etc. And, correct, the transform function is something request-promise adds on top.
I think disabling the parsing would introduce even more confusion because it would only disable the parsing if the user provides a transform function. If no transform function is provided the parsing remains enabled. With that we get a conditional link between two parameters. That's just asking for more issues to be opened. ;)
You got great points about how to improve it. The docs have to step up here. As you can see in the commit I just did I tried to improve the README a little bit. However, making the relation between the two libraries very clear is an important aspect I want to keep in mind when working on the upcoming new documentation website. So let's keep this issue open until then.

@coroiu Any chance you ever got your workaround working? I've tried multiple things - but none seem to work:
I tried setting json: false or just removing transform all together and even tried transform: body => JSON.parse(JSON.stringify(body))
But all of them seem to give me an error?


use Inter font

closes #1061

Updates font to Inter
Pares down the available font types showcased in the Typography stories (similar to Synthesis DS in Figma)
Uses synth namespace for the Synthesis Design System

https://62d040e741710e4f085e0647-xfgczigaif.chromatic.com/?path=/docs/foundations-typography--docs

Does this require updating all use of font-type vars in rails server? If so, what do you think about supporting both the old and the new variables until they're all ported over in RS? We can remove the old vars with the major release since it's a breaking change

Perhaps I'm just over optimistic that I could get these all replaced in one go, but supporting both probably is a good idea at least for a first pass (and it is likely others may be using the old ones while the new ones get swapped).
I can add the old ones back to reference the new ones so we can support both.


Speakers parameter in Corpus is unused

Currently the speakers parameter in Corpus.__init__ is unused.
This strikes me as an issue because from_elan calls the Corpus constructor with this speakers parameter but then nothing happens.

This looks like a bit of a bigger task than I first thought because it implies that a fix will involve figuring out how to deal with speakers then implementing the code that will do that.
I added in a NotImplemented exception if speakers is passed in as a parameter since the parameter is unused right now and a loud failure seems to be the best immediate fix.

"figuring out how to deal with speakers": the idea would be to sort the data (roughly speaking: the sentence-level units) by speakers. Then:

if there's enough data for each speaker, train 1 model per speaker,
and in case it's just a few sentences in total for a given speaker, simply exclude those sentences from the acoustic model.
By default, the acoustic model created is speaker-specific, right?

Appreciate the feedback here.
"By default, the acoustic model created is speaker-specific, right?" while the library can do this I don't know that the implementation as it stands does this in all cases. This is something I'd very much like to clarify as this would let me improve the code that implements this functionality.

@oadams:

For instance, as part of efforts to improve the Na corpus, I recently added a tag to passages said by the investigator, so that they can be automatically identified for exclusion from the training set. The tag is inside the  markup. For example:

Is this something we should make a feature request issue for?

I added in a NotImplemented exception if speakers is passed in as a parameter since the parameter is unused right now and a loud failure seems to be the best immediate fix.

Sounds good!
Yes, the idea was to filter the corpus based on speakers, but I never actually got around to doing that.
Looking at the code again, it seems it doesn't really make sense to have a speakers parameter in the default Corpus constructor, since that constructor won't have any information about the speakers in the utterances anyway. If we want to filter on speakers from ELAN files or Pangloss XML files, that should be happening in their respective class method constructors. Or to minimize code reuse, there should be a class method that takes Utterances and can thus do speaker filtering. The ELAN corpus constructor would then call this, as would any other format-specific class methods such as a yet-to-be-implemented Pangloss one. Does this make sense?

I propose the Corpus keep a record of who the speakers are but that the base Corpus doesn't do the processing on the speakers. If this is parameter is not given it will just store an empty list.
Does this sound reasonable?

This sounds good to me. We might not want it passed as an argument though, but rather it can be inferred from the Utterance objects. There's not much gain knowing that speakers x,y,z spoke in a Corpus unless we have a mapping from utterances to speakers. The Utterance objects satisfy this.
So basically, methods that call the default constructor just provide Utterance objects and if they know the speaker ID, that is part of the utterance object. The constructor can infer the speakers from these utterances.

Given the ability to infer the speakers from the utterances I think we should get rid of the speakers parameter in the base Corpus.

Sounds good.


Improvements to extension navigation

I propose a few improvements to extension navigation:

List of changes:

Changing "Websites" page into "Connected Sites" - better reflects what's in that page (On "Discover" there are websites as well, etc. so it was a bit confusing).
Introducing new icon for Connected Sites and Help, Feedback uses "magic wand" icon from bitcoin icons set, and Discover uses "rocket" previously used in Feedback.
Hamburger menu in extended view shows only items which are not in the navigation bar (so does not show Discover and Connected Sites),

New icons:

Hi, I would like to work on this issue. Thank you

@kamalchakma1 sure, go for it!

@stackingsaunter Thanks

@stackingsaunter Hello Sir,I'm trying to run it into local machine but I am not able to run. And this is first time I'm using yarn. So can you guide me on this please.

I am not technical enough perhaps @escapedcat or @reneaaron can help

@stackingsaunter ok thank you

@escapedcat @reneaaron Hi, I had clone the project into my local machine but I am facing little problem to run the project in my local machine. I have installed yarn but unable to run and need help from you. Thank you

@kamalchakma1 Could you fix your problem in the meantime? Do you mind to share some details (error messages, etc) so we can point you into the right direction?

@reneaaron The issue I'm facing is that I'm not able to run in local machine. And I'm new to yarn. If you help me with this then it will be very helpful.  Thanks

The issue I'm facing is that I'm not able to run in local machine. And I'm new to yarn. If you help me with this then it will be very helpful. Thanks

Maybe as in the slack channel and see if someone can help you to get running.

@kamalchakma1 If you don't provide any more details I can't help you, sorry. Feel free to reach out on Slack.

Hi, Here is the screenshot. Please check it.

Ok thanks

I would like to work on it, can you assign me the same.

hey @stackingsaunter, just saw that it uses @bitcoin-design/bitcoin-icons-react for icons. Can you specify the icons listed from the list here - https://bitcoinicons.com/

Only magic wand is from bitcoin icons, help and connected sites are not and listed in the first post^


build(test): import fake-indexeddb

Motivation
When we start testing features around the addresses that are saved on the client side with Idb, we will need to fake Idb.
So, similarly as in NNS dapp, we can use fake-indexeddb
Changes

npm i fake-indexeddb -D
Add related import in vitest setup

Yes, exactly.


[WIP] Testing more multi name import stuff

Extra patches on top of #6720 that continue down this route. I'll split this out into proper PRs later, but I want to see if testing catches any issues.

@swift-ci Please test

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 7560dfc0ab9ec41001b63947e69a95024e6518f2
Test requested by - @jrose-apple

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 7560dfc0ab9ec41001b63947e69a95024e6518f2
Test requested by - @jrose-apple


[e2e]: generic tag main default slsa3

Repo: https://github.com/slsa-framework/example-package/tree/v18.0.27
Run: https://github.com/slsa-framework/example-package/actions/runs/2654013066
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.tag.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.tag.main.default.slsa3.yml
Trigger: push
Branch: v18.0.27
Date: Tue Jul 12 04:04:57 UTC 2022

These tests are failing because the generic workflow check out the generate-builder action at ab345b0851aceba69a2ce8f3d2084f6e7d887850 which uses this action.yml but the generate-builder.sh gets checkout out with the rest of the repository at main.
We can solve this temporarily by upgrading the sha but it will likely break in the future until we rewrite the actions using JS/TS or Dockerfiles, or we inline all the scripts into the actions.yml.
Related to #398

Repo: https://github.com/slsa-framework/example-package/tree/v18.0.28
Run: https://github.com/slsa-framework/example-package/actions/runs/2660853256
Workflow file: https://github.com/slsa-framework/example-package/tree/main/.github/workflows/e2e.generic.tag.main.default.slsa3.yml
Workflow runs: https://github.com/slsa-framework/example-package/actions/workflows/e2e.generic.tag.main.default.slsa3.yml
Trigger: push
Branch: v18.0.28
Date: Wed Jul 13 03:51:49 UTC 2022
Tests are passing now. Closing this issue.


Addmentions to comment item, to also be sent with comment notifications

This is to support notifying users when they are mentioned in a comment.

Consider how to handle spam / notifications for bigger channels

Spoke to mark about this previously and we can pass a new param with claim ids as mentions, that way the UI doesn't have to store the full id in the message, and we don't have to parse it.

So when mentioned channels are passed with the create request, commentron will pipe that to sockety. This message type is called mention and you will get a sockety message if you are subscribed to the channel claim id, or if you are subscribed to the mentions sockety comment service. The latter is what internal-apis will use to create event notifications for users.


Backup/Restore DNS Configmap

What does this PR do?
This PR:

Backs up coreDNS and kubeDNS configmaps on install

TODO:

Do we want to restore in the cleanup step?
Do we want to reuse the same getCoreDNSConfigmap etc logic from the prepare package to handle this so that we don't duplicate code?
How do we want to handle failure on backup or restore?

Fixes #576

Do we want to restore in the cleanup step?

Yes it does make sense. We should be able to install + cleanup + install and get the same behavior.

Do we want to reuse the same getCoreDNSConfigmap etc logic from the prepare package to handle this so that we don't duplicate code?

Yes, it would be better to take the configuration from the core-dns deployment than directly from the configmap. At least we can be sure that's the one being used.

How do we want to handle failure on backup or restore?

I'm not sure we can do something. If we can't find or create the configmap it means either the resource doesn't exist, we can't reach the cluster or there's a bug on our side.
So, I would say, just display an error so the user can see it.

Still needs cleanup tests


failing test OpenWireTest

I've just commented out a section in the test as I found it had hung for a few minutes without passing:
see: https://github.com/jstrachan/quickstarts/blob/stuff/apps/fabric8-mq-controller/src/test/java/io/fabric8/mq/controller/protocol/openwire/OpenWireTest.java#L90-90

mq stuff removed


Checkbox binding

Examples of binding checkbox control to UI.
I.e Is Active field on the products table.

Any update?


Installing on Heroku

Hi there.
Having issues getting popcorn working properly on Heroku.
It detects the node buildpack, and proceeds to install, but hits an error while installing node-gyp rebuild, which apparently is being executed by node-expat which is something that never actually appears in /node_modules so I am having difficulty tracking it down. The error is too far back in my error logs to retrieve, but was basically a version compatibility error as described roughly here: https://github.com/hipchat/hubot-hipchat/issues/232
I have, however, been able to surpass this by altering my node version to use 0.10 and reverting to v63 of the Heroku Node buildpack (as described in the above issue).
This successfully deploys me a web interface, which can be seen here: https://webmakerpopcorn.herokuapp.com. It can pull media (except youtube, unless I'm misunderstanding something) successfully. However, I cannot seem to login through either a Persona or a username.
In my Heroku error logs I can see:
POST /authenticate 500 11ms - 56b
and
POST /auth/v2/uid-exists 500 4ms - 56b
respectively.
How would one go about successfully deploying on Heroku?
ps, my local.js configuration file: https://gist.github.com/ianseyer/c0022ace57cbf458cd9d

@jbuck @Pomax any advice you can give here?

I suspect this is an old dependency relying on a pre-node v12 node-expat. Rather than downgrading to node 10, it's probably worth checking which node_module has the node-expat dependency and then npm uninstall that --save and renpm install that --save, to see if it gets it to node 12 compliance.

Hmm.
@Pomax upon your advice, I tracked down the issue to xml2json. I uninstalled & reinstalled and saved it to package.json (which now reflects the latest version of xml2json).
Nothing seems to have changed.
Here is the full stack trace: https://gist.github.com/ianseyer/3b5e028c96fd330bcf0b

fun fact: heroku does support sqlite, but because the dyno resets the FS on a sleep/wake cycle, nothing you save is actually persistent (so you indeed need some SQL addon instead if you need persistent data).
If you want to file a PR for that bumped webmaker-download-locales, I'd be happy to merge it in. I think it stopped using xml2json around 0.2 -- should have remember that, since it completely screwed up windows testing at the time so I was actually the person to file the issue on that

Done! Will be creating more issues, as I have found quite a few that seem to have simple solutions.

:+1:


Abstracts go tracing module client/server instrumentation

This patch adds  GrpcInterceptorServer() and GrpcInterceptorDial(addr) methods to the go tracing module to abstract away otelgrpc-specific instrumentation-related code into the module. The chained-function-serving example is updated to use this addition.

something is wrong with rebasing the branch. there is a conflict


Create UpCloud partner page

Created this as I it the following instructions from: @pajuric
will create a new issue next with detailed information to this new partner page
Thank you for reaching out. Getting started as a partner is fairly easy, it's a matter of opening a PR in GitHub following the directions here: https://opensearch.org/new-partner.html. At the same time, you are welcome to submit for a partner page by using the information in this issue: https://github.com/opensearch-project/project-website/issues/1345 to create a new issue
Description
[Describe what this change achieves]
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

UpCloud_brand_assets (3).zip

Can you maybe move this to the right place to get the partner page started? As the link is not working yet. Thanks @pajuric & co!

Double checking if UpCloud partner page goes forward or if I need to make a new request for that?

@isarpila  Which exact logo do you want to use? Let me know and I'll take care of the rest.

@isarpila there are 9 different logos in that file. Which exact logo should we use? (the image needs to be square to show properly)

ok can you use file named upcloud_logo.png then.

helping resolve this in PR https://github.com/opensearch-project/project-website/pull/1626


Standardize error outputs

Exit codes and error message are inconsistant for faulty PDB and cif files.
For example, processing an empty PDB file lead to no error (exit code 0) and a message printed in stderr while processing an empty CIF file lead to an error (exit code -11) and a no message in stderr.
Would it be possible to standardize errors exit codes and associate stderr messages?

peter@Peters-MacBook-Pro sample % ../../bin/fpocket -f test.cif
***** POCKET HUNTING BEGINS *****
pdbxplugin) cannot read file test.cif
pdbxplugin) error opening file.
zsh: segmentation fault  ../../bin/fpocket -f test.cif
peter@Peters-MacBook-Pro sample % echo $?
139
peter@Peters-MacBook-Pro sample % ../../bin/fpocket -f test.pdb
***** POCKET HUNTING BEGINS *****
! File 'test.pdb' contains no atoms...
! File 'test.pdb' contains no atoms...
! PDB reading failed!
***** POCKET HUNTING ENDS *****
peter@Peters-MacBook-Pro sample % echo $?
0

integrated behaviour now:
peter@Peters-MacBook-Pro sample % ../../bin/fpocket -f test.pdb
***** POCKET HUNTING BEGINS *****
! File 'test.pdb' contains no atoms...
! File 'test.pdb' contains no atoms...
! Structure reading failed!
peter@Peters-MacBook-Pro sample % echo $?
1
peter@Peters-MacBook-Pro sample % ../../bin/fpocket -f test.cif
***** POCKET HUNTING BEGINS *****
pdbxplugin) cannot read file test.cif
pdbxplugin) error opening file.
! Structure reading failed or file is empty!
peter@Peters-MacBook-Pro sample % echo $?
1
peter@Peters-MacBook-Pro sample % ../../bin/fpocket -f 1UYD.pdb
***** POCKET HUNTING BEGINS *****
mkdir: 1UYD_out/pockets: File exists
***** POCKET HUNTING ENDS *****
peter@Peters-MacBook-Pro sample % echo $?
0

closing, fixed with : https://github.com/Discngine/fpocket/pull/125