Pods should receive environment variables only from services in the same namespace

Currently in master, pods receive variables from services in other namespaces:
        "TEST_SERVICE_SERVICE_HOST=<IP_ADDRESS>",
        "TEST_SERVICE_SERVICE_PORT=5434",
        "TEST_SERVICE_PORT=tcp://<IP_ADDRESS>:5434",
        "TEST_SERVICE_PORT_5434_TCP=tcp://<IP_ADDRESS>:5434",
        "TEST_SERVICE_PORT_5434_TCP_PROTO=tcp",
        "TEST_SERVICE_PORT_5434_TCP_PORT=5434",
        "TEST_SERVICE_PORT_5434_TCP_ADDR=<IP_ADDRESS>",
        "TESTSERVICE_SERVICE_HOST=<IP_ADDRESS>",
        "TESTSERVICE_SERVICE_PORT=5434",
        "TESTSERVICE_PORT=tcp://<IP_ADDRESS>:5434",
        "TESTSERVICE_PORT_5434_TCP=tcp://<IP_ADDRESS>:5434",
        "TESTSERVICE_PORT_5434_TCP_PROTO=tcp",
        "TESTSERVICE_PORT_5434_TCP_PORT=5434",
        "TESTSERVICE_PORT_5434_TCP_ADDR=<IP_ADDRESS>",
        "TESTSERVICE_SERVICE_HOST=<IP_ADDRESS>",
        "TESTSERVICE_SERVICE_PORT=5434",
        "TESTSERVICE_PORT=tcp://<IP_ADDRESS>:5434",
        "TESTSERVICE_PORT_5434_TCP=tcp://<IP_ADDRESS>:5434",
        "TESTSERVICE_PORT_5434_TCP_PROTO=tcp",
        "TESTSERVICE_PORT_5434_TCP_PORT=5434",
        "TESTSERVICE_PORT_5434_TCP_ADDR=<IP_ADDRESS>",

The correct behavior should be to receive variables only from services in the same namespace as a pod.

@smarterclayton @derekwaynecarr @lavalamp agree this is a bug?

It's certainly not intentionally chosen to be that way.

On Jan 7, 2015, at 6:12 PM, Paul Morie<EMAIL_ADDRESS>wrote:
@smarterclayton @derekwaynecarr @lavalamp agree this is a bug?
—
Reply to this email directly or view it on GitHub.

It's a bug.
Sent from my iPhone

On Jan 7, 2015, at 6:14 PM, Clayton Coleman<EMAIL_ADDRESS>wrote:
It's certainly not intentionally chosen to be that way.

On Jan 7, 2015, at 6:12 PM, Paul Morie<EMAIL_ADDRESS>wrote:
@smarterclayton @derekwaynecarr @lavalamp agree this is a bug?
—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub.

Looks like the registrytest.ServiceRegistry type doesn't handle namespaces correctly, which is necessary to fix this.

It's a bug.
However, "from same namespace" is not completely correct either. The rule should be "that it has permission to see". That's true by default for services in the same namespace. It should also be true by default for things like the "kubernetes" namespace that has the master service in it...

We probably want to spend some time on predeclaration, service permission, and how special global services are exposed

On Jan 7, 2015, at 6:28 PM, Daniel Smith<EMAIL_ADDRESS>wrote:
It's a bug.
However, "from same namespace" is not completely correct either. The rule should be "that it has permission to see". That's true by default for services in the same namespace. It should also be true by default for things like the "kubernetes" namespace that has the master service in it...
—
Reply to this email directly or view it on GitHub.

Prefer a near term fix that respects the namespace boundary and we need follow on design for handling communication back to the master which I think is a special case.  I don't necessarily agree that permission to see is right either.
Sent from my iPhone

On Jan 7, 2015, at 6:32 PM, Clayton Coleman<EMAIL_ADDRESS>wrote:
We probably want to spend some time on predeclaration, service permission, and how special global services are exposed

On Jan 7, 2015, at 6:28 PM, Daniel Smith<EMAIL_ADDRESS>wrote:
It's a bug.
However, "from same namespace" is not completely correct either. The rule should be "that it has permission to see". That's true by default for services in the same namespace. It should also be true by default for things like the "kubernetes" namespace that has the master service in it...
—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub.

@lavalamp per our discussion i'll special-case the "default" namespace for now.

@derekwaynecarr @smarterclayton okay with the above?

So what is the effect of two same named services in the default namespace and other namespace?  It will clash right?  It needs a giant TODO if we do that solution.
Sent from my iPhone

On Jan 7, 2015, at 6:36 PM, Paul Morie<EMAIL_ADDRESS>wrote:
@derekwaynecarr @smarterclayton okay with the above?
—
Reply to this email directly or view it on GitHub.

That's a good question @derekwaynecarr.  Currently collisions result in the same keys being present in the env, I imagine but haven't confirmed that the latest value in the env array overrides all the other overloaded ones.

If someone defined a Kube service in their namespace it must take priority

On Jan 7, 2015, at 6:41 PM, Paul Morie<EMAIL_ADDRESS>wrote:
That's a good question @derekwaynecarr. Currently collisions result in the same keys being present in the env, I imagine but haven't confirmed that the latest value in the env array overrides all the other overloaded ones.
—
Reply to this email directly or view it on GitHub.

Yeah, it's a bug.  I think it correctly needs to take all services from "default" and then overlay all services in the pod's own namespace.

@thockin why do you think a pod in namespace "foo" should take services in namespace "default"?  I think that there is nothing special about the "default" namespace other than it is the one you get if you don't specify one.
@lavalamp For the automagic "kubernetes" and "kubernetes-ro" services, I think we should use magic to automatically create the service entries in every namespace, rather than exposing a second special namespace to each namespace.      Doing that would mesh nicely with issue #2159 (Namespace as own Kind).

@erictune +1 to your proposal.
----- Original Message -----
From: "Eric Tune"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 1:27:16 PM
Subject: Re: [kubernetes] Pods should receive environment variables only from services in the same namespace (#3293)
@thockin why do you think a pod in namespace "foo" should take services in namespace "default"?  I think that there is nothing special about the "default" namespace other than it is the one you get if you don't specify one.
@lavalamp For the automagic "kubernetes" and "kubernetes-ro" services, I think we should use magic to automatically create the service entries in every namespace, rather than exposing a second special namespace to each namespace.      Doing that would mesh nicely with issue #2159 (Namespace as own Kind).

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69224542

@erictune I think that makes sense; for now, should we fix this by making only services in namespace X visible to pods in that namespace, or should the fix for this issue handle the magic for the special kubernetes{,-ro} services?

I'm fine with either approach - I thought it would be more work and edge
cases to make magical cross-namespace services.
Satnam and I were just discussing whether things like DNS, logging,
monitoring, etc should be in "default" namespace or in a "kubernetes"
namespace.  And if so, should all of "kubernetes" be magical (maybe marked
as such by a policy).
On Thu, Jan 8, 2015 at 10:40 AM, Derek Carr<EMAIL_ADDRESS>wrote:

@erictune +1 to your proposal.
----- Original Message -----
From: "Eric Tune"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 1:27:16 PM
Subject: Re: [kubernetes] Pods should receive environment variables only
from services in the same namespace (#3293)
@thockin why do you think a pod in namespace "foo" should take services in
namespace "default"? I think that there is nothing special about the
"default" namespace other than it is the one you get if you don't specify
one.
@lavalamp For the automagic "kubernetes" and "kubernetes-ro" services, I
think we should use magic to automatically create the service entries in
every namespace, rather than exposing a second special namespace to each
namespace. Doing that would mesh nicely with issue #2159 (Namespace as own
Kind).

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69224542
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69226618
.

I think it is important that kubernetes and kubernetes-ro be visible to all
pods
On Thu, Jan 8, 2015 at 10:58 AM, Paul Morie<EMAIL_ADDRESS>wrote:

@erictune https://github.com/erictune I think that makes sense; for
now, should we fix this by making only services in namespace X visible to
pods in that namespace, or should the fix for this issue handle the magic
for the special kubernetes{,-ro} services?
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69229506
.

I think that's yucky - that means that master startup has to "magically" create an etcd resource in every visible namespace, which is racy.  I don't see how you can get around magic inheritance of services and perform.
----- Original Message -----

@erictune +1 to your proposal.
----- Original Message -----
From: "Eric Tune"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 1:27:16 PM
Subject: Re: [kubernetes] Pods should receive environment variables only from
services in the same namespace (#3293)
@thockin why do you think a pod in namespace "foo" should take services in
namespace "default"?  I think that there is nothing special about the
"default" namespace other than it is the one you get if you don't specify
one.
@lavalamp For the automagic "kubernetes" and "kubernetes-ro" services, I
think we should use magic to automatically create the service entries in
every namespace, rather than exposing a second special namespace to each
namespace.      Doing that would mesh nicely with issue #2159 (Namespace as
own Kind).

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69224542

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69226618

@thockin it's definitely more work and edge-cases to make magic cross-namespace services
@erictune How do you about the following:

For now, pods in namespace X will see services in namespace X and namespace default
The PR for #2159 can remove the special casing for the default namespace and add the magic to create the special services in each new namespace

@smarterclayton could you not create a resource for each magic service for each new namespace that is created?

We could make a single namespace that we declare to be transcendent, and
then apply the previously described overlay logic in real-time in the
registry?
On Thu, Jan 8, 2015 at 11:01 AM, Clayton Coleman<EMAIL_ADDRESS>wrote:

I think that's yucky - that means that master startup has to "magically"
create an etcd resource in every visible namespace, which is racy. I don't
see how you can get around magic inheritance of services and perform.
----- Original Message -----

@erictune +1 to your proposal.
----- Original Message -----
From: "Eric Tune"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 1:27:16 PM
Subject: Re: [kubernetes] Pods should receive environment variables only
from
services in the same namespace (#3293)
@thockin why do you think a pod in namespace "foo" should take services
in
namespace "default"? I think that there is nothing special about the
"default" namespace other than it is the one you get if you don't specify
one.
@lavalamp For the automagic "kubernetes" and "kubernetes-ro" services, I
think we should use magic to automatically create the service entries in
every namespace, rather than exposing a second special namespace to each
namespace. Doing that would mesh nicely with issue #2159 (Namespace as
own Kind).

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69224542

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69226618
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69229982
.

The transcendent or 'global' namespace is something that comes up many times on our side too.  It has its fans and detractors.  The current proposal for 'default' to always be included is in my view equivalent to making 'default' transcendent - this does make the name kind of appropriate, since the values in the 'default' namespace are inherently then the default.
----- Original Message -----
From: "Tim Hockin"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 2:09:11 PM
Subject: Re: [kubernetes] Pods should receive environment variables only from services in the same namespace (#3293)
We could make a single namespace that we declare to be transcendent, and
then apply the previously described overlay logic in real-time in the
registry?
On Thu, Jan 8, 2015 at 11:01 AM, Clayton Coleman<EMAIL_ADDRESS>wrote:

I think that's yucky - that means that master startup has to "magically"
create an etcd resource in every visible namespace, which is racy. I don't
see how you can get around magic inheritance of services and perform.
----- Original Message -----

@erictune +1 to your proposal.
----- Original Message -----
From: "Eric Tune"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 1:27:16 PM
Subject: Re: [kubernetes] Pods should receive environment variables only
from
services in the same namespace (#3293)
@thockin why do you think a pod in namespace "foo" should take services
in
namespace "default"? I think that there is nothing special about the
"default" namespace other than it is the one you get if you don't specify
one.
@lavalamp For the automagic "kubernetes" and "kubernetes-ro" services, I
think we should use magic to automatically create the service entries in
every namespace, rather than exposing a second special namespace to each
namespace. Doing that would mesh nicely with issue #2159 (Namespace as
own Kind).

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69224542

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69226618
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69229982
.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69231129

@derekwaynecarr @thockin generally i agree with derek's comment, with the exception that I think @thockin's proposal to handle this in the service registry is probably better than my WIP code (which applies this notion solely to the BoundPodFactory)

Creating one kubernetes service per namespace won't fly, because then whenever the master IP changes we have to update 1 set of endpoints per namespace.  We'll need to do overlay of some form - having the administrator get to choose that would be nice.
----- Original Message -----

@derekwaynecarr @thockin generally i agree with derek's comment, with the
exception that I think @thockin's proposal to handle this in the service
registry is probably better than my WIP code (which applies this notion
solely to the BoundPodFactory)

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69233237

@smarterclayton noted

Thoughts, @derekwaynecarr @lavalamp ?

My example above has convinced me that is this probably the wrong way to go, do not like mixing namespaces in the output of List call.

I like the idea of making the 'default' namespace the transcendent namespace.  It warrants a larger discussion on what transcendence means on a resource-specific basis.  Transcendence should NOT mean if I say LIST all services in namespace X, that the result set includes services in Namespace X and Namespace default.  Any special transcendence logic should happen at the point closest to the desired behavior.  I think the fix to overlay services from the local namespace with the 'default' namespace at the point of env var injection is the right fix for this for where I think the transcendent discussion would end-up.
----- Original Message -----
From: "Paul Morie"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 2:38:31 PM
Subject: Re: [kubernetes] Pods should receive environment variables only from services in the same namespace (#3293)
Thoughts, @derekwaynecarr @lavalamp ?

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69235785

@lavalamp @erictune and @bgrant0607 had a quick office conversation.
@bgrant0607 pointed out the following:

internally, we have something like namespaces, and every team of 3-10 people tends to have their own "namespace".
we have a thing that is sort of like services, and automatically makes DNS entries that are roughly like $SERVICENAME.$NAMESPACE.$CLUSTERID.blah
when one team exposes its service to other teams (which happens all the time), they typically don't use the automatic DNS entries.  They use a layer of indirection, like a PTR or CNAME record, and a ~global manually generated name, which points to the automatically generated name.  This allows the team to hide their internal naming, and to move across clusters without dependent services needing to update their names.   Also, because things in the same cluster share fate, they may need another layer of load balancing above what the cluster can provide (of the createExternalLoadBalancer sort) to insulate clients from cluster failures.
however, frontends and backends belonging to the same teams, and thus in the same namespace, may use the automatically generated DNS entries to refer to each other.  This is less work to setup, and the reasons given in the previous bullet don't apply.

I said that my model of a namespace was that it was, to a first order, indistinguishable from having your own private cluster, in the same way that a pod is, to a first order, indistinguishable from having your own private machine.
Based on these observations, I proposed that:

we recommend a best practice of using DNS (or env vars when needed) to reach services in the same namespace.
we make all services in the same namespace visible to all other pods in the same namespace.  We won't plan to have a way to hide them in the same namespace, though we will help provide sub-namespace authorization using service accounts and policies and other mechanisms, not yet fully specified.
we won't add new features to help people access services in different namespaces.  If they want to do this they can:
use the setup their own CNAME or PTR records when they want to export a service from a namespace.
use something like createExternalLoadBalancer, and use application level access controls and/or cloud-provider-specific network config to limit access.
use the automatically generated DNS names with the namespace prefix.

@smarterclayton for the special case of the kubernetes service, we don't actually have to create a resource.  We just need to put the env var into each Pods environment (or, if DNS is setup, put an env var with the DNS name and port of the master into each Pods environment, and setup the kube-proxy.

re: use the automatically generated DNS names with the namespace prefix.
that works fine for this issue, and if you are running with skydns.
if there is a separate need for 'transcendence', then we can discuss it in a separate issue?
----- Original Message -----
From: "Eric Tune"<EMAIL_ADDRESS>To: "GoogleCloudPlatform/kubernetes"<EMAIL_ADDRESS>Cc: "Derek Carr"<EMAIL_ADDRESS>Sent: Thursday, January 8, 2015 2:57:44 PM
Subject: Re: [kubernetes] Pods should receive environment variables only from services in the same namespace (#3293)
@smarterclayton for the special case of the kubernetes service, we don't actually have to create a resource.  We just need to put the env var into each Pods environment (or, if DNS is setup, put an env var with the DNS name and port of the master into each Pods environment, and setup the kube-proxy.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69238842

@derekwaynecarr Agree, exposing services into other namespaces in any way (either via a namespace which has transcended the namespace-condition and evolved into pure energy, or a more granular mechanism) is probably best to discuss in a separate issue.

Revisions to above proposal:

there is a kubernetes and kubernetes-ro service in namespace kubernetes.
there is no transcendence magic in the apiserver.
if DNS is setup, pods can use kubernetes.kuberntes.kubernetes to reach the master, etc.
kubelet will magically put the host and port of the kubernetes and kubernetes-ro services into the env of every pod.  This is for backwards compatibility.  We won't use this mechanism as a general transcendence mechanism.  For any new services that should be in every namespace, you should use DNS.

@erictune in your revised proposal, how should collisions for kubernetes-{,ro} be handled?

----- Original Message -----

Revisions to above proposal:

there is a kubernetes and kubernetes-ro service in namespace kubernetes.
there is no transcendence magic in the apiserver.
if DNS is setup, pods can use kubernetes.kuberntes.kubernetes to reach
the master, etc.
kubelet will magically put the host and port of the kubernetes and
kubernetes-ro services into the env of every pod.  This is for backwards
compatibility.  We won't use this mechanism as a general transcendence
mechanism.  For any new services that should be in every namespace, you
should use DNS.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69250865

@smarterclayton you hear people say that but almost no one has ever died that way

I was waiting for someone to make the beetlejuice joke.
A revision on etune's statement is that the namespace into which the
master's virtual service(s) are put should probably be configurable.  At
the moment it is "default".  It could be changable by a flag, or we could
decide ~now that "kubernetes" is a better namespace (a breaking change, we
could bridge it and deprecate gently.  or not)
What I like is that there's very little (no) magic.  The master services
remain as real Service objects, which makes syncing to naming services easy.

----- Original Message -----

Revisions to above proposal:

there is a kubernetes and kubernetes-ro service in namespace
kubernetes.
there is no transcendence magic in the apiserver.
if DNS is setup, pods can use kubernetes.kuberntes.kubernetes to
reach
the master, etc.
kubelet will magically put the host and port of the kubernetes and
kubernetes-ro services into the env of every pod. This is for backwards
compatibility. We won't use this mechanism as a general transcendence
mechanism. For any new services that should be in every namespace, you
should use DNS.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69250865
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69258806
.

With predeclaration we have a better cross namespace story as well - I would prefer no magic on transcendence but instead declarative dependency.
----- Original Message -----

I was waiting for someone to make the beetlejuice joke.
A revision on etune's statement is that the namespace into which the
master's virtual service(s) are put should probably be configurable.  At
the moment it is "default".  It could be changable by a flag, or we could
decide ~now that "kubernetes" is a better namespace (a breaking change, we
could bridge it and deprecate gently.  or not)
What I like is that there's very little (no) magic.  The master services
remain as real Service objects, which makes syncing to naming services easy.

----- Original Message -----

Revisions to above proposal:

there is a kubernetes and kubernetes-ro service in namespace
kubernetes.
there is no transcendence magic in the apiserver.
if DNS is setup, pods can use kubernetes.kuberntes.kubernetes to
reach
the master, etc.
kubelet will magically put the host and port of the kubernetes and
kubernetes-ro services into the env of every pod. This is for backwards
compatibility. We won't use this mechanism as a general transcendence
mechanism. For any new services that should be in every namespace, you
should use DNS.

Reply to this email directly or view it on GitHub:

https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69250865
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69258806
.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69263431

@erictune @thockin @smarterclayton regarding implementing the injection in the kubelet instead of the BoundPodFactory in the api server, the environment entries won't show up in the BoundPod environment.  Does that matter?

I think that is a net win.  It's too huge.
On Thu, Jan 8, 2015 at 9:08 PM, Paul Morie<EMAIL_ADDRESS>wrote:

@erictune https://github.com/erictune @thockin
https://github.com/thockin @smarterclayton
https://github.com/smarterclayton regarding implementing the injection
in the kubelet instead of the BoundPodFactory in the api server, the
environment entries won't show up in the BoundPod environment. Does that
matter?
--
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69293859
.

Please note that moving the kubernetes and kubernetes-ro services around is
a breaking change.   There is already software out there using those
endpoints.  I don't think we can move away from kubernetes and
kubernetes-ro in the default namespace (or at least not without some
warning to folks)
--brendan
On Thu, Jan 8, 2015 at 9:24 PM, Tim Hockin<EMAIL_ADDRESS>wrote:

I think that is a net win. It's too huge.
On Thu, Jan 8, 2015 at 9:08 PM, Paul Morie<EMAIL_ADDRESS>wrote:

@erictune https://github.com/erictune @thockin
https://github.com/thockin @smarterclayton
https://github.com/smarterclayton regarding implementing the injection
in the kubelet instead of the BoundPodFactory in the api server, the
environment entries won't show up in the BoundPod environment. Does that
matter?
--
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69293859

.

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69294738
.

ah, just saw Eric's last point which makes my comment redundant.
nevermind, nothing to see here, keep walking, keep walking...
On Thu, Jan 8, 2015 at 9:35 PM, Brendan Burns<EMAIL_ADDRESS>wrote:

Please note that moving the kubernetes and kubernetes-ro services around
is a breaking change.   There is already software out there using those
endpoints.  I don't think we can move away from kubernetes and
kubernetes-ro in the default namespace (or at least not without some
warning to folks)
--brendan
On Thu, Jan 8, 2015 at 9:24 PM, Tim Hockin<EMAIL_ADDRESS>wrote:

I think that is a net win. It's too huge.
On Thu, Jan 8, 2015 at 9:08 PM, Paul Morie<EMAIL_ADDRESS>wrote:

@erictune https://github.com/erictune @thockin
https://github.com/thockin @smarterclayton
https://github.com/smarterclayton regarding implementing the
injection
in the kubelet instead of the BoundPodFactory in the api server, the
environment entries won't show up in the BoundPod environment. Does that
matter?
--
Reply to this email directly or view it on GitHub
<
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69293859

.

—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69294738
.

@erictune I have a need for the kubelet to be wired with the kube client for this change and I saw your earlier PR laying the groundwork.  I'll take it a little further and will rebase onto your next changes if they go in first.

We should make some e2e tests that actually exercise non-default namespaces. I think those code paths are undertested.

It would be quite easy to extend TestPodHasServiceEnvVars in cmd/e2e/e2e.go to have multiple namespaces.    And it would be resilient to changes in where we are doing the vars (master vs kubelet.)

@pmorie suggest testing your change with that e2e test.

Good advice @erictune; i am planning on it but have been leaving tests to
get some buy-in on implementation
On Fri, Jan 9, 2015 at 8:12 PM Eric Tune<EMAIL_ADDRESS>wrote:

@pmorie https://github.com/pmorie suggest testing your change with that
e2e test.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/3293#issuecomment-69429459
.


setActivityOrientation doesn't work in Robotium RC

From<EMAIL_ADDRESS>on February 25, 2013 08:38:08
I try to rotate screen to landscape mode, but nothing changes.
The test result output says:
command=setactivityorientation
target=solo
orientation=0
remoteresultinfo= \Orientation Landscape :'setactivityorientation' succes
isremoteresult=true
Original issue: http://code.google.com/p/robotium/issues/detail?id=396

From<EMAIL_ADDRESS>on February 26, 2013 08:37:48
We will definitely need more information.  Those messages and the source code path suggest that there were no problems encountered when executing the TestRunner's solo.setActivityOrientation function provided on the device by Robotium.
No errors were thrown.  No Exceptions were thrown.  It just sounds like the solo.setActivityOrientation call was ignored by the device.
So we will need to know more about the version of Robotium you are using in the TestRunner, the API version of the SDK/APK you are using/building/testing, and ideally some more extensive adb logcat output from the attempt.
Status: Started
Owner<EMAIL_ADDRESS>Cc<EMAIL_ADDRESS>

From<EMAIL_ADDRESS>on February 26, 2013 14:51:37
We are using Robotium 3.6 in the TestRunner. I send the saved logcat file of the test that I tried to run.

From<EMAIL_ADDRESS>on February 26, 2013 20:52:19
What is the API level of the device being tested?  What API level are the APKs being built to support?.

From<EMAIL_ADDRESS>on February 27, 2013 02:19:40
"What is the API level of the device being tested?"
I tested with API level 10 (Android 2.3.7 version) and API level 15 (Android version 4.0.4)
"What API level are the APKs being built to support?."
android:minSdkVersion="7"
android:targetSdkVersion="13"

From<EMAIL_ADDRESS>on February 27, 2013 08:39:48
What I see in the log for this Android 4.0.4 device:

Start testing.
Launch your app.
Get Activity Name.
Shutdown testing.
Start testing.
Launch the app.
Wait for (and find) text "Accept".
Seek "Accept" button (finds it).
Click "Accept" button (using uid reference).
I/InputDispatcher activity is shown for touch event.
Seek "Accept" and DOES NOT find it.
Set Orientation to LANDSCAPE on the current activity.
No errors or exceptions.
No internal/native indication that orientation change is attempted.
Send keystroke attempted.
I/InputDispatcher activity is shown for key input.
Current Activity text/id is "About".
Wait for (and find) text "About".
Seek "About" TextView and finds it.
Shutdown testing.

Again, we are making the API calls to change the orientation on "the current activity", but it is uncertain what the "current" Activity is from the logged info.  Although, I would guess it should still be your app.  This suggests to me there is something on the device preventing the orientation change.
However, it is important to note this Android setRequestedOrientation API info:
"Change the desired orientation of this activity. If the activity is currently in the foreground or otherwise impacting the screen orientation, the screen will immediately be changed (possibly causing the activity to be restarted). Otherwise, this will be used the next time the activity is visible."
So if Solo.getCurrentActivity returned something other than the foreground activity then the orientation will not be changed.
This does not appear to be a Remote Control issue, but a pure Robotium or device hardware/firmware/settings issue.
Something that might eliminate some uncertainty would be to attempt to set the orientation BEFORE you click the "About" button--if that is possible.

From<EMAIL_ADDRESS>on March 05, 2013 10:29:39
If there are no further updates to this issue, I will plan to close it out.  If anyone can confirm it is still an issue, and probably a Robotium issue and not Robotium RemoteControl , then we can change the ownership of the issue and leave it open.
Status: Incomplete

From<EMAIL_ADDRESS>on March 05, 2013 11:06:34
I tried to change the orientation with Robotium (not just Robotium RemoteControl ), but it did not work with our app. I will discuss with our Android team about this tomorrow. Thank you for your answer.

From<EMAIL_ADDRESS>on March 07, 2013 11:29:05
Going to mark this one as closed.  This is not a Robotium Remote Control issue and is likely not a Robotium issue, either.
Status: WontFix


Update EndpointSlice from alpha to beta

Just one note, by this, istio can not work on k8s 1.16 if endpointslice enabled.

I don't think anyone is going to use endpoint slice on 1.16, there are some pretty critical bugs. Is there anyone doing this?

maybe some new users/developers, and we can doc is clearly in 1.5 release note.

Just one note, by this, istio can not work on k8s 1.16 if endpointslice enabled

Don't we have the same problem now though, without this users on 1.17 will not work?

Without testing, but from the api view, pilot can get endpointslice from kube-apiserver by v1alpha interface.

So of you query for alpha you get alpha+beta but if you query for beta you just get alpha?
I think at one point I had code query for alpha but was inserting beta objects and it returned no results

So of you query for alpha you get alpha+beta but if you query for beta you just get alpha?

No, if one deployed k8s 1.16 with endpointslice enabled, and a client requesting v1beta, there will be an error indicating no such group/version resource? However, if a client request v1alpha1 in 1.17, then it can get both v1alpha and v1beta resources. Kube-apiserver does the conversion from an internal version to requested version.

No, if one deployed k8s 1.16 with endpointslice enabled, and a client requesting v1beta, there will be an error indicating no such group/version resource? However, if a client request v1alpha1 in 1.17, then it can get both v1alpha and v1beta resources. Kube-apiserver does the conversion from an internal version to requested version.

Ack, I verified this in a real cluster just to double check. 1.16 will be broken if we make this change
@nmittler did you need features that are in the beta api?

@howardjohn I don't think so ... alpha is fine for now. Do we know when k8s will stop shipping with the alpha version of the CRD?

Not sure. I don't think there is any need to support kube-controller
endpointslice in 1.16 since its very alpha, but people may want to manually
make endpointslices in 1.16 so might as well keep alpha around unless we
have a solid reason not to?
On Thu, Jan 2, 2020 at 10:06 AM Nathan Mittler<EMAIL_ADDRESS>wrote:

@howardjohn https://github.com/howardjohn I don't think so ... alpha is
fine for now. Do we know when k8s will stop shipping with the alpha version
of the CRD?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/19839?email_source=notifications&email_token=AAEYGXJIQJ7G7PVH4NKXDUDQ3YUK7A5CNFSM4KATFP72YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEH67ARA#issuecomment-570290244,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXNF2XR67XWJO4THKI3Q3YUK7ANCNFSM4KATFP7Q
.

I would agree, we keep using alpha client, it is compatible even k8s bumped to beta. Unless one day, k8s deprecated alpha version. That is to say when k8s 1.16 is not maintained(maybe when 1.19 released), we can upgrade to beta.  Then we should also declare istio stops supporting k8s 1.16.

Close per ^

This ends up requiring that you enable the alpha API as well, which is not enabled by default. I tested this with a Kind cluster running stock 1.18:
kind create cluster --config ./istio-testing.yaml -v9 --retain --image kindest/node:v1.18.2 --wait=60s

cat < cluster.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:

role: control-plane
role: worker
kubeadmConfigPatches:
|
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
metadata:
name: config
apiServer:
extraArgs:
"service-account-issuer": "kubernetes.default.svc"
"service-account-signing-key-file": "/etc/kubernetes/pki/sa.key"
containerdConfigPatches:
|-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5000"]
endpoint = ["http://kind-registry:5000"]
EOF

kind create cluster --config ./config.yaml -v9 --retain --image kindest/node:v1.18.2 --wait=60s

Then create an Istiod deployment with EndpointSlice enabled, I see

2021-01-05T01:01:59.005682Z	error	k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1alpha1.EndpointSlice: the server could not find the requested resource

This ends up requiring that you enable the alpha API as well, which is not enabled by default. I tested this with a Kind cluster running stock 1.18:
kind create cluster --config ./istio-testing.yaml -v9 --retain --image kindest/node:v1.18.2 --wait=60s

cat < cluster.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:

role: control-plane
role: worker
kubeadmConfigPatches:
|
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
metadata:
name: config
apiServer:
extraArgs:
"service-account-issuer": "kubernetes.default.svc"
"service-account-signing-key-file": "/etc/kubernetes/pki/sa.key"
containerdConfigPatches:
|-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5000"]
endpoint = ["http://kind-registry:5000"]
EOF

kind create cluster --config ./config.yaml -v9 --retain --image kindest/node:v1.18.2 --wait=60s

Then create an Istiod deployment with EndpointSlice enabled, I see

2021-01-05T01:01:59.005682Z	error	k8s.io/client-go@v0.18.3/tools/cache/reflector.go:125: Failed to list *v1alpha1.EndpointSlice: the server could not find the requested resource

We use v1beta1 in 1.8

We use v1beta1 in 1.8

Thanks, you are right, I was testing on 1.7.5 and got a bit confused.

Thanks, you are right, I was testing on 1.7.5 and got a bit confused.


Respect continuation indent size, make IndentationRule more intelligent

closes #76
Motivation
In my project, indent size is 4, but continuation size is 6. It means, that condition line.length % indent != 0 always fails.
Implementation details
Rule now calculates indent size relatively to parent element and compares it to expected indent size. Rule knows several cases when continuation indent should be used. For sure, it's not a complete list of cases. These are emerged during testing on my code base and I expect to see more of them when other people start to use it.
Configuration
Continuation indent size can be specified via continuation_indent_size from .editorconfig. By default, regular indent size is used.
Backward compatibility
Due to the fact, that previous implementation was too permissive, I expected that current rule can find some new violation. But for well formatted code, it should return same result. Of course, for the cases when continuation_indent_size % indent_size == 0
Performance
I haven't noticed any major performance impacts. I've tested it on codebase with approximately 1800 kt files. 0.12.1 takes ~16s and new version takes ~ 17s
Nevertheless, I think about current implementation as "first working approach". I'm pretty sure that it can be improved either by using existing "Utils" class, either my implementing more intelligent and fast parent indent size.

This is an amazing work, @MyDogTom! Thank You! :trophy:


chore(headless)!: remove unnecessary exports from reduxjs/toolkit

https://coveord.atlassian.net/browse/KIT-3062
The other two exports Unsubscribe and Middleware are needed for the headless doc generation. The other three functions are only in certain exported files. We should either export them in all use case or export none of them. What to do ? Do people really use createReducer and such ?
It doesn't even change the bundle size so what is the harm ?

My 2 cents: I don't think implementers create custom reducers. The original intention was for that possibility, but it never materialized concretely. So let's clean it up.
If someone really needs it, they can just install redux as their own dep instead of piggy back.

My 2 cents: I don't think implementers create custom reducers. The original intention was for that possibility, but it never materialized concretely. So let's clean it up.
If someone really needs it, they can just install redux as their own dep instead of piggy back.

Should we mention a peer-optional dependency for redux compat? Or would that be noisy? 🤔


Remember recent portals

Auto-populate recent portals and maybe show a list to choose from

Closed in 0ec66f407fa4a98f5ea3ab8b4b65b7ccb42acbc1


Slc proposal edit permissions Issue#804

Issue: The proposal should not be editable after it has been approved. The proposal should not be editable by anyone other than the admin, the creator, and any faculty that may be assigned as the instructor.
Solution: Created a new function called ViewProposal to be able to redirect the user to that page when trying to edit an approved proposal. Made a conditional for the user to be an admin, creator, or faculty to be able to edit proposals.
Test: On the Course Proposals page, try to edit an approved proposal, and it will redirect you to viewing that proposal and flash a warning message. If you try to edit any other proposals, you should be able to do so. If you try to view the approved or any other proposals, you should be able to do so.

When I attempt to edit an approved course proposal it throws the following error:

Also the terminal prints hello on a route visit through your function

Looks good!


Using target _blank while parsing twitter tweets using twitter text

I want to add target="_blank" property to all the twitter tweets parsed urls using twitter text. I followed this example https://github.com/twitter/twitter-text/tree/master/js#auto-linking-examples and successfully able to parse the entities but I can't find a way to add target="_blank" property to all the urls. Can anyone please tell me is there any options supported for this in this library? If not, is there anyway this can be achieved?

Just set "targetBlank" option to true when call the function

In the Ruby/Rails version, it's auto_link(text, :target_blank => true)


User-friendly page title

Is your feature request related to a problem? Please describe.
As of now when I switch to a different page, it just displays the URL as the page title, which is not user-friendly at all.

Describe the solution you'd like
I would like to make it more user-friendly by changing the page title so that it displays "College Project Ideas" or "App ideas"
I would be glad to work on this.

Yeah, create that below the tags mentioned.


Add JDK6+ @ConstructorProperties annotation to constructors

This annotation would provide serialization clues to libraries that support it.
This annotation is defined by the JDK so no external dependencies are needed.
This annotation is supported by Jackson and Spring Framework
Reference:
https://docs.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.html
Since this uses a JDK provided class could we update the ConstructorRule to just always generate it or do you believe we require configuration parameters to turn it on/off.  I have a "always do" implementation of this already ready.

Jackson Example: https://github.com/FasterXML/jackson-databind/blob/master/src/test/java/com/fasterxml/jackson/databind/deser/creators/CreatorPropertiesTest.java

I think since this is part of the jdk, a config option is not needed. As long as the annotation is also available on Android.
Is there a reason this annotation is needed if the constructor params are named appropriately? It looks like this is useful when you need to use different param names to the bean property names.

About the Android...
Good catch, unfortunately Android does not provided this class.
Evidence:

In Android Studio I can not import it.

The reference guide doesn't have this class. (https://developer.android.com/reference/java/beans/IndexedPropertyChangeEvent)

Someone having a cannot find symbol class ConstructorProperites error. (https://stackoverflow.com/a/28020733/45708)

About need for annotation even if constructor parameters are named appropriately ...
Prior to Java 7, if you compiled with debug symbols the parameter names are preserved but you must access them by reading the byte-code.  This most likely would require the serialization library to add and use an additional byte-code reading library.
Java 8, introduced the parameter name feature to the reflection API, but the -parameters command line switch must be added when compiling with javac.
I believe that adding this annotation provides better comparability when using serialization libraries that don't support getting parameter names from byte-code or do not use the new Java 8 reflection API which both rely on if you compile the code with the appropriate arguments.  ConstructorProperties is the only way a library can rely on getting parameter names in Java 7+ regardless of how the developer compiles their code.
References:
https://www.beyondjava.net/reading-java-8-method-parameter-named-reflection
https://julien.ponge.org/blog/java8-parameter-names-and-jdk-dogfooding/

With my pull request I went with it being disabled by default because of the incompatibilities with Android.

#1026 implemented this feature and it has been merged into master.


Maybe unsound in IOBuff::Buf

Hello, thank you for your contribution in this work. I'm scanning rust project for unsound problem.
I notice the following code.
pub struct IOBuff {
    pub addr: u64,
    pub size: usize,
}

impl IOBuff {
....................................
    pub fn Buf(&self) -> &'static mut [u8] {
        let ptr = self.addr as *mut u8;
        let toSlice = unsafe { slice::from_raw_parts_mut(ptr, self.size) };

        return toSlice;
    }
......................................
}

considering IOBuff is a pub struct and addr is a pub field, I;m not sure whether user can directlt create and assign addr field. And with the direct call to slice::from_raw_parts_mut(ptr, self.size) which may result in UB. I am not sure whether user can direct call the Buf method, if it is not for external using, maybe we should mark it as unsafe or pub(crate)? I brought this up for security reasons, so please don't mind if this is a false report.

Thank you for information. You understanding is correct. This is enginering debt.

On Sat Dec 7, 2024 at 2:09 PM CET, lwz23 wrote:

Hello, thank you for your contribution in this work. I'm scanning rust project for unsound problem.
I notice the following code.
pub struct IOBuff {
    pub addr: u64,
    pub size: usize,
}

impl IOBuff {
....................................
    pub fn Buf(&self) -> &'static mut [u8] {
        let ptr = self.addr as *mut u8;
        let toSlice = unsafe { slice::from_raw_parts_mut(ptr, self.size) };

        return toSlice;
    }
......................................
}

considering IOBuff is a pub struct and addr is a pub field, I;m not sure whether user can directlt create and assign addr field. And with the direct call to slice::from_raw_parts_mut(ptr, self.size) which may result in UB. I am not sure whether user can direct call the Buf method, if it is not for external using, maybe we should mark it as unsafe or pub(crate)? I brought this up for security reasons, so please don't mind if this is a false report.

in general you are right, Quark codebase has a lot of unsoundness due to
early debts. But it doesn't hurt too much for now since we are not
distributing a library, everything is considered "internal" for the
devs. XD
out-of-topic: it seems you are using some automatic tools to find this
issue (and generate the report). This is interesting, mind sharing some
insights? -- I'm sure there are more of such patterns in this codebase.
Sorry if I make the wrong assumption.
--
wth
220F 6A50 7BEF 8C33 3B4A 4404 99DE B3B4 1583 4AEF

out-of-topic: it seems you are using some automatic tools to find this
issue (and generate the report). This is interesting, mind sharing some
insights? -- I'm sure there are more of such patterns in this codebase.

In his repository maybe this:  https://github.com/lwz23/scan_overunsafe


Bugfix/191 apostrophe

Description
Fix error in heading.
Additional information
Closes #191
Definition of Done

[ ] PR approved by Libby
[ ] Related GitHub issues closed
[ ] Update to Updates page

Please can you take a look at this @libbyv ?


Add Homebrew-based installation instructions for macOS

Is your feature request related to a problem? Please describe.
We currently have instructions for installing the prerequisites using macports, but many people use homebrew instead.
Describe the solution you'd like
Add installation instructions for the prerequisites using homebrew.

Got this working last week, so I'll write these up soon. May need testing from a clean installation.

For me, the following has worked (as feedback and check on this item):
brew install gcc
brew install hdf5
brew install netcdf
brew install cmake

(Installing gcc also install g++, gfortran, gmp and mpfr.)
Building Homebrew-MPICH from source, with the --cc flag to tell Homebrew which C compiler to pick up (this does not require HOMEBREW_* variables):
brew install mpich --build-from-source --cc=gcc-8

(gcc-8 or the gcc version variant Homebrew installed for you.)
To verify:
$ mpicc -show
gcc-8 -Wl,-flat_namespace -Wl,-commons,use_dylibs -I/usr/local/Cellar/mpich/3.2.1_2/include -L/usr/local/Cellar/mpich/3.2.1_2/lib -lmpi -lpmpi
$ mpicxx -show
g++-8 -Wl,-flat_namespace -Wl,-commons,use_dylibs -I/usr/local/Cellar/mpich/3.2.1_2/include -L/usr/local/Cellar/mpich/3.2.1_2/lib -lmpicxx -lmpi -lpmpi
$ mpif90 -show
gfortran -Wl,-flat_namespace -Wl,-commons,use_dylibs -I/usr/local/Cellar/mpich/3.2.1_2/include -I/usr/local/Cellar/mpich/3.2.1_2/include -L/usr/local/Cellar/mpich/3.2.1_2/lib -lmpifort -lmpi -lpmpi
$ mpif77 -show
gfortran -Wl,-flat_namespace -Wl,-commons,use_dylibs -I/usr/local/Cellar/mpich/3.2.1_2/include -I/usr/local/Cellar/mpich/3.2.1_2/include -L/usr/local/Cellar/mpich/3.2.1_2/lib -lmpifort -lmpi -lpmpi

For added bonus, I've used Homebrew's Python(3):
brew install python3

Followed by (I've been rather explicit with the path for Python 3, even if Apple doesn't provide a Python 3 that may clash with Homebrew's one):
PYTHON=/usr/local/bin/python3 ./configure
PYTHON=/usr/local/bin/python3 CC=/usr/local/bin/gcc-8 CXX=/usr/local/bin/gxx-8 make build3 -j2
/usr/local/bin/python3.6 setup.py install

(The second command could probably be skipped, and the build done with just setup.py install.)

Great! I'd like to test this on a clean macOS installation to see if any problems remain, but looks like this would be the way to do it.
I also want to check if we can do without installing gcc, using gfortran for fortran codes and the Xcode clang for c/c++ codes.

@rieder that (Xcode clang) is the approach taken in the Conda setup, and it works there, so it should be possible with Homebrew.

Great!

Unfortunately not:
$ brew install gfortran
Error: No available formula with the name "gfortran"
GNU Fortran is now provided as part of GCC, and can be installed with:
  brew install gcc

I guess it could work, but if we already need to install gcc to get gfortran, it seems more practical and consistent to use gcc/g++ and not clang.

Correct, as noted in my comment; this is why I used gcc. You could try gfortran from http://hpc.sourceforge.net/ ; in the past, that has caused me problems, but that was for quite a different OSX version.
There was also an openMPI issue with clang, if I recall correctly. Might have been fixed in another issue though.

Should be fixed by the time #373 is closed.

brew install pkg-config is important to find packages in the right place


HAL Link change for [Query]

Problem Description:
Need to change the query: [queryname]. Right now it looks for Works about this concept but we want it to look for Works about this concept or concepts influenced by this concept. [may need to clarify this after we clarify what query name]
Expected Behavior/Solution:
The record of the concept: Personal narratives, German. should show new query information: Works about this concept or concepts influenced by this concept.  [needs to be updated after clarification of query name]
Requirements:
record of concept: Personal narratives, German will contain information of works about a concept/concepts about a concept influenced by this concept.  [needs to be updated after clarification of query name]
Needed for promotion:
If an item on the list is not needed, it should be crossed off but not removed.

[ ] Wireframe/Mockup - Mike
[ ] Committee discussions - Sarah
[ ] Feasibility/Team discussion - Sarah
[ ] Backend requirements - TBD
[ ] Frontend requirements- TBD
[ ] Questions
List of questions for discussions. Answers should be documented within the issue.

UAT/LUX Examples:
https://lux-front-tst.collections.yale.edu/view/concept/a5c8f778-5f2b-4226-9dbd-eb10df3979d2
Dependencies/Blocks:

Blocked By: Issues that are blocking the completion of the current issue.
Blocking: Issues being blocked by the completion of the current issue.

Related Github Issues:

https://github.com/project-lux/lux-middletier/issues/41

Related links:
Bugherd: https://www.bugherd.com/projects/284041/tasks/2078
Wireframe/Mockup:
Place wireframe/mockup for the proposed solution at end of ticket.

@clarkepeterf What is the query name for this issue?

@roamye I think this is a dupe of https://github.com/project-lux/lux-middletier/issues/85

Dupe of https://github.com/project-lux/lux-middletier/issues/85. Propose close.


Introduce Editor Trait for Flexible Text Widget Integration and Feature Flag for CodeEditor

Description
This pull request introduces an abstraction layer via the Editor trait to enable users to incorporate additional text widgets with syntax highlighting. It also implements a feature flag for the existing CodeEditor.
Changes Made

Added Editor trait with methods append and syntax to generalize functionality for text widgets.
Modified highlight and associated functions in highlighting.rs to accept generic Editor trait bounds instead of directly referencing CodeEditor.
Implemented Editor for CodeEditor, defining append and syntax methods accordingly.

Motivation and Context
The addition of the Editor trait allows for flexibility in integrating various text widgets with syntax highlighting capabilities, enhancing the extensibility and usability of the codebase. The feature flag ensures compatibility with existing code while paving the way for future enhancements.
Notes for Reviewers
Please review the changes to highlighting.rs and lib.rs for adherence to the new Editor trait usage and feature flag implementation. Ensure compatibility with existing features and provide feedback on the design and implementation decisions.

I tried to add a Reader which only renders a specific region of a string slice so I tried to build a low cost reader on top of your  crate which doesn't work out of the box.

Example

This is a fast readonly code editor which renders 3MB of text very very fast in about 30µs, with your Syntax highlighting,

@GodGotzi Looks good! Thank you!


Ensure files which aren't present are skipped in processing scripts

Upstream files (daily/monthly) could be missing.  Need to handle correctly

Added functionality to subdaily in #5

Added functionality to daily in #37 and monthly in #38


Fixes for issue #501

Changes to address https://github.com/atsign-foundation/at_server/issues/501#issuecomment-1030029839

outbound_message_listener.dart - old version would not handle error: responses but timeout after 5 seconds returning empty string

Modified read() so

it handles error:... responses by throwing an AtConnectException but leaves the connection open, as 'error:' is a valid response
handles malformed responses by throwing an AtConnectException and closing the connection (malformed responses should never occur)
throws a TimeoutException upon timing out, and closes the connection as timeouts are generally bad news

Modified _closeClient() so it doesn't check if (!outboundClient.isInValid()) before calling outboundClient.close() - why? See comments in code
Tidied up method comments for accuracy
For readability purposes, renamed instance variable client to outboundClient, and renamed method _closeClient to _closeOutboundClient

outbound_connection_impl.dart

call socket.destroy() instead of socket.close()
We already call socket.destroy() in the at_lookup library see https://github.com/atsign-foundation/at_libraries/blob/trunk/at_lookup/lib/src/connection/base_connection.dart#L24 so this is normal behaviour when connecting to secondary servers

Originally changed base_connection.dart as well but reverted that just to prevent any unexpected side effects on inbound_connection_impl from this PR

global_exception_handler.dart

added handling for AtConnectException and TimeoutException which are now being thrown by outbound_message_listener.dart

proxy_lookup_verb_handler.dart

Added only an explanatory comment, about timeouts, 'error:..' responses and malformed responses being handled downstream in outbound_message_listener.dart

Modified outbound_client.dart so that outbound_message_listener.dart log messages can include the remote atSign, host and port

- Description for the changelog
Changes to address https://github.com/atsign-foundation/at_server/issues/501#issuecomment-1030029839

Something weird is happening with e2e tests not being able to open sockets. Debugging.

pubspec.yaml currently has dependency override to pick up at_commons from trunk; this is because of the new exception that has been added, TimeoutException
Plan is to publish another version of at_commons and then remove the dependency override from here

Need to add e2e test to verify expected behaviour

Agreed. All of the timeouts need to be reviewed but in the meanwhile I’ll
set this to 2 seconds


Cannot open databases with all-numeric names

Using build 0.1.8 in Debian Bookworm under WLS2
I noticed this connected to two similarly configured MySQL servers.
I do not know if it is a MySQL specific problem or not.
I can see all the databases in the table panel.
I can open ones with letters in their names, even if they start with a number.
All-numeric databases do not open. I can select them but nothing happens when I press enter.
I hope this is helpful, thanks!

@kc8rwr Can you please check if #67 completely solves your issue?

And sorry for being late. I was very busy for a few months in my job.

This seems to have fixed it. Thank you very much!


Register priyanshu.is-cool.dev

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.

Description
This domain is for my LinkTree site
Link to Website
https://priyansumaurya.github.io/

CLA Assistant Lite bot: Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.

I have read the CLA Document and I hereby sign the CLA

You can retrigger this bot by commenting recheck in this Pull Request

@PriyansuMaurya Please sign the CLA agreement.

I have read the CLA Document and I hereby sign the CLA

recheck


new playbook bulk close incidents

The following new playbook can use a KQL query to selective bulk close or change Azure Sentinel incidents.
Fixes #
Proposed Changes

changed design and name going to use new push req


Remove redundant words

@GitHubPang : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Looks good; thanks @GitHubPang.


cargo env subcommand

Thoughts?
Print environment variables for compiling the specified cargo package.

Usage:
    cargo env [options] [--] [<args>..]

Options:
    -h, --help              Print this message
    -p, --profile PROFILE   The profile to print environment variables for
    --run                   Calculate env vars for running the current package
    --pkgid PKGID           Calculate env vars for the specified package
    --target TRIPLE         Target triple which compiles will be for
    --manifest-path PATH    Path to the manifest of a cargo package
    -v, --verbose           Use verbose output

This command will calculate environment variables set by cargo for compiling
the specified package. If no package is specified, then the current directory's
package is assumed.

If <args> are provided, then they are interpreted as a subprocess to run. The
first argument is the program to run. The program will be run with the relevant
environment variables in place.

If no <args> are provided, then each variable will be printed in the
appropriate syntax for the current shell such that this should work:

    eval `cargo env`

Environment variables set by cargo are, for example: dynamic linker load paths,
verion number related env-vars, etc.

This command requires that a lockfile is available and dependencies have been
fetched.

I think with cargo rustc this isn't all that more necessary, so I'm going to close this.

I think with cargo rustc this isn't all that more necessary

What if I need to run a build.rs script under gdb for example? It will require env variables from cargo to run properly. How would I get them?

I still think this would be useful.
I want to get the location of the target directory from a shell script.
Without this, it looks like I'll have to read .cargo/config, and whatever else that might change the location.


Input parameters not parsed properly

https://tldp.org/LDP/abs/html/quotingvar.html:

When referencing a variable, it is generally advisable to enclose its name in double quotes. This prevents reinterpretation of all special characters within the quoted string -- except $, ` (backquote), and \ (escape).

This is not being pared correctly:
https://github.com/ksindi/monoreaper/blob/master/monoreaper.sh#L65
Snippet of error:
#!/bin/bash
for repo in "${@:1}"
do
    IFS="/" read owner repo_name repo_branch <<<$repo
    echo "owner=$owner"
    echo "repo_name=$repo_name"
done

Errantly returns this because $repo is reinterpreted:
owner=owner0 repo0
repo_name=
owner=owner1 repo1
repo_name=

I believe it should be this, notice quotes:
IFS="/" read owner repo_name repo_branch <<<"$repo"

@ksindi We love this at JW Player.  Thx for the continued support!

@dshore thank you for finding my bugs ;-)

@dshore I have added the quotes


Update tutorials.md

change new image file paths to master

:tada: This PR is included in version 2.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Fixing Typo "reogranize" -> "reorganize"

This pull request corrects a typo from "reogranize" to "reorganize."
Although this change might cause issues for applications depending on this repository, given that the project is still in its early stages, now is an ideal time to address these small but important cleanups to ensure a more robust foundation going forward.

This seems to better fix it?


Add support for arrow functions

Aiming to resolve #652
I'm not (yet) quite convinced if this is the way to go; would really like to get some discussion going on how to approach this and eventually  get this fixed and merged.
Implementation of arrow functions in filters:

sort
filter
map
reduce

Object manipulation is not really supported; this implementation accepts a callbackFunction (Twig syntax) which is compiled and parsed as a new (runtime) template. The return values (e.g. output) of the callBackFunctions are delegated to their respective JS functions.
As previously stated: this is merely a functional (read dirty) workaround; but for most of the use cases it will do the trick.

Thanks for the review and the suggestions.
Please take a look at #873 & #874


Audio WebsSocket Issue

General Troubleshooting

[X] I have checked for similar issues on the Issue-tracker.
[X] I have checked for PRs that might already address this issue.

Version of JDA
5.0.0-beta.21
Expected Behaviour
I don't really know what this error is supposed to be but I think it wasn't my fault since my name doesn't occur in the error
Code Example for Reproduction Steps
There is no Code sry :(

Code for JDABuilder or DefaultShardManagerBuilder used
String botToken = getConfig().getString("Discord." + ".BOT_TOKEN");

JDABuilder builder = JDABuilder.createDefault(botToken);

Exception or Error
[21:26:10 ERROR]: [net.dv8tion.jda.internal.audio.AudioWebSocket] There was some audio websocket error
java.lang.IllegalStateException: zip file closed
        at java.util.zip.ZipFile.ensureOpen(ZipFile.java:838) ~[?:?]
        at java.util.zip.ZipFile.getEntry(ZipFile.java:330) ~[?:?]
        at java.util.jar.JarFile.getEntry(JarFile.java:511) ~[?:?]
        at java.util.jar.JarFile.getJarEntry(JarFile.java:466) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:209) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:588) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:169) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:164) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
        at gnu.trove.map.hash.TIntObjectHashMap.valueCollection(TIntObjectHashMap.java:345) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioConnection.shutdown(AudioConnection.java:199) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.lambda$close$0(AudioWebSocket.java:168) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.lambda$locked$1(AudioWebSocket.java:571) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.api.utils.MiscUtil.locked(MiscUtil.java:148) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.locked(AudioWebSocket.java:571) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.close(AudioWebSocket.java:154) ~[UltimateLeague-1.0.jar:?]
        at net.dv8tion.jda.internal.audio.AudioWebSocket.onDisconnected(AudioWebSocket.java:324) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.ListenerManager.callOnDisconnected(ListenerManager.java:224) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocket.finish(WebSocket.java:3758) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocket.onThreadsFinished(WebSocket.java:3724) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocket.onWritingThreadFinished(WebSocket.java:3713) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WritingThread.notifyFinished(WritingThread.java:539) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WritingThread.runMain(WritingThread.java:78) ~[UltimateLeague-1.0.jar:?]
        at com.neovisionaries.ws.client.WebSocketThread.run(WebSocketThread.java:45) ~[UltimateLeague-1.0.jar:?]

Hi, this is not caused because something in internal of JDA is broken, but rather because you are using the /reload command. Which should not be used.
However, to fix this you need add this to your onDisable in the class that extends JavaPlugin:
jda.shutdown();
// Allow at most 10 seconds for remaining requests to finish
if (!jda.awaitShutdown(Duration.ofSeconds(10))) {
    jda.shutdownNow(); // Cancel all remaining requests
    jda.awaitShutdown(); // Wait until shutdown is complete (indefinitely)
}

Thank you for the fast response!
I don't think that it was caused bc of reloading since I was restarting the server. However I appreciate your help.

Closing as duplicate https://github.com/discord-jda/JDA/issues?q=is%3Aissue+is%3Aclosed+zip+file+closed


Full screen mode WITH toolbar badly needed

As @drjjw describes in #5993 there is a use case for a full screen mode with toolbar. For instance I have multiple pdf viewers on a single HTML page and I'd like to offer the possibility to view each of them full screen separately, with a toolbar. F11 is no solution since it'll simply put the entire browser window in full screen mode. And this is not for presentation purposes either, i.e. presentation mode won't do.

"Full screen mode with toolbar", sounds exactly like F11. How should full screen mode without opening a full screen browser window look like according to you?

For instance I have multiple pdf viewers on a single HTML page and I'd like to offer the possibility to view each of them full screen separately

@creynders I guess this is a use case for "Bookmark" button/link, you can open this link into new tab.

@Rob--W exactly, that's what it should be. But it's not. pdf.js only provides a "presentation mode" button, which sets the browser and pdf full screen, but hides the (pdf)toolbar. What we need is a button to set the browser and pdf full screen with (pdf)tool bar. Or allowing to configure the presentation mode with/without toolbar.
@yurydelendik yeah, there's a number of workarounds, but all of them horrible UX-wise. IMO this is definitely a missing feature. One people will come back asking for.

I just press F11. Personally I never use the presentation mode except for square presentations, but the majority of the PDFs that I open are not like that.
Could we add an option to use "F11 full-screen" mode instead of presentation mode when the button is clicked when the PDF has a portrait orientation? Then Ctrl + Shift + P and F11 will still behave like today, but the fullscreen button gets a more useful default button.
Perhaps a tri-state

Ctrl + Shift + P
F11
1 or 2, depending on the page orientation

WDYT @yurydelendik ?

The main reason we did not want is add confusion between "Presentation Mode", browser's "Fullscreen Mode" and (whatever we can call it) "Extend into Fullscreen"-thing. There is no UX analysis presented yet for this request, so it's hard to introduce and support a feature that is used by small number of people. However I would be willing to review a functionality that adds it to the secondary menu (under similar to Ctrl + Shift + P or F11 shortcut with additional/different modifiers)

(The site authors can modify UI to bring that to the front of the toolbar instead of "Presentation Mode" icon)

@yurydelendik Yeah, I understand. It's only really a problem with embedded pdf's. But I think allowing site authors to configure presentation mode with a toolbar is pretty useful in any case, no? I mean, there's plenty of situations where having a toolbar in presentation mode is useful too.

there's plenty of situations where having a toolbar in presentation mode is useful too.

We are trying to place all needed commands in the context menu (it works only on FF atm)

As far as I can tell this exact issue is tracked in #4816, where the author has made such functionality for https://pdf.yt, thus I'm closing this one as a duplicate for now.


How to view Profit/Loss for each order?

I see where I can check fills and whatnot, but how can I see the actual Profit/Loss from each order?

Q1:where I can check fills and whatnot
try GET /api/v1/orders/{order-id}
Get a single order by order id, the return parameters are as follows
  {     "code": "200000",     "data": {       "id": "5cdfc138b21023a909e5ad55", //Order ID       "symbol": "XBTUSDM",  //Ticker symbol of the contract       "type": "limit",   //Order type, market order or limit order       "side": "buy",  //Transaction side       "price": "3600",  //Order price        "size": 20000,  //Order quantity       "value": "56.1167227833",  //Order value       "filledValue": "56.1167227833",  //Value of the executed orders       "filledSize": 20000,  //Executed order quantity       "stp": "",  //Self trade prevention types       "stop": "",  //Stop order type (stop limit or stop market)       "stopPriceType": "",  //Trigger price type of stop orders       "stopTriggered": true,  //Mark to show whether the stop order is triggered       "stopPrice": null,  //Trigger price of stop orders       "timeInForce": "GTC",  //Time in force policy types       "postOnly": false,  //Mark of post only       "hidden": false,  //Mark of the hidden order       "iceberg": false,  //Mark of the iceberg order       "visibleSize": null,  //Visible size of the iceberg order       "leverage": "20",  //Leverage of the order       "forceHold": false,  //A mark to forcely hold the funds for an order       "closeOrder": false, //A mark to close the position       "reduceOnly": false,  //A mark to reduce the position size only       "clientOid": "5ce24c16b210233c36ee321d",  //Unique order id created by users to identify their orders       "remark": null,  //Remarks of the order       "isActive": false,  //Mark of the active orders       "cancelExist": false,  //Mark of the canceled orders       "createdAt":<PHONE_NUMBER>000,  //Time the order created       "settleCurrency": "XBT", //settlement currency       "status": "done", //order status: “open” or “done”       "updatedAt":<PHONE_NUMBER>000, //last update time       "orderTime":<PHONE_NUMBER>000000000 //order create time in nanosecond     } }
if the "status" field is "done", it means your order has been filled. if the  "status" field is "open", it means your order has not been filled and it is still on the orderbook.
Q2:how can I see the actual Profit/Loss from each order
try GET /api/v1/fills, the return parameters are as follows
  {     "code": "200000",     "data": {       "currentPage":1,       "pageSize":1,       "totalNum":251915,       "totalPage":251915,       "items":[           {             "symbol": "XBTUSDM",  //Ticker symbol of the contract             "tradeId": "5ce24c1f0c19fc3c58edc47c",  //Trade ID             "orderId": "5ce24c16b210233c36ee321d",  // Order ID              "side": "sell",  //Transaction side             "liquidity": "taker",  //Liquidity- taker or maker              "price": "8302",  //Filled price               "size": 10,  //Filled amount             "value": "0.001204529",  //Order value             "feeRate": "0.0005",  //Floating fees             "fixFee": "0.00000006",  //Fixed fees             "feeCurrency": "XBT",  //Charging currency               "stop": "",  //A mark to the stop order type             "fee": "0.0000012022",  //Transaction fee             "orderType": "limit",  //Order type             "tradeType": "trade",  //Trade type (trade, liquidation, ADL or settlement)             "createdAt":<PHONE_NUMBER>000,  //Time the order created             "settleCurrency": "XBT", //settlement currency             "tradeTime":<PHONE_NUMBER>000000000 //trade time in nanosecond           }       ]     } }
the "fee" field means trading commissions, which is your actual Profit/Loss from each order.
For more details, please refer to:https://docs.kucoin.com/futures/#general

Q1:where I can check fills and whatnot
try GET /api/v1/orders/{order-id}
Get a single order by order id, the return parameters are as follows
  {     "code": "200000",     "data": {       "id": "5cdfc138b21023a909e5ad55", //Order ID       "symbol": "XBTUSDM",  //Ticker symbol of the contract       "type": "limit",   //Order type, market order or limit order       "side": "buy",  //Transaction side       "price": "3600",  //Order price        "size": 20000,  //Order quantity       "value": "56.1167227833",  //Order value       "filledValue": "56.1167227833",  //Value of the executed orders       "filledSize": 20000,  //Executed order quantity       "stp": "",  //Self trade prevention types       "stop": "",  //Stop order type (stop limit or stop market)       "stopPriceType": "",  //Trigger price type of stop orders       "stopTriggered": true,  //Mark to show whether the stop order is triggered       "stopPrice": null,  //Trigger price of stop orders       "timeInForce": "GTC",  //Time in force policy types       "postOnly": false,  //Mark of post only       "hidden": false,  //Mark of the hidden order       "iceberg": false,  //Mark of the iceberg order       "visibleSize": null,  //Visible size of the iceberg order       "leverage": "20",  //Leverage of the order       "forceHold": false,  //A mark to forcely hold the funds for an order       "closeOrder": false, //A mark to close the position       "reduceOnly": false,  //A mark to reduce the position size only       "clientOid": "5ce24c16b210233c36ee321d",  //Unique order id created by users to identify their orders       "remark": null,  //Remarks of the order       "isActive": false,  //Mark of the active orders       "cancelExist": false,  //Mark of the canceled orders       "createdAt":<PHONE_NUMBER>000,  //Time the order created       "settleCurrency": "XBT", //settlement currency       "status": "done", //order status: “open” or “done”       "updatedAt":<PHONE_NUMBER>000, //last update time       "orderTime":<PHONE_NUMBER>000000000 //order create time in nanosecond     } }
if the "status" field is "done", it means your order has been filled. if the  "status" field is "open", it means your order has not been filled and it is still on the orderbook.
Q2:how can I see the actual Profit/Loss from each order
try GET /api/v1/fills, the return parameters are as follows
  {     "code": "200000",     "data": {       "currentPage":1,       "pageSize":1,       "totalNum":251915,       "totalPage":251915,       "items":[           {             "symbol": "XBTUSDM",  //Ticker symbol of the contract             "tradeId": "5ce24c1f0c19fc3c58edc47c",  //Trade ID             "orderId": "5ce24c16b210233c36ee321d",  // Order ID              "side": "sell",  //Transaction side             "liquidity": "taker",  //Liquidity- taker or maker              "price": "8302",  //Filled price               "size": 10,  //Filled amount             "value": "0.001204529",  //Order value             "feeRate": "0.0005",  //Floating fees             "fixFee": "0.00000006",  //Fixed fees             "feeCurrency": "XBT",  //Charging currency               "stop": "",  //A mark to the stop order type             "fee": "0.0000012022",  //Transaction fee             "orderType": "limit",  //Order type             "tradeType": "trade",  //Trade type (trade, liquidation, ADL or settlement)             "createdAt":<PHONE_NUMBER>000,  //Time the order created             "settleCurrency": "XBT", //settlement currency             "tradeTime":<PHONE_NUMBER>000000000 //trade time in nanosecond           }       ]     } }
the "fee" field means trading commissions, which is your actual Profit/Loss from each order.
For more details, please refer to:https://docs.kucoin.com/futures/#general


Attempt to save path entered into top bar if it's not a (existing) directory

Extend the #150 behavior to saving paths.
With the same reasoning that the user might already have a path in mind, like they want to save to /tmp/foo.txt.

I have implemented it on the referencing PR. Could you take a quick look to see if this is the behavior you expect?

I left a comment regarding files without extensions, but otherwise it seems to be working, thank you for implementing!


App constantly crashing after opening, and after a few minutes of use

iPhone 7
iOS: 12.1.4
Slide 3.0.1 build 111
For the past few weeks Slide crashes at least half the time when opening.  When open, It will usually crash again.  I have tried cleaning the cache and history.
When it crashes the app still runs in the background. Which means it will crash, then I still have to kill it in the background, and try launching again.
Any help is appreciated.

Does this persist if you reinstall the app?
I'm also a bit confused -- you mean that the app is unresponsive but doesn't close itself? So then you're killing the app and restarting it yourself?

Hi, I created a video capture: https://www.dropbox.com/s/94asg5x2lnwmgeh/Video Apr 03%2C 8 09 51 AM.mov?dl=0
Sequence of events:

Launch app
Browse/scroll
Open first entry
Open second entry (dank memes cartoon) CRASH
However, when I go to look at apps running in the background Slide is still there - so not a full crash
I did this two times in a row

This happens about 80% of the time with the remaining 20% being a stable experience.

This is very helpful, thank you. I’m going to see if I can reproduce this on my iPhone 7. I think this may have to do with memory constraints being hit @ccrama

Memory would not cause the app to become unresponsive, have you tried reinstalling the app @AquaStringBand ?

I’ve reinstalled and I will report back. Thanks.

Any updates?

So far the app is stable but I have not used it vigorously yet. I will have a better idea after the weekend.

Wanted to report back that stability is 99% better. Just 2-3 random crashes in the bast 2 weeks which I can’t replicate. Thanks.

Glad to hear that! If you run into it again, let me know


Clarify MSGEN version requirements for Python

One of our users tried to follow this guide using a version 3.x series of Python. He had to engage with the development team to understand that MSGEN did not support 3.X version of Python since it is a 2.7 Python application. Clarifying the Install Python section in this troubleshooting guide to alleviate future misinterpretations by customers.

@ruchir-microsoft : Thanks for your contribution! The author, @grhuynh, has been notified to review your proposed change.

The author is on maternity leave, can someone else weigh in on the change?


Update key concepts link to point to the proper place.

Hi,
This prevents someone  getting a red warning block (old version warning) on the docs site.
Using /latest/, instead of the version, in the URL should avoid having to keep this up to date in future. :)

Thanks a lot!


Layout issues on Pi

Is your feature request related to a problem? Please describe.
Layout and window size
Describe the solution you'd like
Everything shows and has correct widget size in raspberry pi.
WHen HW is detected, longer strings result and bigger fonts are used and layout of left column grows and causes squishing of
widgets on the right and pullup selector and other things not showing.
Describe alternatives you've considered
Additional context
See if in the process we can have the entire layout size determined by constants and then calculate (const) the windows sizes needed for the two layouts.

This has been fixed by moving hardware to a popup


Old namespace for CloudConfigurationManager

CloudConfigurationManager does not exist anymore in the Microsoft.Framework.Configuration.
Is it now moved to Microsoft.Azure?

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

ID: 8664f4cd-95e4-aa94-edee-03200598f85c
Version Independent ID: c0644aaa-f25b-4ba7-ce01-45bc065372ed
Content: How to get started with table storage and Visual Studio connected services (ASP.NET Core) | Microsoft Docs
Content Source: articles/visual-studio/vs-storage-aspnet5-getting-started-tables.md
Service: storage
GitHub Login: @kraigb
Microsoft Alias: kraigb

@mguntli
Thanks for the feedback! We are currently investigating and will update you shortly.

Might have moved to Microsoft.Azure. But there it is missing Fusion.dll ?

@Adam-Smith-MSFT Can you reassign to @ghogen who is taking ownership of this article?

Yes, please assign to me.

Nuget package for CloudConfigurationManager is Microsoft.WindowsAzure.ConfigurationManager

The example here fails with this exception: Unable to load DLL 'fusion.dll'.
As alternative, the example given by @SaadMarwan here for getting a CloudStorageAccount instance works.

Repeat: @Adam-Smith-MSFT Can you reassign to @ghogen who has ownership of this article?


Remove use_legacy_data option for country_select question

This option isn't used in any production code and so it seems safe to remove it.

Looks good to me.

Rebasing against master and force-pushing in preparation for merging.


add units to legend in explore_map

get_meta() returns a unitted table. can we pop those units into the histogram x axis, etc.?

yes. Added to my list

legend has units!


Move netty integration-tests out of core

Fixes #32

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/camel-quarkus-pr/24/


Add EncryptedElementType key resolver to SAML plugin

Description
There are multiple ways in which a SAML response can be formatted, especially when encryption is enabled.  This PR removes the hardcoding of EncryptedKeyResolver= InlineEncryptedKeyResolver in favor of using a ChainingEncryptedKeyResolver which will try multiple resolvers. It preserves the InlineEncryptedKeyResolver as the first option but adds EncryptedElementTypeEncryptedKeyResolver to the chain of resolvers to try.
ChainingEncryptedKeyResolver is a bit finicky in that you can't provide it a list of resolvers, you can only fetch its internal list and add to it.
Theoretically we could add all of the resolver types to the chain, but for now just preserving the ones known to be in use.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[x] Minor
[ ] Trivial

How Has This Been Tested?
Tested locally against an installed IDP that provides the EncryptedElementType of XML response.

I'm not sure what's going on with that Jenkins build. I can see that it is looking for org.opensaml:opensaml:pom:2.6.7-SNAPSHOT and not finding it. However I haven't changed the version (it is 2.6.6 in the pom), and it builds fine locally, so I'm not sure where it's coming up with 2.6.7-SNAPSHOT.
[WARNING] Unable to create Maven project for org.opensaml:opensaml:pom:2.6.7-SNAPSHOT from repository.
org.apache.maven.project.ProjectBuildingException: Error resolving project artifact: org.opensaml:opensaml:pom:2.6.7-SNAPSHOT was not found in https://repo.jenkins-ci.org/public/ during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of repo.jenkins-ci.org.public has elapsed or updates are forced for project org.opensaml:opensaml:pom:2.6.7-SNAPSHOT

Ok looks like I'm not the only PR failing in the same way...

That looks like a warning as it's trying to download/fetch opensaml dependency from a maven repo which doesn't have it. Ignorable as build works.
@blueorangutan package

@rohityadavcloud a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 5642

@blueorangutan test

@DaanHoogland a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Trillian test result (tid-6232)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 40912 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr7268-t6232-kvm-centos7.zip
Smoke tests completed. 108 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

@blueorangutan package

@rohityadavcloud a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 5739

@blueorangutan package

@rohityadavcloud a Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan test keepEnv

@borisstoyanov a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 5824

@blueorangutan test keepEnv

Trillian test result (tid-6353)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 41964 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr7268-t6353-kvm-centos7.zip
Smoke tests completed. 92 look OK, 0 have errors, 16 did not run
Only failed and skipped tests results shown below:

Test
Result
Time (s)
Test File

all_test_accounts
Skipped
---
test_accounts.py

all_test_over_provisioning
Skipped
---
test_over_provisioning.py

all_test_affinity_groups
Skipped
---
test_affinity_groups.py

all_test_ipv6_infra
Skipped
---
test_ipv6_infra.py

all_test_usage
Skipped
---
test_usage.py

all_test_affinity_groups_projects
Skipped
---
test_affinity_groups_projects.py

all_test_resource_detail
Skipped
---
test_resource_detail.py

all_test_annotations
Skipped
---
test_annotations.py

all_test_router_dhcphosts
Skipped
---
test_router_dhcphosts.py

all_test_iso
Skipped
---
test_iso.py

all_test_staticroles
Skipped
---
test_staticroles.py

all_test_attach_multiple_volumes
Skipped
---
test_attach_multiple_volumes.py

all_test_kubernetes_clusters
Skipped
---
test_kubernetes_clusters.py

all_test_backup_recovery_dummy
Skipped
---
test_backup_recovery_dummy.py

all_test_password_server
Skipped
---
test_password_server.py

all_test_certauthority_root
Skipped
---
test_certauthority_root.py

Considering smoketests from https://github.com/apache/cloudstack/pull/7268#issuecomment-1444892364 and manual QA, LGTM, merging.


⚠ Bofrost.at has degraded performance

In 612846f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1326 ms

Resolved: Bofrost.at performance has improved in 083d813 after 37 minutes.


Is this work published?

Hi! Nice work, I am wondering if this work is published in some conference or journal?

Thank your for your attention, it is not published now.


What is the difference between the PHP and the newly created PHP-cURL

I returned back to the code only to find a new branch for PHP has been created
what is the key difference between the old PHP and the new PHP-cURL branch?
The old php branch API's uses cURL. Can you explain the difference to me?

Hi @Zakaria16! Welcome back! From the look of it, there isn't much difference, just presentation I guess and layout or approach. Anyhow, this repo is aimed at having as many MoMo implementations as possible. Any programming language and even different perspectives in the same language.

Hello @Chizzoz i get it i just wanted to know the reason for it, so i know which one to work on, however, I think creating different branches for same programming language to me is not a good idea

If there was one approach to do it, for a specific language, it would make sense to only have one. I have come across different PHP implementations, some which even use dependencies. To be specific on the use cases for PHP and PHP-cURL branches. I reckon if you have a programming background with understanding of classes and instantiation (OOP) or you want to "include" functions from other files, you could go with PHP. If you have a single file where you want initiate and complete the transactions with existing code, you could use PHP-cURL. Same objective, different file structure. There are also some differences in error handling.
But, inline with your concern, I will say it is not a very good idea to have different programming languages in one GitHub repository as branches. I would be better to have each implementation as it's own repository. Maintaining the structure as is could be quite a headache, but I was avoiding having too many repo's. Maybe at some point, each branch can be migrated to it's own repo, with different people maintaining them.

Alright. I think we can close this issue

Alright chief!


breastfeeding terms - issues 451, 452

Resolves #451 and #452.

I will add this through a template after the refactoring pull request is merged.


Joindin 624

Alter template to make Social Events span across all tracks in the giid view in the same way Keynotes do.
Also alter talk.type comparisons to use lower case strings in the template as the api code seems to show "Social event" as a valid talk type yet the api is producing "Social Event" as an talk type for events
http://api.joind.in/v2.1/talks/15553

Can one of the admins verify this patch?

ok to test


add va_list versions of log functions and add optional anonymous namespace

These proposed changes are being used in the forked version Loguru used in ECP VTK-m.
Proposed changes are split into two commits:

Encapsulate functions using anonymous, needed for other libraries using this libraries not to export the loguru namespace to avoid possible conflict when there are two libraries/binaries using different Loguru versions and being statically linked together.

Add va_list version of the core functions, varadic MACROS are impossible to opaquely wrap, in this commit I propose an alternative.

The CI is unrelated to this changed and it is being fixed at #187

I apply the fix at #187 to discard that there is any other error in those changes.

@bylowerik thanks for the notice, rebased :)


With malformed input: Unix error: Illegal seek

It appears that any line not starting with a - spits out
ERROR: Malformed input at line <line_without_dash>.
Unix error: Illegal seek

As is the case than the accompanying file help.md works fine but not README.md or similar markdown. This is a show stopper currently but overall great program.

This is intentional: snb was never meant to be a Markdown editor. The choice of using most of Markdown format is merely for convenience (you can read/print the list anywhere and it should still be readable, or convertible to HTML/PDF with already available tools). There is plenty of Markdown editors out there, most have helpers for lists too.
As such I'm closing this issue.


Base AMP images on Alpine 3.5

Alpine 3.5 is out, many AMP infra images are based on Alpine 3.4, they should rebased on 3.5.

[x] influxdb (influxdb-1.1.2)
[x] telegraf (telegraf-1.1.2)
[x] kapacitor (kapacitor-1.1.1)
[x] grafana (grafana-4.1.1)
[x] elasticsearch (5.1.1-3)
[x] etcd (3.1.0-rc.1-1)
[ ] haproxy (1.0.4)
[x] amp (PR #682)
[x] update references in AMP CLI sources

Haproxy image based on Alpine is part of #699, will leave it there.


CSSNext

How does the core team feel about adding CSSNext (http://cssnext.io) to the postcss config to gain the ability to backwards compile CSS3 features? Happy to make a PR if it's something ya'll want :)

See #78 for a very long discussion about this topic!

Wow, thanks for the heads up, didn't come up in my search. Lots of opinions already expressed ;)


table scroll bar height error

just see the demo http://kamilkp.github.io/angular-vs-repeat/#?tab=9
the

 will not have any effect. for tr we may just use height

Good catch. Thanks. Fixed in v1.1.6

wow. quickly response :+1:
thank you!


Bulding manylinux wheels using cibuildwheel

This PR:

replace the old build-publish-linux.yml workflow with new one that uses cibuildwheel to build manylinux wheels compatible with manylixnu_2_28 policy (for compliance, check here) for Python 3.8-3.10.
it adds manual tests in tests\test_cibuildwheel directory.
it does minimal modifications to the code, setup.py and CMakeLists.txt to improve compatibility and ensure correct compilation using manylinux images.

Thank you! If you don't have any comments, then I think it can be merged :) I believe further work on compatibility with Python 3.11, Linux ARM, macOS Intel, and M1/M2, should be separate PRs.