Add support for multiple IP addresses in cni.projectcalico.org/ipAddrs

I got normal functioning kubernetes in azure 1.7.9 using calico cni 2.6.1.
I've created several pod with no issues (nginx ingress related).
But when I tried to create main application (parity) StatefulSet and used
EDITED:
 annotations:
        "cni.projectcalico.org/ipAddrs": "[\"<IP_ADDRESS>\", \"<IP_ADDRESS>\", \"<IP_ADDRESS>\" ]"

I got error on first pod Pod sandbox changed, it will be killed and re-created.
Without annotation everything is fine and works as expected.
Expected Behavior

I got StatefulSet with pods each has static IP from supplied range in annotation according to https://docs.projectcalico.org/v2.1/reference/cni-plugin/configuration#requesting-a-specific-ip-address
Current Behavior

 FirstSeen	LastSeen	Count	From					SubObjectPath	Type		Reason			Message
  ---------	--------	-----	----					-------------	--------	------			-------
  2m		2m		1	default-scheduler					Normal		Scheduled		Successfully assigned parity-0 to k8s-agentpool1-23076979-1
  2m		2m		1	kubelet, k8s-agentpool1-23076979-1			Normal		SuccessfulMountVolume	MountVolume.SetUp succeeded for volume "pvc-c88fc265-c889-11e7-9136-000d3a236c5e"
  2m		1s		40	kubelet, k8s-agentpool1-23076979-1			Warning		FailedSync		Error syncing pod
  2m		1s		40	kubelet, k8s-agentpool1-23076979-1			Normal		SandboxChanged		Pod sandbox changed, it will be killed and re-created.

Possible Solution

Steps to Reproduce (for bugs)

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
 labels:
   app: myapp
 name: myapp
 namespace: default
spec:
 replicas: 3
 serviceName: myapp-svc
 template:
   metadata:
     labels:
       app: myapp
     annotations:
       "cni.projectcalico.org/ipAddrs": "[\"<IP_ADDRESS>\", \"<IP_ADDRESS>\", \"<IP_ADDRESS>\" ]"

I've checked differrent subnets (pods are running in 10.244/16 and 10.240/16 nets
Context

Your Environment

Calico version 2.6.1
Orchestrator version (e.g. kubernetes, mesos, rkt): kubernetes 1.7.9
Operating System and version: ubuntu 16.04.3 LTS 4.11.0-1014-azure
Link to your project (optional):

@mikhail-manuilov thanks for raising.
Could you share the kubelet logs from the node running the pod that is encountering errors?
The kubelet logs will include the Calico CNI logs, which should help identify what is going on here.

Sure, I got some testing and of my statefulset and came to a conclusion: calico doesn't support IP address lists (when I start statefulset with one IP in annotation ip list everything worked as expected), or am I wrong?
-- BTW how can I know podCidr="<IP_ADDRESS>/24" not looking into logs?
Below is log from kubelet running in docker on working agent:
2017-11-14 14:36:32.687 [INFO][64122] calico.go 89: Loaded CNI NetConf NetConfg=utils.NetConf{CNIVersion:"0.1.0", Name:"k8s-pod-network", Type:"calico", IPAM:struct { Name string; Type string "json:\"type\""; Subnet string "json:\"subnet\""; AssignIpv4 *string "json:\"assign_ipv4\""; AssignIpv6 *string "json:\"assign_ipv6\""; IPv4Pools []string "json:\"ipv4_pools,omitempty\""; IPv6Pools []string "json:\"ipv6_pools,omitempty\"" }{Name:"", Type:"host-local", Subnet:"usePodCidr", AssignIpv4:(*string)(nil), AssignIpv6:(*string)(nil), IPv4Pools:[]string(nil), IPv6Pools:[]string(nil)}, MTU:1500, Hostname:"", Nodename:"k8s-agentpool1-23076979-1", DatastoreType:"kubernetes", EtcdAuthority:"", EtcdEndpoints:"", LogLevel:"info", Policy:utils.Policy{PolicyType:"k8s", K8sAPIRoot:"", K8sAuthToken:"REDACTED", K8sClientCertificate:"", K8sClientKey:"", K8sCertificateAuthority:""}, Kubernetes:utils.Kubernetes{K8sAPIRoot:"https://<IP_ADDRESS>:443", Kubeconfig:"/etc/cni/net.d/calico-kubeconfig", NodeName:""}, Args:utils.Args{Mesos:utils.Mesos{NetworkInfo:utils.NetworkInfo{Name:"", Labels:struct { Labels []struct { Key string "json:\"key\""; Value string "json:\"value\"" } "json:\"labels,omitempty\"" }{Labels:[]struct { Key string "json:\"key\""; Value string "json:\"value\"" }(nil)}}}}, EtcdScheme:"", EtcdKeyFile:"", EtcdCertFile:"", EtcdCaCertFile:""} Workload="default.parity-0"
2017-11-14 14:36:32.689 [INFO][64122] utils.go 250: Configured environment: [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=k8s-agentpool1-23076979-1 HOME=/root CNI_COMMAND=ADD CNI_CONTAINERID=ff04331cded23a77b6b91014f586ea1c6860d65c463042433a431f3b4866fd61 CNI_NETNS=/proc/64083/ns/net CNI_ARGS=IgnoreUnknown=1;IgnoreUnknown=1;K8S_POD_NAMESPACE=default;K8S_POD_NAME=parity-0;K8S_POD_INFRA_CONTAINER_ID=ff04331cded23a77b6b91014f586ea1c6860d65c463042433a431f3b4866fd61 CNI_IFNAME=eth0 CNI_PATH=/opt/calico/bin:/opt/cni/bin DATASTORE_TYPE=kubernetes KUBECONFIG=/etc/cni/net.d/calico-kubeconfig K8S_API_ENDPOINT=https://<IP_ADDRESS>:443 K8S_API_TOKEN=REDACTED]
2017-11-14 14:36:32.689 [INFO][64122] client.go 202: Loading config from environment
Calico CNI checking for existing endpoint: <nil>
2017-11-14 14:36:32.755 [INFO][64122] k8s.go 67: Extracted identifiers for CmdAddK8s Node="k8s-agentpool1-23076979-1" Orchestrator="k8s" Workload="default.parity-0"
Calico CNI fetching podCidr from Kubernetes
2017-11-14 14:36:32.795 [INFO][64122] k8s.go 100: Fetched podCidr Workload="default.parity-0" podCidr="<IP_ADDRESS>/24"
Calico CNI passing podCidr to host-local IPAM: <IP_ADDRESS>/24
2017-11-14 14:36:32.830 [INFO][64122] k8s.go 376: Parsing annotation "cni.projectcalico.org/ipAddrs":["<IP_ADDRESS>", "<IP_ADDRESS>", "<IP_ADDRESS>" ] Workload="default.parity-0"
E1114 14:36:32.832702    2242 cni.go:294] Error adding network: cannot have more than one IPv4 address for "cni.projectcalico.org/ipAddrs" annotation
E1114 14:36:32.832721    2242 cni.go:243] Error while adding to cni network: cannot have more than one IPv4 address for "cni.projectcalico.org/ipAddrs" annotation
E1114 14:36:33.205482    2242 remote_runtime.go:91] RunPodSandbox from runtime service failed: rpc error: code = 2 desc = NetworkPlugin cni failed to set up pod "parity-0_default" network: cannot have more than one IPv4 address for "cni.projectcalico.org/ipAddrs" annotation
E1114 14:36:33.205677    2242 kuberuntime_sandbox.go:54] CreatePodSandbox for pod "parity-0_default(2a452802-c949-11e7-9136-000d3a236c5e)" failed: rpc error: code = 2 desc = NetworkPlugin cni failed to set up pod "parity-0_default" network: cannot have more than one IPv4 address for "cni.projectcalico.org/ipAddrs" annotation
E1114 14:36:33.205732    2242 kuberuntime_manager.go:624] createPodSandbox for pod "parity-0_default(2a452802-c949-11e7-9136-000d3a236c5e)" failed: rpc error: code = 2 desc = NetworkPlugin cni failed to set up pod "parity-0_default" network: cannot have more than one IPv4 address for "cni.projectcalico.org/ipAddrs" annotation
E1114 14:36:33.205775    2242 pod_workers.go:182] Error syncing pod 2a452802-c949-11e7-9136-000d3a236c5e ("parity-0_default(2a452802-c949-11e7-9136-000d3a236c5e)"), skipping: failed to "CreatePodSandbox" for "parity-0_default(2a452802-c949-11e7-9136-000d3a236c5e)" with CreatePodSandboxError: "CreatePodSandbox for pod \"parity-0_default(2a452802-c949-11e7-9136-000d3a236c5e)\" failed: rpc error: code = 2 desc = NetworkPlugin cni failed to set up pod \"parity-0_default\" network: cannot have more than one IPv4 address for \"cni.projectcalico.org/ipAddrs\" annotation"
I1114 14:36:33.617462    2242 kubelet.go:1917] SyncLoop (PLEG): "parity-0_default(2a452802-c949-11e7-9136-000d3a236c5e)", event: &pleg.PodLifecycleEvent{ID:"2a452802-c949-11e7-9136-000d3a236c5e", Type:"ContainerDied", Data:"ff04331cded23a77b6b91014f586ea1c6860d65c463042433a431f3b4866fd61"}
W1114 14:36:33.617496    2242 pod_container_deletor.go:77] Container "ff04331cded23a77b6b91014f586ea1c6860d65c463042433a431f3b4866fd61" not found in pod's containers
I1114 14:36:33.922614    2242 kuberuntime_manager.go:389] No ready sandbox for pod "parity-0_default(2a452802-c949-11e7-9136-000d3a236c5e)" can be found. Need to start a new one
I1114 14:36:33.922676    2242 kuberuntime_manager.go:463] Container {Name:parity Image:parity/parity:v1.7.8 Command:[] Args:[--db-path /usr/.parity/chains --auto-update none --jsonrpc-interface all --jsonrpc-hosts all --jsonrpc-cors * --nat extip:<IP_ADDRESS> --no-discovery -linfo,import=warn] WorkingDir: Ports:[{Name:tcp HostPort:0 ContainerPort:30303 Protocol:TCP HostIP:} {Name:rpc HostPort:0 ContainerPort:8545 Protocol:TCP HostIP:} {Name:dapps HostPort:0 ContainerPort:8080 Protocol:TCP HostIP:} {Name:ui HostPort:0 ContainerPort:8180 Protocol:TCP HostIP:}] EnvFrom:[] Env:[] Resources:{Limits:map[] Requests:map[]} VolumeMounts:[{Name:db ReadOnly:false MountPath:/usr/.parity/chains SubPath:}] LivenessProbe:nil ReadinessProbe:nil Lifecycle:nil TerminationMessagePath:/dev/termination-log TerminationMessagePolicy:File ImagePullPolicy:IfNotPresent SecurityContext:nil Stdin:false StdinOnce:false TTY:false} is dead, but RestartPolicy says that we should restart it.
W1114 14:36:33.926765    2242 cni.go:258] CNI failed to retrieve network namespace path: Cannot find network namespace for the terminated container "ff04331cded23a77b6b91014f586ea1c6860d65c463042433a431f3b4866fd61"
2017-11-14 14:36:33.995 [INFO][64150] calico.go 315: Extracted identifiers ContainerID="ff04331cded23a77b6b91014f586ea1c6860d65c463042433a431f3b4866fd61" Node="k8s-agentpool1-23076979-1" Orchestrator="k8s" Workload="default.parity-0"

You are correct that it does not support multiple IP addresses with that annotation.
I am not aware of any way to get the podCidr with kubectl or through the kube-apiserver or anything, if you find a way please let me know. :grinning:

You can grab the pod CIDR for a specific node through the k8s API - it's the Node.Spec.PodCIDR field.
And yeah, right now only a single IP is supported through that annotation, so that would be the cause. Why do you want to assign multiple IP addresses?

@caseydavenport thanks for clarifying. I and basically I suppose all of container orchestrator's users want run some legacy applications that want static address to stay in touch. Supposedly I'm using multiple node cluster that assembled after containers/pods startup and keep in touch nodes by IP address, after orchestrator node has been killed/rebooted container is also killed and getting new IP address after restart -> my container cluster is lost one node and needs to be manually rejoined to cluster. ipfs-cluster is example of such behaviour.
So what I need is list of static IPaddrs in Deployment/Statefulset (using k8s terminology) each of IPaddrs assigned to each pod of my replication set, when pod dies it starts with the same IP address, voila! And I don't need to write some control code to watch for pods changed IP address and get off cluster.
Using current calico features and I have to create multiple replications sets with 1 replica each (not so obvious and easy way), but still possible to achieve what I want.

@mikhail-manuilov just curious about your Azure install, did you do anything specific to make networking working in Azure with Calico? or you're using Calico in policy-only mode?
As far as i know at least IPIP traffic filtered and foreign source ip addresses (pod ips) dropped.
https://github.com/projectcalico/calicoctl/issues/949#issuecomment-304546574

@r7vme not doing anything specific, deployed test cubernetes using simpliest config.
acs-engine deploy --subscription-id <your_sub_id> --dns-prefix <prefix> --location westeurope --auto-suffix --api-model config.json
config.json contents:
{
  "apiVersion": "vlabs",
  "properties": {
    "orchestratorProfile": {
      "orchestratorType": "Kubernetes",
      "kubernetesConfig": {
        "networkPolicy": "calico"
        }
    },
    "masterProfile": {
      "count": 1,
      "dnsPrefix": "",
      "vmSize": "Standard_D2_v2"
    },
    "agentPoolProfiles": [
      {
        "name": "agentpool1",
        "count": 3,
        "vmSize": "Standard_D2_v2",
        "availabilityProfile": "AvailabilitySet"
      }
    ],
    "linuxProfile": {
      "adminUsername": "myuser",
      "ssh": {
        "publicKeys": [
          {
            "keyData": ""
          }
        ]
      }
    },
    "servicePrincipalProfile": {
      "clientId": "",
      "secret": ""
    }
  }
}

@caseydavenport is there any way to assign any static IP address for for pod (from Node.Spec.PodCIDR)? Because each node got different Node.Spec.PodCIDR in my azure setup (maybe in any provider setup).
At this time to run static IP-address application I should:

label each node
assign specific IP address in pod using annotation according to Node.Spec.PodCIDR for specific node
add nodeSelector for node selected in step 2. in pod specification

@mikhail-manuilov Not at the moment - I think you would need to use the approach that you suggested above, using a nodeSelector to make sure the pod shows up on the right node.
This is pretty brittle - if something happens to that node, then that pod has no way of starting until the node comes back.
When using Calico IPAM an Calico routing, this won't happen and the pod will just get rescheduled, but it's a bit trickier trying to do this on Azure.

This issue is fairly old. I'm going to close for now. We do not specifically support this. We would be open to designing a way to do this type of thing for stateful sets.
Without the specific feature you could try using the ability to assign a specific IPPool to a namespace as that might work for what you're trying to do. https://docs.projectcalico.org/v3.10/networking/get-started-ip-addresses

This issue is fairly old. I'm going to close for now. We do not specifically support this. We would be open to designing a way to do this type of thing for stateful sets.
Without the specific feature you could try using the ability to assign a specific IPPool to a namespace as that might work for what you're trying to do. https://docs.projectcalico.org/v3.10/networking/get-started-ip-addresses

hi, is there a way to support statefulset static IP?

Hello,
Any news on this feature ?


[Bug]: After closing the dialog via submit the focus order is not correct

Preflight Checklist

[X] I have read the Contributing Guidelines for this project.
[X] I agree to follow the Code of Conduct that this project adheres to.
[X] I have searched the issue tracker for an issue that matches the one I want to file, without success.

Bug type
Accessibility
It affects the following packages
Components
Which version of Lyne Components are you using
0.40.14
Operating system
No response
Browser / Browser version
No response
Input mode
None
Additional settings
No response
What happened?
After the dialog window "Edit travelers" is closed via the Apply button, the card "Single trip" is displayed. However, this card is skipped when navigating further with the Tab key. Because the card is not arranged in the correct order in HTML.
In the dialog, after editing a traveler, the focus is not set to the next traveler, but to the "Add Traveler" button. Consequently, keyboard users have to navigate backwards to reach the other traveler.
Recommendation
After closing dialogs, the focus should sit on the triggering element so that navigation can continue coherently.

Steps to reproduce the issue

Step one
Step two
...

Relevant log output
No response

Hello @Ckauczor
The <sbb-dialog> already sets the focus after closing the dialog to the trigger.
Additionally, please provide a reproduction or a link so we can research the issue further.

we found an easy solution for setting back the focus on the initial element.
Thanks @kyubisation


The return value of array-some/array-every should follow es5 standard.

Correct the return values for these two functions.
Eight test cases were added for testing these two functions.

Thanks for this, @happybridge14!  I'll take a look at it over the weekend.


✨ Update production deployment

Part of #59

@dependabot rebase

@dependabot merge

Something off about this PR - I'm unable to merge. Will close and retry.


fix concurrent read and wirte group error

There is no lock when adding aggrGroup to group map. If another goroutine call Dispatcher.Groups or Dispatcher.run clear up aggrGroups, alertmanager will be panic.

@juliusv Could you please confirm if this problem is existed?

Sorry for the delay, I'll look at this soon. Adding a testcase that fails because of the race detector would be helpful and prevent a regression.

@stuartnelson3 ok, I'll add a testcase.
@simonpasquier this is the only place to write group, so i just add lock to there. But adding a defer after the first lock is a good choice, i will change to it.

@stuartnelson3 I'm sorry that I can't add a testcase because it's very hard to recurrent.  It only occurred once in my production, and the panic reason is that concurrent read and write map.

:+1: for me. Looking at the code it is indeed quite complicated to add a test that will catch the issue in a deterministic fashion.

Looks good.
In general, it feels like we're throwing locks all over the place because we're directly accessing these maps. It might simplify things to have an abstraction around a map that manages this, and access that abstraction from our code.


Do not write deployment details when AppsOnly flag is present

Possible fix for #281

Switched target branch to latest working branch for v3.3.0.


InputObjectMapper serialization into inherited types.

Pull Request type

[x] Bugfix
[ ] Feature
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Other (please describe):

Changes in this PR
Support input argument serialization into Java Types that describe inherited fields.
Issue #584

Fixed in another PR


Refactor: Extract partition_filters from ManifestEvaluator

Which issue does this PR close?
Closes #359
Rationale for this change
The partition_filter (inclusive projection) is not only required by the ManifestEvaluator but also by the (incoming) ExpressionEvaluator. In order to avoid duplicate code as well as unnecessary computation of the partition filters, we should extract the computation of the partition filters and cache the results per partition_spec_id.
With this refactor we (hopefully) should be able to integrate the ExpressionEvaluator and the InclusiveMetricsEvaluator more easily.
What changes are included in this PR?

refactor: Extract and decouple computation of partition filters from construction logic of ManifestEvaluator
refactor: testsuite ManifestEvaluator
refactor: add FileScanStreamContext + helper fn to construct partition_spec & schema
refactor: add thin wrapper for PartitionFileCache & ManifestEvaluatorCache for better encapsulation

Are these changes tested?
Yes. Unit tests are included.
If PR is okay; I will add some basis tests for the new structs (FileScanStreamContext, etc.) as well.

@sdd @Fokko @liurenjie1024 PTAL

@Fokko thanks for clearing this up and thanks for the review. This was is the line that led me to believe we also use the inclusive projection in the expression evaluator.
However, if I understand correctly we still needed to extract the partition filters since they will be needed for positional deletes.

Since I also wanted to tackle the impl of the ExpressionEvaluator I'd be grateful if you could tell me where I went wrong? My understanding is that the partition_expr is passed into the ExpressionEvaluator and that the expr is taken from the DefaultDict of partition filters which contains the inclusive projections?

You're right, we need both of them 👍

However, if I understand correctly we still needed to extract the partition filters since they will be needed for positional deletes.

Yes, we need it there as well :) Let's move this forward. Thanks @marvinlanhenke for working on this, and @sdd for the prompt review 🙌

@sdd thanks for the review and @Fokko thanks for merging this.
There is still an unresolved issue though about "not caching" the partition_schemas.
I'll create an issue for that; so we can discuss the approach first; Since I defenitely could net some help here in terms of idiomatic Rust.


Controlled popover targets main window initially instead of a popup window

Describe the bug (current behavior)
An edge case of #2006
When Popover is rendered with visible={true} initially, the popover content is still rendered to the main window instead of a popup window to which it is reparented.
Expected Behavior
Popover content should be rendered to the popup window.
Link to minimal repro
https://codesandbox.io/p/sandbox/popout-initially-visible-popover-dzd7qy
Steps To Reproduce

Click Open Window Popup to open a new popup window
Observe that Popover content is rendered in the main window incorrectly
Click on Target multiple times to change popover visibility
Observe that Popover content is now rendered correctly

Anything else?
I think the Tooltip component has analogous behavior.

Hey, your sandbox link is 404.
We can look into this, but in general, I think Popover/Tooltip should not be rendered with visible={true} on first mount. There should almost always be a trigger element that opens the popover/tooltip. What's your use case for this?

I was trying to re-use the popover component to render&position the element tooltip iTwin/appui#862

Shouldn't that tooltip appear after some user interaction (e.g. click on a point in the canvas) rather than on initial mount?

Shouldn't that tooltip appear after some user interaction (e.g. click on a point in the canvas) rather than on initial mount?

Yes, that should usually be the case. However, since the Tooltip/Poporver is a controlled component, that can be visible initially, it should not be broken on the initial render pass.
I.e. in ElementTooltip case the tooltip is rendered and positioned based on which decorator/element is hovered (there's an event emitted with required information from the viewport APIs to show/hide the tooltip). While portalling the tooltip, it is always re-mounted for a new portal container.
To workaround this I'd need to do some hacks and render a separate instance for each window OR make sure to first mount with visible={false} and then re-render.

However, since the Tooltip/Popover is a controlled component, that can be visible initially, it should not be broken on the initial render pass.

I understand what you're saying, however:

This is still a code concern, whereas I'm asking about it from the user's perspective. Your example still sounds like it appears after some user interaction.
This is a very difficult problem to solve for all cases. For a normal React component, we can simply let React take care of the rendering. But in the case of portaled elements, we need to wait for the DOM to stabilize, which is sometimes literally impossible (e.g. when doing SSR).

make sure to first mount with visible={false} and then re-render.

This is not a hack or workaround. This is the canonical way to use these APIs. Tooltip/Popover should always start out as visible={false}, and then after some user interaction should become visible={true}. I would even add that conditional rendering might be the wrong way to use these APIs.

This bug is fixed in 3.12.0, although I would still advise against showing popovers on the initial render.
Also, it seems like this issue was only applicable to Popover, not Tooltip. It's worth noting that Popover is meant for dialog-like elements that are triggered by click, not hover, so you might be misusing the component here.


The "inconsistent" syntax between "+=" and "="

This is a not an issue but a comment. As a user I find it confusing to require "&" in +=, but not in =. See the code below (I haven't been able to compile Val to verify the code, but from my understanding it's valid).
public fun main() {
  var length = 1
  length = 2
  &length += 2
}

I understand the difference is because = is not a function. But since both mutates value, I would expect they have the same syntax. Otherwise I'd have to stop to think if it's a = or a function when writing the code above. Also, since the language emphasizes mutable value, it would be great if it has a consistent syntax to help user to identify the places where a value is mutated. Just my thoughts, and feel free to close it if you don't agree.

You've got a point there!  I think it's worth experimenting with both options.  I agree it's hard to justify this inconsistency.  We started where Swift was, and in that configuration it made more sense.

The point has been duly noted.
I will close this issue. Feel free to open a discussion over there if anything needs to be added.


Phishing intrusive popups

This is completely unacceptable especially on a Github hosted website. There are much more effective ways of displaying ads and not talking about the scammy type as seen in the image attached. Hope you consider making adequate changes or I will have no choice but to report this repository again. Thank you for your time.

I have considered your input, we need funding for this project to stay alive and growing. If you do not agree with our advertising you can use another project that suits you

but we will try to fix it to make the ads more friendly


Extend the Hypha style guide at "/styleguide"

Make it on par with the Wagtail style guide "/admin/styleguide/"

This would be extremely helpful for UX designers when doing design wireframes/prototypes.

@frjo Where can this styleguide be accessed?

Need to deploy it first. This is only the bare minimum, will work on it when I have time.


Use autocomplete as dropdown for time input

This PR updates the autocomplete to support a custom configuration (without-narrowing-results) in which essentially acts as a dropdown list which also allows custom input from users.
This custom configuration is used in time select in the scheduling form as shown below.
Before

After

Trello card

The code here looks good to me.
I did wonder if we definitely wanted to remove the non narrowing behaviour, this isn't something that's part of data lists for instance?
Do we intend to have just a single field for time or for different hours and minutes fields?

I did wonder if we definitely wanted to remove the non narrowing behaviour, this isn't something that's part of data lists for instance?

We did some usability tests with this feature both on and off and there is a usability concern if we preserve the original behaviour of the autocomplete. By default we set a value for the time (currently 9:00AM) and when a value is set, clicking on the filed or dropdown icons will not reveal any results (as it narrows down to only the selected one). This way the user would need to remove the date and refill the input or select another option which increases the interaction steps and potentially makes it more confusing for the users.

Do we intend to have just a single field for time or for different hours and minutes fields?

As per design, the time will be only one field as it makes it easier for users to select/fill in a single field compared to 2 fields and a dropdown, or 3 dropdowns, which will also overload the UI.

Where can I review this ?

@soniaturcotte: I've fixed the review deploy. You can now review the component in solitude or in context.

I did wonder if we definitely wanted to remove the non narrowing behaviour, this isn't something that's part of data lists for instance?

We did some usability tests with this feature both on and off and there is a usability concern if we preserve the original behaviour of the autocomplete. By default we set a value for the time (currently 9:00AM) and when a value is set, clicking on the filed or dropdown icons will not reveal any results (as it narrows down to only the selected one). This way the user would need to remove the date and refill the input or select another option which increases the interaction steps and potentially makes it more confusing for the users.

Ah darn I can see that initial step being a pain, I also think the way we've got it now is a bit of a pain as if you're typing your own value and it's not in the options it looks a bit like it's invalid 🤔
Maybe there's a middle option that gives you a dropdown if you've not changed the content of the input since page load - that could be too complex though.

Do we intend to have just a single field for time or for different hours and minutes fields?

As per design, the time will be only one field as it makes it easier for users to select/fill in a single field compared to 2 fields and a dropdown, or 3 dropdowns, which will also overload the UI.

Sure sounds good - lets never consider seconds as part of scheduling :wink:

@soniaturcotte I did cross-browser and assistive technology testing and they all look/behave as expected. May have to repeat that after updating the code.

This took me a little while to understand - just to make sure I'm getting it, would it also be correct to say 'autocomplete-without-typeahead'?


Bump dcos-test-utils to point at master

High-level description

CLI binary is now configurable
users must opt-in to having the test fixture assume the cluster composition

Corresponding DC/OS tickets (obligatory)
https://jira.mesosphere.com/browse/DCOS-17702
Checklist for all PRs

[x] Included a test which will fail if code is reverted but test is not. If there is no test please explain here:
[x] Read the DC/OS contributing guidelines
[x] Followed relevant code rules Rules for Packages and Systemd

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[x] Change log from the last version integrated (this should be a link to commits for easy verification and review): https://github.com/dcos/dcos-test-utils/compare/aa22cf1e6ffcf0a375e7e424a02669f51b0adbee...master
[x] Test Results: https://teamcity.mesosphere.io/viewLog.html?buildId=905247&tab=buildResultsDiv&buildTypeId=DcosIo_DcosTestUtils_ToxDcosTestUtils

PLEASE FILL IN THE TEMPLATE ABOVE / DO NOT REMOVE ANY SECTIONS ABOVE THIS LINE
Instructions and review process
What is the review process and when will my changes land?
All PRs require 2 approvals using GitHub's pull request reviews.
Reviewers should be:

Developers who understand the code being modified.
Developers responsible for code that interacts with or depends on the code being modified.

It is best to proactively ask for 2 reviews by @mentioning the candidate reviewers in the PR comments area. The responsibility is on the developer submitting the PR to follow-up with reviewers and make sure a PR is reviewed in a timely manner. Once a PR has 2 ship-it's, no red reviews, and all tests are green it will be included in the next train.

@mesosphere-mergebot bump-ee

In DC/OS Test Utils:
DCOS_CLI_URL = os.getenv('DCOS_CLI_URL', 'https://downloads.dcos.io/binaries/cli/linux/x86-64/dcos-1.11/dcos')

Is this environment variable set in the 1.10 build? Should it be?


Improvements for enabling API Gateway caching

1. Fix for deployOptions
Caching parameters  for API gateway can be defined in deployOptions, which is a property from OpenApiGatewayLambdaProps.
Stage Options
Currently, deployOptions, that have been passed when creating a new OpenApiGatewayLambda, will be ignored if accessLogEnable is true:
Link to the code
if (props.accessLogEnable && props.deployOptions) {
    throw new Error("When 'accessLogEnable' is defined, 'deployOptions' cannot be defined");
  }

A proposed change
const addLogGroupForTracing = (
  scope: Construct,
  props: OpenApiGatewayLambdaProps,
): { deployOptions: StageOptions; logGroupAccessLog?: LogGroup } => {
  if (props.accessLogEnable) {
    const logGroupAccessLog = new LogGroup(scope, 'AccessLogGroup', {
      logGroupName: `apigateway-accesslogs-${scope.node.id}`,
      retention: props.accessLogRetention,
    });

    const deployOptionsAccessLog: StageOptions = {
      ...props.deployOptions,
      accessLogDestination:
        props.deployOptions?.accessLogDestination ?? new LogGroupLogDestination(logGroupAccessLog),
      accessLogFormat:
        props.deployOptions?.accessLogFormat ?? AccessLogFormat.jsonWithStandardFields(),
      loggingLevel: props.deployOptions?.loggingLevel ?? MethodLoggingLevel.INFO,
      dataTraceEnabled: props.deployOptions?.dataTraceEnabled ?? false,
      tracingEnabled: props.deployOptions?.tracingEnabled ?? true,
      metricsEnabled: props.deployOptions?.metricsEnabled ?? true,
    };

    return { deployOptions: deployOptionsAccessLog, logGroupAccessLog };
  }

  return {
    deployOptions: props.deployOptions ?? {
      metricsEnabled: true,
    },
  };
};

Or if accessLogEnable property is intended to have more weight, we can just remove the throw statement and keep the rest without change, but it should be properly documented that some of deployOptions will be rewritten in case props.accessLogEnable = true.
const addLogGroupForTracing = (
  scope: Construct,
  props: OpenApiGatewayLambdaProps,
): { deployOptions: StageOptions; logGroupAccessLog?: LogGroup } => {
  if (props.accessLogEnable && props.deployOptions) {
    throw new Error("When 'accessLogEnable' is defined, 'deployOptions' cannot be defined");
  }

  if (props.accessLogEnable) {
    const logGroupAccessLog = new LogGroup(scope, 'AccessLogGroup', {
      logGroupName: `apigateway-accesslogs-${scope.node.id}`,
      retention: props.accessLogRetention,
    });

    const deployOptionsAccessLog: StageOptions = {
      ...props.deployOptions,
      accessLogDestination: new LogGroupLogDestination(logGroupAccessLog),
      accessLogFormat: AccessLogFormat.jsonWithStandardFields(),
      loggingLevel: MethodLoggingLevel.INFO,
      dataTraceEnabled: false,
      tracingEnabled: true,
      metricsEnabled: props.deployOptions?.metricsEnabled ?? true,
    };

    return { deployOptions: deployOptionsAccessLog, logGroupAccessLog };
  }

2. Add lambda integration options
We may also need to set cacheKeyParameters, which are part of the API Gateway integration object.
Proposal

Add IntegrationOptions to LambdaOperation type

export type LambdaOperation = {
  routeConfig: RouteConfig;
  lambdaAlias: LambdaAlias;
  awsExtensions?: AwsExtensions;
  integrationOptions?: IntegrationOptions;
};

Pass integration options to jsonObj['x-amazon-apigateway-integration']
https://github.com/flaviostutz/cdk-practical-constructs/blob/547ac09940fdad151f1f32dd26fe914a1dbf7583/lib/src/apigateway/openapi-gateway-lambda.ts#L309

jsonObj['x-amazon-apigateway-integration'] = {
            ...lambdaOp.integrationOptions,
            // We need to use a api gw lambda invocation function to invocate the lambda we are integrating
            // https://stackoverflow.com/a/50696321
            uri: `arn:aws:apigateway:${awsRegion}:lambda:path/2015-03-31/functions/${lambdaOp.lambdaAlias.functionArn}/invocations`,
            // "passthroughBehavior": "when_no_match",
            httpMethod: 'POST',
            type: 'AWS_PROXY',
          };

In our tool we can create, read, update and delete messages.

For the GET calls there is ApiGateway cache enabled for 1 hour, so that all the calls from the FE portals are cached and not unnecessarily triggering the lambda.

This can be done by passing deployOptions to apigateway, for example:
deployOptions: {
        cachingEnabled: true,
        methodOptions: {
          '/messages/GET': {
            cachingEnabled: true,
            cacheTtl: Duration.seconds(3600),
          }
        }
      },

To make sure we get the correct messages for different portals, we need to specify cacheKeyParameters. So if the messages are not cached for a particular portal, we retrieve them from the database. We also need to specify requestParameters:
https://stackoverflow.com/questions/75535102/aws-api-gateway-caching-only-if-no-query-parameters-in-path
These parameters are a part of x-amazon-apigateway-integration.

We also need to flush the cache every time there is a POST/PUT/DELETE request. That could be implemented after apigateway has been created by attaching cache delete policies to our lambdas. So no changes are needed for this in the practical-constructs.

In our tool we can create, read, update and delete messages.

For the GET calls there is ApiGateway cache enabled for 1 hour, so that all the calls from the FE portals are cached and not unnecessarily triggering the lambda.

This can be done by passing deployOptions to apigateway, for example:
deployOptions: {
        cachingEnabled: true,
        methodOptions: {
          '/messages/GET': {
            cachingEnabled: true,
            cacheTtl: Duration.seconds(3600),
          }
        }
      },

To make sure we get the correct messages for different portals, we need to specify cacheKeyParameters. So if the messages are not cached for a particular portal, we retrieve them from the database. We also need to specify requestParameters:
https://stackoverflow.com/questions/75535102/aws-api-gateway-caching-only-if-no-query-parameters-in-path
These parameters are a part of x-amazon-apigateway-integration.
We also need to flush the cache every time there is a POST/PUT/DELETE request. That could be implemented after apigateway has been created by attaching cache delete policies to our lambdas. So no changes are needed for this in the practical-constructs.

Could you explain better how do you attach the cache delete policies? Maybe with an example? Is it done manually?

"Could you explain better how do you attach the cache delete policies? Maybe with an example? Is it done manually?"

Initially, I wanted to include it in the apigateway construct, but for this I would need another field in lambdaOperation to indicate whether lambda is allowed to delete cache from the apigateway, and, in general, it seemed quite hardcoded.
I am adding it in in our stack after the apigateway is defined, for example:
const apigw = new OpenApiGatewayLambda(this, ....);
const restApiId = apigw.specRestApi.restApiId;

const apiGatewayDeletePolicyStatement = new PolicyStatement({
  effect: Effect.ALLOW,
  actions: ['apigateway:DELETE'],
  resources: [
    `arn:aws:apigateway:${awsRegion}::/restapis/${restApiId}/stages/${props.stage}/cache/data`,
  ],
});

const apiGatewayDeletePolicy = new Policy(this, 'ApiGatewayDeletePolicy', {
  statements: [apiGatewayDeletePolicyStatement],
});

lambda.lambdaFunction.nodeJsFunction.role?.attachInlinePolicy(apiGatewayDeletePolicy);

In our case all the users should see the same message.


mod_http2 prevents "drop" action working in ModSecurity

Just experienced this issue today on ModSecurity, where drop  option does not work and wondering if you can help identify the cause, since it works fine on HTTP/1.1?
Background: ModSecurity is a WAF module which allows you to write rules to block access to a resource depending on attributes of the request (i.e. if you send some parameters that look suspicious it will intercept and block you with a 403 or 500). A more forceful option is to completely drop the connection if you are really, really sure the request is illegitimate and don't want to waste resources (e.g. serving up an error page).
For example the following rule will drop any requests for page requests beginning with /wp- if you don't use WordPress and are fed up with all the bots scanning your site for WordPress vulnerabilities clouding your logs with useless 404s:
SecRule REQUEST_URI /wp- "phase:1,id:1000,drop"

Issue: the drop  option works on Apache on Linux (note not on Windows), under HTTP/1.1 but stops working when using HTTP/2 - when it reverts to a deny so the access is still blocked with a 403 (so still solves my 404 issue but not what was asked in config).
Here's the ModSecurity code to handle the drop (also opensource hence why comfortable posting here):
        case ACTION_DROP :
            /* ENH This does not seem to work on Windows. Is there a
             *     better way to drop a connection anyway?
             */
            #if !defined(WIN32) && !defined(VERSION_NGINX)
            {
                extern module core_module;
                apr_socket_t *csd = ap_get_module_config(msr->r->connection->conn_config,
                    &core_module);

                if (csd) {
                    if (apr_socket_close(csd) == APR_SUCCESS) {
                        status = HTTP_FORBIDDEN;
                        message = apr_psprintf(msr->mp, "Access denied with connection close%s.",
                            phase_text);
                    }

Any ideas why this would not work under HTTP/2? Note it DOES return APR_SUCCESS as does execute this piece of code, rather than the else loop I've not shown, but doesn't seem to actually drop the connection as it returns a 403 and the error page and resources instead of abruptly ending the connection like under HTTP/1.1.
Any hints as to what should be used rather than apr_socket_close for HTTP/2 connections to have the same effect? Will happily try a few changes to ModSecurity and feed back a fix to them if you can give me a steer in the right direction...
I attach some trace level logs for mod_http2 if that helps at all:
mod_http2_debug_log.txt
Thanks,
Barry

For h2, the conn_rec is kind of virtualized.  Could you try testing if c->master is non-null and using c->master->c to get the core module config / csd instead?

This seems to work a treat for both HTTP/1.1 and HTTP/2 if that's what you meant:
                apr_socket_t *csd;

                /* For HTTP/2 there is a virtual connection so must go through
                 * master to get the main connection.
                 * For HTTP/1.1 master will not be defined so just go through
                 * Normal connection
                 */
                if (msr->r->connection->master) {
                        csd = ap_get_module_config(msr->r->connection->master->conn_config,&core_module);
                } else {
                        csd = ap_get_module_config(msr->r->connection->conn_config,&core_module);
                }

Pardon my C if I got any of the pointer assignments wrong, as been 20 odd years since I coded in it! But seems to work.
Thanks will suggest to ModSecurity team.
Thanks,
Barry

Wow, issues are now resolved in my sleep!


Again atom stops indexing version : 1.5.3

atom stops indexing. version: 1.5.3

that's now working after changing the path one level deeper, i.e from project/app/template.... to app/template...


[Feature] Allow test classes to define "configfailurepolicy" at a per class level

TestNG Version

Note: only the latest version is supported
7.7.1

Today TestNG allows a user to define a configfailurepolicy ONLY at a global level via the suite attribute -configfailurepolicy. As a user I would like to be able to control this behavior at individual class level.
Let's say I have a Java class that looks like below.
public class TestFail {
    private int i=0;
    @BeforeMethod
    public void beforeMethod() {
        i++;
        if (i ==1) {
            throw new RuntimeException("failedWithException");
        }
        assert true;
    }

    @Test
    public void testIt() {
        assert true;
    }

    @Test
    public void testIt2() {
        assert true;
    }
}

It would be good if we can either

Add a new attribute called continueOnFailure (would be a boolean) to the BeforeMethod| BeforeClass annotations (or)
Introduce a new marker annotation @IgnoreFailure which a user can add on top of the configuration methods either at the method level (or) at the class level.

This behaviour should honour inheritance of test classes.
Caveats:

In terms of priority, this capability will have the last say over the global configFailurePolicy defined.
This capability cannot be toggled by any sort of annotation transformers.

@juherr WDYT ? This is a continuation of the ask from https://github.com/cbeust/testng/issues/2861


Core: Validate Consumer Configs

Either the consumers or the integrator probably have the need to validate the consumer configs. We should discuss whether the Feature Hub should offer a technical solution (or maybe at least a recommendation) to do this efficiently.
These tools could be considered:

jsonschema
io-ts
typescript-is
runtypes

As part of this story we should also adapt existing Feature Services.

obsolete due to #500 and #504


adding 'pydyf'-object to Dictionary in 'common use cases - Display Images'

The example code for adding an image in 'common_use_cases.rst' does not work on my system. Changing extra = Dictionary into extra = pydyf.Dictionary solves the issue. This is coherent with the other examples.

Thanks a lot for your PR! We’ll cherry pick your fix, and we’ll update the current documentation example to include non-ASCII characters.

@ideogram You’re now officially a contributor or pydyf, thanks a lot!


lynis: init at 2.5.7

Motivation for this change
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Amended to satisfy review.

Amended to satisfy review.


Only copy necessary artifact from upstream test jobs

Fix #3672
Signed-off-by: Sophia Guo<EMAIL_ADDRESS>

Could you run a Ginder? Thanks

Grinder : https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/4658/

https://ci.adoptopenjdk.net/view/Test_grinder/job/Grinder/4659/


Separate selectors for Year and Month

Is your feature request related to a problem? Please describe.
The problem is I’ve imported 10 years worth of Daily Notes into Obsidian. I’m using Mobile on iPad. There doesn't appear be any way to select previous Years, only the ability to move forward and back by Month. If true, excruciatingly painfull.
Describe the solution you'd like
Selectors for Year and Month separately. 🙏

I'm looking at importing a lot of old historical notes from family history documents and mine go back to the late 1800's paging back by month is impossible in those instances. This si a critical enhancement for me to be able to use Calendar in my family history project and genealogical research.


Add on-prem as an optional prerequisite for quickstart guide.

Signed-off-by: Kristian Amlie<EMAIL_ADDRESS>

Ping @estenberg.

Sorry for the delay and thanks for the proposed improvement.
However in this case I do not think this is a good idea because we are working to create the lowest-possible friction for onboarding by creating a single, default path with the reference environment, using hosted Mender and RPi. We are optimizing this going forward as you know as well (CC requirement lifted, etc.).
This tutorial will not work 100% with on-premise (it needs some "if statements"), so in order to ensure it is simple I would just keep this narrow to hosted & RPi.
Does that make sense?

Ok, makes sense.


Acquired licence does not appear in the licences retrieved from the gatekeeper

Hi, @jbonnet,
After acquiring a private licence, it seems that the process goes well because the user_licence field changes to "licenced" but when the BSS requests for the licences (GET https://sp.int3.sonata-nfv.eu/api/v2/licences), the new licence does not appear (in that case, only the public existing one):
[
        {
		"status": "ACTIVE",
		"validation_url": null,
		"description": "Default description",
		"license_uuid": "d8057e2f-9201-4c13-9edb-0c6038186739",
		"service_uuid": "8e114dcd-339d-4f9a-a6b6-b08641228484",
		"license_type": "PUBLIC",
		"user_uuid": "9491158b-44fd-4dea-8cf1-0d02820ddab5"
	}
]

Hi, @srodriguezOPT
The license_typeand validation_url fields are part of the NSD. So maybe the GK should include them in the restricted fields that are returned when the service is not licensed, and then the BSS can include them in the parameters when the licence is created. What do you think?

Hi, @jbonnet
The problem is that BSS doesn't have a database and does not store any information. It can only show the information retrieved from the GK so if we want to show these fields in the BSS, it's necessary to send them from the Gatekeeper as a "GET licences" response. Otherwise, a secondary "GET all services" request will be needed to match licences and services with the aim of showing these fields, increasing the number of requests.

Hi, @jbonnet
An interesting field that is missing in the GET licences response is the related service name. The service uuid exists but the name could be helpful for the user:

Hi, @srodriguezOPT
Ok, I'll open a specific issue to cover this missing service name.
Problem with the GET /licences is... it lists all saved licences, but in this case the licence does not exist yet, right? You'll have to GET /services...

Hi, @jbonnet
No, in this case, the licence already exists. This is the "already acquired" case.
The case that you mention is the other tab, the "service licences that can be acquired..." and as you say, the BSS needs to make the GET /services request.

I'm checking this with @felipevicens, at the Licence Management module: it seems that there's a bug, and the private licence type plus the validation url fails to be saved...

Ok, @srodriguezOPT, please check if this has been solved.

Hi, @jbonnet,
the acquired licence is still missing, only the public one appears. On the other hand, we don't have the service_name field yet.

@srodriguezOPT can you please post here the REST you're using? 'Cause creating a licence now seems ok:
{
    "description": "Default description",
    "license_type": "PRIVATE",
    "license_uuid": "28f4c338-a703-4f05-b6e8-04f811442424",
    "service_uuid": "5cb12bf2-602a-47c8-b815-2e58ec446690",
    "status": "ACTIVE",
    "user_uuid": "54a3d0a0-dcb7-477b-aed0-abcb73768b2b",
    "validation_url": "http://example.com"
}

And listing as well:
[
    {
        "description": "Default description",
        "license_type": "PRIVATE",
        "license_uuid": "28f4c338-a703-4f05-b6e8-04f811442424",
        "service_uuid": "5cb12bf2-602a-47c8-b815-2e58ec446690",
        "status": "ACTIVE",
        "user_uuid": "54a3d0a0-dcb7-477b-aed0-abcb73768b2b",
        "validation_url": "http://example.com"
    }
]

Thanks

Hi, @jbonnet
GET https://sp.int3.sonata-nfv.eu/api/v2/licences?limit=10&offset=0:
[
        {
		"status": "ACTIVE",
		"validation_url": null,
		"description": "Default description",
		"license_uuid": "146528f8-54a7-42a6-a9f9-299d8b9fb195",
		"service_uuid": "0e59e724-814d-43e9-a56f-a5bd19fc8044",
		"license_type": "PUBLIC",
		"user_uuid": "5be281b7-69c2-4761-8763-3c225f30ceb8"
	}
]

Sorry, @srodriguezOPT
Can not reproduce... are you sure you're on INT3?
Also: to add the service's name, a new request must be made. Can the BSS do that request (.../services/<service_uuid>)?

Hi, @jbonnet
The BSS can do the invocation but it will increase the invocations number (limited by GK, right?). There are two options:

a unique request retrieving all services
a single request per every existing licence
Is there no easy way to include the licence's service_name in the gatekeeper?

You can reproduce the issue directly in the BSS and check the invocations with the web developer tools (in chrome F12):

Before acquiring a licence, the Licence Store -> User Licences menu never shows the public licences. We never discuss it and is not necessarily bad (the public licences can be considered user licences or not, it's only an interpretation thing)
After acquiring the licence, the same menu (user licences) shows the private licence but as "PUBLIC"


feat: target configuration for action keymaps

Actually fixes #428 this time 🙃

Should all be fixed now, only formatting caused a conflict


dynatrace_aws_credentials

Issue
When using provider 1.25 to create / managed AWS Credentials (IAM role based) we get:
Plan: 1 to add, 0 to change, 0 to destroy.
345 | dynatrace_aws_credentials.aws_credential["xxxx"]: Creating...
346 |
347 | Error: Invalid metric configuration: metric ServiceIntegrationsFailed not defined for service states
348 | Invalid metric configuration: metric ExecutionsAborted not defined for service states
349 | Invalid metric configuration: metric LambdaFunctionRunTime not defined for service states
350 | Invalid metric configuration: metric LambdaFunctionTime not defined for service states
351 | Invalid metric configuration: metric ExecutionTime not defined for service states
352 | Invalid metric configuration: metric ServiceIntegrationsTimedOut not defined for service states
353 | Invalid metric configuration: metric ServiceIntegrationScheduleTime not defined for service states
354 | Invalid metric configuration: metric ServiceIntegrationsSucceeded not defined for service states
355 | Invalid metric configuration: metric ExecutionsTimedOut not defined for service states
356 | Invalid metric configuration: metric ExecutionsFailed not defined for service states
357 | Invalid metric configuration: metric ServiceIntegrationTime not defined for service states
358 | Invalid metric configuration: metric LambdaFunctionsStarted not defined for service states
359 | Invalid metric configuration: metric LambdaFunctionsSucceeded not defined for service states
360 | Invalid metric configuration: metric ServiceIntegrationRunTime not defined for service states
361 | Invalid metric configuration: metric ExecutionThrottled not defined for service states
362 | Invalid metric configuration: metric LambdaFunctionsScheduled not defined for service states
363 | Invalid metric configuration: metric LambdaFunctionsFailed not defined for service states
364 | Invalid metric configuration: metric LambdaFunctionScheduleTime not defined for service states
365 | Invalid metric configuration: metric ServiceIntegrationsScheduled not defined for service states
366 | Invalid metric configuration: metric ExecutionsStarted not defined for service states
367 | Invalid metric configuration: metric ExecutionsSucceeded not defined for service states
368 | Invalid metric configuration: metric ServiceIntegrationsStarted not defined for service states
369 | Invalid metric configuration: metric LambdaFunctionsTimedOut not defined for service states
370 | Invalid metric configuration: metric ThrottledEvents not defined for service states
371 | Invalid metric configuration: metric ThrottledEvents not defined for service states
372 | Invalid metric configuration: metric ProvisionedBucketSize not defined for service states
373 | Invalid metric configuration: metric ConsumedCapacity not defined for service states
374 | Invalid metric configuration: metric ConsumedCapacity not defined for service states
375 | Invalid metric configuration: metric ProvisionedRefillRate not defined for service states
376 |
377 | with dynatrace_aws_credentials.aws_credential["xxx"],
378 | on aws-credentials.tf line 1, in resource "dynatrace_aws_credentials" "aws_credential":
379 | 1: resource "dynatrace_aws_credentials" "aws_credential" {
380

<br class="Apple-interchange-newline">

When using 1.24 its fine. Issue happens when adding a new aws_credentials or updating (ie adding more services) an existing one
Workaround
Pin to 1.24
Thanks

Hello @edfenergy-stevebowerman ,
When fixing #220 yesterday I've added a few "optimizations", one of them being to change the dimensions of a monitored metric to a Set instead of a List.
I DID notice error message like yours during local testing. My assumption was simply that the AWS account I have available may have come with limitations, so I stripped down the sample to the few metrics that WERE working.
Because of your issue here I spent quite some time figuring out, that the order of the dimensions DOES matter - at least to the Dynatrace REST API. So, for instance the service logs offers a metric DeliveryErrors. Specifying the dimension in this order works:
"dimensions": [
  "LogGroupName",
  "DestinationType",
  "FilterName"
]

Specifying the dimension in this order doesn't:
"dimensions": [
  "DestinationType",
  "LogGroupName",
  "FilterName"
]

I'm going to release v1.25.1 still today which fixes this issue. Apologies for the troubles.


Update examples nrql->query

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

Thanks @cjmccarthy !


Display Ohana API version for super admins.

The version number is based on the VERSION file from the codeforamerica/ohana-api repo. Because deployments can manage and customize their instances of Ohana API however they choose, the version number does not necessarily mean that a particular deployment is exactly in sync with the upstream repo. It should be used as a general indicator of when an update was last peformed.
The version number appears in the footer of the admin home page, and only for super admins. It also links to the ohana-api repo's Changelog to make it easy to see what has changed since a particular version.
Closes #294.

Coverage increased (+0.0%) to 99.52% when pulling e239dc294f9b06fd5ac1bd2f767cce401ff12cfb on show-version-number-in-admin-interface into 695932bcb73917e1e5e50018b7389d5f81125dc0 on master.


search results misleading

in case, searching for phylogeny, the result is misleading, since the expectation is to get images with phylogenies. All th rest is not relevant

This is, because you search for the treatment full text, not the caption that is relevant. Possible to add this alternative?
Similary, this is also the case when searching for a taxon, and then get many other things are not the taxon searched.
For example, in our use case to search for phylogenies, it would be helpful to be able to get only trees which then would allow to analyse and compare them. This is what we need to do right now for a project with GBIF.

Donat,
In order to make the backend search flexible, this is how it works --
if you search for just phylogeny, the search is performed against the fulltext of the treatment. So, images from all treatments with the word phylogeny anywhere are returned, about ~7500 of them. But if you search for captionText=phylogeny, then the search is performed only against the image caption, and you get back about ~700 images. This way, one can do searches against both the treatment text as well as the images text.
Hope this helps.

added more examples


Multiple Import Metadata actions

This PR has following changes:

Delete metadata by datasourceName database functionality
Support multiple attempts for importing metadata for a given datasource
Implementation of DELETE /dsmetadata API
curl -X DELETE http://${URL}/dsmetadata -d @./input_datasource.json

Example input_datasource.json (same as that of import dsmetadata request body)
{
    "version":"v1.0",
    "datasource_name":"prometheus-1"
}

@msvinaykumar can you please review the PR

@shreyabiradar07 can you start MD file describe above functionality

@shreyabiradar07 can you start MD file describe above functionality

Documented delete metadata functionality in KruizeLocalAPI.md as part of PR 1174

curl -X post http://${URL}/dsmetadata -d @./input_datasource.json
For above request in backend
Check if data available in db
if yes delete and fetch again from cluster and save it db
if no  fetch from cluster and save it db
curl -X get http://${URL}/dsmetadata?datasource_name="abc"
Check if db having data
if yes return data
if no 404 not found
UserWorflow
By default metatdata is prefetched using this URL  (This happens as part of kruize pod startup) OR fetch button at UI
curl -X post http://${URL}/dsmetadata -d @./input_datasource.json
there after user will have get operation
curl -X get http://${URL}/dsmetadata?datasource_name="abc"
if user wants to refresh then this api is called
curl -X post http://${URL}/dsmetadata -d @./input_datasource.json
      when user click on cluster -> trigger
                          curl -X get http://${URL}/dsmetadata?datasource_name="abc"  by default

No need of refresh flag

{
"version":"v1.0",
"datasource_name":"prometheus-1"
}
should have option to provide cluster_name , namespace , workload , container_name

@shreyabiradar07 please set up code walk through session


[Meetup] Reactive 2016 Conference

As always, I create this thing as an issue, because really like to hangout with people contributing / using flow-typed & flow.
There will be the Reactive Conference in Bratislava, Slovakia on the 26th - 28th of October (https://reactiveconf.com/)
Has anybody planned to go there? Or does someone know if there will be any flow guys going?
Actually always wanted to meet @splodingsocks / @marudor ... but I guess you will be busy or too far away? :-/

@ryyppy I applied to speak, but didn't get in. So I probably won't be coming this year unless I get admitted to speak at the Elm pre-conference they're working to put together. I might be out there sometime this summer, though, for a related event!

@splodingsocks Damn, that's unfortunate...
Actually, if you ever happen to come to Europe and you are interested to travel around and to give some talks, make sure to check back with the ReactJS Vienna Meetup Group (@ReactVienna) ... we are always trying to get international speakers to talk here (also by sponsoring travel expenses and such). We even had an Elm introduction recently! :-)

That sounds super cool!

Well - not to far away, but won't be there.
If you ever visit a chaos related (Chaos Computer Club) event in Germany I will be there though.

@marudor I realized that you are heavily invested in the chaos club :-) ... maybe I will check that out some time... I will leave this issue open if there is anyone interested in connecting at the conference.


client.futures_account_balance() problem

Describe the bug
This is my code and before yesterday, it was ok, but now it give me this error :
Error : packages binance client py line 6279 in futures_account_balance return self _request_futures_api get balance True
My code :
for bal in client.futures_account_balance():
if bal['asset'] == 'USDT':
usdtBalance = bal['balance']
Environment (please complete the following information):

Python version: 3.8
python-binance v1.0.17

Logs or Additional context
Traceback most recent call last  File marimacd py line 1394 in main for bal in client futures_account_balance  File usr local lib python3 8 site packages binance client py line 6279 in futures_account_balance return self _request_futures_api get balance True data params  File usr local lib python3 8 site packages binance client py line 382 in _request_futures_api return self _request method uri signed True kwargs  File usr local lib python3 8 site packages binance client py line 358 in _request return self _handle_response self response  File usr local lib python3 8 site packages binance client py line 367 in _handle_response raise BinanceAPIException response response status_code response text binance exceptions BinanceAPIException APIError code 0 Invalid JSON error message from Binance DOCTYPE html  saved from url 0032 https www binance com en error  html  head  meta http equiv Content Type content text html charset UTF 8  meta name format detection content telephone no email no address no  title Binance title  link rel Shortcut Icon href https www binance com en favicon ico  style  body  margin 0  img  width 611px  margin 68px auto 0  info  width 370px  margin 0 auto  text align center  font family Arial   info h3  margin 0  font size 25px  color 333  font weight normal   info p  font size 14px  font family Arial  color 333  line height 18px  margin 0  info button  margin top 20px  width 231px  height 34px  background FFFFFF  border 1px solid F0B90B  box sizing border box  border radius 3px  font size 14px  line height 16px  color F0B90B   style  head  body  div class img img alt src errorPages 404 jpg div  div class info  h3 å ºé å ï¼ æ è é ç ç½ é µä å å ã h3  p Sorry The page youâ re looking for cannot be found p  a href https www binance com  button Return to Binance home page button  a  div  body  html

Some v1 futures private endpoints are being deprecated.

Looks like new pull request is already made to upgrade the endpoint to v2.
Let's wait a bit for update.
https://github.com/sammchardy/python-binance/pull/1342

Thank you.

The code I wrote was working until a few days ago. But it's not working right now. My mistake was in October. I haven't figured out how to solve this. Can you help me? Thanks in advance.
["<class 'Exception'>","brsBot.py","878","APIError(code=0): Invalid JSON error message from Binance: \n\n\n\n\n \n\n \n Binance\n \n \n\n\n\n \n \n
\u00e5\u0087\u00ba\u00e9\u0094\u0099\u00e5\u0095\u00a6\u00ef\u00bc\u0081\u00e6\u0082\u00a8\u00e8\u00ae\u00bf\u00e9\u0097\u00ae\u00e7\u009a\u0084\u00e7\u00bd\u0091\u00e9\u00a1\u00b5\u00e4\u00b8\u008d\u00e5\u00ad\u0098\u00e5\u009c\u00a8\u00e3\u0080\u0082\n
Sorry! The page you\u00e2\u0080\u0099re looking for cannot be found.\n \n Return to Binance home page\n \n \n\n\n\n"]

Merhaba Tugran. (Hi)
Please write the code you have on lines 877 and 878 here, so we can assist you. You haven't provided any specific information for us to help with.


Fuzz testing for nomination pools

This PR is itself pretty insubstantial, there is not real code change other than adding a fuzz-style test for nomination pools.
Some notes about the approach: For now, I mainly did the fuzz-testing without using a proper fuzzer because it would allow for the mock to be reused. In the past we gated mock.rs behind some feature flag to make it available, and this time around I wanted to try the alternative approach.
Having done this, I can say that the main advantage of this type of testing is seamless setup, and the downside is reproducibility of failing tests.
For now, in order to have reproducible errors, you have to use a seeded randomness, and then re-use it. It requires a little bit of manual work, but it did allow me to solve every single test failure.
It is probably still better to move the fuzz-test use a proper fuzzer as follow-up. Nonetheless, it must be done such that the mock file is reused (a good first issue for a new team member or external contributor).
Some notes about the fuzzing outcome: As you see in the code, I randomly generate calls that may or may not be valid and bombard the pallet with these calls, and every so often I execute the entire set of sanity checks that are defined in the pallet.
Moreover, I inject a single agent into a random pool that is manually tracking the expected reward amount (see Agent in the code for details).
The tests generally get quite slow, particularly if you want to execute the sanity checks often. In the default setup, the state grows until 1000 pools and 10000 members, and with 1 million random submissions, this is the final outcome:
Aug 10 16:16:23.564  INFO runtime::nomination-pools: [1] 🏊♂ running sanity checks at 1010000
Aug 10 16:16:23.640  INFO runtime::nomination-pools: [1] 🏊♂ iteration 1010000, 1000 pools, 10000 members, 325223 ok 684777 err, events = [("Event::Created", 1000), ("Event::Bonded", 72300), ("Event::Unbonded", 41458), ("Event::PaidOut", 164750), ("Event::Withdrawn", 21622), ("Event::MemberRemoved", 1)]

All in all, this was super useful and I feel way more confident about nomination pools now.

[ ] follow-up Issue to migrate this to a proper fuzzer.

Some notes about the fuzzing outcome: As you see in the code, I randomly generate calls that may or may not be valid and bombard the pallet with these calls, and every so often I execute the entire set of sanity checks that are defined in the pallet.

We could create a tool which generates a set of calls from the metadata of a pallet. Could even be done in PolkadotJS, as general fuzzy testing framework.

/cmd queue -c fmt $ 1


Is there are any requirement for source video, I just return a empty *.srt file

I found and downloaded this project today and have tried several times to create srt file as follow, but it just return empty. So I consider that if there are any requirement for source video or something wrong in my program?
autosub -C 4  ./wiml.wav
Converting speech regions to FLAC files: 100% |##################| Time: 0:00:01
Performing speech recognition: 100% |############################| Time: 0:00:04
Subtitles file created at ./wiml.srt

autosub -C 4  ./android.mp4
Converting speech regions to FLAC files: 100% |##################| Time: 0:00:01
Performing speech recognition: 100% |############################| Time: 0:00:02
Subtitles file created at ./android.srt

autosub  ./spill.mp4
Converting speech regions to FLAC files: 100% |##################| Time: 0:00:00
Performing speech recognition: 100% |############################| Time: 0:00:01
Subtitles file created at ./spill.srt

Ps:

I download 'spill.mp4' from 'https://www.youtube.com/watch?v=4_mvu35FrFg' which is the test video in #31 .But I still create a empty .srt file.
It is just take several seconds to complete recognition process. Is it normal?
this is the origin file sample ( ./wiml.wav) attribute:

Codec: WAV
CHannels: Mono
Sample rate: 16000HZ
Bitrate:N/A

btw, It is ok for me to connect to google:

wget www.google.com
--2017-03-26 16:11:53--  http://www.google.com/
Resolving localhost (localhost)... <IP_ADDRESS>
Connecting to localhost (localhost)|<IP_ADDRESS>|:8087... connected.
Proxy request sent, awaiting response... 301
Location: https://www.google.com/ [following]
--2017-03-26 16:11:53--  https://www.google.com/
Connecting to localhost (localhost)|<IP_ADDRESS>|:8087... connected.
Proxy request sent, awaiting response... 302 Found
Location: http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/%3Fgws_rd%3Dcr&ust=1490515943883163&usg=AFQjCNEN29XXuEQQlfOE3M_SZTGZKSvsbg [following]
--2017-03-26 16:11:53--  http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/%3Fgws_rd%3Dcr&ust=1490515943883163&usg=AFQjCNEN29XXuEQQlfOE3M_SZTGZKSvsbg
Reusing existing connection to localhost:8087.
Proxy request sent, awaiting response... 302
Location: http://www.google.com.hk/?gws_rd=cr [following]
--2017-03-26 16:11:54--  http://www.google.com.hk/?gws_rd=cr
Reusing existing connection to localhost:8087.
Proxy request sent, awaiting response... 200
Length: 11020 (11K) [text/html]
Saving to: ‘index.html’

100%[======================================>] 11,020      --.-K/s   in 0s

I have the same problem

I have the same problem to.
On Windows Seven 64 and on Linux ubuntu 64

same problem

Do you solve your problem? I meet the same situation.

same problem, who has solved this issue or known the root cause?

@anmnmnly The ability of connecting to google isn't enough for autosub. You need the ability of stably connecting to google, especially when you are located at somewhere can't connect to google directly. Instead of replace your proxy tools, I recommand to use vps.
Another probable reason is your audio's volumn is so low that autosub can't detect it and upload to the api. Maybe using some audio editor can solve the problem.


https://github.com/cf-convention/cf-conventions/pull/331 not implemented in http://cfconventions.org/cf-conventions/cf-conventions.html

I notice that the changes made by the merged pull request https://github.com/cf-convention/cf-conventions/pull/331 (the recently agreed changes to time coordinates and calendar definitions) do not appear in the current working version http://cfconventions.org/cf-conventions/cf-conventions.html. Should this have happened automatically?

Yes, there is some magic going on between the 2 repositories that I don't quite understand. @ethanrd @painter1 @dblodgett-usgs (I my be forgetting somebody) and I had discussed this sometime... Last year? And we ended up documenting it here but that seems to not correctly describe what's happening now.

Thanks, @davidhassell  and @erget. Would this be related to https://github.com/cf-convention/cf-conventions/issues/297, which is one of the outstanding issues that Daniel identified? Might @sadielbartholomew be able to help?

@JonathanGregory yes, I believe so.

Right! We haven't fully moved to GitHub Actions. The automatic build still targets Travis-CI. However, it looks like Travis-CI transitioned the travis-ci.org domain over to the travis-ci.com domain (in June I believe) but we didn't switch CF over to use travis-ci.com.
Quickest fix, I believe, would be to transition the Travis config to use travis-ci.com. It sounds like it is supposed to be an easy transition. The other option is to make the move to GitHub Actions, but I suspect that would take a bit more work.
I'm going to take a quick look at what it takes to migrate to travis-ci.com. I'll report back shortly.

Well, my quick look wasn't quite long enough. There are limitations, of course, on the free plan and some paperwork involved to get on the open source plan (which has different limitations).
Not sure if its worth digging much more since we know we want to move to GitHub Actions. In the meantime, we could "hand" build the docs and push to the gh-pages branch. Not ideal but it could get us through till someone has time to work on the move to GH Actions.

Hi all, sorry for the delay in replying to this - it got lost somewhat in my busy GitHub notifications inbox.

Not sure if its worth digging much more since we know we want to move to GitHub Actions.

I'd be inclined to agree with that, best move straight to Actions because from my experience with migrating and extending the CI for other libraries, it is not too difficult. Saying that, I don't know much (yet) about the current setup and how complex it may be, unlike you @ethanrd!

Not ideal but it could get us through till someone has time to work on the move to GH Actions.

Might @sadielbartholomew be able to help?

@JonathanGregory mentioned this in an email thread and I said I would be happy to volunteer to do it, and spend a bit of time helping out with technical CF issues generally, having done the migration before for e.g. cf-python and cfdm, though Jonathan suggested wisely that some other website and conventions document issues should be prioritised first, namely (taken verbatim from the email):

conventions
266 missing links and reference updates
website
142 missing links

I will have a look and estimate how quickly it will take for those to be sorted. If it might take a while, which seems unlikely, maybe:

In the meantime, we could "hand" build the docs and push to the gh-pages branch. Not ideal but it could get us through till someone has time to work on the move to GH Actions.

is indeed the best plan. But if not, I can get started migrating to Actions soon. I've been informed that @lesserwhirls had plans to do the migration in the past - is this still on the cards? If so, we could make a joint effort to get it done, though if you don't have the bandwidth I am happy to do the conversion myself.

I believe I had volunteered to do this last year...I do apologize.
I can take a look at this first thing tomorrow. It should not be too bad (famous last words) given that 1) the building part is already done, and 2) we can copy most of the release logic from the travis build into the same GitHub Actions workflow or a new release only workflow.

GitHub was having issues yesterday, which held up getting this out. However, I believe I have it all working now in PR cf-convention/cf-conventions#335.

Great work @lesserwhirls! That was quick. @erget, would you like me to help at this point by reviewing Sean's PR #335? Otherwise I can get started in earnest tackling the initial items on @JonathanGregory's priority list of current CF technical issues.

My thanks also to @lesserwhirls and @sadielbartholomew - yes, if you could review the PR that would be very useful.

Thank  you very much for working on this, Sean @lesserwhirls and @sadielbartholomew. Jonathan

Fixed in https://github.com/cf-convention/cf-conventions/pull/335 by @lesserwhirls, thanks.


Provision Watcher REST API Audit: Delete Endpoints

PR Checklist
Please check if your PR fulfills the following requirements:

[X] The commit message follows our guidelines: https://wiki.edgexfoundry.org/display/FA/Contributor's+Guide
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[X] Bugfix
[ ] Feature
[X] Code style update (formatting, local variables)
[X] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
Delete is currently inconsistently throwing errors between the ID and name endpoints.
Issue Number: Fixes #2412, depends on #2438
What is the new behavior?
Delete behavior is consistent.
Does this PR introduce a breaking change?

[ ] Yes
[X] No

Are there any specific instructions or things that should be known prior to reviewing?
Other information
This changeset passes the positive blackbox tests. There is currently insufficient coverage in the error suite. A follow on issue will add error coverage.

Codecov Report

Merging #2440 into master will decrease coverage by 0.29%.
The diff coverage is 11.73%.

@@            Coverage Diff             @@
##           master    #2440      +/-   ##
==========================================
- Coverage   37.57%   37.28%   -0.30%
==========================================
  Files         157      157
  Lines       12768    13006     +238
==========================================
+ Hits         4798     4849      +51
- Misses       7709     7895     +186
- Partials      261      262       +1

Impacted Files
Coverage Δ

internal/core/command/init.go
0.00% <0.00%> (ø)

internal/core/command/restDevice.go
0.00% <0.00%> (ø)

internal/core/data/device.go
4.54% <0.00%> (ø)

internal/core/data/init.go
0.00% <0.00%> (ø)

internal/core/data/router.go
3.48% <0.00%> (ø)

internal/core/metadata/init.go
0.00% <0.00%> (ø)

internal/core/metadata/rest_provisionwatcher.go
0.00% <0.00%> (ø)

internal/core/metadata/rest_device.go
2.21% <2.70%> (ø)

internal/core/data/valuedescriptor.go
51.87% <28.57%> (-0.85%)
:arrow_down:

internal/core/command/device.go
33.82% <33.33%> (ø)

... and 10 more

Continue to review full report at Codecov.

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


Fix errors in initialization of NCCL

Background: in our in-house container platform tests with NCCL somehow fails in initialization. We assume tests around communicators are well unit-tested and thus we don't need this is sort of integration test.


Closed requests are not cleared

From the student's posted requests and tutors received requests side they are visible on the front end when they should not be

Look into the /requests/received route


Make Function Authentication Provider pluggable

Motivation
The FunctionAuthProvider is an interface responsible for distributing authentication data to functions.  Currently the implementation used is hard coded and not pluggable.
Modifications
Make FunctionAuthProvider pluggable so uses can choose implementations

@addisonj please also take a look

rerun integration tests
rerun java8 tests

rerun integration tests
rerun java8 tests

rerun java8 tests

rerun integration tests

rerun integration tests

rerun integration tests


Return of the web based GO slim tool

Will the web based GO slim tool be returning at any point?
see comments in this ticket
http://jira.geneontology.org/browse/GO-1027
PomBase currently  point users to
http://go.princeton.edu/cgi-bin/GOTermMapper
rather than QuickGO because it matches our output
http://www.pombase.org/browse-curation/fission-yeast-go-slim-terms
We don't want to point  our users to QuickGO because  the GO annotations are differently in GOA than in GO

We have filtered all of the annotations generated by erroneous mappings submitted to this tracker
https://github.com/geneontology/go-annotation/issues
AND
GOA/QuickGO filter annotations for syntax errors which are currently accepted by the
GO loading script.
https://github.com/geneontology/go-site/issues/123

You might want to try searching for keywords before adding items. This seems to be a dupe of #144 .


firebase_admob pauses video when app goes to background

When user switches app during rewarding video playback and brings it back to active state, video is paused. Yes, if user clicks on "close" button he/she is prompted to resume the video, but it would be nice to have an API to automatically continue playing video

@lesnitsky
The issue at https://github.com/flutter/flutter/issues/26829 has been closed and moved here. Future collaboration on this issue will be done here.

Hi @lesnitsky
If you are still experiencing this issue
with the latest version of Flutter and FlutterFire plugin
can you please provide your updated  flutter doctor -v
and your and your flutter run --verbose/flutter build --verbose ?
Also, to better address the issue, would be helpful
if you could post a self contained app on github
or the steps to reproduce it.
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of 'flutter doctor -v'  please.
All system setups can be slightly different so its always better to open new issues and reference related issues.


Ensure that px-sock-shop creates AMQP data

Is your feature request related to a problem? Please describe.
We track AMQP data but don't have a demo app that shows it off. The px-sock-shop demo has RabbitMQ but our load-tester doesn't actually hit the RabbitMQ endpoint. It probably should be able to, but I'm not entirely sure what the problem is.
Describe the solution you'd like
The following should produce > 0 rows
px demo deploy px-sock-shop -y
sleep 60
px run px/amqp_data

We have to fix the load-test to ensure that we actually hit the rabbitMQ service. The following curl worked for me, but I had to set some state of the app first.
curl 'http://<IP_ADDRESS>/orders' \
  -H 'Accept: application/json, text/javascript, */*; q=0.01' \
  -H 'Accept-Language: en-US,en;q=0.9' \
  -H 'Connection: keep-alive' \
  -H 'Cookie: md.sid=s%3Ah0IaNlZQzOtGBbxVoogfO5NhGVRuX7Tr.Kx3jRjuw1daCPjAD6tpjbYbxNipG1kMTk%2BMNHu%2Frx2A; logged_in=h0IaNlZQzOtGBbxVoogfO5NhGVRuX7Tr' \
  -H 'Referer: http://<IP_ADDRESS>/customer-orders.html?' \
  -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36' \
  -H 'X-Requested-With: XMLHttpRequest' \
  --compressed \
  --insecure

Describe alternatives you've considered
Make an alternative app that has AMQP data. Definitely overkill.

After some investigation, found that the issue is related to 7e78dd74183b0834ae77fc733252153e07f8b8be. Something in the build process broke the mongo connection. In carts:
2022-11-22 00:24:56.229 ERROR 8 --- [p-nio-80-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: 'com.mongodb.client.result.InsertOneResult com.mongodb.client.MongoCollection.insertOne(java.lang.Object)'] with root cause
java.lang.NoSuchMethodError: 'com.mongodb.client.result.InsertOneResult com.mongodb.client.MongoCollection.insertOne(java.lang.Object)'

looks like we upgraded Mongo?

@chengruizhe was looking into this issue last week and identified two issues:

a Mongo upgrade
a Java upgrade

(1) was addressed by a1dcad3ef8ab32cfeaa3c9f39161f40aadf25f89, but @chengruizhe is continuing to look into (2).


Restrict/stack in captain mode

With DK captain mode there are only two Roster Positions (CPT and FLEX) and my lines end up with questionable combinations.  The salary download also includes actual position, but I don't think this is taken into account by the optimizer.  Is there a method to exclude player combinations (restrict Rothlisberger/Bengals combination) or stack/restrict based on actual position (restrict opposing team QB/DST, stack QB/WR).

There is no way to do this directly. I would just filter your lineups in a post-optimization step. Note that the optimizer is a generator so you can set the initial number of lineups to a high number.
n_wanted_lineups = 25
wanted_lineups = []

def meets_criteria(lineup):
    """Defines criteria for lineup"""
    pass

for lineup in optimizer.optimize(500):
    if meets_criteria(lineup):
        wanted_lineups.append(lineup)
    if len(wanted_lineups) == n_wanted_lineups:
        break

Another way to accomplish this goal is to have multiple projection sets based on your assumptions on how the game is going to go. For example, if the QB has a good game, then the opposing DST is less likely to have a good game, so your projections for a particular set of circumstances should adjust these values accordingly. This may be a superior approach to "no QB vs DST" because, in certain circumstances, the projections may justify this combination of players and your rule against it prevents you from finding the optimal lineup.
lineups_per_projection_set = 10
wanted_lineups = []
projection_sets = [set1, set3, ...]
player_sets = [projections_to_players(projection_set) for projection_set in projection_sets]

for player_set in player_sets:
    optimizer.load_players(player_set)
    for lineup in optimizer.optimize(lineups_per_projection_set):
        wanted_lineups.append(lineup)

I made the change.  Lots of little changes...here's the overview:

Extend player class to include "position" (mapping to the Position column from the DK salaries download) and not just a list of roster positions
Add a new rule to rules.py: copy RestrictPositionsForOpposingTeam and make changes to only look at the new player.position property

This still didn't make a much better set of lineups.  But to @sansbacon 's point, you're only as good as your projections.


fotografde/cakephp-sms

We've developed a CakePHP library to send SMS out. We basically copied the code for CakeEmail and adjusted it to telephone short messaging requirements.

I wonder if it should just go into the "misc" section. But it is the wrong branch, you must use the cake2 branch!


Support reproducible builds

The current distribution of the binaries are not reproducible as build paths along with build times are embedded into the binaries. These two patches allows users to override the build time with SOURCE_DATE_EPOCH and removes build paths from the binaries.
https://reproducible-builds.org/
https://reproducible-builds.org/docs/build-path/
https://reproducible-builds.org/docs/source-date-epoch/

Wow, this is good stuff @Foxboron!

It requires version 1.13 and the information in the README file should be updated.


Numba 0.20.x series meta issue

The Numba 0.20.x series of releases will be for refactoring some of the internals of Numba in support of future planned features.  This issue will be updated periodically to link to the different individual issues that will be addressed by the refactoring.
Features we want to tackle after 0.20:

More complete handling of keyword arguments
Better debugging and performance diagnostics experience
JIT classes
Having a documented API for 3rd parties to add targets, lowerings, and rewrite passes.
More advanced Numpy features (indexing, etc)
Recursion
Passing Numba functions as arguments
Ahead-of-time compilation mode (like Cython)
More significant optimizations in object mode (inlining? attribute caching? block lifting?)

Refactoring steps to get there:
Numba 0.20.0

Upgrade to LLVM 3.6
Switch to NVVM library from CUDA 7 (brings IR support up to LLVM 3.4)
Drop anything from Numba that is duplicated in llvmlite

Numba 0.20.1

Debug symbols in JIT
Investigate autovectorization performance improvements with better IR generation
Add bytecode->micro-bytecode translation step?

Numba 0.20.2

???

Presumably this issue should be fixed as obsolete? Or repurposed?

I think this issue is obsolete.


[WFLY-8736]Add jms destination browse functionality provided by Artemis

https://issues.jboss.org/browse/WFLY-8736
I was not able to get a clean way to display/convert CompositeData into ModelNode. I have converted into list and then into string to display the msg content, however I think there should be some clean way.
Can anyone review the pull request and suggest.

what's the difference between this new browse operation and the existing list-messages one?

@shailendra14k there has been no activity on this PR for quite some time and I do not understand the difference between the browse management operation you add and the existing list-messages one.
I'm closing this PR for the time being but feel free to reopen it when you have additional information on it. thanks

@jmesnil , sorry for the too late reply somehow I missed this PR.
list-messages operation does not display the message body. I raised this PR to introduce a new browse operation which will display the message body.


Embedded YouTube player does not jump to the correct timestamp (under quite specific circumstances!)

Describe the bug
This actually appears to be a YouTube Player API bug, but one that we might want to work around.
If you are logged into YouTube (I think this includes being logged into any Google account) and watch a long (more than 20 minutes, I think) video on the YouTube website, YouTube attempts to remember your position in the video. If you close the tab and reopen, it will continue playing from the same point. (I am not exactly sure how this works / what the parameters are.)
If YouTube has a remembered last position in the video and you run the same video through Raphael, this messes up jumping to timestamp in the YouTube embed. Clicking a claim to jump to the timestamp causes the embedded player to jump to that timestamp and then immediately jump to the last played position. This means it’s not really possible to jump to the right point in the video using the embedded player.
To Reproduce
Steps to reproduce the behaviour:

Ensure you are logged into YouTube / Google
Open a long video on the YouTube website e.g. this one: https://www.youtube.com/watch?v=4DWKf5RqU-s
Skip halfway through the video
Close the tab and click the link above again, to confirm that YouTube has remembered your position in the video
Run the same video through Raphael, to extract claims
Click a claim to jump to its timestamp
Notice that for a split second, the embedded player jumps to the correct timestamp, and then jumps immediately to the wrong one.

Workarounds
This problem doesn’t occur if:

you use Raphael in an incognito tab, or
you are extracting claims from a short video (i.e. 20mins or less, I think). YouTube doesn’t appear to remember your position in shorter videos
you haven’t previously opened the video on the YouTube website

I had an initial go at technical workarounds, but I’m afraid I wasn’t able to find one.

@JamesMcMinn suggests customising the embed code, e.g. to use youtube-nocookie.com to prevent cookies interfering. This sounds like it should work, but I wasn’t able to get it playing nicely with the YouTube Player API.


Support programmatically setting Selection in SelectableText

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
There are multiple use cases for developers wanting to select a span of text based on actions a user performs, such as:

Highlight text due to a search action
Modifying text selection, such as selecting the entire word/sentence when a user selects an arbitrary text span
...

Proposal
SelectableText should provide a way for developers to programmatically set the text Selection.
This can be achieved in one of the following ways:

Expose the SelectableText's controller, similar to TextField's behaviour.
Add EditableTextState to the onSelectionChanged method's parameters. This at least supports the selection modification use case.

Hi @masus04. Thanks for proposing this. Looking through https://github.com/flutter/flutter/issues/128170, I see this seems similar to the already open issue. Can you help confirm this?


[10.x] Fix "No migrations found" not shown with --pending option

This fixes the following bug:
If you run artisan migrate:status --pending but there are no pending migrations, "No migrations found" won't be displayed, just an empty table.

I honestly find that a bit more confusing? It almost sounds like Laravel can't find my migrations at all.

That makes sense
I'll work on a better solution

@taylorotwell I created a new PR #48019
This changes the message from No migrations found to No pending migrations found.
Let me know if thi is better.


Fixed several reported issues

Description

Fixed the following issues:

Resolve #745
Resolve #744
Resolve #749
Resolve #750
Close #623

Motivation and Context

Fixing bugs

How Has This Been Tested?

Tested in my homelab

Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.

Awesome!


Introduce a Value_Type.Null.

This is orthogonal to #5872.
Initially, I thought we can live without Value_Type.Null. Each of columns coming from the DB has some proper type.
However, there are cases where this becomes problematic.
When I do Table.new [["X", [Nothing]]] - what type X should have? I guess for in-memory it's ok if it's mixed by default and we can cast it to any nullable type we want, and all will work OK.
However, there is the case of creating 'pure NULL' column in Expressions, both in-memory and in-DB.
Currently the behaviour is as follows:
t = table_builder [["X", [1, 2, 3]]]
t.compute "not(Nothing)" . should_fail_with Invalid_Value_Type
t.compute "Nothing + Nothing" . should_fail_with Illegal_Argument
t.compute "Nothing * Nothing" . should_fail_with Invalid_Value_Type

So any expression on nulls fails with Invalid Value Type, that's because the value is Mixed (in-memory) or Unsupported_Data_Type "NULL" (in-DB, at least in Postgres, I'm not even checking SQLite 🤕).
I'm not sure if that behaviour is right. It feels that if t.at "X" + Nothing works OK (if X is itself a numeric column), probably [X] + Nothing but also Nothing + [X] should work too.
The sane way to make it work that comes to my mind is only by adding a Value_Type.Null which these all-null columns can take. Such a special type can then be accepted by any Value_Type.expect_* operation, making these operations work.

I'm not absolutely certain if we need this. If we want to keep the current behavior and accept the errors on Null in these cases, we can close this issue. But I think ideally, we should at some point make sure that expressions and raw column operations are more consistent. So I'd be for implementing this, but probably with a lower priority.
cc: @jdunkerley what do you think about this? I'd love to hear your opinion.

Yes we should have a Value_Type.Null it is useful as can be "coerced" to whatever is needed.
Expressions needed this.

[ ] We should also update tests that were disabled until this is fixed.
[ ] In particular, we want to update the Union type unification logic so that Null columns are ignored when computing the resulting type (e.g. Null+Integer->Null, not Mixed), only if all columns that are being merged are Null then the result is Null.