DNS failure with Vagrant & generic/ubuntu1904

Describe the bug
When using a generic/ubuntu1904 Vagrant box k3s fails to run properly
To Reproduce
Setup a Vagrant generic/ubuntu1904 box and run k3s
(unable to reproduce on generic/alpine39)
Expected behavior
k3s works / DNS resolves correctly
Logs
[ 2019-06-18 11:09:19 ]
root🐮kubernetes:~$ kubectl get all -A
NAMESPACE     NAME                          READY   STATUS             RESTARTS   AGE
kube-system   pod/coredns-695688789-jjmx8   0/1     ImagePullBackOff   0          2m52s

NAMESPACE     NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
default       service/kubernetes   ClusterIP   <IP_ADDRESS>    <none>        443/TCP                  3m4s
kube-system   service/kube-dns     ClusterIP   <IP_ADDRESS>   <none>        53/UDP,53/TCP,9153/TCP   4m37s

NAMESPACE     NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   deployment.apps/coredns   0/1     1            0           4m37s

NAMESPACE     NAME                                DESIRED   CURRENT   READY   AGE
kube-system   replicaset.apps/coredns-695688789   1         1         0       2m52s

[ 2019-06-18 11:10:10 ]
root🐮kubernetes:~$ kubectl describe -n kube-system pod/coredns-695688789-jjmx8
Name:               coredns-695688789-jjmx8
Namespace:          kube-system
Priority:           0
PriorityClassName:  <none>
Node:               kubernetes/<IP_ADDRESS>
Start Time:         Tue, 18 Jun 2019 11:07:18 -0700
Labels:             k8s-app=kube-dns
                    pod-template-hash=695688789
Annotations:        <none>
Status:             Pending
IP:                 <IP_ADDRESS>
Controlled By:      ReplicaSet/coredns-695688789
Containers:
  coredns:
    Container ID:
    Image:         coredns/coredns:1.3.0
    Image ID:
    Ports:         53/UDP, 53/TCP, 9153/TCP
    Host Ports:    0/UDP, 0/TCP, 0/TCP
    Args:
      -conf
      /etc/coredns/Corefile
    State:          Waiting
      Reason:       ImagePullBackOff
    Ready:          False
    Restart Count:  0
    Limits:
      memory:  170Mi
    Requests:
      cpu:        100m
      memory:     70Mi
    Liveness:     http-get http://:8080/health delay=60s timeout=5s period=10s #success=1 #failure=5
    Environment:  <none>
    Mounts:
      /etc/coredns from config-volume (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from coredns-token-pv2fp (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  config-volume:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      coredns
    Optional:  false
  coredns-token-pv2fp:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  coredns-token-pv2fp
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  beta.kubernetes.io/os=linux
Tolerations:     CriticalAddonsOnly
                 node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age                  From                 Message
  ----     ------            ----                 ----                 -------
  Warning  FailedScheduling  3m5s                 default-scheduler    0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
  Normal   Scheduled         3m5s                 default-scheduler    Successfully assigned kube-system/coredns-695688789-jjmx8 to kubernetes
  Warning  Failed            2m45s                kubelet, kubernetes  Failed to pull image "coredns/coredns:1.3.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/coredns/coredns:1.3.0": failed to copy: httpReaderSeeker: failed open: failed to do request: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/b3/b38975a259730e09c99a1ad3c59de2bbe4ca90cf088efb5fd1dd72f254fbb223/data?verify=1560884244-FARhJYle29WDuLcf2PaClCHUodQ%3D: dial tcp: lookup production.cloudflare.docker.com on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:47793-><IP_ADDRESS>:53: i/o timeout
  Warning  Failed            2m9s                 kubelet, kubernetes  Failed to pull image "coredns/coredns:1.3.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/coredns/coredns:1.3.0": failed to copy: httpReaderSeeker: failed open: failed to do request: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/b3/b38975a259730e09c99a1ad3c59de2bbe4ca90cf088efb5fd1dd72f254fbb223/data?verify=1560884275-6amSs4qdNbfDbuqosQcPxZEWBpU%3D: dial tcp: lookup production.cloudflare.docker.com on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:43990-><IP_ADDRESS>:53: i/o timeout
  Normal   Pulling           104s (x3 over 3m2s)  kubelet, kubernetes  Pulling image "coredns/coredns:1.3.0"
  Warning  Failed            83s (x3 over 2m45s)  kubelet, kubernetes  Error: ErrImagePull
  Warning  Failed            83s                  kubelet, kubernetes  Failed to pull image "coredns/coredns:1.3.0": rpc error: code = Unknown desc = failed to pull and unpack image "docker.io/coredns/coredns:1.3.0": failed to copy: httpReaderSeeker: failed open: failed to do request: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/2e/2ee68ed074c6e06374666ad34098fb5a3a9602ac32c803acbdcc563523a902e1/data?verify=1560884321-WMEaavacAhFy2%2Bv%2FnuFcx%2FHu3fk%3D: dial tcp: lookup production.cloudflare.docker.com on <IP_ADDRESS>:53: read udp <IP_ADDRESS>:55553-><IP_ADDRESS>:53: i/o timeout
  Normal   BackOff           60s (x4 over 2m45s)  kubelet, kubernetes  Back-off pulling image "coredns/coredns:1.3.0"
  Warning  Failed            60s (x4 over 2m45s)  kubelet, kubernetes  Error: ImagePullBackOff
  Warning  DNSConfigForming  60s (x8 over 3m4s)   kubelet, kubernetes  Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS>

[ 2019-06-18 11:10:23 ]
root🐮kubernetes:~$ tail /var/log/syslog
Jun 18 11:10:25 ubuntu1904 k3s[4944]: E0618 11:10:25.833132    4944 dns.go:130] Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS>
Jun 18 11:10:25 ubuntu1904 k3s[4944]: E0618 11:10:25.834425    4944 pod_workers.go:190] Error syncing pod e92cf8a2-91f3-11e9-be63-08002711dea1 ("coredns-695688789-jjmx8_kube-system(e92cf8a2-91f3-11e9-be63-08002711dea1)"), skipping: failed to "StartContainer" for "coredns" with ImagePullBackOff: "Back-off pulling image \"coredns/coredns:1.3.0\""
Jun 18 11:10:31 ubuntu1904 systemd-resolved[728]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP+EDNS0+DO.
Jun 18 11:10:31 ubuntu1904 systemd-resolved[728]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level TLS+EDNS0.
Jun 18 11:10:33 ubuntu1904 systemd-resolved[728]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP+EDNS0+DO.
Jun 18 11:10:33 ubuntu1904 systemd-resolved[728]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level TLS+EDNS0.
Jun 18 11:10:33 ubuntu1904 systemd-resolved[728]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP+EDNS0+DO.
Jun 18 11:10:33 ubuntu1904 systemd-resolved[728]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level TLS+EDNS0.
Jun 18 11:10:36 ubuntu1904 k3s[4944]: E0618 11:10:36.832408    4944 dns.go:130] Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: <IP_ADDRESS> <IP_ADDRESS> <IP_ADDRESS>
Jun 18 11:10:36 ubuntu1904 k3s[4944]: E0618 11:10:36.834740    4944 pod_workers.go:190] Error syncing pod e92cf8a2-91f3-11e9-be63-08002711dea1 ("coredns-695688789-jjmx8_kube-system(e92cf8a2-91f3-11e9-be63-08002711dea1)"), skipping: failed to "StartContainer" for "coredns" with ImagePullBackOff: "Back-off pulling image \"coredns/coredns:1.3.0\""

Additional context
[ 2019-06-18 11:10:38 ]
root🐮kubernetes:~$ cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver <IP_ADDRESS>
options edns0
search tempe.rancherlabs.com

[ 2019-06-18 11:13:44 ]
root🐮kubernetes:~$ kubectl get configmaps -n kube-system coredns -o yaml
apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
          pods insecure
          upstream
          fallthrough in-addr.arpa ip6.arpa
        }
        hosts /etc/coredns/NodeHosts {
          reload 1s
          fallthrough
        }
        prometheus :9153
        proxy . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
  NodeHosts: |
    <IP_ADDRESS> kubernetes
kind: ConfigMap
metadata:
  annotations:
    objectset.rio.cattle.io/applied: '{"apiVersion":"v1","data":{"Corefile":".:53
      {\n    errors\n    health\n    kubernetes cluster.local in-addr.arpa ip6.arpa
      {\n      pods insecure\n      upstream\n      fallthrough in-addr.arpa ip6.arpa\n    }\n    hosts
      /etc/coredns/NodeHosts {\n      reload 1s\n      fallthrough\n    }\n    prometheus
      :9153\n    proxy . /etc/resolv.conf\n    cache 30\n    loop\n    reload\n    loadbalance\n}\n"},"kind":"ConfigMap","metadata":{"annotations":{"objectset.rio.cattle.io/id":"","objectset.rio.cattle.io/owner-gvk":"k3s.cattle.io/v1,
      Kind=Addon","objectset.rio.cattle.io/owner-name":"coredns","objectset.rio.cattle.io/owner-namespace":"kube-system"},"labels":{"objectset.rio.cattle.io/hash":"bce283298811743a0386ab510f2f67ef74240c57"},"name":"coredns","namespace":"kube-system"}}'
    objectset.rio.cattle.io/id: ""
    objectset.rio.cattle.io/owner-gvk: k3s.cattle.io/v1, Kind=Addon
    objectset.rio.cattle.io/owner-name: coredns
    objectset.rio.cattle.io/owner-namespace: kube-system
  creationTimestamp: "2019-06-18T18:05:33Z"
  labels:
    objectset.rio.cattle.io/hash: bce283298811743a0386ab510f2f67ef74240c57
  name: coredns
  namespace: kube-system
  resourceVersion: "243"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: aa5b8857-91f3-11e9-9e68-08002711dea1

More info:
resolvectl query production.cloudflare.docker.com fails with DNSSEC errors while resolvectl query google.com does not.
To resolve must edit /etc/systemd/resolved.conf to disable DNSSEC and restart systemd-resolved with systemctl restart systemd-resolved

Since this is an upstream DNSSEC or systemd-resolved issue best approach is likely to document resources for detecting & debugging DNS issues.

Closing due to age and because there are now DNS troubleshooting docs


Operations on Service with name containing '$' character fail

I have a service, whose name contains dollar sign $.
That's because it's Topshelf service with named instance, so convention there is ServiceName$Instance.
Therefore operating on service using e.g. StopService() is impossible, because it's using quoted arguments, which in powershell are evaluated during execution.
So sc.exe stop MyService$InstanceA in powershell would be evaluated to sc.exe stop MyService;
Evaluation can be prevented using single quotes, or StringLiteralArgument.

Sorry but this addin uses System.ServiceProcess.ServiceController to start / stop services, not Powershell...

I am sure I've seen some code with powershell and sc.exe here... I will check again.

Ok, my bad. It's not Start/Stop but Install/Uninstall methods. https://github.com/SharpeRAD/Cake.Services/blob/2bd916474a72e7e0ddde33624f4c20dc4ea613a2/src/Cake.Services/Manager/ServiceManager.cs#L883
Installing a service with ServiceName = "MyService$InstanceA" actually installs it with name MyService.


ignorant changes for adding link to SB for each network

I don't have the dev environment set up on my machine to test this change, but perhaps I can get that working and do the testing. Otherwise, if @ee-usgs has it running locally and could test the change, that would rock.

OK, so you are not going to merge this one?

Yeah, didn't merge that one, ended up working with Ivan to figure the right way to get it working. I wasn't too far off.


Webview API - Cant see Iframe rendered content or change console context

My app is rendering right but I cant expand the Iframe to see the details.

I also can't focus the console in the Iframe to see the logs.

VSCode Version:
1.46.0
a5d1cc28bb5da32ec67e86cc50f84c67cc690321
x64
OS Version:
Windows 10

Please provide steps to reproduce (including extension code)

Actually, you are using the wrong in web inspector. See: https://code.visualstudio.com/api/extension-guides/webview#inspecting-and-debugging-webviews which documents how to inspect webviews


Incorporate PR feedback for link icon change

This is addressing the feedback in #304 :

Use ATTR_SYMBOLIC | ATTR_JUNCTION to test whether something is a link, since a reparse point is not always a link; it could be a virtual git file, store app, onedrive placeholder, all kinds of things;
Use braces around if conditions.  There was a commit for this in the original PR but it wasn't included in the merge.

The braces which I added were merged.
The questions is where braces should be put.
From trying to understand the coding conventions and mimic the current situation in this project, there should be braces when there is more than one statement after an if/else/for/while/...
E.g
if (5 == 4) {
  x = 2;
  y = 3;
} else
  x = 42;

But I could be wrong, and basically I am fine with any convention.

Right, the convention of a lot of this code is inconsistent - not just about brace location, but tabs/spaces and indent depth.  There's some conversation about it in #88 .  Reading it now, I overlooked this comment from Craig:

+1 on the "keeping with the spirit of the codebase". That said, we should probably go with one spacing/bracing style. If we can agree on one, I would be fine with one big PR to fix it all one way.

Unfortunately I'm not sure how to get to one PR for this without relying on a tool of some kind - the way some code indents with three spaces vs four for example is really hard to address manually.  Braces are at least more visually obvious.  I know some teams at Microsoft use clang-format now, although I've never found a set of options that really conform to the principles that humans find natural.

But I doubt, that reformatting the whole source has an extra value at this stage of the project.
So my plan is to smell the very local cdoing convention, and mimic it as best as possible, so that my diffs are small, and esay to review

So my plan is to smell the very local coding convention, and mimic it as best as possible for my changes, so that my diffs are small and esay to review.

Agreed.  This PR actually has two styles mixed together.  I made comments on one case.  Can we do one or the other?

I think the challenge we have is trying to conform to neighboring code when the neighboring code is so inconsistent.  Each function has examples of each style.  Since this PR was already changing coding style of existing code, I tried to make the entire functions consistent.
This commit attempts to use Allman, since that's what you'd expressed a preference for in #88 .  It also uses spaces for indentation, using a shift width of 4.  I think this is the style we're moving towards (right?)
When reviewing the changes in Github, under the "files changed" tab there's a gear icon, and that allows the change to be viewed with or without whitespace.  The whitespace changes are about using a shift width of 4; hiding these shows the bracing style changes.

I think most of the code has indentation 3

Short of a massive reformatting, staying with K&R/3 makes sense.  Thanks!

It seems we are stuck here a little bit.
To get us out of this I made a proposal branch, which has @malxau changes in, but has very little reformatting in, so that it would fill in smoothly (at least I guess:-))
See schinagl:link_icon_feedback_proposal
If this is fine four you @malxau, take it, push it and I guess @craig will sign it off?

Thanks @schinagl and sorry for going quiet.  I looked at your change, and it doesn't include the addition of braces which I thought was something that needed doing.  If we're not doing that, we also don't need to go over code formatting at all.  So here's a brutally minimal change instead...


Error on bot attack

http://pastebin.com/GUrHcWQJ

Waterfall is rejecting the malicious packets from the attack (which is trying to force the server to decompress small packets that should be rejected by most clients).


Simplify LoggerAdapter and leave all trace source logging to LogHub

Follow up to the previous PR. Main bits:

Rename and simplify LoggerAdapter

It now only wraps a single logger, and forwards calls from CLaSPs ILspLogger to the wrapped logger, and the telemetry reporter (as before)

Remove IRazorLogger

This "unification" or two logger types was strange

Changes RazorRequestContext.Logger to be an ILogger not an IRazorLogger
Moves everything to do with ILspLogger down into the RazorLanguageServer which is inherently tied to CLaSP anyway, leaving everything else in Razor to deal with just ILogger or IRazorLoggerFactory
Initializes LogHub in our async package load

This ensures we don't need the queue for logging any more, which actually broke our logging, because LogHub uses thread (or async?) context to separate activities

Late breaking addition of one more commit to address this comment, after I merged the other PR: https://github.com/dotnet/razor/pull/9741#discussion_r1433657412

Going to wait for this to merge before updating https://github.com/dotnet/vscode-csharp/pull/6770 with a new Razor insertion. If you see any green ticks laying around, they'd be much appreciated


Progress update causes heavy flickering (regression from 0.47.0 to 0.48.0)

Information

OS: Windows 11
Version: 0.48.0
Terminal: Windows Terminal

Describe the bug
Updating the progress of a ProgressTask casues heavy flickering.
To Reproduce
Run the example code that demonstrates the usage of Progress.

Please upvote :+1: this issue if you are interested in it.

Was experiencing this issue and just upgraded to 0.49.1. Can confirm progresses (progressi?) are back to normal 👍.


Support for MySQL

Add the MySQL image (https://github.com/bitnami/bitnami-docker-mysql), this should be easy as we've done it before, I would do it but I forgot how to use your scripts. I would normally just clone it and modify it myself.

@RedstoneWizard08 Do it in this order.
git add submodule ~~~url
./scripts/create.sh

... doing something ...

./scripts/updates_with_checkout.sh
cd ~~~/*/debian-10
docker build . -t bitnami-test
docker run --rm -ti bitnami-test

I still have no idea how to apply the patches for gosu, ini-file, and others.

I still have no idea how to apply the patches for gosu, ini-file, and others.

It is located in ./scripts/updates_with_checkout.sh

@RedstoneWizard08 Unlike other packages, mysql does not provide arm64 binaries for debian, so this request is not easy. It seems to have to be modified in the form of adding the bitnami script to the official docker image of centos-based mysql. The mysql package on debian uses mariadb.
https://www.mysql.com/support/supportedplatforms/database.html


[CI] E2e tests keep failing on dual-stack cluster

Describe the bug
The test-ipv6-e2e Jenkins job, which runs Antrea e2e tests on a dual-stack cluster, keeps failing and it is not possible to get it to pass for any pending PR.
The failures look like this:
    nodeportlocal_test.go:402:
        	Error Trace:	nodeportlocal_test.go:402
        	Error:      	Received unexpected error:
        	            	error when getting Antrea Linux daemonset: Get "https://<IP_ADDRESS>:6443/apis/apps/v1/namespaces/kube-system/daemonsets/antrea-agent": http2: client connection lost
        	Test:       	TestNPLMultiplePodsAgentRestart
        	Messages:   	Error when restarting Antrea Agent Pods
    fixtures.go:214: Exporting test logs to '/var/lib/jenkins/workspace/antrea-e2e-for-pull-request/antrea-test-logs/TestNPLMultiplePodsAgentRestart/beforeTeardown.Jun21-22-14-54'
    fixtures.go:318: Error when exporting kubelet logs: error when running journalctl on Node 'antrea-e2e-for-pull-request-2735-94wrv', is it available? Error: cannot establish SSH connection to host: dial tcp <IP_ADDRESS>:22: connect: connection timed out
    fixtures.go:339: Deleting 'antrea-test' K8s Namespace
    fixtures.go:341: Error when tearing down test: error when deleting 'antrea-test' Namespace: Delete "https://<IP_ADDRESS>:6443/api/v1/namespaces/antrea-test": dial tcp <IP_ADDRESS>:6443: i/o timeout
--- FAIL: TestNPLMultiplePodsAgentRestart (354.43s)

Based on this, it looks like the test binary is losing connection to the K8s apiserver.
After investigations, it seems that:

the tests are run on the control-plane Node and as we run the Antrea e2e policy tests, the Node runs out of memory (it is a VM with 4GB of memory)
all the memory ends up being consumed by the test binary
when using pprof, we find out that a large number of goroutines (thousands) are stuck like the one below. All these goroutines are the ones we use to run individual connectivity probes, and they never get cleaned up. This leads to very high memory usage because we have a lot of test cases, all of which run 100+ probes.

goroutine 119902 [chan send, 3 minutes]:
github.com/moby/spdystream.(*Connection).shutdown(0xc001095760, 0x0)
	/root/go/pkg/mod/github.com/antoninbas/spdystream@v0.2.1/connection.go:743 +0x2b5
created by github.com/moby/spdystream.(*Connection).Close
	/root/go/pkg/mod/github.com/antoninbas/spdystream@v0.2.1/connection.go:773 +0x145

Additionally, this behavior didn't exist prior to updating client-go to v0.21. It turns out that as part of that release, spdystream was also updated (https://github.com/kubernetes/client-go/commit/b8b770f6b787159db35290cdb615f3300147a69d), while before that the code had not changed since 2016.
Finally, reverting this commit (https://github.com/moby/spdystream/commit/1d9fc660edd8230d3ea261cda2759b994bb3f455) resolves the issue. It is not yet clear to me whether this is a bug in spdystream or something else. I have not experienced this issue on my local cluster. In the case of the cluster used for dual-stack testing, we run tests from the control-plane Node, which may have an impact...

It looks like moby/spdystream@1d9fc66 is doing the right thing. The issue seems introduced after https://github.com/moby/spdystream/commit/622dc858fad08b5c858effad0153c17b03ab8bc7 is made, which changes the semantic of Close method from "Close and Wait" to "Close" only and adds a new method CloseWait for its original sementic and a new method Wait for specifying a specified timeout. If Wait is not called, there will be no consumer for the shutdownCh until the 10 minutes timeout fires, leading the goroutine stuck there for 10 minutes. client-go only calls Close so it had the issue when the sementic changed, but it didn't cause problem because shutdown was not called if there was an error. Maybe replacing Close with CloseWait in client-go can fix it.

@tnqn I was looking at a quick fix to unblock testing, which is why I reverted the commit (additionally client-go was used for several years without that commit, so I am not sure how important it actually is...)
I want to spend more time looking at why we have an error when closing the connection, which ultimately is the reason why we "leak" a goroutine for 10 minutes. We get this problem because there is an issue when sending the go away frame. This seems to be specific to some testbeds.
I am not sure we want to use CloseWait in client-go. It seems that the blocking semantics were not very desirable to being with, leading to https://github.com/moby/spdystream/commit/622dc858fad08b5c858effad0153c17b03ab8bc7

I opened a Github issue in client-go with all the details: https://github.com/kubernetes/client-go/issues/993.


B 19881 int

B-19881
Summary
As a MilMove DB administrator, I want the null values for loa_bg_fy_tx and loa_end_fy_tx to be updated with available data so that the FA2*A3 segments calculate correctly.
Given a loa_bg_fy_tx value is null,
When the corresponding loa_bgn_dt has data,
Then the date from the corresponding loa_bgn_dt will be used to determine the Fiscal Year value to replace the null value for loa_bg_fy_tx.
Given a loa_end_fy_tx value is null, When the corresponding loa_end_dt has data, Then the date from from the corresponding loa_end_dt will be used to determine the Fiscal Year value to replace the null value for loa_end_fy_tx.
EXAMPLES:
Given loa_bg_fy_tx is null, When the year value of loa_bgn_dt is 2024, and the value of loa_bgn_dt is prior to October 1st 2024. Then the null value of loa_bg_fy_tx will be replaced by 2024.
Given loa_bg_fy_tx is null, When the year value of loa_bgn_dt is 2024, and the value of loa_bgn_dt is October 1st 2024 or later, Then the null value of loa_bg_fy_tx will be replaced by 2025.
Given loa_end_fy_tx is null, When the year value of loa_end_dt is 2024, and the value of loa_end_dt is prior to October 1st 2024, Then the null value of loa_end_fy_tx will be replaced by 2024.
Given loa_end_fy_tx is null, When the year value of loa_end_dt is 2024, and the value of loa_end_dt  is October 1st 2024 or later, Then the null value of loa_end_fy_tx will be replaced by 2025.
Database
Any new migrations/schema changes:

[ ] Follows our guidelines for Zero-Downtime Deploys.
[ ] Have been communicated to #g-database.
[ ] Secure migrations have been tested following the instructions in our docs.

Screenshots

Works like a charm for FY ending on Oct 31, but.. If FY's end on Oct 31st then we need to update the AC of the ticket. The ticket mentions Oct 1st as being the deciding factor.

Ooh good catch- not sure why I read it as 31st
So technically FY ends 9/30
Then I need to update this to month "9" instead of 10


Exists() condition seems erroneous

The code for Exists is:
func (t Result) Exists() bool {
	return t.Type != Null || len(t.Raw) != 0
}

But it seems to me this should read:
func (t Result) Exists() bool {
	return t.Type != Null && len(t.Raw) != 0
}

why specify Type != Null if the second clause overrules it always?
With a null value here, you get Exists() == true.

Calling Exists on an explicit null value should return true.
With your change this returns false:
println(gjson.Get(`{"value":null}`, "value").Exists())

What is the correct semantics of ˋExists`? Key exists (whatever it’s value)? Or value being non-null?

@maoueh  Exists returns true when a key exists, whatever it's value. Exists returns false when the key does not exist in the json.

Then you'd only need len(t.Raw) != 0 right?

And the issue that I got at first is that when doing a ForEach iteration of a null value, ForEach will enter the function with an empty element. ForEach checks for Exists() and returns if it's false, but null counts as true, so it goes through an iterate on the element.. even if it's not an Array or an Object.

Then you'd only need len(t.Raw) != 0 right?

There are some operations that set the t.Type to something other than Null and at the same time the t.Raw is empty. Such as:
gjson.Get(`{"friends":["tom","jane"]}`, "friends.#")

okay, and I see the docs cover the ForEach behavior as you explained it.
thanks for your patience :) thanks for the lib !

You're welcome and thanks for using the library. :)


CU-86drpncy1 - Add new methods on storage to get/put primitive values without the need of TypeHelper

Summary or solution description
Implemented typed get and put storage methods to handle storage data with less verbosity
How to Reproduce
https://github.com/CityOfZion/neo3-boa/blob/0612b9abe4b5e08fae20da2f3f165e408aee4253/boa3_test/examples/nep17.py#L236-L238
https://github.com/CityOfZion/neo3-boa/blob/0612b9abe4b5e08fae20da2f3f165e408aee4253/boa3_test/examples/htlc.py#L145-L153

Task linked: CU-86drpncy1 Add new methods on storage to get/put primitive values without the need of TypeHelper

coverage: 91.947% (+0.002%) from 91.945%
when pulling 0612b9abe4b5e08fae20da2f3f165e408aee4253 on CU-86drpncy1
into d15ecaffab4ca38c9576bce0954ffd66a7a82e37 on development.


print() feature request

Hi
Here is some unsolicited feeback.
In general, when one is developing, it is always convenient to be able to print out the state of an object. I think you should have a simple  parser::print(std::ostream&) function which prints all option name:value pairs  as well as all non-options arguments in a nicely formated, easy to read way.  You can never go wrong with a feature like that.
Also, for printing the help, I don't really like the syntax you have have chosen:
std::cout << parser << std::endl;
I think a parser::print_help(std::ostream&) member has better semantics.  From the above syntax it is unclear just what exactly is being printed.
Thanks, Peter

Hi

it is always convenient to be able to print out the state of an object

Indeed, that would be a helpful feature. I was thinking about printing the parser in the JSON format? That way it is readable by humans as well as machines, which is nice. What do you think?

I don't really like the syntax you have have chosen: std::cout << parser << std::endl;

I'm kind of undecided regarding this. On one hand, Stream << Object is very common syntax in C++, on the other hand, I agree that the output format is unclear. I have to think about it.
Cheers

hi
well, to be more clear you could do something like:
std::cout << parser.help_info() << std::endl;
JSON isn't that easy to read for humans. You'd have to 'pretty print' JSON, at which point I'm not sure it is still legal JSON. I think being able to get the data as json would be a good thing. But having a nicely formated print for humans is also imortant. Program options don't need a multilevel tree structure. Program options are primarily structured like a .ini file. A .ini file is very easy for people to read and write and an additional idea would be for your class to read arguments from an .ini file rather than being limited to just the command line.
In my current project I am working on a computational problem that requires programs to be lauched thousands or even millions of times with varying arguments. Arguments can be passed as name=value pairs on the command line or via an .ini file containing name=value pairs. The command line is of course a little faster since it avoids having to write an .ini file first. But in some cases being able to use a .ini file is great because they are easy to edit. This could be a way to extend the library's functionality. I'm thinking less of predeclared named options with type, but more where you accept any number of name=value pairs and you analyze the value (maybe using regex) to see what type it has. Essentially analyzing 'unnamed parameters' for name=value content, rather than just retaining the raw string. I think there is room to make the traditional program options parsing much more useful for other applications.
I don't know how much work you want to put into this library? Is this a school project for you? or some other learning exercise?
Regards, Peter

I agree that the output format should me clearer. I'll try out some things next week.

You'd have to 'pretty print' JSON, at which point I'm not sure it is still legal JSON.

There's JSON that's both pretty and legal. Consider the following:
{
    "optimization": 3,
    "files": [ "foo.cxx", "bar.cxx" ]
}

I find this very readable. Furthermore, JSON is extremely wide-spread so parsing it at a later stage should be no problem for any programming language.

In my current project I am working on a computational problem that requires programs to be lauched thousands or even millions of times with varying arguments.

Have you considered making the program's API available via a shared library? That would eliminate any interface overhead.

I don't know how much work you want to put into this library? Is this a school project for you? or some other learning exercise?

It's just a small personal library that I use in my other project because it is comfortable and single-header. I decided to share it because why not?
Sure, I'm willing to invest time into this library. There's definitely some things that can be improved, especially the unsafe union stuff in struct value and its clunky type system. I also greatly appreciate your feedback and try to implement it as good as possible. Who knows, maybe the user base will even grow one day?
However, I don't know if ini-File parsing is in the scope of this library. There's other difficulties attached to that, e.g. sections or Unicode.
Regards, Josua
PS: are you German?

Hi
I'm Austrian. Originally from near Lake Constance ( Bodensee). But I left Austria around 1982. I only go back for skiing occasionally. I live in England now, near London.  How about yourself?
Peter

hi
This is my current project :
http://www.tradingsystemapi.com/
This is a very outdated web site, but it should give you an idea.
P.

It would be nice to be able to print only the options, without the usage. I prefer to write my own usage line that's more informative than the default, and also provide a brief description of what the program does, but it is really nice to be able to output the options straight from the parser.
It would also be nice if the options order in the output followed the order in which they were defined (so more important options could be shown first, for example).

I think it would be best to offer const iterators in parser so that the programmer can freely view all options (in the order added) and build his own output function on top of these iterators. There is actually a branch for that (https://github.com/Fytch/ProgramOptions.hxx/commits/feature/iterate-options) but it's out of date now. I'd need to rewrite it so that the iterators obey the order of insertion. But this concept offers the maximum amount of flexibility and freedom.
On top of that, I could implement simple helper functions (as @peterritter suggested), e.g. one that print name:value pairs or another that prints the parser's state in JSON.
As for order perservation: that's a really obvious point and so I immediately implemented it: https://github.com/Fytch/ProgramOptions.hxx/commit/cd56dbd74039cd716b34e9b63b9d36101dacc769


Mobile Apps dashboard migration

This PR migrates the Mobile Apps page to the new dashboard structure. The main route of this view is /your_apps/mobile. This PR will point to master once #13469 is merged.
Acceptance Steps

[ ] Mobile apps list should render properly
When creating a new mobile app

[ ] Upload a new avatar
[ ] Should show the proper app platform legend when a mobile platform is selected

When editing an already created app

[ ] Delete the current app successfully

Related to #13495.

@rubenmoya I don't know if we should remove the - in -%>. According to documentation, it omits blank lines ending in -%>, and it was there before.
http://ruby-doc.org/stdlib-2.5.0/libdoc/erb/rdoc/ERB.html#new-method

First time I hear about that!
Do we really need it?

I don't know actually, there are some javascript_include_tag that have it, and someones that doesn't. 🤷♂

Talked to javitonino, and told that - were not needed, so I removed them :)

retest this please

Tested in staging, working like a charm, the only issue I found is the Expand quota button which is also happening in production

hmm, didn't happened in my monitor resolution. Which res do you have?
On Wed, Feb 28, 2018 at 11:40 AM, Rubén Moya<EMAIL_ADDRESS>wrote:

Tested in staging, working like a charm, the only issue I found is the Expand
quota button which is also happening in production
[image: screen shot 2018-02-28 at 09 53 30]
https://user-images.githubusercontent.com/905225/36783304-e83c1d46-1c7b-11e8-91d9-83549bdc791a.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/CartoDB/cartodb/pull/13614#issuecomment-369199270,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEHp8Fmw0WQGB5QPx__fTVTUHVGzMvsDks5tZS0PgaJpZM4SQwtK
.

--
Jesús Botella Blanco
Front-End Engineer
www.carto.com

It's related to this text:
Xamarin features enabled. Custom watermark. Offline maps. GIS extension.
If it's too big it pushes the button

Fixed this bug too ✨


Please use semver tagging

See: http://semver.org/
Helps a lot when using go package management tools like https://github.com/golang/dep
Thanks

Hi, sorry for delay.
httpexpect currently uses v<NUMBER> branches for stable versions that provide backward compatibility (actually there is only one version currently, v1).
Could you clarify what is the problem with go dep? Does it require minor and patch versions to be present? Or does it require tags instead of branches?

Hi.
Yes, go dep needs major minor and patch as described by semver.org.
Many go-libraries already use this convention. This makes it easy to do somce kind of versioning / version selection in dependency management tools like go dep.
The rules a quite simple:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
So your v1 should at least be: v1.0.0 for tools to correctly process the version of the project.

Russ Cox's new vgo proposal also adopts semver. Would be really good for httpexpect to use it.

Hi.
This discussion is open for half a year and it is just about tagging a release in a golang / semver compatible way. vgo is now available for evaluation and also uses semver for dependency management...

no plans to provide a semver compatible tag?
go mod is out and also using it

Hi, sorry for delay. I finally have some time for this project again.
Thanks for your explanation. I've added the v1.0.0 tag and added a note to the README:

When the master is merged into a stable branch, a new version tag is assigned to the branch head. The versions are selected according to the semantic versioning scheme.

Closing this fow now, feel free to reopen if I missed something.


Offboard incorrect results

When submitting an API call to offboard a device, the agent appears to go offline, but the device continues to show as "Onboarded" in the machine list even though the last item in the timeline is "Event of type [OffboardDevice] observed on device".

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

ID: 05007b38-2a58-d34a-6afb-838e2ddd380e
Version Independent ID: d0e699b6-abe7-e8f6-a093-ecec52559dec
Content: Offboard machine API
Content Source: microsoft-365/security/defender-endpoint/offboard-machine-api.md
Product: m365-security
GitHub Login: @mjcaparas
Microsoft Alias: macapara

@mjcaparas Please help us in resolving this issue. Thanks.


feature: Implement caddyfile.Unmarshaler interface

I hereby consent to the Individual CLA provided in assets/cla/individual_cla.md
This PR brings the implementation of the caddyfile.Unmarshaler interface,
adding the possibility for other modules to use caddyfile.UnmarshalModule()
and to instantiate a new authz.Authorizer from the Caddyfile configuration format.

@golgeek , 👍


feat(web): add new deadline event type trigger

https://pins-ds.atlassian.net/browse/ASB-2359
Introduce a new deadline type that triggers the opening of the 'have your say' journey.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Other (please explain in the description section above)

Checklist before requesting a review

[x] I have performed a self-review of my own code
[x] I have double checked this work does not include any hardcoded secrets or passwords
[ ] I have made corresponding changes to the documentation
[x] I have provided details on how I have tested my code
[x] I have referenced the ticket number above
[x] I have provided a description of the ticket
[x] I have included unit tests to cover any testable code changes

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

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

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

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


fix(recursion): resolve infinite loop with recursive links

Description:
This pull request fixes an issue where recursive references in schemas could cause infinite loops.
Linked Issue:
Resolves #608.
Details:
The fix ensures that recursive links are correctly handled without entering an endless cycle, improving the stability and reliability of the dereferencer.
Checklist:
•	Added tests for recursive link scenarios.
•	Verified that the issue no longer occurs with the provided test cases.
Let me know if you’d like to modify or expand this!

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.00%. Comparing base (600f02d) to head (0c448c3).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #717      +/-   ##
==========================================
+ Coverage   98.98%   99.00%   +0.01%
==========================================
  Files           2        2
  Lines          99      100       +1
  Branches       30       30
==========================================
+ Hits           98       99       +1
  Misses          1        1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


No benchmark result

Hi, after executing ./scripts/run_experiments.sh, there is no results or figures generated in the directories, am I doing something wrong or is there something wrong?

Hi, thanks for your interest! Could you check if there is a result directory generated after running the script?

Yes, two directories results and figures are created after executing the command, but all the subdirectories within them are empty.

I found that it must actively choose a test target, such as ./scripts/run_experiments.sh --microbench --alm --wiki, then it will generates the corresponding results. I think the default parameters in run_experiments.sh
run_microbench=0
run_small_experiment=0
run_alm=0
run_art=0
run_btree=0
run_hot=0
run_surf=0
run_prefixbtree=0
run_email=0
run_wiki=0
run_url=0

should be changed to 1.


map vault: display number of downloads & latest map version

Hey,
I like the way you present map stats and love "times played" because it shows the plays of a map over all versions!
It would be a nice addition to actually display the total amount/number of downloads from a map, like you do it with "times played". Now sorting for "downloads" is applied, but no value for downloads is shown.
And could you please add the information about the latest map version, that should not be missing.

Not sure if we have that value

Yeah we do

Easy to abuse tho i can just push my map to top downloaded with a script i write in like 10 min

We only display latest versions at all so there would not need to be such a thing as to highlight if a map is the latest version

Easy to abuse tho i can just push my map to top downloaded with a script i write in like 10 min... Tho that would be quite obvious

couldn't that be done with plays as well, if someone really wanted to?

We only display latest versions at all so there would not need to be such a thing as to highlight if a map is the latest version

I mean just displaying the number of the latest map version (e.g. v6) next to plays, player, ...

Ok so maybe we should make that a separate issue

I think we have an issue on the download count number already as well

Hey, sorry for the delay.
How should we progress now?
I could not find an issue for "display downloads", so should I make a separate issue for latest map version? Or is it okay like it is now?

Version is displayed and downloads are no longer counted


Enhancement: Switch to using Docusaurus

Is your enhancement request related to a problem or unique use case? If so, please describe.
As we move forward in revising the drafts to become standards, which presumably will go through iterations and ratification over the coming years, it will be important to be able to 1) review a current, unratified, draft as well as 2) refer back to specific versions of standards that were ratified at earlier points in time. The current toolchain (MKDocs) doesn't support this functionality.
Describe the enhancement
Docusaurus provides a natural way to manage versioning and review of live edits on various git branches. We should refactor the GitHub workflow to leverage the Docusaurus tool.
Describe alternatives you've considered
I was involved in the initial discussion that selected MKDocs, where we considered a number of alternatives (e.g., readthedocs, etc.). Having spoken with someone involved in another community standard, there was as strong recommendation to adopt Docusaurs.
Additional context
N/A.

FYI, this issue would apply to other OpenDI repositories as well. (Roles and User Stories, JSON Schema, etc.).

Closed by 5984212, f2edcca, and 131c002.
New deployment for each repo can be seen at

https://opendi.org/
http://roles-user-stories.opendi.org/
http://json-schema.opendi.org/


Add CQM.spin_to_binary() method

Why not add binary_to_spin as well?

Definitely open to it. Though I think given that no MIQP solver (other than us) that I know of supports SPIN variables, this seems like the most useful. Happy to add more in the future.

Might be a large family of related transformation, some of them 1 directional for practical purposes. Might want to think about broader structure at some point. binary -> integer + constraint bounds (for testing primarily) binary or integer -> real + range bounds. (for linear relaxations)

Agree. There is a bit of architecture for this in the C++ code. That basically kicks the can down the road. Should get around to that at some point though.


add assign_resources rp example

After kind help from @Dirbaio on matrix and @9names pointing out this was a regular question.
-> In the hope this will help others.

Could we add FAQ mentions too, like in https://github.com/embassy-rs/embassy/pull/3157 ?

Could you please add FAQ mentions too, like in #3157 ?

added a sentence there :-)


Error in vmchecker-init-course storer

First
so@elf:~/temp$ vmchecker-init-course storer
Traceback (most recent call last):
  File "/usr/local/bin/vmchecker-init-course", line 221, in <module>
    main()
  File "/usr/local/bin/vmchecker-init-course", line 209, in main
    _install_if_needed_example_config_file(root_path, repo_path, config_path)
  File "/usr/local/bin/vmchecker-init-course", line 52, in _install_if_needed_example_config_file
    _install_example_config_file(root_path, repo_path, config_path)
  File "/usr/local/bin/vmchecker-init-course", line 34, in _install_example_config_file
    with pkg_resources.resource_stream('vmchecker', 'examples/config-template') as template:
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 1135, in resource_stream
  File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 1689, in get_resource_stream
IOError: [Errno 2] No such file or directory: '/usr/local/lib/python2.7/dist-packages/vmchecker/examples/config-template'

I did /usr/local/lib/python2.7/dist-packages/vmchecker/examples# cp storer-config-template config-template as a workaround.
Then
elf:/home/so/temp# vmchecker-init-course storer
A new default vmchecker configuration file was written to /home/so/temp/config. Update it before running any vmchecker code.
Traceback (most recent call last):
  File "/usr/local/bin/vmchecker-init-course", line 221, in <module>
    main()
  File "/usr/local/bin/vmchecker-init-course", line 210, in main
    main_storer(root_path)
  File "/usr/local/bin/vmchecker-init-course", line 173, in main_storer
    set_default_acls()
  File "/usr/local/bin/vmchecker-init-course", line 153, in set_default_acls
    users  = [getpass.getuser()] + acl_cfg.users()
  File "/usr/local/lib/python2.7/dist-packages/vmchecker/config.py", line 145, in users
    return self.get_list('DEFAULT', 'users')
  File "/usr/local/lib/python2.7/dist-packages/vmchecker/confdefaults.py", line 37, in get_list
    return self.get(section, option, default).split(LIST_SEPARATOR)
  File "/usr/local/lib/python2.7/dist-packages/vmchecker/confdefaults.py", line 27, in get
    return self.config.get(section, option)
  File "/usr/lib/python2.7/ConfigParser.py", line 334, in get
    raise NoOptionError(option, section)
ConfigParser.NoOptionError: No option 'users' in section: 'DEFAULT'

@calin-iorgulescu Could you take a look at this?
This stems from another issue. If upgrading vmchecker to a newer version, the fact that the DBs are missing a teams table is throwing an error. We need to either make it backwards compatible and/or fix the vmchecker-init-course tool.

@valenting So the cause of the 2nd error actually is due to a typo in the config.py file (I'll push a patch shortly).
However, I'm surprised by the first error: The vmchecker-init-course script should now specifically select either storer-config-template or tester-config-template based on the given parameter. Did you update this script as well?
As for the db, it's a bit more complicated, I fear. The 'grades' table has been split into 'team_grades' and 'student_grades' (or, rather, duplicated). To properly convert between the 2 formats automatically, the init-course script would need to check which DB layout exists. I'll try to think about a solution.

I think a simple thing to do would be to replace the .db with a brand new one, then run vmchecker-update-db --course_id XX.
If I'm not mistaken, that should do the job.

Yes, that would work, but I would leave it up to the user to do this manually (perhaps add an info message that a .db was detected and that it should be refreshed). The main reason is that vmchecker-update-db cannot distinguish between team accounts and user accounts unless the team information already exists in the DB. Therefore, if you're updating from the older DB format, then that's fine, but if you're running init-course on top of an existing course, you would need to first input all the team assignments and only after that run update-db.


WIP: Configuration file support

Add a user configuration file that is read on startup.
Change the server settings to always be fully fleshed out. So the
ElixirLS.LanguageServer.Server state settings always has all the
settings (and as atoms) instead of being an empty map by default. This
consolidates the default setting logic into the new ConfigParser
module instead of being strewn about the Server.
TODO:

[ ] Fix tests (I'm getting a strange error with the tests that I cannot figure out.)
[ ] Read a configuratioon file from the repository

Note: Editor configuration always overrides the configuration file, and
the VSCode extension always sends in the full configuration. This means
that the configuration file is not currently useable with the VSCode
extension. This will probably have to be modified in the VSCode
extension because I think it is important for the extension to have the
final control of the server settings.
Fixes #60

@axelson how far is this from being done?

@lukaszsamson Hmmm, I think it was fairly close at the time, but I think it's pretty out of date now so I don't know how much work would be required to bring it up to date. I also probably won't be able to dedicate time to it in the near future.


How to add pages to departments menu

How can we add menu option to this menu?

When we add custom pages we can only access it by adding them to the rolecenter or through the search engine

There are 2 ways to add to the Role Explorer, which is the successor to Department pages:

Create a new profile that uses a role center page with the navigation items you would like to add
Extend a role center page that is used by an existing profile to add the desired navigation items

Here's info about developing role center pages: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-designing-role-centers
Here's info about add navigation items: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-adding-menus-to-navigation-pane
Lastly, make sure the Profile (Role) you target has the 'Show in Role Explorer' flag set.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Installing from within VSC

I'm using macOS. Pressed CMD+P, typed in "ext install vsc-material-theme", and it brought up this screen. Wasn't sure which one to pick, or if it was supposed to be automatic. After digging around, would it be better to type "Material Theme"? Not trying to be nit picky, just confused :)

^ Same here.  Even went through some of the list manually trying to find the author but couldn't locate it.  Manual install it is =(

I will update the readme.


[Suggestion] Vanilla-like slots

The title of this issue is vague because otherwise it'd be huge, haha
While working on my mod VanitySlots, I noticed a few things I had to find workarounds for:

There doesn't seem to be an easy way to let already existing items enter slots. What if you want to have a slot that can have whatever in it? For example, if I want to be able to put slimeballs in a slot, I would have to write a mixin. This isn't too bad, but for stuff like armor...
There should be a way to make a new slot act like vanilla slots. Without this, you have to write a mixin for things like ArmorItem.
There should be some sort of way to choose whether shift-clicking an item goes into the vanilla slot first instead of the new slot. For example, if you add a slot in the chest group, and you shift-click, and the item can go in either the custom slot or the vanilla chestplate slot, there should be a way to make it go into the vanilla chestplate slot if it's empty, instead of going into the custom slot first.

All of these things actually exist (except part of 3).
When you define a slot you can define how it chooses to validate items, see the Trinkets chest:cape slot and how it allows elytra: https://github.com/emilyalexandra/trinkets/blob/master/src/main/java/dev/emi/trinkets/TrinketsMain.java#L23
Slots also have a property called disableQuickMove which is public and you can modify to disable shift clicking into that slot.
The only thing Trinkets does not have is more precise control over which items can and can't be shift clicked into slots, but that's a low priority issue as I'm currently rewriting trinkets for its 3.0.0 version which will include a lot of changes by itself

Alright, thank you!


CORS-2905: Add CAPA tag for AWS destroy

AWS CAPI efforts may end up adding cluster resources tagged with sigs.k8s.io/cluster-api-provider-aws/cluster/$infraID=owned. Add this tag format to the appropriate filters so we don't miss resources on deprovision.
Adding this filter should be a no-op for older/non-CAPI clusters where the tag doesn't exist.
CORS-2905

cf. https://github.com/openshift/installer/pull/8179

/cc @r4f4


Test + Fix MS Edge + IE10 support

IE 10 support requires rewriting default theme, for edge everything except unsupported enhancements like  mix-blend-mode for images works now

Has this been fixed? Recent deployment does not work at all in IE 11

@pkarw edge is working, ie10 & ie11 seems broken.

OK, would be great to put all the required bugs on IE into issues and fix them one by one :)

Sorry for the late reporting on this. @pkarw Nearly all functionality does not work on IE11. Buttons don't work and Product Images does not show likewise. We can start with these ones.

@dennisotugo please do

I do some tests, but I am not a Webpack expert, so please correct me if I am wrong:
VSF is not working on IE11 & 10 because there is ES6 code that IE is not supporting.

This code appears there because we don't compile ES6 code in  node_module.
        test: /\.js$/,
        loader: 'babel-loader',
        include: [
          '@vue-storefront',
          path.resolve(__dirname, '../../src'),
          path.resolve(__dirname, '../../core')
        ]
      },```

When I added the node_mode path to babel configuration... application exploded :D.  After long hours of debugging and fixing webpack/babel problems, I ran VSF on IE.

![2018-09-21_09h24_14](https://user-images.githubusercontent.com/7597086/45868974-71a9fb00-bd87-11e8-89c7-8ffc3905ddf4.png)

So, in my opinion, we should compile node_module code also. It would be great if someone with experience in webpack could check my theory and suggest the best method on how to fix this problem.

Good point! We should aim the modules that are not compiled with Babel by their creator (as this Vue-offline show. On screen - made by @filrak hah ;)) and add exceptions for them (to compile them by Babel)
@mdanilowicz do you have maybe a kind of list from your research which modules need to be fixed?

Could someone try to replace stage-2 with stage-3 in .babelrc config? I tried on my project (which however is a lot of version behind) and it worked

@pkarw yeah right but there is a little bit more libs like this


Needs the labels

like "needs review".

@RichardLitt could you run your script against this repo? Thank you :)

ping @RichardLitt . thank you :)

Accidental close. :)  Done.


[stable/prometheus] add path element to ingress definitions

This PR adds a feature to the prometheus chart which allows to define the path component in ingress definitions.

/assign @mattfarina

/ok-to-test

/lgtm

What should the value of hosts param be after this PR?
I had:
    ingress:
        hosts:
          - prometheus.mybinder.org

which worked fine, but now fails with
Error: UPGRADE FAILED: render error in "mybinder/charts/prometheus/templates/server-ingress.yaml": template: mybinder/charts/prometheus/templates/server-ingress.yaml:23:21: executing "mybinder/charts/prometheus/templates/server-ingress.yaml" at <$url>: wrong type for value; expected []interface {}; got []string

I cannot reproduce your error. If I run helm install stable/prometheus --version 5.3.1 --debug --dry-run --set "server.ingress.enabled=true,server.ingress.hosts={prometheus.mybinder.org}", I get the following output:
...
# Source: prometheus/templates/server-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  labels:
    app: prometheus
    chart: prometheus-5.3.1
    component: "server"
    heritage: Tiller
    release: punk-sabertooth
  name: punk-sabertooth-prometheus-server
spec:
  rules:
    - host: prometheus.mybinder.org
      http:
        paths:
          - path: /
            backend:
              serviceName: punk-sabertooth-prometheus-server
              servicePort: 80

I am also able to install this resource definition without errors.

I think based on the above comment that the config should look like this. (Note, the docs were NOT modified and should be before this could be considered finished.)
server:
  ingress:
    enabled: true
    hosts:
      - { prometheus.foo.com }

Yeah, what does the - { prometheus.foo.com } syntax do? I haven't seen that before elsewhere...

It makes it an interface which is what the error was complaining about. I don't know enough to say if this is the only way to do it. I'd hope not because now everyone's configuration is broken.

No. From the docs:
The Format and Limitations of --set:
"Lists can be expressed by enclosing values in { and }"
So on the cli server.ingress.hosts={prometheus.mybinder.org} means
server:
  ingress:
     hosts:
        - prometheus.mybinder.org

I am really sorry, if I broke something. This was definitely not my intention. But so far, I don't see how this happened.

Doing a helm install with the default values works as expected because ingress isn't even enabled.
Using this values document
server:
  ingress:
    enabled: true
    hosts:
      - prometheus.foo.com

Gives me
helm install stable/prometheus -f valuesold.yaml
Error: render error in "prometheus/templates/server-ingress.yaml": template: prometheus/templates/server-ingress.yaml:23:21: executing "prometheus/templates/server-ingress.yaml" at <$url>: wrong type for value; expected []interface {}; got []string

Using the same valuesold.yaml against an older version of the prometheus chart works as expected.
$ helm install stable/prometheus -f valuesold.yaml --version 5.1.7
NAME:   anxious-tarsier
LAST DEPLOYED: Fri Feb 23 08:32:08 2018
NAMESPACE: default
STATUS: DEPLOYED

Now, changing the yaml to
server:
  ingress:
    enabled: true
    hosts:
      - { prometheus.foo.com }

Still doesn't work
$ helm install stable/prometheus -f valuesnew.yaml
Error: render error in "prometheus/templates/server-ingress.yaml": template: prometheus/templates/server-ingress.yaml:22:30: executing "prometheus/templates/server-ingress.yaml" at <.>: wrong type for value; expected string; got map[string]interface {}

If I run the exact command that @hoesler referenced yesterday, I also get a failure.
$ helm install stable/prometheus --version 5.3.1 --debug --dry-run --set "server.ingress.enabled=true,server.ingress.hosts={prometheus.mybinder.org}"
[debug] Created tunnel using local port: '41977'

[debug] SERVER: "<IP_ADDRESS>:41977"

[debug] Original chart version: "5.3.1"
[debug] Fetched stable/prometheus to /home/ben/.helm/cache/archive/prometheus-5.3.1.tgz

[debug] CHART PATH: /home/ben/.helm/cache/archive/prometheus-5.3.1.tgz

Error: render error in "prometheus/templates/server-ingress.yaml": template: prometheus/templates/server-ingress.yaml:23:21: executing "prometheus/templates/server-ingress.yaml" at <$url>: wrong type for value; expected []interface {}; got []string

I did my tests against a minikube install.
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.1", GitCommit:"3a1c9449a956b6026f075fa3134ff92f7d55f812", GitTreeState:"clean", BuildDate:"2018-01-04T11:52:23Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"", Minor:"", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2018-01-26T19:04:38Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}

$ helm version
Client: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.7.2", GitCommit:"8478fb4fc723885b155c924d1c8c410b7a9444e6", GitTreeState:"clean"}

I am using 2.8.1 on the server. For me the above commands work for client versions 2.8.1 and 2.7.2.
Maybe it's the tiller version then?
There was a minor update to the sprig library in helm 2.8.0.

That appears to be the issue. I upgraded helm so I have
$ helm version
Client: &version.Version{SemVer:"v2.8.1", GitCommit:"6af75a8fd72e2aa18a2b278cfe5c7a1c5feca7f2", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.8.1", GitCommit:"6af75a8fd72e2aa18a2b278cfe5c7a1c5feca7f2", GitTreeState:"clean"}

Now, the scenarios I worked through above all work.


Farming Timers are Incorrect

Please check if your issue is not a duplicate by searching existing issues
Describe the bug
Farm timers are offset by about 10 minutes (i.e. predict plant growth 10 mins too early). When farm ticks were "fixed" about a year ago, growth windows shifted slightly.
Here is an image exemplifying the issue: https://i.imgur.com/xif9Sfg.png
Blue rectangles are predicted windows (old system); white dots are the correct growth windows. Note that this is the case for ALL growth window lengths. This means plants with longer times between growth windows are also affected.
To Reproduce
Steps to reproduce the behavior:

Plant any herb/plant with longer time between growth windows
Predicted finish time is always wrong

Screenshot of plants being predicted done despite not being finished: https://i.gyazo.com/db83aaf6046747c5b1ade949e372c8c4.jpg
Expected behavior
Correct time expected; about 10 minutes should be added to a number of plants
Screenshots
If applicable, add screenshots to help explain your problem.
Environment (please complete the following information):

OS: Windows and MacOS
RuneLite version: 1.5.8
Launcher version: 1.6.0

Additional context
Add any other context about the problem here, e.g. logs. Your client logs can usually be found in
C:\Users\<your_user_name>\.runelite\logs on Windows and ~/.runelite/logs on Linux and macOS.

d7aecb257cc83c6c8b4f8b693c7d3b73b6a1b98e should make this occur less often, but the root cause of this is not fixable with our current knowledge


TAJO-1738: Improve off-heap RowBlock

I’ve move the offheap package to the tajo-common and I’ve change the OffHeapMemory to MemoryBlock in order to the heap memory

+1
The patch looks good to me.


Let Organisations detect norm violations

Once we have norms and organisations can monitor roads, they can detect norm violations. We need to add this.

Done!


Blueprints for catalog functions

Each catalog function should have a blueprint to show users how to run it
kpt pkg get <example-blueprint>
kpt fn run <example-blueprint>

Also replace the kubeval example in the kpt fn run reference doc to match the kubeval blueprint.

Merged kubeval blueprint, consider this done


Update DHT11.cpp

Added the convertion of Celsius to Fahrenheit,
Added the convertion of Fahrenheit to Celsius.
Added Heat Index

Let me know if you need any changes to this.

Done


Deleting first controlplane Machine deletes cert Secrets

/kind bug
What steps did you take and what happened:
[A clear and concise description of what the bug is.]

Create HA cluster, 1.15.3
Run the extremely experimental upgrade tool to get to 1.16 ;)
First controlplane node is excellent
Second controlplane node never comes online
Check namespace
mfw certificate Secrets are missing

What did you expect to happen:
A flawless upgrade, obviously!
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
I'm fairly certain this is because the cert Secrets have the first controlplane's KubeadmConfig as an owner reference. Deleting the first controlplane Machine deleted the KubeadmConfig, which in turn deleted the Secrets, which in turn made it so the 2nd new controlplane Machine had nothing to look up. This is a guess though.
/assign
/lifecycle active

cc @amy

I'm fairly certain this is because the cert Secrets have the first controlplane's KubeadmConfig as an owner reference. Deleting the first controlplane Machine deleted the KubeadmConfig, which in turn deleted the Secrets, which in turn made it so the 2nd new controlplane Machine had nothing to look up. This is a guess though.

Yes, this would likely be the issue...  The Secrets should likely be owned by the Cluster rather than the KubeadmConfig.

/priority critical-urgent
/milestone v0.1.x

@detiber excellent, that's what I was thinking. I'll PR it.

@rudoi @amy and I worked on this issue on friday. Please use her new branch and this will not happen. The owner refs get modified to be owned by the new kubeconfig.

the ownership gets complicated if CABPK is creating stuff for a machine for a cluster that is then owned by the cluster. The certs are generated by data from the config not from the cluster. This means if you want to keep a cluster around but scale down to 0 control planes without deleting the cluster, you can end up with stale certificates that require manual intervention. If it's owned by the kubeadmconfig then when scaled to 0 the secrets go away.

What part can become stale? Aren't we generating certs with 10 year lifespans?

the serving cert SANs

Given that the linked PR has been closed, is there anyone working on a fix for this issue?

I think we should close this. If we need to, we can open a separate issue to debate if the KubeadmConfig or the Cluster should own the Secrets. I think, however, that I agree with Chuck that the way it's implemented with KubeadmConfig as the owner is correct.

/close


Spinners breaks when text size exceeds terminal size

Spinners breaks when text size exceeds terminal size. This needs to be fixed with text wrapping.

Any progress on this?
I was thinking about this and was able to come up with a quick hack, the problem is compatibility though.
def clear(self):
        num_lines = ceil((num_chars_in_frame + len_text + 1 ) / terminal_num_columns)
        self._stream.write('\r')
        self._stream.write((self.CLEAR_LINE + '\033[A') * (self._num_lines - 1) + self.CLEAR_LINE)
        return self

@shardulm94 One solution I was thinking was to do handle it with ellipsis. I'm not sure about your solution and would need to try it before moving ahead. Please share if you get a chance to try it out. Also, feel free to raise a PR for the same. 😄


gw: cannot import name 'version' on RPI

I tested this in two different distros, so far.
Hardware is a Pi400, GW and floppy drive tested on WIndows and WinUAE to be working normally.
RPIOS-64-bit (https://downloads.raspberrypi.org/raspios_full_arm64/images/)

Installed software using the steps in the Wiki, no errors reported.
Connected GW device to USB port.
Running gw info or just gw, reports the following traceback:

Traceback (most recent call last):
  File "/home/pi/projects/greaseweazle/./gw", line 11, in <module>
    import gw
  File "/home/pi/projects/greaseweazle/scripts/gw.py", line 20, in <module>
    from greaseweazle import version
ImportError: cannot import name 'version' from 'greaseweazle' (/home/pi/projects/greaseweazle/scripts/greaseweazle/__init__.py)

Manjaro (https://www.manjaro.org/downloads/arm/raspberry-pi-4/arm8-raspberry-pi-4-xfce/)

Installed software using the steps in the Wiki, got some warnings about wheel missing and using older method to compile optimized, but otherwise seemed to complete.
Connected GW device to USB port.

Running gw info or just gw, reports the following traceback:

Traceback (most recent call last):
  File "/home/pi/projects/greaseweazle/./gw", line 11, in <module>
    import gw
  File "/home/pi/projects/greaseweazle/scripts/gw.py", line 20, in <module>
    from greaseweazle import version
ImportError: cannot import name 'version' from 'greaseweazle' (/home/pi/projects/greaseweazle/scripts/greaseweazle/__init__.py)

Edit: Also tested on the latest RPIOS 32-bit, and got exactly the same problem as the 64-bit one.
I do see a /dev/ttyACM0 device there, which I assume is the correct one, and the symlink dev/greaseweazle is created, pointing to that same /dev/ttyACM0. So it seems that the device is recognized at least.
Is this a known issue?

How did you download the Host Tools? You should be downloading the latest official release via: https://github.com/keirf/Greaseweazle/wiki/Download-Host-Tools
If you cloned the repository, what you see is the result. I have just committed a fix to give you a better error message, and to tell you the fix (run "make"). However, downloading a proper versioned release via the wiki is almost certainly what you want to do.
PS. If you still get warnings about "older method used to compile optimized" when you use the latest release, please post the full error message / log snippet here for me to take a look. I may need to update the script to install "wheel". You can try this yourself by adding wheel after requests in scripts/setup.sh

I cloned the repo, in all cases. :)
I'll check with the zip releases instead, and report back about the missing wheel part on the Manjaro distro. Thanks!

Here's the output from Manjaro (64-bit):
[midwan@pi400 greaseweazle]$ sudo ./scripts/setup.sh
Requirement already satisfied: bitarray in /root/.local/lib/python3.10/site-packages (2.3.5)
Requirement already satisfied: crcmod in /root/.local/lib/python3.10/site-packages (1.7)
Requirement already satisfied: pyserial in /root/.local/lib/python3.10/site-packages (3.5)
Requirement already satisfied: requests in /usr/lib/python3.10/site-packages (2.26.0)
Requirement already satisfied: chardet>=3.0.2 in /usr/lib/python3.10/site-packages (from requests) (4.0.0)
Requirement already satisfied: idna>=2.5 in /usr/lib/python3.10/site-packages (from requests) (3.3)
Requirement already satisfied: urllib3>=1.21.1 in /usr/lib/python3.10/site-packages (from requests) (1.26.7)
Processing ./scripts/c_ext
Using legacy 'setup.py install' for optimised, since package 'wheel' is not installed.
Installing collected packages: optimised
    Running setup.py install for optimised ... done
Successfully installed optimised-0.0.0

Please run python3 -m pip install --user wheel and try the setup script again

And here's the output after adding wheel in the script, as you suggested:
[midwan@pi400 greaseweazle]$ ./scripts/setup.sh
Requirement already satisfied: bitarray in /home/midwan/.local/lib/python3.10/site-packages (2.3.5)
Requirement already satisfied: crcmod in /home/midwan/.local/lib/python3.10/site-packages (1.7)
Requirement already satisfied: pyserial in /home/midwan/.local/lib/python3.10/site-packages (3.5)
Requirement already satisfied: requests in /usr/lib/python3.10/site-packages (2.26.0)
Collecting wheel
  Downloading wheel-0.37.1-py2.py3-none-any.whl (35 kB)
Requirement already satisfied: chardet>=3.0.2 in /usr/lib/python3.10/site-packages (from requests) (4.0.0)
Requirement already satisfied: idna>=2.5 in /usr/lib/python3.10/site-packages (from requests) (3.3)
Requirement already satisfied: urllib3>=1.21.1 in /usr/lib/python3.10/site-packages (from requests) (1.26.7)
Installing collected packages: wheel
  WARNING: The script wheel is installed in '/home/midwan/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed wheel-0.37.1
Processing ./scripts/c_ext
Building wheels for collected packages: optimised
  Building wheel for optimised (setup.py) ... done
  Created wheel for optimised: filename=optimised-0.0.0-cp310-cp310-linux_aarch64.whl size=15159 sha256=8acaf086007b87d617e5cfdbe347d0632bb5078d0fc4ab75b90dcf18dd9f8dab
  Stored in directory: /tmp/pip-ephem-wheel-cache-amktl201/wheels/0c/a8/c4/f7df95f3485902699b3c312272adaf85588acbbb0f9270ae0e
Successfully built optimised
Installing collected packages: optimised
Successfully installed optimised-0.0.0

That looks good!

It works normally after that, I can call gw info and get the expected results, after I disconnected and reconnected the device.
Thanks for the help! :)


Subscription Support: Part 1

This is PART ONE of changes to support subscriptions in the TRPC Panel. This PR revolved around ensuring that there is an example subscription procedure in the server and that it will be displayed properly in the TRPC Panel itself.
The subscriptions in the Panel are NOT FUNCTIONAL YET. However, to ensure that these UI/parsing changes get included in any future rewrites or refactorings, I think it could be beneficial to get this merged sooner rather than later. Of course, happy to defer to your judgment on that.
If accepted, this PR will:

add a test subscription procedure to the test server
remove unused variables/imports from the test server
add parsing support for subscription procedures in trpc-panel
add style criteria for subscription procedures in the trpc-panel UI

Awesome ty sir! =D


I think "CommentsContainerPart" should be removed from Blog code.

After reading and debugging code I have concluded that this part do nothing.
It just uses its attachment to get a content item id and forces comment service to find to sets of comments pending and active, which there are always none.
It is attached to Blog type and tries to count the comments count of a blog item where there are none attached, I mean blog type has no comment part attached to it and what is getting calculated always is zero. comments are being set for blog posts instead, so it is an extra useless processing.
maybe the design is old and has been changed with no comment in code but it is still active and takes cpu power.

I am not sure it's really unnecessary, I will check too. But it's already a good information to know that a type has children with comments.

After looking at the code, we agree on the issue:

Remove it from the migration, altogether, doesn't need to alter existing content type definition with a new step.
Delete the CommentsContainerPartDriver model and driver.
Don't delete the shapes or the placement as they are used by the CommentsPart.


docs: Fix broken yaml indentation

Commit Message: Fix broken yaml indentation
Additional Description: N/A
Risk Level: Low
Testing: Compare this https://github.com/ujihisa/envoy/blob/c687265807990f61572a769ccb9776c0d34d97d3/docs/root/configuration/upstream/cluster_manager/cluster_circuit_breakers.rst with this https://www.envoyproxy.io/docs/envoy/latest/configuration/upstream/cluster_manager/cluster_circuit_breakers
Docs Changes: Fix broken yaml indentation
Release Notes: N/A

Thanks for the fix!  Mind sorting out the DCO failure?

Thanks for the fix! Mind sorting out the DCO failure?

Oops sorry I missed that. Now it's done!

/wait


Fix conda-forge build

The conda forge build is currently broken, since https://github.com/maxbachmann/rapidfuzz_capi is not packaged on conda forge yet.

This is fixed for the most important wheels, but is still broken for more exotic platform combinations.


Dockerfile: specify -nv --show-progress --progress=bar:force:noscroll option for wget downloads

When downloading large assets from COS it can take several minutes for the download to complete. The currently used wget option wget -nv does not display the download progress. We should use
wget -nv --show-progress --progress=bar:force:noscroll instead. The output looks as follows:
Step 3/11 : RUN wget -nv --show-progress --progress=bar:force:noscroll http://... ...
---> Running in e9a4783f37f1
data.tar.gz          83%[===============>    ]   3.01G  6.39MB/s    eta 44s
```

PR #22


Fix/assemble enum

Codecov Report
Patch coverage: 81.81% and project coverage change: -0.06% :warning:

Comparison is base (4531238) 91.55% compared to head (5490912) 91.49%.
Report is 1 commits behind head on dev.

Additional details and impacted files
@@             Coverage Diff              @@
##                dev     #138      +/-   ##
============================================
- Coverage     91.55%   91.49%   -0.06%
- Complexity     1203     1205       +2
============================================
  Files           117      117
  Lines          2876     2881       +5
  Branches        283      285       +2
============================================
+ Hits           2633     2636       +3
  Misses          132      132
- Partials        111      113       +2

Files Changed
Coverage Δ

.../parser/handler/AssembleEnumAnnotationHandler.java
89.47% <60.00%> (-5.13%)
:arrow_down:

...n/crane4j/core/container/EnumContainerBuilder.java
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


editor crash

Tested versions
Godot Engine v4.3.dev.mono.custom_build.29b3d9e9e (2024-03-28 18:06:55 UTC) - https://godotengine.org
OpenGL API 4.5 (Core Profile) Mesa 20.3.5 - Compatibility - Using Device: Mesa/X.org - llvmpipe (LLVM 11.0.1, 128 bits)
System information
debian 11  arm64 opengl
Issue description
。
Steps to reproduce
I am trying to export Android APK. But when running on Android, you can only see the startup screen. Afterwards, the application will crash. So I want to try Gradle builds. But export compilation has just begun. The interface displays the downloaded file. The program crashes. Afterwards, no matter which project I run. Even if it's a new project. The editor will suddenly crash. Even if no action is taken. Before that. The program can be used normally. The running environment is to install Debian11 arm64 in the chroot container on the phone. The newly compiled version 4.3 initially had some issues. After adjusting the settings, it can be used normally.. I was able to use it normally from version 3.5 to version 4.0 before. What should I do now. I am trying to delete the data directory of Godot. But it has no effect. I have also tried restarting my phone. Debian in the container has not been restarted. I don't know how to operate. My English is not good. This is from online translation. I hope there are no errors
root@localhost:~# /root/godot/godot.mono --audio-driver 'Dummy' --disable-vsync
Godot Engine v4.3.dev.mono.custom_build.29b3d9e9e (2024-03-28 18:06:55 UTC) - https://godotengine.org
OpenGL API 4.5 (Core Profile) Mesa 20.3.5 - Compatibility - Using Device: Mesa/X.org - llvmpipe (LLVM 11.0.1, 128 bits)

Editing project: /root/ce
Godot Engine v4.3.dev.mono.custom_build.29b3d9e9e (2024-03-28 18:06:55 UTC) - https://godotengine.org
OpenGL API 4.5 (Core Profile) Mesa 20.3.5 - Compatibility - Using Device: Mesa/X.org - llvmpipe (LLVM 11.0.1, 128 bits)

ERROR: Condition "p_font.is_null()" is true. Returning: false
   at: add_string (scene/resources/text_paragraph.cpp:420)
Could not find version of build tools that matches Target SDK, using 33.0.2
Fatal error. System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at System.Threading.ReaderWriterLockSlim.GetThreadRWCount(Boolean)
   at System.Threading.ReaderWriterLockSlim.TryEnterWriteLockCore(TimeoutTracker)
   at System.Threading.ReaderWriterLockSlim.EnterWriteLock()
   at System.Diagnostics.Process.OnSigChild(Int32, Int32)

Minimal reproduction project (MRP)
。。

handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.beta.mono.custom_build (0ddd9c3e8f9088fa139e25b2903289d727073e12)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] linux-vdso.so.1(__kernel_rt_sigreturn+0) [0x78c6c2a6c0] (??:0)
-- END OF BACKTRACE --
I tried version 4.0. New error messages have been provided.. So is it true that there is a problem with the system? Can it be solved? To delete the container. Do you want to reinstall Debian?

ERROR: Condition "p_font.is_null()" is true. Returning: false
at: add_string (scene/resources/text_paragraph.cpp:420)

Might be related to https://github.com/godotengine/godot/issues/90001
Try checking if it is fixed by https://github.com/godotengine/godot/pull/90022

I have solved the problem. These issues caused by dotnet8.0.
I recompiled version 4.2.2 of Godot. But the problem remains. I suddenly thought that I had no problem using version 4.0 before. Why are there problems again now. I even reinstalled the system. It's impossible for problems to occur. So. The error was only caused by differences in software installed during compilation of version 4.3. And the error message is system XXXX, this is the content that only dotnet reports errors. So, I deleted all files and folders related to dotnet in the system, and then installed dotnet 6.0. This is the version I used for Godot 4.0. There are no issues with the test. Then install Dotnet7.0, which is required for exporting to Android. There are no issues after testing. Android APK can also be exported normally. So, this is an issue with DotNet 8.0. What are the issues with using Dotnet8.0 in Godot.. I see that others have also given feedback on the system XXXX is a problem. But people are quite powerful. Directly search for and modify the code for Godot to complete the repair.
Emmm.. The management can now close this question.. I'm not sure if I'll close it myself. Can you see this reply.. This comes from online translation.

So, this is an issue with DotNet 8.0. What are the issues with using Dotnet8.0 in Godot.. I see that others have also given feedback on the system XXXX is a problem. But people are quite powerful. Directly search for and modify the code for Godot to complete the repair.

Can you link us to what solutions you used? Is it something we need to change in the engine?
DotNet 8.0 should be supported and work fine, so if it doesn't, it's a bug we need to fix.

因此，这是一个问题，DotNet8.0. 有什么问题与使用Dotnet8.0在Godot..我看看其他人也给予的反馈的系统XXXX是一个问题。 但是，人们相当强大。 直接搜索和修改的代码Godot完成的修复。

你可以链接我们什么解决方案使用？ 这是我们需要改变的动机?
DotNet8.0应该支持和工作的现，因此，如果不是，这是一个错误，我们需要修复。

I'm not sure if this is a problem with Godot. Moreover, the platform I use for Godot is the Debian arm64 system of the chroot container. The system is inherently incomplete. So there was a malfunction. I can't tell whose problem it is. I only know now that I will delete net8.0. Both net6.0 and net7.9.0 allow me to compile a C # version of Godot that runs normally. I just tested version 4.3 (compiled a few days ago), which I previously compiled and ran with errors. It can also run normally under net7.0 and net6.0, so I found out that the problem is with net8.0. However, a few days ago, I was searching for a solution. See other feedback with similar issues. So I suspect it's also caused by Net8.0. But this can no longer be argued for. Because that feedback has already been resolved. It seems to have been resolved by modifying some code in Godot. So. I just mentioned whether Net8.0 itself is incomplete and has poor compatibility, or if there are any operations that can easily cause problems when using Net8.0 in Godot, but I cannot verify these on my own. I am just a beginner in programming. I don't know C++either. Emmm. By the way. The issue caused by net8.0 is not the inability to export Android APK. But it is unable to run and compile C # projects. I don't know if the exported compiled project can run. But it cannot run inside the editor. Even, you don't need any action. Just loaded the project. Wait for a moment, the editor will crash. But if you create a new one that doesn't use c #. It's just a GD project. Godot won't have any problems either. However, version 4.3 of Godot compilation requires Dotnet8.0. And I also successfully compiled it. This should indicate that my system environment should be able to run net8.0. I have also tested the removal of the Android SDK, only in the case of Godot and Net8.0. The problem still persists. So the problem lies in one of them.

I see. I'll write it off as a Debian packaging issue then for their DotNet 8.0 package, which might be fixed eventually. We'll see if it comes up again in future bug reports here.


Add user preferences and user-facing preferences page.

Description
Add user preferences.
Currently gated on bulk downloads because that's the only user preference.
Includes a page for users to modify their preferences. Includes validation for the "boolean" data type.
User preferences page

Dropdown menu (once bulk downloads is enabled)

When no user preferences can be found (shouldn't happen because this feature is gated on bulk downloads)

Error message if something goes wrong.

Notes
Some notable design decisions:

Instead of having a JSON object for all preferences or having a single row with different preferences as columns, we store preference name/preference value/user pairs in each row. This allows you to add new preferences without database schema changes. It also allows for future queries where you need all users with a certain preference (which would be hard with a JSON object)
We hard-code the metadata for the different user preferences instead of storing them in a UserPreferencesField table. Since the code will depend on certain user preferences being a certain way, it seems correct to put the metadata for these preferences in code. For example, if the code expects a certain user preference to be a boolean, but the data type is stored in the database, then there's no way to guarantee that this is the case.
Right now, the "value" column of the database is a "string". If you need specific behavior for certain user preferences, you will need to add a "data_type" and write the validation for it.
If a user doesn't have anything set for a particular user preference, the default value will be used.
Still need to write tests. Wanted to get a round of feedback on the table schema first (in case any of the above is controversial)

An idea I had just now is to make user_preferences replace allowed_features--in which case we would almost certainly want to call it user_settings, and make some only visible to admins. The advantages are that

feature flags would be easier to change: an admin could navigate to a user's settings page and click a checkbox
we could see and edit all the per-user global config in one table

Hey Greg, that's a great idea regarding allowed_features. I'm all for calling it "User Settings".
The current implementation already allows you to specify a subset of preferences to appear on the user preferences page (by adding them to the display categories). However, there's currently no way to specify that a preference should be admin-only. That's a great suggestion! (though I might add it to a follow-up PR)
Awaiting your other comments and then I can make the changes.
It's not clear how much use this will get. I remember some folks (perhaps Jonathan?) mentioning that something like this has been needed for quite some time, which is why I wrote up a somewhat more complete implementation. But I feel like we should keep it simple at first and iterate on it as we go.

Since we are no longer doing the automated emails for bulk downloads, I added an example flag for demo purposes, and made the page admin-only.
Verified that non-admins don't see the preferences page.


Inline guard functions

There are certain functions that can only be used in guard clauses. These should be inlined (translated straight to JS code).
Also, there should be a compiler check to make sure that these functions are the only ones used in guards

[ ] left != right
[ ] left !== right
[ ] left * right
[ ] +value
[ ] left + right
[ ] -value
[ ] left - right
[ ] left / right
[ ] left < right
[ ] left <= right
[ ] left == right
[ ] left === right
[ ] left > right
[ ] left >= right
[ ] abs(number)
[ ] binary_part(binary, start, length)
[ ] bit_size(bitstring)
[ ] byte_size(bitstring)
[ ] div(left, right)
[ ] elem(tuple, index)
[ ] hd(list)
[ ] is_atom(term)
[ ] is_binary(term)
[ ] is_bitstring(term)
[ ] is_boolean(term)
[ ] is_float(term)
[ ] is_function(term)
[ ] is_function(term, arity)
[ ] is_integer(term)
[ ] is_list(term)
[ ] is_map(term)
[ ] is_number(term)
[ ] is_pid(term)
[ ] is_port(term)
[ ] is_reference(term)
[ ] is_tuple(term)
[ ] length(list)
[ ] map_size(map)
[ ] node()
[ ] node(arg)
[ ] not arg
[ ] rem(left, right)
[ ] round(number)
[ ] tl(list)
[ ] trunc(number)
[ ] tuple_size(tuple)
[ ] left and right
[ ] left or right

For these, the approach can be similar to how the erlang rewriter module works. Collecting these specifically in a module might make sense


Slight changes

Hey Sophia, does the .smooth() method require that we use the filtered data? If so, I might make a few changes to it so that it doesn't come up if the user decides to use the raw data.

Good point, I just updated to specify sigma for raw data and filtered data.

I just made a change to .travis.yml too. Let me deal with the merge conflict and I'll pull it through.


Lab 8 fixes

There were a number of typos / bugs in lab8 and server 8:

Two typos in server8
Not updating browser8.css to include new styles
Some missing parameters to a helper function in lab8
Failing to compute a font object
Painting text children of buttons twice
Failing to re-paint the display list after invalidating the value attribute of an input.

I think an audit of the text in the chapter is also needed, to make sure it explains well enough how to write this code correctly and all the subtleties.
Also, we need unittests! (I'll do that next week.)