[$500] Web -Split bill- Square appears over checkmark when deselect participant and than use keyboard arrow

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.7-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Navigate to http://staging.new.expensify.com/
Open Group DM
Click on "+" near message composer
Click on "Split bill"
Insert amount
Click "Next"
Click with mouse on any member to deselect it
Use the keyboard up/down arrows to go through the list

Expected Result:
There should be no visual errors while scrolling through members list
Actual Result:
White square appears over checkmark when deselect participant and than use keyboard arrow
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/8f934c01-e9bd-42dc-9ea6-f24e31415cbf
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~017a562fd6464d4101
Upwork Job ID:<PHONE_NUMBER>029255680
Last Price Increase: 2023-12-16

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01b376159894de44f5

@eVoloshchak to review proposals!

@eVoloshchak to review proposals!

Bump @eVoloshchak

The issue turned out to be more complex, we have 3 distinct problems with the participants list

Blue outline appears over the checkmark when selecting participant and then using a keyboard arrow
Select a participant using arrow keys, press "Space" to add a participant. Notice the wrong participant is selected (@dragnoir has described this problem in their proposal)
Whether you can select a user by pressing "Space" is not consistent. It's possible only if you click on the list of participants (which defeats the purpose of keyboard navigation), and if you click outside the list, it stops working

https://github.com/Expensify/App/assets/9059945/d29ffc9f-e157-465b-b574-98c913e727e3
A proposal to resolve all of the issues above would be ideal, we'd fix the whole keyboard navigation flow on this page

bump @eVoloshchak for reply

Keyboard navigation should be out of the scope of this issue. The issue here is simply about the focus outline of the circle. There is an issue https://github.com/Expensify/App/issues/21392 that is trying to fix the inconsistent keyboard navigation

Thank you for linking that issue, @bernhardoj
I think we should proceed with @suneox's proposal. This is the most straightforward approach. @tanmai-kms's proposal is similar, but applies the same styles to all pressables, which isn't ideal: we shouldn't disable the ability to highlight any pressable, as that would break the keyboard navigation
🎀👀🎀 C+ reviewed!

@eVoloshchak the style is not fixing the issue and it's wrong for accessibility. Removing outline is just a workaround.
Also when the outline is removed and the user keep using keyboard, he will be distracted because the current focused element is not what the UI display as I mentioned in my proposal.
The style.noSelect will just cause another bug.

@eVoloshchak @bernhardoj My proposal was just based on existing styles. If it's related to accessibility why the input and select were set border to none for :focus-visible? That makes inconsistent if we don't set for pressable component.

Will post a review on this tomorrow

@eVoloshchak mind reviewing @suneox updated proposal?

bump @eVoloshchak

@shubham1206agra mind giving us an update?

@dylanexpensify @AndrewGable You can review the above comment and assign here.

@suneox proposal does work, but the focus remains on the checkmark pressable (but outline is not pressent),

@shubham1206agra have you tested my proposal with 'tabIndex'? to fix style and handle focus avoid tab to SelectCircle

which will have the problem @dragnoir mentioned.
Select a participant using arrow keys, press "Space" to add a participant. Notice the wrong participant is selected

@suneox Let me clarify here. Your proposal removed the blue square, but this will make user believe that there is no focus there and will be misleading.

I have missed this information so I just double-checked on the latest main this issue is another issue related to OptionRow handling select items by using Space or Enter.

Can you point to the GH for this?

we can go with @bernhardoj's proposal

If we only fix the style it will not cover the problem has mentioned

The problem defined is very clear here.

There should be no visual errors while scrolling through members list

Select a participant using arrow keys, press "Space" to add a participant. Notice the wrong participant is selected

Does it include fixing the issue selected item by Space/Enter?

Not really. But your proposal will create even more problems as we try to remove focus entirely, and remove the blue box, and it will confuse / misdirect the user which I think we don't want.

@AndrewGable do you agree with this

posted internally also on flow

PR is ready
cc: @shubham1206agra

@shubham1206agra the PR submitted still have the issue I mentioned.
I think my proposal is better, it remove the issue.

@dragnoir solution works in this case but will have a problem with keyboard selection and we can still see misaligned blue box if we try to go with keyboard (tab/shift+tab).

Also about keyboard keyboard (tab/shift+tab), pls check here https://expensify.slack.com/archives/C01GTK53T8Q/p1668604822482759 we are not supporting this type of navigation I guess

@bernhardoj @shubham1206agra what's holding up our merge?

@dylanexpensify I am OOO right now. Will review the PR tomorrow.

@shubham1206agra thank you for your reply.
Please test the PR when you have time, if you do this:
* Select or deselect an option with mouse

* navigate with arrow key top or down

* click on space or enter

then the wrong option will be actioned (selected/deselected) not the one highlighted.

Highlighted by what?
I think there are 2 different highlighting occurring at the same time, which is causing these problems. I will open up a discussion for the same later.

@bernhardoj @shubham1206agra can we get an update please

PR is merged already

@shubham1206agra as I mentioned before, the issue is not fixed, the silution implemented I think it's just a workaround.
Please check the video demonstrationg the issue after the PR.
https://github.com/Expensify/App/assets/12425932/da790e07-b06e-4e4a-a9ad-8a97848e2c71
Currently just the focus style is changed from square to round. But when you navigate and try to select an element from the list, the action happen the the previous element where the focus is not where the new element selected
@dylanexpensify As you see from the video and the screenshot below, when I navigate to (2) and I click on space or enter on the keyboard, the item that should be selected/deselected is (2) not (1) as happening now.

@shubham1206agra we already support this type of navigation in other component like search, LHN, .... also keeping the focus actif on an item, for the user, means the ability to interact with it with keyboard or with other navigation tools. I think just changing the style to round and don't care about what element is trully focused it very bad UX and not a fix for such an app.

@shubham1206agra mind confirming where we're at

Got it - will do today!

Yes!
Payment summary:

Contributor: @bernhardoj $500
Contributor+: @shubham1206agra $500

Please request/apply!

I know - in the works!

Offers sent!

done!


Error loading provisioner

Subject of the issue
I followed the manual install steps provided here and get an error when deploying autocert pod:
Error loading provisioner: client GET https://ca.step.svc.cluster.local/health failed: Get \"https://ca.step.svc.cluster.local/health\": dial tcp: lookup ca.step.svc.cluster.local: Try again
  {
    "config": {
      "Address": "",
      "Service": "",
      "LogFormat": "json",
      "CaURL": "https://ca.step.svc.cluster.local",
      "CertLifetime": "24h",
      "Bootstrapper": {
        "name": "autocert-bootstrapper",
        "image": "cr.step.sm/smallstep/autocert-bootstrapper:0.15.1",
        "resources": {
          "requests": {
            "cpu": "10m",
            "memory": "20Mi"
          }
        },
        "volumeMounts": [
          {
            "name": "certs",
            "mountPath": "/var/run/autocert.step.sm"
          }
        ],
        "imagePullPolicy": "IfNotPresent"
      },
      "Renewer": {
        "name": "autocert-renewer",
        "image": "cr.step.sm/smallstep/autocert-renewer:0.15.1",
        "resources": {
          "requests": {
            "cpu": "10m",
            "memory": "20Mi"
          }
        },
        "volumeMounts": [
          {
            "name": "certs",
            "mountPath": "/var/run/autocert.step.sm"
          }
        ],
        "imagePullPolicy": "IfNotPresent"
      },
      "CertsVolume": {
        "name": "certs",
        "emptyDir": {}
      },
      "RestrictCertificatesToNamespace": false,
      "ClusterDomain": "cluster.local",
      "RootCAPath": "",
      "ProvisionerPasswordPath": ""
    },
    "level": "info",
    "msg": "Loaded config",
    "time": "2022-04-07T17:29:14Z"
  },
  {
    "level": "info",
    "msg": "Loaded provisioner configuration",
    "provisionerKid": "",
    "provisionerName": "autocert",
    "time": "2022-04-07T17:29:14Z"
  },
  {
    "level": "error",
    "msg": "Error loading provisioner: client GET https://ca.step.svc.cluster.local/health failed: Get \"https://ca.step.svc.cluster.local/health\": dial tcp: lookup ca.step.svc.cluster.local: Try again",
    "time": "2022-04-07T17:29:19Z"
  }

I experienced this issue both on amd64 and arm64 (using the images given here by fastlorenzo)
I tried to use directly IP instead of domain name, without success. If I try to resolve the DNS manually, it give the correct IP. So it doesn't seems to be a DNS problem.
> dig +short ca.step.svc.cluster.local @<IP_ADDRESS>
<IP_ADDRESS>

I don't see anybody here having this issue and I can't find any  more logs about the problem. Any help is very appreciate.
> kubectl describe pod -n step autocert-6fd76c4d97-cj9z9
Name:         autocert-6fd76c4d97-cj9z9
Namespace:    step
Priority:     0
Node:         bhasher-desktop/<IP_ADDRESS>
Start Time:   Thu, 07 Apr 2022 19:12:34 +0200
Labels:       app=autocert
              pod-template-hash=6fd76c4d97
Annotations:  <none>
Status:       Running
IP:           <IP_ADDRESS>
IPs:
  IP:           <IP_ADDRESS>
Controlled By:  ReplicaSet/autocert-6fd76c4d97
Containers:
  autocert:
    Container ID:   docker://917e0f80b09934ab3040fb9946ed5e7cfeeee3a88ef6b9ce46ad3bafeb30c222
    Image:          cr.step.sm/smallstep/autocert-controller:0.15.1
    Image ID:       docker-pullable://cr.step.sm/smallstep/autocert-controller@sha256:b085bbcfff8631d37152ab44390ce36da82f9dc21b23cf494ee7729998993d16
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Thu, 07 Apr 2022 19:39:50 +0200
      Finished:     Thu, 07 Apr 2022 19:39:55 +0200
    Ready:          False
    Restart Count:  11
    Requests:
      cpu:      100m
      memory:   20Mi
    Liveness:   http-get https://:4443/healthz delay=0s timeout=1s period=10s #success=1 #failure=3
    Readiness:  http-get https://:4443/healthz delay=0s timeout=1s period=10s #success=1 #failure=3
    Environment:
      PROVISIONER_NAME:  autocert
      NAMESPACE:         step (v1:metadata.namespace)
    Mounts:
      /home/step/autocert from autocert-config (ro)
      /home/step/certs from certs (ro)
      /home/step/config from config (ro)
      /home/step/password from autocert-password (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-hk5wm (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      config
    Optional:  false
  certs:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      certs
    Optional:  false
  autocert-password:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  autocert-password
    Optional:    false
  autocert-config:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      autocert-config
    Optional:  false
  kube-api-access-hk5wm:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  30m                  default-scheduler  Successfully assigned step/autocert-6fd76c4d97-cj9z9 to bhasher-desktop
  Normal   Pulling    30m                  kubelet            Pulling image "cr.step.sm/smallstep/autocert-controller:0.15.1"
  Normal   Pulled     30m                  kubelet            Successfully pulled image "cr.step.sm/smallstep/autocert-controller:0.15.1" in 4.538132898s
  Normal   Created    30m (x3 over 30m)    kubelet            Created container autocert
  Normal   Started    30m (x3 over 30m)    kubelet            Started container autocert
  Warning  Unhealthy  30m (x8 over 30m)    kubelet            Readiness probe failed: Get "https://<IP_ADDRESS>:4443/healthz": dial tcp <IP_ADDRESS>:4443: connect: connection refused
  Warning  Unhealthy  30m (x2 over 30m)    kubelet            Liveness probe failed: Get "https://<IP_ADDRESS>:4443/healthz": dial tcp <IP_ADDRESS>:4443: connect: connection refused
  Normal   Pulled     29m (x3 over 30m)    kubelet            Container image "cr.step.sm/smallstep/autocert-controller:0.15.1" already present on machine
  Warning  BackOff    30s (x141 over 30m)  kubelet            Back-off restarting failed container

Environment

Kubernetes version: v1.23.5

Cloud provider or hardware configuration: Raspberry Pi & Linux Manjaro Desktop (amd64)

OS (e.g., from /etc/os-release): Debian Linux

Kernel (e.g., uname -a): Linux raspberrypi 5.15.30-v8+ #1535 SMP PREEMPT aarch64 GNU/Linux

Install tools: manual install

Other: Weave & MetalLB

Steps to reproduce
Follow manual install guide.
Expected behaviour
Having a running pod.
Actual behaviour
Pod crash and reboot with error message : Back-off restarting failed container

Hey @BhasherBEL, thanks for opening the issue!
What's happening here is that the admission controller that runs before the container initializes is trying to reach out to the CA to get the provisioner information, but the request is failing. We believe this could happen for one of a couple reasons:

Your step-ca instance is misconfigured and not responding to requests. Are there logs for step-ca that we could look at?
There's a DNS resolution issue where your container is not able to resolve the address of the CA. Maybe there are some rules coming from Weave / MetalLB that are preventing this?

We're reasonably sure it's not a bug, which would indicate a configuration issue. Our best guesses are the two above. Let us know if you've looked at those and still can't find the smoking gun.

Thank you for your answer and your propositions.

I tried to find as more logs I can and didn't find more. Where can I look for more logs ?
I think it's not DNS related, as I cannot contact the CA even with IP. And if I use dig to resolve the CA domain in the container is able, the cluster give the right answer.

Thank's !

Hey @BhasherBEL, depending on how you've deployed autocert, there will be a step-ca pod running in the cluster that you can tail for logs the same way you would any other pod (kubectl log ...). The namespace the pod is in will depend on exactly how you've deployed, so unfortunately you'll have to look around.


Training data Overlap

I am wondering that whether the training data of GPT-2 and ECHR/Enron overlap?

This question can't be answered conclusively because GPT-2 has been trained on the WebText dataset, which isn't publicly available.
It's possible that some ECHR and Enron data made their way into WebText. This is why when we analyze the leakage of models fine-tuned from GPT-2, we discount baseline leakage by ignoring any PII that would be leaked by the base GPT-2 model (see Section III.D in the paper for more details).


Only Include RP paritcipants in tags

It seems to be including those who just idle chatter as character tags in an RP as well, instead of only those that are an of the emote class

Nevermind Was a parser issue.


Canvas renderer mouseover event precedence is incorrect when features have overlapping pixels

How to reproduce

Leaflet version I'm using: 1.0.1
Browser I'm using: Chrome
OS/Platform I'm using: Windows 10

What behaviour I'm expecting and which behaviour I'm seeing
I expect that when two features render with overlapping pixels (which does not necessarily mean overlapping geometries) the feature that renders on top will be the only feature to receive mouseover events. The default SVG renderer handles overlapping features in this way. The canvas renderer triggers mouseover events on all layers that contain the mouseover point. It's a bit hard to put into words so for the sake of brevity here are two gifs
SVG (expected):

Canvas: (unexpected)

I believe that this was introduced (or at least made more apparent) by https://github.com/Leaflet/Leaflet/commit/609a79279272c88f1089bc2119d309b18c169110 which removes the break statement.
Minimal example reproducing the issue

A jsfiddle with a very simple example: http://jsfiddle.net/jcollin6/6k05szap/7/

Possible solution
I would be willing to put up a PR for this but I don't know how. I tested these changes by directly modifying my local copy of leaflet.
	_handleMouseHover: function(e, point) {
	    var id, layer, drawnLayerKeys;
            // reverse the keys so that we check layers from the top down
	    drawnLayerKeys = Object.keys(this._drawnLayers).concat().reverse();
	    for (var i = 0; i < drawnLayerKeys.length; i++) {
	        id = drawnLayerKeys[i];
	        layer = this._drawnLayers[id];
	        if (layer.options.interactive && layer._containsPoint(point)) {
	            L.DomUtil.addClass(this._container, 'leaflet-interactive'); // change cursor
	            if (this._hoveredLayer && (this._hoveredLayer._leaflet_id.toString() !== id.toString())) {
                        // If we find a match but another layer is already 'hovered'
                        // then trigger mouseout on that layer
	                this._fireEvent([this._hoveredLayer], e, 'mouseout');
	            }
	            this._fireEvent([layer], e, 'mouseover');
	            this._hoveredLayer = layer;
                   // MUST break so that lower layer mouseover events are not triggered
	            break;
	        }
	    }

	    if (this._hoveredLayer) {
	        this._fireEvent([this._hoveredLayer], e);
	    }
	}

Looks like click events have a similar event propagation/precedence issue.

I recalled @perliedman working on the canvas path event firing in https://github.com/Leaflet/Leaflet/pull/5033 recently, so I must ask @jbccollins to test if this bug is reproducible using the latest master branch code.
(Hint: https://leafletjs-cdn.s3.amazonaws.com/content/leaflet/master/leaflet-src.js and https://leafletjs-cdn.s3.amazonaws.com/content/leaflet/master/leaflet.css)

Yes, this sounds much like what was fixed in #5033, and related to #5028 and #4495. Please test with master, hopefully already fixed.

@IvanSanchez @perliedman Here is an updated fiddle with the js and css you provided. One of the bugs is fixed but other bugs still exists. https://jsfiddle.net/jcollin6/5ps5c43f/

Click events on the overlapping features still trigger clicks on both
The mouseout event is never triggered on the bottom feature when moving the cursor from the bottom feature to the top feature.

_handleMouseHover: function (e, point) {
            var id, layer;
            for (id in this._drawnLayers) {
                layer = this._drawnLayers[id];
                if (layer.options.interactive && layer._containsPoint(point)) {
                    L.DomUtil.addClass(this._container, 'leaflet-interactive'); // change cursor
                    if (this._hoveredLayer && this._hoveredLayer !== layer) {
                        this._fireEvent([this._hoveredLayer], e, 'mouseout');
                    }
                    this._fireEvent([layer], e, 'mouseover');
                    this._hoveredLayer = layer;
                }
            }

            if (this._hoveredLayer) {
                this._fireEvent([this._hoveredLayer], e);
            }
        }

This is what i've been  using since https://github.com/Leaflet/Leaflet/issues/4495 , it's not great since it keeps firing the mouseout and mouseover events but at least in my app it's working because it's firing the mouseout events that really needed.
https://playground-leaflet.rhcloud.com/rix/edit?html,js,console,output

@perliedman @IvanSanchez Thanks for the quick turnaround on this guys! The hovering in my fiddle works great now!


graphics and animation? actually though, it would be really cool

Created by mattb (Matt B)

Proposed implementation:
Move to an event-based architecture.  Different rendering engines (plain-text / graphics) handle each event differently.  Requires significant refactoring.

Closed by eric (Eric Fields)


GNOME 45 Port

Closes #401
Folder Open, No Files Found:

Folder Open, With Files, No Selection:

Folder Open, With Files, Selection:

Folder Open, With Files, Selection, Sidebar Collapsed:

The sidebar doesn't seem to collapse properly on shrinking the window

The sidebar doesn't seem to collapse properly on shrinking the window due to a missing minimum width (width-request)

The sidebar has:
sidebar: Gtk.Box {
              width-request: 400;

@DaPigGuy I realized what I was doing wrong...fixed in latest commit


capturePage can't work with atom-shell 2.22.1+

when i update atom-shell to the newer version , the old code couldn't to work correctly :
mainWindow.capturePage(function(imgBuf){ ... //imgBuf is not correct buffer, it's length is undefined });

From v0.21.3 capturePage returns NativeImage instance instead of Buffer.

er... the api docs haven't update...

@dygg Sorry I forgot to update the docs, it is updated now.


Add survey to front page

During launch period, include link to survey on front page of the oneclimate portal so we can get feedback.

This was really easy and it's done but check it out and let me know if you want to change text, size etc.

Nice, the white space makes it very easy to notice even though the font is quite small - I think this is fine. Thanks and well done! That was quick!

I selected a h4 header bu I can do it same size as the advanced search "h3" easily

NB I changed the title of the survey because it mentioned feedback from the clex workshop

I don't see the survey. Guess it was taken down? So we can close this?


Logistic Regression

It would include implementation as follows :

Using Scikit-Learn
Without Scikit-Learn in Python

Sorry but this algorithm has been implemented in Python but yet to be done in Java and C.
Would you like to implement it in Java & C

I would like to  implement in C and java please assign it to me under ssoc'23

Assigned!
@Khushi-74 : C & Java

@Kumar-laxmi Would you please give more clarification regarding the implementation what all should it include

@Khushi-74  What is your update on this?

I have the code but can you clarify what all I have to add in this like comments explanation


Support inputevent listener for all elements

Fixes #548
Fixes #382

Looks great, thanks!!

bors r+


vault-unsealer takes too long to unseal

Hi
I am running vault in https, and consul in https too.
the vault-unsealer runs with the env var VAULT_CACERT which point to the ca.pem that was used for the certs of vault and consul.
this is not seems like an https issue.
there are 5 keys and 3 thresholds.
it took about 10 minutes to fully unseal.
built from master (made my own version 0.2.1)
vault-unsealer version: 0.2.1 builddate: 2018-01-18T06:30:40Z commit: 69f54778e8acea1586bdfb729e2bad74ff295218
also note it's looking for vault-unseal-5 which does not exist since the keys are 0 based from 0-4
here's the log file
kubectl logs  vault-unsealer-5fb8f99ff9-45lqz -f
time="2018-01-29T21:11:50Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:11:50Z" level=info msg="vault sealed: true"
time="2018-01-29T21:11:51Z" level=error msg="error unsealing vault: unable to get key 'vault-unseal-5': key 'vault-unseal-5' not found"
time="2018-01-29T21:12:21Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:12:21Z" level=info msg="vault sealed: true"
time="2018-01-29T21:12:21Z" level=info msg="successfully unsealed vault"
time="2018-01-29T21:12:51Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:12:51Z" level=info msg="vault sealed: true"
time="2018-01-29T21:12:51Z" level=info msg="successfully unsealed vault"
time="2018-01-29T21:13:21Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:13:21Z" level=info msg="vault sealed: true"
time="2018-01-29T21:13:21Z" level=info msg="successfully unsealed vault"
time="2018-01-29T21:13:51Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:13:51Z" level=info msg="vault sealed: true"
time="2018-01-29T21:13:51Z" level=info msg="successfully unsealed vault"
time="2018-01-29T21:14:21Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:14:22Z" level=info msg="vault sealed: false"
time="2018-01-29T21:14:52Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:14:52Z" level=info msg="vault sealed: true"
time="2018-01-29T21:14:52Z" level=info msg="successfully unsealed vault"
time="2018-01-29T21:15:22Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:15:22Z" level=info msg="vault sealed: true"
time="2018-01-29T21:15:22Z" level=info msg="successfully unsealed vault"
time="2018-01-29T21:15:52Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:15:52Z" level=info msg="vault sealed: false"
time="2018-01-29T21:16:22Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:16:22Z" level=info msg="vault sealed: false"
time="2018-01-29T21:16:52Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:16:52Z" level=info msg="vault sealed: false"
time="2018-01-29T21:17:22Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:17:22Z" level=info msg="vault sealed: false"
time="2018-01-29T21:17:52Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:17:52Z" level=info msg="vault sealed: false"
time="2018-01-29T21:18:22Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:18:22Z" level=info msg="vault sealed: false"
time="2018-01-29T21:18:52Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:18:52Z" level=info msg="vault sealed: false"
time="2018-01-29T21:19:22Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:19:23Z" level=info msg="vault sealed: false"
time="2018-01-29T21:19:53Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:19:53Z" level=info msg="vault sealed: false"
time="2018-01-29T21:20:23Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:20:23Z" level=info msg="vault sealed: false"
time="2018-01-29T21:20:53Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:20:53Z" level=info msg="vault sealed: true"
time="2018-01-29T21:20:53Z" level=info msg="successfully unsealed vault"
time="2018-01-29T21:21:23Z" level=info msg="checking if vault is sealed..."
time="2018-01-29T21:21:23Z" level=info msg="vault sealed: false"

The --unseal-period flag is fixed in https://github.com/jetstack/vault-unsealer/pull/15

Thanks!

It's not actually closed yet since the MR hasn't gone through yet. Waiting on @munnerz to get a chance for a look


Rerun initialization items if service worker installation and activation triggered

I think there is a bug where checking the existing session or automatic start fails if the service worker was just installed and activated.
If we hit the activation event we may need a refresh or manually run the event when DOM content is loaded

We have a await navigator.serviceWorker.ready but it doesn't seem to work as I'm expecting: https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/ready
The php-wasm demo checks if the controller is available https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/controller
setTimeout(() => navigator.serviceWorker.controller || window.location.reload(), 350);

This quirk can be replicated with a force refresh.

This seems like a good solution: https://stackoverflow.com/a/62596701/1949744
navigator.serviceWorker.getRegistration().then(function(reg) {
  // There's an active SW, but no controller for this tab.
  if (reg.active && !navigator.serviceWorker.controller) {
    // Perform a soft reload to load everything from the SW and get
    // a consistent set of resources.
    window.location.reload();
  }
});

fixed by #105


indicator on number of occurrences in protected areas

Another very interesting indicator that we did not touch upon yet because of time constraints, is the proportion of occurrences of an alien species in protected areas. This is imo a very important one that can directly inform risk assessment but also risk management evaluations.
Ideally, this is a geographic subset of the weighted trend, but we need not make things too complicated. So, can we, based on the Area of Occupancy we already have, do an intersect with the N2000 network for Belgium (the official delimitation is on our gis server but probably best to take the one on EEA website)? It could be reported per year (e.g. since 2004, when Europe agreed on the Belgian N2000 areas) which is more interesting internationally and for other countries.

Indeed, I don't think we really need gis server for it to have an estimate of it.
We have number of occurrences per species/square (1kmx1km)/year.
If we know which squares include the protected areas and which squares are included in the protected areas we can have max and min and so we can calculate mean and error.
The only work to do it is to define which squares of EEA include the protected areas or are included in it.
@timadriaens : where can I find the shapefile?

Since protected areas in Flanders are so small, we might have to work with raw occurrences rather than 1x1km squares. Not sure how to take the point-radius uncertainty into account though.

Because the 1x1 data already takes into account uncertainty I would use that.
The indicator's name might be Invasive Species in the vicinity of protected areas.
Such an indicator is never going to replace a groundtruthing survey, but it would still be a good indicator.

Ok, that makes sense and it's less work too.

I can simply do a "are completely within" select of utm1 squares in arcmap for now, but for the workflow, probably it's better to work towards something that would allow including other geo-layers

hmmm, so apparently finding a shapefile of Natura2000 in Belgium is cumbersome (not on EEA website, not on inspire dataportal and not on any belgian portal so it seems). It looks like we are going to have to stitch Fl, BR and Wal. We have done that already for another exercice but the shape is not perfect and as said, we probably want a procedure that is repeatable for other countries. I did find a layer of all Natura2000 in Europe here (750Mb) so we use this one and provide a select on country @damianooldoni ? I'll check this file first.

I would select by country as Tim suggested rather than stitching shapefiles
together.
On Tue, Jul 2, 2019 at 10:27 AM Tim Adriaens<EMAIL_ADDRESS>wrote:

hmmm, so apparently finding a shapefile of Natura2000 in Belgium is
cumbersome (not on EEA website, not on inspire dataportal and not on any
belgian portal so it seems). It looks like we are going to have to stitch
Fl, BR and Wal. We have done that already for another exercice but the
shape is not perfect and as said, we probably want a procedure that is
repeatable for other countries. I did find a layer of all Natura2000 in
Europe here
https://www.eea.europa.eu/data-and-maps/data/natura-10/natura-2000-spatial-data/natura-2000-shapefile-1
(750Mb) so we use this one and provide a select on country @damianooldoni
https://github.com/damianooldoni ? I'll check this file first.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/trias-project/indicators/issues/54?email_source=notifications&email_token=AC4KXBQQIVQH3YBFIZPK7I3P5MGOZA5CNFSM4H33WBIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZAP2TI#issuecomment-507575629,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC4KXBQ5DCKMHNSNP5KR7ZDP5MGOZANCNFSM4H33WBIA
.

--
Dr. Amy J.S. Davis
Data-driven solutions to invasive species and biodiversity conservation
Terrestrial Ecology Unit
Department of Biology
Ghent University
K. L. Ledeganckstraat 35
B-9000 Ghent
Belgium
http://amyjsdavis.com

Updated Maps/data should be accessible through EU N2000 reporting tool for Member States. People able to do it in WL are currently on holiday but I guess you can ask it to INBO people involved in/responsible for N2000 reporting.

Further info from the DEMNA cartographers here. It seems for WL, an aggregated N2000 layer is available at DEMNA. This WL layer could normally be used by TrIAS, but isn't open as it depends on a long public consultation process.
On the EEA, there is a GIS data shapefile for whole EU including all BE : [https://www.eea.europa.eu/data-and-maps/data/natura-1#tab-gis-data]
According to colleagues here, N2000 area's delimitation do not seem to have changed from then.

Thanks @SoVDH : from your link I see that it is an archived version. However, there is the link to download the updated version: https://www.eea.europa.eu/data-and-maps/data/natura-10. I will give a look on it.

@SoVDH  That is the layer I was talking about and we are checking whether it is ok by comparing it with the one our gis team produced. We also need the marine part on it.

Checked and good for use, the one on INBOs gis server is the same but just a clip for Belgium. In this layer (in ETRS 1989 LAEA projection as inspire requires), in the attributes table we can:

select on member state 'BE' (that way other countries could use the pipeline and select on theirs?)
select on area type A (Bird's Directive), B (Habitat's Directive) or C (both). In WAL most areas have both designations.

Most people when they refer to Natura2000 actually refer to areas of the Habitat's directive (in which case we would need to select on B + C). Alternatively, we could consider N2000 as a whole and present the indicator for Habitat and Bird directive areas separately. What do you think @damianooldoni @SoVDH ? Looking at the map, this could make a big difference for the marine.
@damianooldoni do you want us to make an overlay with utm1 and calculate %surface area overlap, we can then decide on a cut-off level (e.g. at least 80% overlap) to assign 1km utm squares to natura2000 areas?

I would go for the one including all sites so (Habitats + Birds) merged if I understand well.

We can do both SACs and SPAs, but for me they are a bit different for various reasons. A few considerations:

Brussels only has SACs
Wallonia hardly has any SPAs that are not coinciding with SACs
including SPAs in the marine adds a lot to the total protected area there
The presence of non-natives is policy-wise much more impactful in SACs through the conservation status assessments (Art 17) which include criteria on non-natives (presence and cover) e.g. good conservation status of white dunes requires a cover of <1% of Senecio inaequidens, Corispermum leptopterum or Conyza canadensis
For future refining of this indicator one could envisage the same indicator at the level of Annex I habitats themselves of which maps also exist (e.g. the yearly occupancy of Senecio inaequidens in white dunes)

So I suggest when we set up this indicator we take the effort of calculating occurrences in 1. only SAC (Habitat's directive areas), 2. only SPA (Bird Directive areas) and 3. all Natura2000 (this is not simply the sum as they overlap), because if we merge them now it will be difficult afterwards to split them up. We can still decide to only show Natura2000 as a whole. As N2000 is quite static since 2013 I don't think this will pose any problems.

Ok. My 'merging' I rather meant having both onboard and not dropping one category.
Your suggestion is fine with me

in case you ever have to find inspire-proof belgian maps online (none of my colleagues were aware) these are useful:

http://inspire-geoportal.ec.europa.eu/
https://www.geo.be/#!/home?l=nl

The intersection of EEA 1x1km reference grid and Natura2000 protected area is ready and it is saved in this file in /data/output/intersect_EEA_ref_grid_protected_areas.tsv.
As discussed with @ToonVanDaele and @timadriaens , this file assesses which cells intersect with any protected area (natura2000, SPA and habitat) by means of TRUE or FALSE values as shown in example here below:

CELLCODE
EOFORIGIN
NOFORIGIN
geometry
natura2000
spa
habitat

1kmE3768N3188
...
...
...
FALSE
FALSE
FALSE

1kmE3850N3136
...
...
...
TRUE
FALSE
TRUE

1kmE3850N3146
...
...
...
TRUE
TRUE
FALSE

The pipeline to generate the file is a Rmd file: ./src/_define_overlay_grid_belgium_with_protected_areas.Rmd.

This is very nice! Works fine using read.table with sep = "\t". I'll include this in the analysis ASAP.

I close this issue as it has been solved. We use cells and obs in protected areas in the workflow. Any 1x1km cell which intersects any protected area is  taken into account. Results of the model on this subset of occurrences/cells is used in ranking as presence in protected areas is more important than presence outside.


Fix handler for multiple calls of -[FIRInstanceID instanceIDWithHandler:] (#2445)

This is a fix for #2445:

-[FIRInstanceID instanceIDWithHandler:] accumulate handlers while there is ongoing request to perform all of them on completion

@chliangGoogle Thank you for the attentive review! The logic looks to me a bit difficult to follow with the current implementation. E.g. defaultTokenWithHandler: method currently is responsible for 3 separate things:

Fetching the token itself
Retry
Merge token requests
As I mentioned, I would like to discuss possible ways to improve the code.


Upgrade to LiveView 1.0

Summary
Updates LiveView to 1.0, including updates to necessary dependencies. Also makes use of the more streamlined HEEx syntax where detected by the formatter.

Very nice!
There have been a couple of other changes that need fixing. Please allow me to make changes to the PR.

I've integrated the PR in #235


Bug 2319238:[release-4.17] add icon in csv spec to conform to build pipelines

manual cherry-pick of #43

/bugzilla refresh


Add fromJson and toJson

The first thing I always need to do when using argonaut in a project is to write functions   fromJson function which composes parseJson and decodeJson and toJson composing encodeJson and stringify:
fromJson :: forall t. DecodeJson t => String -> Either JsonDecodeError t
fromJson = parseJson >=> decodeJson

toJson :: forall t. EncodeJson t => t -> String
toJson = encodeJson >>> stringify

So why not add them to argonaut?  They could also be named parseAndDecode/ encodeAndStringify or sth else, I don't really mind. Though I find fromJson and toJson just nicely minimalistic.
I have created a pr for it in #109 .
Update:
changed type variable from json to t in the first case to avoid confusion.

fromJson that gets String and toJson that outputs String, this seems to be a bit misleading naming.

I think it is only misleading if you think in terms of Argonaut where you have this intermediate Json type.
If you are coming from JS it makes perfect sense: fromJson  converts from Json (which is a string) to an object and toJson converts an object to a Json (string). The JS equivalents would be JSON.parse and JSON.stringify()but unfortunately these are already taken.

I also think that such helpers are needed to be supplied with the library just to shortcut parseJson >=> decodeJson, one can do it in its code if one wants the shortcut.


[NextJS] REST Layout service ip resolving

Should resolve GeoIP / tracking issues when using REST Layout Service together with next application running in containerized environment.

[x] This PR follows the Contribution Guide
[ ] Changelog updated

Description / Motivation
When the REST Layout service is called from the Next application, when running containerized (instead of Vercel or other SWA environments) the x-forwarded-ip header should be forwarded instead of the socket remote address which can be belong to a load balancer. Also replaced connection for socket as its deprecated since v16.
Testing Details

The solution should still be tested on other environments so it does not break functionality there.

[x] Tested on local Development with traefik / docker.
[ ] Tested on Vercel
[ ] Test with Azure SWA
[ ] Tested on AKS / ingress container

Types of changes

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

@mathijs-b2m Thanks for your report and contribution! I've created a ticket with all the details in our internal backlog to review and merge PR.


add validate resource move

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[ ] The title of the PR is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[ ] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[ ] If applicable, the PR references the bug/issue that it fixes.
[ ] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[ ] I have read the contribution guidelines.
[ ] My spec meets the review criteria:

[ ] The spec conforms to the Swagger 2.0 specification.
[ ] The spec follows the guidelines described in the Swagger checklist document.
[ ] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

@balajikris /cc @tfitzmac
LGTM.. I notice one linter warnings/errors that looks like it would be the new one:
{
  "type": "Warning",
  "code": "OperationIdNounVerb",
  "message": "Per the Noun_Verb convention for Operation Ids, the noun 'Resources' should not appear after the underscore. Note: If you have already shipped an SDK on top of this spec, fixing this warning may introduce a breaking change.",
  "id": "R1001",
  "validationCategory": "SDKViolation",
  "providerNamespace": null,
  "resourceType": null,
  "sources": [
    "file:///home/travis/build/Azure/azure-rest-api-specs/specification/resources/resource-manager/Microsoft.Resources/2017-05-10/resources.json:972:8 ($.paths[\"/subscriptions/{subscriptionId}/resourceGroups/{sourceResourceGroupName}/validateMoveResources\"].post.operationId)"
  ]
}

which I interpret to mean 'call it "Resources_ValidateMove" instead of "Resources_ValidateMoveResources"' -
However, the proposed naming seems consistent with ' "operationId": "Resources_MoveResources",' of resource move...
What is more important, internal consistency, or fixing the warning?

@TimLovellSmith -- thanks for taking a look :)
In response to your question, I view consistency as a desirable property among all services, than being constrained to each service. I'd prefer to do it right the first time than introduce a breaking change later. With that said, the change looks good to me as well. I still need to run some tools on the PR before I sign off.

@tfitzmac - couple of things here.

The linter bot reports 47 errors (all existing and none newly added) on this spec, is there a plan or a work-item to address these?
regarding the 1 warning that's newly introduced, I've left my feedback above. would you be willing to fix the new warning now versus fixing it at a later stage as a bulk update?

@balajikris - We have plan to fix the issues for existing APIs in [Ca]. We wont fix them at this time.
As far as the naming is concerned, I think its fine, although I like Resources_ValidateMove better.

No modification for AutorestCI/azure-sdk-for-node

 https://github.com/Azure/azure-sdk-for-python/pull/1334

 https://github.com/Azure/azure-sdk-for-ruby/pull/869


Out-of-the-box tor hidden service setup

Could be done quite easily as part of the docker image. A bit more tricky to integrate into the Rust daemon itself, but should be doable too.

Actually, seems pretty easily doable as part of the Rust daemon with libtor (at least for Linux -- Windows and macOS support is coming soon™)

Some WIP in the onion branch:
https://github.com/shesek/bwt/commit/f512201eb93f4a895d42d043615e37ecfe9c5e54


Warning C4114 in MSVC

Description
TEST_CASE_CLASS will expand to inline const static const int
This will be a c4114 warning in msvc.
Extra information

doctest version: v2.4.6
Operating System: Windows 10
Compiler+version: VS2019 16.9.0

Thanks! fixed in dev branch


[Deploy] The Lounge

Service
The Lounge - The self-hosted web IRC client
Link to your repository
The recipie can be found here.

Deployed, thanks for your contribution.


Added Light and Dark mode

Solving Issue #11

There are many errors.

I cannot find button on anywhere on the page.
If I manually call the function toggleMode(), nothing happens.


Jesse: Watch cracked.tools

Jesse requests the watch of the watch_keyword cracked\.tools. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

cracked\.tools has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Nisse Engström in Charcoal HQ


Parsing an attribute

The documentation of parsing an attribute feels incomplete, and rather confusing. I specifically want to inject a new attribute  constructed with quote! into the vector of attributes I have already parsed from the input to the macro.
Attribute's documentation documents how to convert a ParseStream to an Attribute, and that seems straightforward and makes sense. However, once I click through to ParseStream and ParseBuffers documentation, it is very clear that there is no public way to construct this type.
I can't find any documentation how I am supposed to convert from proc_macro2::TokenStream to a ParseStream in order to apply .call(Attribute::parse_outer).
EDIT: I guess I just have to write my own custom Parse type which will contain a Vec<Attribute>? This seems very baroque.

I don't completely follow what you are doing but it sounds like the thing you want is:
f.attrs.push(parse_quote!(#[new_attr]));

Playground: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=c686a1aecdc0800b597d4ed2483e305a

Once I click through to ParseStream and ParseBuffers documentation, it is very clear that there is no public way to construct this type. I can't find any documentation how I am supposed to convert from proc_macro2::TokenStream to a ParseStream in order to apply .call(Attribute::parse_outer).

The syn::parse documentation (which all the other pages refer to) is where this is covered and it has Attribute as one of the examples. https://docs.rs/syn/1.0.38/syn/parse/index.html#the-parser-trait Basically: Attribute::parse_outer.parse2(tokens). The ParseBuffer documentation points to that where it covers how to call parser functions: https://docs.rs/syn/1.0.38/syn/parse/struct.ParseBuffer.html#calling-a-parser-function

Why does this work:
``rust
let _: Attribute = parse_quote![#attr]))

but this does not?

```rust
let _: Attribute = syn::parse2(quote!(#[attr])).unwrap()

This is what I tried and got the error that Attribute does not implement Parse, which led me down the rabbit hole. It was not documented redundantly enough that functions implement Parser and have a parse method (for example, nowhere in Attribute's documentation that emphasizes the parse_outer function is that demonstrated); that's quite a surprising API and it would be helpful to highlight it more.

Attribute is one of the special cases for parse_quote! here: https://docs.rs/syn/1.0.38/syn/macro.parse_quote.html#special-cases. The normal Parse trait isn't used as usually when parsing you'll want to distinguish between wanting to parse an inner or outer attribute.

Labeling to make sure this gets covered in the Attribute docs.


Ionicons dependency and ios7 prefixes

Which Ionicons dependency do we use and shouldn't we get rid of the -ios7- prefix in favour of -ios-?
In bower I see "ionicons": "~2.0.1" as a dependency but when I check I only see the ionicons dependency from the ionic library being used, which is version 1.* and still has the -ios7- prefixes in there.

I believe this is also one of the notes by our reviewers.

I'm pretty sure I switched the icons to the new ones. We include all new ionicons in Sass.

Wauw. I was probably smoking. This is not an issue at all.


Cow: Watch eu-meds.co.uk

Cow requests the watch of the watch_keyword eu-meds\.co\.uk. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

eu-meds\.co\.uk has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Convert visibilityStore/manager to use internal types

#3612

Coverage increased (+0.02%) to 62.612% when pulling<PHONE_NUMBER>8544a2e5153a1e24d3662d5ba73bb8 on anish531213:aanish/visibilityInternalTypes into d063f27a66e99712879116b5cb46a08271798de6 on uber:master.


Fix display of formula in documentation

Codecov Report
Patch coverage has no change and project coverage change: -5.50% :warning:

Comparison is base (e8e5467) 77.61% compared to head (7ca723f) 72.12%.
Report is 3 commits behind head on main.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1015      +/-   ##
==========================================
- Coverage   77.61%   72.12%   -5.50%
==========================================
  Files          19       19
  Lines        8878     8416     -462
==========================================
- Hits         6891     6070     -821
- Misses       1987     2346     +359

see 15 files with indirect coverage changes

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


Lightsource ray generation -> GPU

At this point, we should first determine how much benefit we could gain from this. As far as I know, ray generation only takes up a little time in the tracing process and therefore does not warrant the effort for a significant refactor of the code base.
We could revisit this at a later time should this change.

Moved to #313


[BUG]Title text leaks between 2 graphs on the same page

Hi,
I'm creating a web page that shows two graphs plotting 3 temperature lines in one and 3 humidity lines in the second. The title from the second appears in the first graph.
Expected Behavior

That the correct titles appear in their respective graphs.
Current Behavior

When drawing the second graph the title, humidity, it overwrites the title in the first graph, temperature .
This happens in Firefox Quantum, Chrome and IE11.  Interesting if the page is loaded in Firefox in debug mode and the page is paused between loading the first and second graphs the titles are correct.
Possible Solution

Steps to Reproduce (for bugs)

I've created a working example that reproducers the problem and have loaded it here
Context

Environment

Chart.js version: 2.7.1
jQuery.js version: v3.3.1
Browser name and version: Firefox Quantum58.0.1 (64-bit)
Link to your project: Example Code

Thanks in advance,
Paul.

@pbdy I believe the issue is here: https://github.com/pbdy/Chart.js-Bug-Report/blob/master/js/exampleData.js#L10
Because that line is missing var on the variable declaration, it becomes a global and the same object is used for two different charts

Hi Evert,
Thanks for your response.  I tried you suggestion and it made no difference. I also tried adding var to the declaration of ChartName, ctx and LineGraph and that also made no difference.

Yes, this worked. PageDescription was the only change I had to make to fix it on my 'production' site.  I'll implement 'var' on the other variables as well just to be sure.
Thanks for your help.


Update 2021-11-20-elections.md

Fix links not showing properly on the webpage

Sorry, should have recognized the link issue in the first PR. 😕


not preserving the exec permission on zip extraction

If any compressed file had exec permission before compression, it will lose its permission on extraction.

zip blah.zip blah
rm blah
node -e "require('fs').createReadStream('./blah.zip').pipe(require('./unzip').Extract({ path: '.' }));"
ls -la blah
echo "Now, blah was supposed to have exec permission but it doesn't."

is this still open? any update? I really need the permissions to be kept. currently manually resetting permissions. again to each file. would like to have a clean solution.

@EvanOxfeld Is this issue resolved? Or is there any flag I can pass to unzip.extract in order to preserve the file permissions?


set_approval_for_all fails if NFTIdentifierMode is Hash

STR:

install the contract with NTFIdentifierMode::Hash and OwnerReverseLookupMode.NoLookup.
mint two tokens
call set_approval_for_all to add an operator

ER:

the call succeeds, and the operator can manage the tokens

AR:

the call fails with the error User error: 28, which means InvalidTokenIdentifier.

This happens because a bug here:
https://github.com/casper-ecosystem/cep-78-enhanced-nft/blob/568dd06707841906b13317d750d9b98cf9c41994/contract/src/utils.rs#L650
The loop should stop at current_number_of_minted_tokens -1.

Closed by #164


1.5.4 Release

Issue #, if available:
Description of changes:
Bug fixes (ebs-csi driver failure, karpenter SQS queue name mismatch)
CDK updated to 2.60.0
awslb controller and nginx charts upgraded
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/do-e2e-tests


don't suggest 'import exec from ...'

a) it's unclear what exec means here,
b) at least for me, that syntax generates a confusing error:
TS2306: File '/Users/nornagon/.../my-app/.../script.js' is not a module.

@evilebottnawi can we merge this?

:+1:


Pdf not displaying correctly .......

When i open pdf on button click it is not displayed in first attempt, blank activity is showing when i click on button.... need to go back and need to click again on button then pdf is displayed ...... please anyone have solution.....
Here are contents of my  MainActivity.java
package com.beqpapers.activities;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.beqpapers.R;
public class MainActivity extends AppCompatActivity {
Button b1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void btnOpen(View view){
    Intent i = new Intent(MainActivity.this, SecondActivity.class);
    startActivity(i);
}

}
SecondActivity.java
package com.beqpapers.activities;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.beqpapers.R;
import java.io.File;
import es.voghdev.pdfviewpager.library.asset.CopyAsset;
import es.voghdev.pdfviewpager.library.asset.CopyAssetThreadImpl;
public class SecondActivity extends AppCompatActivity {
final String[] sampleAssets = {"DWM_May_2016.pdf"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
    initSampleAssets();
}

private void initSampleAssets() {
    CopyAsset copyAsset = new CopyAssetThreadImpl(this, new Handler());
    for (String asset : sampleAssets) {
        copyAsset.copy(asset, new File(getCacheDir(), asset).getAbsolutePath());
    }
}

}
activity_second.xml

<es.voghdev.pdfviewpager.library.PDFViewPager
    android:id="@+id/pdfViewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:assetFileName="DWM_May_2016.pdf"/>

Please help me to resolve this issue.......

It seems that you are copying the PDF file and opening it at the same time. Try to copy it before opening it (for example in MainActivity, or Application class), then make sure the File exists before opening in SecondActivity

Thank you very much for your valuable feedback..... I solved this issue now.
Is there is any way to add scrollbar to pdf having more than one pages.......

Your question looks similar to #38. As I said there, ViewPager only supports one as far as I know. Gonna close this then. Hope you enjoy the lib!


Bump opentelemetry to v0.16.0

Signed-off-by: Pavel Kositsyn<EMAIL_ADDRESS>Which problem is this PR solving?
Updates opentelemetry dependency to new version.
Short description of the changes
Remove some of deprecated InitEmpty calls with IsNil checks.

Seems like Jaeger config file doesn't have any effect in opentelemetry agent. Is it an expected behaviour? See https://github.com/jaegertracing/jaeger/blob/4d75d3c56b667f3d11377643a2a141a48fe2f749/cmd/opentelemetry/cmd/agent/main.go#L53-L79
viper isn't used in cfgConfig.DefaultConfigFactory(v)

I see dependencies error for python3.9 in CIT Elasticsearch 5.x job

Seems like Jaeger config file doesn't have any effect in opentelemetry agent. Is it an expected behaviour? See

It is complex, but I believe it does actually load the config file properly.  Either way we are redoing configuration and I expect this to disappear.
Thank you for bringing up the concern!

Yeah, I must have missed something about config load. Can we fix python3.9 for jobs success?

Thanks @yurishkuro!


Web UI Improvements

New web UI under /web
Build & export to /webui-build
Tweak Dockerfile to bulid & export new webapp
Edit run.go to include all static web files

In the console, I notice
GET http://localhost:9235/locales/en/translation.json 404 (Not Found)

@joostjager Fixes pushed! I was unable to reproduce the Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received that you noticed. Perhaps it was fixed as a side effect of one of the other fixes?

Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received is still present on b8cc463d999b72cab4ceceb1f535ae1c7eee1459.
When I open the UI, the message appears after exactly 30 seconds. But only once. It doesn't keep re-appearing every 30 secs.

Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received is still present on b8cc463.
When I open the UI, the message appears after exactly 30 seconds. But only once. It doesn't keep re-appearing every 30 secs.

Interesting, I tried doing some other calls, and waiting for a few minutes but I don't have this message in the console. I Googled around a bit, and it seems some Chrome extensions may result in this message. Source: https://support.google.com/chrome/thread/2047906/unchecked-runtime-lasterror-the-message-port-closed-before-a-response-was-received?hl=en
Fortunately, it's harmless and not resulting from our code itself. So I would argue that it's not an issue that we need to resolve directly.

Awesome work @knowerlittle and @ofesci-nydig!! 🙌  🎉


Can pathfind through some blockers

In the point and click demo it is possible to navigate through walls that are exactly 1 square from the start either to the left, or a left diagonal.

Fake "Bugs"

Was only a bug with teh demo


Leverage type system to guarantee no Update & Temporal effects

Currently ConcreteEffect is a kind of effect that can hold invalid effects of the form Update[x] & Temporal[y]. We could introduce one more effect kind to avoid this invalid representation in the type system and that would potentially be worth the additional code because we would be able to remove some additional runtime checks. Suggested by Shon in https://github.com/informalsystems/tnt/pull/197#pullrequestreview-1112708155

I decided to move towards a more general approach than a stricter one like these in order to support new effects such as runs and nondet without a big overhead. So I'll close this.


documentation: Adapt Kubernetes RBAC to use metrics roles

Recommending proxying metrics requests to the Kubelet through the apiserver seems odd and cetainly doesn't scale. Instead we should be recommending to use RBAC on the kubelet as well.
@fabxc @grobie @tomwilkie

Is this still relevant?

Yes the changes here are still accurate.

@simonpasquier / @brancz Could you tag someone who can review this PR and get it merged?


US910020: Tomcat updated to 10.1.20

Ticket: https://internal.almoctane.com/ui/entity-navigation?p=131002/6001&entityType=work_item&id=910020

A developer build has not yet been created for this branch. Click here to go ahead and create the build...

CI Build Link:
http://sou-jenkins2.swinfra.net:8080/job/CAFapi/job/CAFapi~opensuse-tomcat-jre17-image~US910020~CI


Login delay before input works (Bazzite GNOME)

Describe the bug
After booting the system, when the Login screen shows up, there is a 5-10 second delay before the mouse or keyboard can be used to select the user and input the password.
The pointer is not visible during this delay, either.
What did you expect to happen?
Mouse and keyboard work as soon as GDM shows up; the user can be selected immediately.
Output of rpm-ostree status
No response
Hardware
No response
Extra information or context
This happened in a fresh rebase from vanilla Silverblue (soon after install). It did not occur before.
After rebasing to ghcr.io/ublue-os/silverblue-main:latest, the issue is gone.
Everything else in Bazzite was working perfectly.

This is a feature of Steam Input, same delay occurs during startup of steam on KDE and in SteamOS.

Thanks for your quick response. Is there a way I can change this on my system?

Thanks for your quick response. Is there a way I can change this on my system?
Edit: Strange, I saw an answer stating it was due to Steam Input, but I can't see it anymore. It disappeared.

Sorry about that, that was me. I had missed the part about this happening during login so it was not applicable to you.
I'm going to see if I can reproduce this and get back to you

It should be noted I'm not using a Steam Deck or a powerful gaming device, just a regular desktop PC.

I have this exact same problem with my laptop. Fresh Bazzite installation.


[SPARK-45850][BUILD] Upgrade oracle jdbc driver to <IP_ADDRESS>.09

What changes were proposed in this pull request?
The pr aims to upgrade oracle jdbc driver from com.oracle.database.jdbc:ojdbc8:<IP_ADDRESS> to com.oracle.database.jdbc:ojdbc11:<IP_ADDRESS>.09.
Why are the changes needed?
It is often found that Run Docker integration tests is interrupted due to OracleIntegrationSuite failure.
Several possible issues have been identified:

The oracle jdbc driver currently used in Spark is com.oracle.database.jdbc:ojdbc8, it not for use with JDK17.
https://www.oracle.com/database/technologies/maven-central-guide.html

The oracle server version used in our GA environment is also 23.3

After upgrade to com.oracle.database.jdbc:ojdbc11, I attempted to trigger Run Docker integration tests 6 times (trigger date distribution: day, night or weekend, etc.), and have all been successful for the first time.
https://github.com/panbingkun/spark/actions/runs/6760572538/job/18383757692
https://github.com/panbingkun/spark/actions/runs/6765163954/job/18399468066
https://github.com/panbingkun/spark/actions/runs/6778851101/job/18465823046
https://github.com/panbingkun/spark/actions/runs/6797719942/job/18480445904
https://github.com/panbingkun/spark/actions/runs/6804543746/job/18502353511
https://github.com/panbingkun/spark/actions/runs/6809925232/job/18521970051
So, I proposed upgrading this driver first and then continuing to observe the effect.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass GA.
Was this patch authored or co-authored using generative AI tooling?
No.

cc @dongjoon-hyun @HyukjinKwon @LuciferYang

Although this may seem somewhat magical, if it can truly solve the problem, I agree to proceed with the upgrade.

Although this may seem somewhat magical, if it can truly solve the problem, I agree to proceed with the upgrade.

I'm not sure if it will ultimately make OracleIntegrationSuite testing stable, but this version of the driver is more compatible with the JDK17 used by Spark and the Oracle Server version in the container. Maybe we can give it a try.

Although this may seem somewhat magical, if it can truly solve the problem, I agree to proceed with the upgrade.

I'm not sure if it will ultimately make OracleIntegrationSuite testing stable, but this version of the driver is more compatible with the JDK17 used by Spark and the Oracle Server version in the container. Maybe we can give it a try.

If then, please update the PR title by simply saying that Upgrade, @panbingkun .
We can merge this PR for that purpose.

Although this may seem somewhat magical, if it can truly solve the problem, I agree to proceed with the upgrade.

I'm not sure if it will ultimately make OracleIntegrationSuite testing stable, but this version of the driver is more compatible with the JDK17 used by Spark and the Oracle Server version in the container. Maybe we can give it a try.

If then, please update the PR title by simply saying that Upgrade, @panbingkun .
We can merge this PR for that Java purpose.

Done.

Merged to master. Thank you, @panbingkun and @LuciferYang .


Unable to delete the key when test completed [AzConfig]

After test completion, below key and values are still available in the configuration explorer which should be deleted once test execution completes.
Key= ~`!@#$^&()_+=[]{}|;"'<>./--1114869967
Value= value-~`!@#$^&()_+=[]{}|;"'<>./-

@Prince269090 do you have a repro that we can look at? Does the SDK throw an error?

This is an issue on the service side that they're planning to fix: https://github.com/Azure/AppConfiguration/issues/181
Once it is fixed, we should update our live tests to make sure they delete the special character settings at the end of the tests.
Thanks for finding this issue, @Prince269090, and for filing issues to track it!

Moving this to the backlog milestone, as the associated milestone date has passed.
@AlexanderSher:  Since you're the assigned engineer, would you be so kind as to help route this to the correct milestone and epic?

@AlexanderSher it looks like the associated issue on the service is resolved. Can we close this?

I've created the following test which I've run on existing AzConfig with several hundreds of previously created settings:
var connectionString = Recording.RequireVariableFromEnvironment("APPCONFIGURATION_CONNECTION_STRING");
var service = new ConfigurationClient(connectionString);
var selector = new SettingSelector {KeyFilter = "~`*"};

var settings = (await service.GetConfigurationSettingsAsync(selector).ToEnumerableAsync()).ToArray();

foreach (var setting in settings)
{
    await service.DeleteConfigurationSettingAsync(setting.Key);
}

var settingsAfterDelete = (await service.GetConfigurationSettingsAsync(selector).ToEnumerableAsync()).ToArray();

Assert.AreEqual(0, settingsAfterDelete.Length);

It has failed on the assert, but not on the DeleteConfigurationSettingAsync.

Found the error, it should be
await service.DeleteConfigurationSettingAsync(setting.Key, setting.Label);

@zhenlan, is it mandatory to provide label for the setting to be deleted?

I'm not sure about the API, but the service will only delete the key-value without a label if the label is not provided.
https://github.com/Azure/AppConfiguration/blob/master/docs/REST/kv.md#delete

Ok, that would require some changes in tests. @annelo-msft , why we don't raise an exception for the 204 status code?

Short answer: 204 is a success code.
Longer answer: There are considerations around concurrency here.  It's possible one client will delete the key and get a 200, and then another will try to delete it, but since it's already deleted, get a 204. This is a success condition, since the intention was that the key would be deleted and it already is.  The same could happen with a single client due to retries.

Ok, so then I just need to change the tests so that they validate the code. No product change needed.


[FEAT] Distinguish between logout redirect and auth token expiry redirect

:bulb: Feature request
Feature Name

Distinguish between logout redirect and auth token expiry redirect
Your Use Case

As an app dev, I'd like to be able to specify a different route for a user-initiated logout versus a token expiry.

To achieve this, you can specify different routes for user-initiated logout and token expiry redirects.

For user-initiated logout, you can define a specific route that takes the user to a designated page, such as the login page or the homepage. This route can be triggered when the user clicks on the logout button or performs a similar action.

For token expiry redirects, you can define a separate route that takes the user to the login page where they can generate a new authentication token. This route can be triggered when the system detects that the user's authentication token has expired due to inactivity or reaching a certain time limit.

By defining separate routes for these scenarios, you can provide a better user experience and ensure that your application behaves as intended.

closed by https://github.com/graycoreio/daffodil/pull/2387


Memory leak

Long, high load instances are eating more and more RAM as they run, as much as 4GB after several weeks at a few gigahash. This is possibly caused by:

Jobs not getting properly GCed. Likely a reference loop that Python cannot break.
Long connected peers keeping huge job mapping lists. Less likely.

@ericecook Is this still occuring? I don't believe we've had issues with this anymore.

@icook I'm unsure. We haven't had memory issues since moving the scheduler out to cron jobs

Ah, right. That should probably be documented in simplecoin_multi now that I think about it...
I'll go ahead and close this since it seems to be resolved by #98.


include the new metrics view in the profile definition

New selection for Metrics View in Profile Default Visualizations section

Closed due to merge with develop.


feat: add a bash file to start flask server

To start flask server for week 1
 ./start-server.sh week1
To start flask server for week 2
./start-server.sh week2
Would help people who do not remember flask commands to start server quickly

Thanks!


Allow setting a tag prefix manually

This PR enables users to manually specify a tag prefix, overriding the default tag prefix determination algorithm (the DTPDA, as it will henceforth be referred to as).
Before:

subdir="": tag prefix is v, e.g., v0.1.0
subdir="foo": tag prefix is foo-v, e.g., foo-v0.1.0

With this PR, there are additional options available through the tag_prefix input:

tag_prefix="" (default): as before
tag_prefix="bar": tag prefix is bar-v, e.g., bar-v0.1.0 (whatever the content of subdir)
tag_prefix="NO_PREFIX": tag prefix is v, e.g., v0.1.0 (whatever the content of subdir)

The main motivation is to allow users who have their Julia package in a subdirectory but want to tag their versions just as v0.1.0 and not as subdir-v0.1.0 to use TagBot (which is an awesome action, thanks a lot to all maintainers!). This should be a non-breaking change, since the DTPDA remains unchanged if the new action input tag_prefix is not set.
Resolves #278.
cc @bgeihe

bump Who would be the right person to do a (first) review for this PR - @christopher-dG?

Looks good at a glance, but would be good to get review from @IanButterworth

Thanks for the merge @IanButterworth! It would be great if you could also create a new tag (I don't think I can do this as a PR, or can I?), such that it is usable in our workflows.

Yeah. I've messaged @christopher-dG because there's more to it than a PR AFAIK but I don't know what that is

OK, great, thanks a lot!


build failure

In file included from threading/cperiodicexecutionthread.cpp:1:0:
threading/cperiodicexecutionthread.h:11:102: error: ‘function’ in namespace ‘std’ does not name a template type
iodicExecutionThread(unsigned int period_ms, const std::string& threadName, const std::function<void ()>& workload = std::function<void ()>());
^~~~~~~~
threading/cperiodicexecutionthread.h:11:110: error: expected ‘,’ or ‘...’ before ‘<’ token
cutionThread(unsigned int period_ms, const std::string& threadName, const std::function<void ()>& workload = std::function<void ()>());
^
In file included from threading/cperiodicexecutionthread.cpp:1:0:
threading/cperiodicexecutionthread.h:18:30: error: ‘function’ in namespace ‘std’ does not name a template type
void setWorkload(const std::function<void ()>& workload);
^~~~~~~~
threading/cperiodicexecutionthread.h:18:38: error: expected ‘,’ or ‘...’ before ‘<’ token
void setWorkload(const std::function<void ()>& workload);
^
threading/cperiodicexecutionthread.h:20:24: error: ‘function’ in namespace ‘std’ does not name a template type
void start(const std::function<void ()>& workload = std::function<void ()>());
^~~~~~~~
threading/cperiodicexecutionthread.h:20:32: error: expected ‘,’ or ‘...’ before ‘<’ token
void start(const std::function<void ()>& workload = std::function<void ()>());
^
threading/cperiodicexecutionthread.h:28:7: error: ‘function’ in namespace ‘std’ does not name a template type
std::function<void ()> _workload;
^~~~~~~~
threading/cperiodicexecutionthread.cpp:14:1: error: prototype for ‘CPeriodicExecutionThread::CPeriodicExecutionThread(unsigned int, const string&, const std::function<void()>&)’ does not match any in class ‘CPeriodicExecutionThread’
CPeriodicExecutionThread::CPeriodicExecutionThread(unsigned int period_ms, const std::string& threadName, const std::function<void()>& workload /= std::function<void ()>()/) :
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from threading/cperiodicexecutionthread.cpp:1:0:
threading/cperiodicexecutionthread.h:13:2: error: candidates are: CPeriodicExecutionThread::CPeriodicExecutionThread(const CPeriodicExecutionThread&)
CPeriodicExecutionThread(const CPeriodicExecutionThread&) = delete;
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from threading/cperiodicexecutionthread.cpp:1:0:
threading/cperiodicexecutionthread.h:11:11: error:                 CPeriodicExecutionThread::CPeriodicExecutionThread(unsigned int, const string&, int)
explicit CPeriodicExecutionThread(unsigned int period_ms, const std::string& threadName, const std::function<void ()>& workload = std::function<void ()>());
^~~~~~~~~~~~~~~~~~~~~~~~
threading/cperiodicexecutionthread.cpp:27:6: error: prototype for ‘void CPeriodicExecutionThread::setWorkload(const std::function<void()>&)’ does not match any in class ‘CPeriodicExecutionThread’
void CPeriodicExecutionThread::setWorkload(const std::function<void()>& workload)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from threading/cperiodicexecutionthread.cpp:1:0:
threading/cperiodicexecutionthread.h:18:7: error: candidate is: void CPeriodicExecutionThread::setWorkload(int)
void setWorkload(const std::function<void ()>& workload);
^~~~~~~~~~~
threading/cperiodicexecutionthread.cpp:35:6: error: prototype for ‘void CPeriodicExecutionThread::start(const std::function<void()>&)’ does not match any in class ‘CPeriodicExecutionThread’
void CPeriodicExecutionThread::start(const std::function<void()>& workload /= std::function<void ()>()/)
^~~~~~~~~~~~~~~~~~~~~~~~
In file included from threading/cperiodicexecutionthread.cpp:1:0:
threading/cperiodicexecutionthread.h:20:7: error: candidate is: void CPeriodicExecutionThread::start(int)
void start(const std::function<void ()>& workload = std::function<void ()>());
^~~~~
threading/cperiodicexecutionthread.cpp: In member function ‘void CPeriodicExecutionThread::threadFunc()’:
threading/cperiodicexecutionthread.cpp:60:7: error: ‘_workload’ was not declared in this scope
if (!_workload)
^~~~~~~~~
threading/cperiodicexecutionthread.cpp:60:7: note: suggested alternative: ‘setWorkload’
if (!_workload)
^~~~~~~~~
setWorkload
threading/cperiodicexecutionthread.cpp:67:3: error: ‘_workload’ was not declared in this scope
_workload();
^~~~~~~~~
threading/cperiodicexecutionthread.cpp:67:3: note: suggested alternative: ‘setWorkload’
_workload();
^~~~~~~~~
setWorkload
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
cc1plus: warning: unrecognized command line option ‘-Wno-local-type-template-args’
cc1plus: warning: unrecognized command line option ‘-Wno-c++11-extensions’

Which operating system? Which compiler?
Try adding #include <functional> to the top of cperiodicexecutionthread.h

Arch Linux.
gcc 7
On Jun 29, 2017 12:54 AM, "Violet Giraffe"<EMAIL_ADDRESS>wrote:

Which operating system? Which compiler?
Try adding #include  to the top of cperiodicexecutionthread.h
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/VioletGiraffe/file-commander/issues/157#issuecomment-311862173,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFD6iPEyqztcFry236vvP2G7PJV9CeB8ks5sIy37gaJpZM4OIv0j
.

Have you tried adding <functional>?

Yes, but now i get this
src/shell/cshell.cpp:101:33: error: ‘item’ was not declared in this scope
return QProcess::startDetached(item.fullAbsolutePath(), QStringList(), item.parentDirPath());
^~~~
src/shell/cshell.cpp:101:33: note: suggested alternative: ‘tm’
return QProcess::startDetached(item.fullAbsolutePath(), QStringList(), item.parentDirPath());
^~~~
tm
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’
cc1plus: warning: unrecognized command line option ‘-Wno-local-type-template-args’
cc1plus: warning: unrecognized command line option ‘-Wno-c++11-extensions’
make[1]: *** [Makefile:1315: ../build/release/core/cshell.o] Error 1
make[1]: Leaving directory '/home/solaraquarion/file-commander/file-commander-core'
make: *** [Makefile:134: sub-file-commander-core-make_first] Error 2

Fixed.


pythonPackages.flask-oldsessions: init at 0.10

Motivation for this change
Package flask-oldsessions.
Things done

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

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

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

Is there a reason for packaging this?
If the tests fail, maybe the whole package is incompatible with newer flask versions?

I don't think we should package flask packages in Nixpkgs. None of our software needs it, and it typically is a pain to maintain because of dependency incompatibilities.

Also, if you have multiple packages that relate to each other that you want to get in, then please open a single PR with multiple commits. Often that works better.

Is there a reason for packaging this?

Yes, it is a dependency of the sage notebook.

If the tests fail, maybe the whole package is incompatible with newer flask versions?

The sage notebook tests pass with it, so I don't think thats the case.

I don't think we should package flask packages in Nixpkgs. None of our software needs it, and it typically is a pain to maintain because of dependency incompatibilities.

There are already some flask packages and I'm packaging sagenb, which does depend on it.

Also, if you have multiple packages that relate to each other that you want to get in, then please open a single PR with multiple commits. Often that works better.

I'll keep that in mind for the future.

@timokau I suggest you create a sagenb overlay instead of trying to get these packages into Nixpkgs. I've checked the other PR's, and most packages haven't seen a release or commit in several years. Now, they may still be working, but without a passing test suite I don't think we should include this.

+1 for putting sage in an overlay
I think some of the C libraries that don't need patches from the sage team can still included in Nixpkgs without a problem.

Actually, should this overlay only contain sagenb or all of sage?

As an overlay it would be more effort to maintain, more effort to install and would not have the benefits of binary substitutions. I'd be disappointed if there is no way around it but I can't do anything against it of courrse.
I really don't see the big burden of these packages. If they fail to build, they can be disabled or removed. If thats still a problem, I can inline them into the sage expression and not expose them to the nixpkgs tree.

As an overlay it would be more effort to maintain

I don't see why.

would not have the benefits of binary substitutions

Most of the PRs consisting of C libraries were already merged anyway. These profit the most from binary substitution.
The more problematic packages seem to be related to sagenb. How important is sagenb for distributing a functional sage environment?

I don't see why [it would take more effort]

Because failures cause by changes in dependencies would no longer be caught at the PR introducing these changes (or shortly after), but just when somebody builds with the new nixpkgs. That makes it hard to find where the changes were introduced. Fixing all this would probably fall on me.

Most of the PRs consisting of C libraries were already merged anyway. These profit the most from binary substitution.

sagelib itself takes significant time to compile (in the realm of half an hour).

The more problematic packages seem to be related to sagenb. How important is sagenb for distributing a functional sage environment?

It would at leas need some doctest patching, because sagenb is expected by sagelib. I'm not sure if it would take more than that. But even just that would need to be maintained on updates and might introduce new uncaught bugs.

Because failures cause by changes in dependencies would no longer be caught at the PR introducing these changes

Those updating/modifying dependencies are also not going to make sure all dependents are going to work. If you need a package, you need to maintain it, but typically also put in some effort to guarantee the entire dependency tree builds. This especially is lacking with the Python packages which are also tightly connected.

@FRidh What's your opinion on inlining the rejected packages' expressions in the sagenb expression?
I think we should definitely first of all talk to upstream about whether they are willing the get rid of the outdated dependencies (flask-openid, flask-oldsessions and maybe flask-autoindex).

Those updating/modifying dependencies are also not going to make sure all dependents are going to work.

They usually should. But even if they don't, hydra will catch it shortly after.

If you need a package, you need to maintain it, but typically also put in some effort to guarantee the entire dependency tree builds. This especially is lacking with the Python packages which are also tightly connected.

I and hopefully others would maintain it in the nixpkgs tree. Maintaining it as an overlay would make that harder and I don't see it as a big advantage.

I think we should definitely first of all talk to upstream about whether they are willing the get rid of the outdated dependencies (flask-openid, flask-oldsessions and maybe flask-autoindex).

Agreed.

What's your opinion on inlining the rejected packages' expressions in the sagenb expression?

That is one possibility that could work. It's like an overlay but in-tree and as we do for other, though smaller, applications. First, though, I would like to see a branch with a functioning sage / sagenb. With one change at a time it is very hard to see how it will end up.

+1 for having a single branch/PR with all new packages
Brial and cypari2 look mostly fine as they are while the others require many sage-specific patches, so I'd say we can merge these two and you can put all other packages in a single branch.

I think we should definitely first of all talk to upstream about whether they are willing the get rid of the outdated dependencies (flask-openid, flask-oldsessions and maybe flask-autoindex).

I opened https://github.com/sagemath/sagenb/issues/440, I hope I described your concerns accurately.

First, though, I would like to see a branch with a functioning sage / sagenb. With one change at a time it is very hard to see how it will end up.

I'd prefer to first incrementally upstream all the non-controversial changes because

Many of them are useful with or without sage
Its easier to review
Its easier for me to polish the packages one-by-one
Easier to deal with merge conflicts
Big PRs tend to rot, especially in nixpkgs

I can then include the controversial ones (hopefully not many) in one PR together with sage itself if you prefer.

If you have further questions about Sage, there is a dedicated mailing list for packaging: https://groups.google.com/forum/#!forum/sage-packaging

Thanks for that pointer! I don't think this problem could have been solved by that mailing list however -- best case somebody has a patch that removes those dependencies, in which case that should probably be upstreamed anyways.


W-15161420 Editing Insights doc

Writer's Quality Checklist
Before merging your PR, did you:

[ ] Run spell checker
[ ] Run link checker to check for broken xrefs
[ ] Check for orphan files
[ ] Perform a local build and do a final visual check of your content, including checking for:

Broken images
Dead links
Correct rendering of partials if they are used in your content
Formatting issues, such as:

Misnumbered ordered lists (steps) or incorrectly nested unordered lists
Messed up tables
Proper indentation
Correct header levels

[ ] Receive final review and signoff from:

Technical SME
Product Manager
Editor or peer reviewer
Reporter, if this content is in response to a reported issue (internal or external feedback)

[ ] If applicable, verify that the software actually got released

replaced by https://github.com/mulesoft/docs-monitoring/pull/314
beta content here https://github.com/mulesoft/docs-monitoring/pull/272


LabelLite colors don't update on repaint

If you try to update the heatmap by calling paint() again, the LegendLite plugin doesn't refresh the colors

I just tested, and it does work.
What's the full paint() code you're using to refresh the colors ?

This is my entire Heatmap React component
import { type FunctionComponent, useEffect, useRef, useState } from 'react'
import CalHeatmap from 'cal-heatmap'
import CalendarLabel from 'cal-heatmap/plugins/CalendarLabel'
import Tooltip from 'cal-heatmap/plugins/Tooltip'
import LegendLite from 'cal-heatmap/plugins/LegendLite'
import { Button, Select } from 'react-daisyui'

export interface HeatmapPoint extends Record<string, string | number> {
  date: string
  value: number
}

export interface HeatmapProps {
  /** The id of the heatmap */
  id: string
  /** The data for days */
  data: HeatmapPoint[]
  /* The coloring domain */
  domain: number[]
  /** The function to display the tooltip */
  tooltipFunc?: (date: string, value: number, dayjsDate: ReturnType<CalHeatmap['extendDayjs']>) => string
  /**
   * The date to start at
   * @default Date January 1st of the current year
   */
  startDate?: Date
  /**
   * The number of months to show
   * @default 12
   */
  range?: number
  /** Hide the page buttons */
  hidePageButtons?: boolean
  /** Hide the legend */
  hideLegend?: boolean
  /** Hide the labels */
  hideLabels?: boolean
  /** Hide the scheme selector */
  hideSchemeSelector?: boolean
}

// WARN: This component possibly causes a minor memory leak. Nothing we can do about it (thanks, async React)
const Heatmap: FunctionComponent<HeatmapProps> = (props) => {
  const {
    id,
    data,
    domain,
    startDate,
    tooltipFunc,
    range = 12,
    hidePageButtons,
    hideLegend,
    hideLabels,
    hideSchemeSelector
  } = props

  const cal = useRef(new CalHeatmap())

  const [scheme, setScheme] = useState('Cool')

  useEffect(() => {
    const firstDate = new Date()
    firstDate.setMonth(0)
    firstDate.setDate(1)

    void cal.current.paint(
      {
        data: {
          source: data,
          type: 'json',
          x: 'date',
          y: 'value',
          groupY: 'max'
        },
        date: { start: startDate ?? firstDate },
        range,
        scale: {
          color: {
            type: 'linear',
            scheme,
            domain
          }
        },
        domain: {
          type: 'month',
          gutter: 4,
          label: hideLabels ? undefined : { text: 'MMM', textAlign: 'start', position: 'top' }
        },
        subDomain: { type: 'ghDay', radius: 2, width: 11, height: 11, gutter: 4 },
        itemSelector: `#heatmap-${id}`
      },
      [
        [
          Tooltip,
          {
            text: tooltipFunc ?? ((date, value) => value?.toString())
          } as any
        ],
        [
          LegendLite,
          {
            enabled: !hideLegend,
            itemSelector: `#heatmap-${id}-legend`,
            includeBlank: true,
            radius: 2,
            width: 11,
            height: 11,
            gutter: 4
          } as any
        ],
        [
          CalendarLabel,
          {
            enabled: !hideLabels,
            width: 30,
            textAlign: 'start',
            text: () => ['', 'Mon', '', 'Wed', '', 'Fri', ''],
            padding: [25, 0, 0, 0]
          } as any
        ]
      ]
    ).then(() => (cal.current as any).calendarPainter.root?.attr('data-theme', null))
  }, [cal, id, data, domain, range, tooltipFunc, scheme, startDate, hideLegend, hideLabels])

  return (

          {!hidePageButtons &&
            <Button
              className='material-symbols-outlined'
              color='ghost'
              shape='circle'
              onClick={() => { void cal.current.previous() }}
            >arrow_back</Button>}

          <div
            className='shrink p-2 overflow-hidden'
            id={`heatmap-${id}`}
          />

        {!hidePageButtons &&
          <Button
            className='material-symbols-outlined'
            color='ghost'
            shape='circle'
            onClick={() => { void cal.current.next() }}
          >arrow_forward</Button>}

      {!hideSchemeSelector &&
        (
          <Select onChange={(e) => setScheme(e.target.value)}>
            <Select.Option disabled>Select a scheme</Select.Option>
            <Select.Option value='Cool'>Cool</Select.Option>
            <Select.Option value='Warm'>Warm</Select.Option>
          </Select>
        )}

      {!hideLegend &&
        (

            Deciles:

            <div
              className='inline-block'
              id={`heatmap-${id}-legend`}
            />

        )}

  )
}

export default Heatmap

I'm changing the scale.color.scheme from Warm to Cool and vice versa.
The heatmap itself updates colors, but not the LegendLite.
(It stays in whatever scheme was initially set)

I realized the issue is that it doesn't repaint on a scheme change.
This is because the legend doesn't look at the scheme at all and only looks at the range (it doesn't match the scheme at all)
In fact, the number of cells in the legend is determined by the number of indices in the range, rather than by the number of indices in the range.
The number of cells in the legend should be determined by the domain of the scale.

My apologies, the issue was caused by my misunderstanding of the color scheme, I apologize for any time wasted


TLS Support for MySQL monitors and reactions

Currently the MySQL based monitors and reactions do not support TLS connections. The reason for this is due to the fact that the MySQL libraries only support passing certificates and keys as files. Since the certificates and keys are input from users and it is not really desirable to write these to the file system, TLS is not in use.

@mjhea0 you have any ideas on how to get around writing the certificates to disk?


[Help] How to maximize window keeping the task bar?

When i click on maximize window it basically go to full screen.

Not implemented yet. I will make the current "fullscreen" work like that when I make the actual fullscreen mode.


Cross-platform script for generate docs

Script for generate website docs /docs/generate_website.js using sips (scriptable image processing system) and gm (graphicsmagick) for converting pdf to png.
https://github.com/foliojs/pdfkit/blob/5d5d8c4fd583dec8f67aeb5a29334f91d2cb284f/docs/generate_website.js#L92-L95
But sips is runnable only on OS X.
Research is needed to find a cross-platform alternative.

Results of my research:
Exists a lot of libraries for convert pdf to png such as pdf-image, pdf2pic, gm,..., but they all have one thing the same - it is only wrapper for installed GraphicsMagick or ImageMagick software.
I didn't find a native nodejs implementation.
pdfkit uses cross-platform GraphicsMagick for trim image now, why not use for conversion pdf to png when it allows? I tried it, but gm have problem with converting pdf to png as transparent (image contains artifacts). Not usable.
Second is ImageMagick (it is cross-platform software) and allows conversion without problems. Generates same images as they are now on website (gh-pages/docs/img).
Created PR https://github.com/foliojs/pdfkit/pull/968 with ImageMagick.
@blikblum Do you agree with this solution?


How to get current page number

I am adding fields manually and how to get the current focused page number in a multi-page pdf.
Need page number to add field on that particular index in schema and sample data.
So can anyone suggest me same?

No, we don't need page number, because the schema is an array, the schema's elements represent each pdf page,

@hand-dot,
This would be really usefull here: https://pdfme.com/docs/getting-started#template .
I had some errors with the Form because I was not aware that schemas expect one object per pdf page.
I was using inputs only in the first page so my schema's array contained only one object (while the pdf has two pages):
"schemas":
    [
      { input1: { ... }, input2: { ... }, ... }
    ]

pdfme will render the pdf and the inputs but the generate function will throw an error saying it can't find the inputs:
index.js:2 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'input1')
    at index.js:2:1
    at Generator.next (<anonymous>)
    at o (index.js:2:1)

This is simply fixed by adding an object per page in the schema's so I am not sure if this is truly a bug but I guess adding this to the docs would be useful.
Btw: Thanks for the project !

@ajitRajawat
I also need the current page. The best I've come up with is a hacky way through observing the DOM. This is implemented in Vue, but should be fairly transferable to any JS framework or Vanilla JS.
setupObserver(): void {
  const container = document.getElementById('pdf-container');

  if (!container) return;

  const config = { childList: true, subtree: true };

  this.observer = new MutationObserver((mutations) => {
    mutations.forEach((mutation) => {
      if (mutation.addedNodes.length > 0) {
        this.readPageValues();
      }
    });
  });

  this.observer.observe(container, config);
}

readPageValues(): void {
  document.querySelectorAll('div').forEach((div) => {
    const isFlexDisplay = getComputedStyle(div).display === 'flex';
    if (!isFlexDisplay) {
      return;
    }
    const strong = div.querySelector('strong');
    if (!strong) {
      return;
    }
    const content = strong.textContent || '';
    const regex = /^\d+\/\d+$/; // Regular expression to match the #/# format
    if (!regex.test(content)) {
      return;
    }
    const split = content.split('/');
    this.currentPage = parseInt(split[0], 10)
    this.totalPages = parseInt(split[1], 10)
  });
}


Implement TOFU for package downloads

This is a continuation of https://github.com/apple/swift-package-manager/pull/3879.
Wire up fingerprint storage such that it is used for integrity checks of package downloads. Fingerprint must match previously recorded value (if any) or else it would result in an error.

[x] Registry downloads
[x] Git clones
[ ] Option (strictFingerprintChecking) to ignore TOFU failures (i.e., error -> warning)
[ ] Log messages should include location of fingerprint files (in case user wants to resolve conflicts manually)
[x] .swiftpm/security/fingerprints/

@swift-ci please smoke test

@swift-ci please smoke test

cc @andyp-apple and @robertlacroix

very nice 👍

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test