supposedly running container actually dead

Description
containerd shows a container as running, although the PID for that container is absent. furthermore, when inspecting the pod cgroup (v2), we only find the /pause process, and when restarting containerd, the container is effectively marked as exited.
Steps to reproduce the issue
we haven't found a way to reliably reproduce the bug. we notice it rarely happens with redis containers when they get OOM killed. we would be happy to get some tips to try to reproduce it.
Describe the results you received and expected
the container is showing as RUNNING, whereas the process of the container is not running, and we didn't expect that containerd wasn't aware of container process being stopped
What version of containerd are you using?
containerd github.com/containerd/containerd v1.7.20 8fc6bcff51318944179630522a095cc9dbf9f353
Any other relevant information
Kubernetes v1.29 (kubeadm-deployed), containerd v1.20, Debian 12.

runc --version
runc --version
runc version 1.1.13
commit: v1.1.13-0-g58aa9203-dirty
spec: 1.0.2-dev
go: go1.21.11
libseccomp: 2.5.5

crictl info
crictl info
{
  "status": {
    "conditions": [
      {
        "type": "RuntimeReady",
        "status": true,
        "reason": "",
        "message": ""
      },
      {
        "type": "NetworkReady",
        "status": true,
        "reason": "",
        "message": ""
      },
      {
        "type": "ContainerdHasNoDeprecationWarnings",
        "status": true,
        "reason": "",
        "message": ""
      }
    ]
  },
  "cniconfig": {
    "PluginDirs": [
      "/opt/cni/bin"
    ],
    "PluginConfDir": "/etc/cni/net.d",
    "PluginMaxConfNum": 1,
    "Prefix": "eth",
    "Networks": [
      {
        "Config": {
          "Name": "cni-loopback",
          "CNIVersion": "0.3.1",
          "Plugins": [
            {
              "Network": {
                "type": "loopback",
                "ipam": {},
                "dns": {}
              },
              "Source": "{\"type\":\"loopback\"}"
            }
          ],
          "Source": "{\n\"cniVersion\": \"0.3.1\",\n\"name\": \"cni-loopback\",\n\"plugins\": [{\n  \"type\": \"loopback\"\n}]\n}"
        },
        "IFName": "lo"
      },
      {
        "Config": {
          "Name": "cilium",
          "CNIVersion": "0.3.1",
          "Plugins": [
            {
              "Network": {
                "type": "cilium-cni",
                "ipam": {},
                "dns": {}
              },
              "Source": "{\"enable-debug\":false,\"log-file\":\"/var/run/cilium/cilium-cni.log\",\"type\":\"cilium-cni\"}"
            }
          ],
          "Source": "\n{\n  \"cniVersion\": \"0.3.1\",\n  \"name\": \"cilium\",\n  \"plugins\": [\n    {\n       \"type\": \"cilium-cni\",\n       \"enable-debug\": false,\n       \"log-file\": \"/var/run/cilium/cilium-cni.log\"\n    }\n  ]\n}"
        },
        "IFName": "eth0"
      }
    ]
  },
  "config": {
    "containerd": {
      "snapshotter": "overlayfs",
      "defaultRuntimeName": "runc",
      "defaultRuntime": {
        "runtimeType": "",
        "runtimePath": "",
        "runtimeEngine": "",
        "PodAnnotations": null,
        "ContainerAnnotations": null,
        "runtimeRoot": "",
        "options": null,
        "privileged_without_host_devices": false,
        "privileged_without_host_devices_all_devices_allowed": false,
        "baseRuntimeSpec": "",
        "cniConfDir": "",
        "cniMaxConfNum": 0,
        "snapshotter": "",
        "sandboxMode": ""
      },
      "untrustedWorkloadRuntime": {
        "runtimeType": "",
        "runtimePath": "",
        "runtimeEngine": "",
        "PodAnnotations": null,
        "ContainerAnnotations": null,
        "runtimeRoot": "",
        "options": null,
        "privileged_without_host_devices": false,
        "privileged_without_host_devices_all_devices_allowed": false,
        "baseRuntimeSpec": "",
        "cniConfDir": "",
        "cniMaxConfNum": 0,
        "snapshotter": "",
        "sandboxMode": ""
      },
      "runtimes": {
        "runc": {
          "runtimeType": "io.containerd.runc.v2",
          "runtimePath": "",
          "runtimeEngine": "",
          "PodAnnotations": null,
          "ContainerAnnotations": null,
          "runtimeRoot": "",
          "options": {
            "SystemdCgroup": true
          },
          "privileged_without_host_devices": false,
          "privileged_without_host_devices_all_devices_allowed": false,
          "baseRuntimeSpec": "",
          "cniConfDir": "",
          "cniMaxConfNum": 0,
          "snapshotter": "",
          "sandboxMode": "podsandbox"
        }
      },
      "noPivot": false,
      "disableSnapshotAnnotations": true,
      "discardUnpackedLayers": false,
      "ignoreBlockIONotEnabledErrors": false,
      "ignoreRdtNotEnabledErrors": false
    },
    "cni": {
      "binDir": "/opt/cni/bin",
      "confDir": "/etc/cni/net.d",
      "maxConfNum": 1,
      "setupSerially": false,
      "confTemplate": "",
      "ipPref": ""
    },
    "registry": {
      "configPath": "/etc/containerd/certs.d",
      "mirrors": null,
      "configs": null,
      "auths": null,
      "headers": null
    },
    "imageDecryption": {
      "keyModel": ""
    },
    "disableTCPService": true,
    "streamServerAddress": "<IP_ADDRESS>",
    "streamServerPort": "0",
    "streamIdleTimeout": "4h0m0s",
    "enableSelinux": false,
    "selinuxCategoryRange": 1024,
    "sandboxImage": "registry.k8s.io/pause:3.8",
    "statsCollectPeriod": 10,
    "systemdCgroup": false,
    "enableTLSStreaming": false,
    "x509KeyPairStreaming": {
      "tlsCertFile": "",
      "tlsKeyFile": ""
    },
    "maxContainerLogSize": 10000,
    "disableCgroup": false,
    "disableApparmor": false,
    "restrictOOMScoreAdj": false,
    "maxConcurrentDownloads": 3,
    "disableProcMount": false,
    "unsetSeccompProfile": "",
    "tolerateMissingHugetlbController": true,
    "disableHugetlbController": true,
    "device_ownership_from_security_context": false,
    "ignoreImageDefinedVolumes": false,
    "netnsMountsUnderStateDir": false,
    "enableUnprivilegedPorts": false,
    "enableUnprivilegedICMP": false,
    "enableCDI": true,
    "cdiSpecDirs": [
      "/etc/cdi",
      "/var/run/cdi"
    ],
    "imagePullProgressTimeout": "5m0s",
    "drainExecSyncIOTimeout": "0s",
    "imagePullWithSyncFs": false,
    "ignoreDeprecationWarnings": null,
    "containerdRootDir": "/var/lib/containerd",
    "containerdEndpoint": "/run/containerd/containerd.sock",
    "rootDir": "/var/lib/containerd/io.containerd.grpc.v1.cri",
    "stateDir": "/run/containerd/io.containerd.grpc.v1.cri"
  },
  "golang": "go1.21.12",
  "lastCNILoadStatus": "OK",
  "lastCNILoadStatus.default": "OK"
}

uname -a
Linux t1-k8s-alsu025 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux

crictl inspect
{
  "status": {
    "id": "2594a5faa42199dfcefb468de17fc8b2aceee27e31519e505aef73a2cb8eaee2",
    "metadata": {
      "attempt": 6,
      "name": "redis"
    },
    "state": "CONTAINER_RUNNING",
    "createdAt": "2024-08-05T20:29:52.3390638+02:00",
    "startedAt": "2024-08-05T20:29:52.441284768+02:00",
    "finishedAt": "0001-01-01T00:00:00Z",
    "exitCode": 0,
    "image": {
      "annotations": {},
      "image": ".../redis-cluster:6.2.12-debian-11-r23",
      "userSpecifiedImage": ""
    },
    "reason": "OOMKilled",
    "message": "",
    "resources": {
      "linux": {
        "cpuPeriod": "100000",
        "cpuQuota": "0",
        "cpuShares": "51",
        "cpusetCpus": "",
        "cpusetMems": "",
        "hugepageLimits": [],
        "memoryLimitInBytes": "268435456",
        "memorySwapLimitInBytes": "268435456",
        "oomScoreAdj": "999",
        "unified": {
          "memory.oom.group": "1",
          "memory.swap.max": "0"
        }
      },
      "windows": null
    }
  },
  "info": {
    "sandboxID": "4db3bfdad71867f3edfe3146571b74b7beced902a0f5f0f6b908e0e43bdce2d2",
    "pid": 2631444,
    "removing": false,
    "snapshotKey": "2594a5faa42199dfcefb468de17fc8b2aceee27e31519e505aef73a2cb8eaee2",
    "snapshotter": "overlayfs",
    "runtimeType": "io.containerd.runc.v2",
    "runtimeOptions": {
      "systemd_cgroup": true
    },
    "config": {
      "metadata": {
        "name": "redis",
        "attempt": 6
      },
      "linux": {
        "resources": {
          "cpu_period": 100000,
          "cpu_shares": 51,
          "memory_limit_in_bytes": 268435456,
          "oom_score_adj": 999,
          "hugepage_limits": [
            {
              "page_size": "2MB"
            },
            {
              "page_size": "1GB"
            }
          ],
          "unified": {
            "memory.oom.group": "1",
            "memory.swap.max": "0"
          }
        },
        "security_context": {
          "namespace_options": {
            "pid": 1
          },
          "run_as_user": {
            "value": 1001
          },
          "supplemental_groups": [
            1001
          ],
          "masked_paths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
          ],
          "readonly_paths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
          ],
          "seccomp": {
            "profile_type": 1
          }
        }
      }
    },
    "runtimeSpec": {
      "ociVersion": "1.1.0",
      "process": {
        "user": {
          "uid": 1001,
          "gid": 0,
          "additionalGids": [
            0,
            1001
          ]
        },
        "oomScoreAdj": 999
      },
      "root": {
        "path": "rootfs"
      },
      "linux": {
        "resources": {
          "devices": [
            {
              "allow": false,
              "access": "rwm"
            }
          ],
          "memory": {
            "limit": 268435456,
            "swap": 268435456
          },
          "cpu": {
            "shares": 51,
            "period": 100000
          },
          "unified": {
            "memory.oom.group": "1",
            "memory.swap.max": "0"
          }
        },
        "cgroupsPath": "kubepods-burstable-pod3bbf7d7a_a8d4_41bc_9cea_3e0e96321f65.slice:cri-containerd:2594a5faa42199dfcefb468de17fc8b2aceee27e31519e505aef73a2cb8eaee2",
        "namespaces": [
          {
            "type": "pid"
          },
          {
            "type": "ipc",
            "path": "/proc/4056906/ns/ipc"
          },
          {
            "type": "uts",
            "path": "/proc/4056906/ns/uts"
          },
          {
            "type": "mount"
          },
          {
            "type": "network",
            "path": "/proc/4056906/ns/net"
          },
          {
            "type": "cgroup"
          }
        ],
        "maskedPaths": [
          "/proc/asound",
          "/proc/acpi",
          "/proc/kcore",
          "/proc/keys",
          "/proc/latency_stats",
          "/proc/timer_list",
          "/proc/timer_stats",
          "/proc/sched_debug",
          "/proc/scsi",
          "/sys/firmware"
        ],
        "readonlyPaths": [
          "/proc/bus",
          "/proc/fs",
          "/proc/irq",
          "/proc/sys",
          "/proc/sysrq-trigger"
        ]
      }
    }
  }
}

systemd-cgls within the supposedly running pod
systemd-cgls
Working directory /sys/fs/cgroup/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-pod3bbf7d7a_a8d4_41bc_9cea_3e0e96321f65.slice:
└─cri-containerd-4db3bfdad71867f3edfe3146571b74b7beced902a0f5f0f6b908e0e43bdce2d2.scope … (#9418267)
  → user.invocation_id: 7acd8b7f51304a8c8bf691483b192621
  → trusted.invocation_id: 7acd8b7f51304a8c8bf691483b192621
  → user.delegate: 1
  → trusted.delegate: 1
  └─4056906 /pause

/cc @lett00r
Show configuration if it is related to CRI plugin.
No response

if container exited  when containerd  is restarting this pr may fix https://github.com/containerd/containerd/pull/10409

this pr may fix https://github.com/containerd/containerd/pull/10603/files

some additional info: the pod with which we experienced problems were redis pods, with a script liveness probe.
the redis container was configured with insufficient memory limit, so that it was constantly getting OOM-killed. this might help to reproduce the incident hopefully.
and finally, I have observed at least one case where there was a "failed" pod, but there hadn't been any containerd restart, so I am afraid the bug can also happen during normal containerd operation 😬

well done @samuelkarp ! nice reproduction test and fix.
thanks 👍🏼

https://github.com/containerd/containerd/releases/tag/v1.7.22 and https://github.com/containerd/containerd/releases/tag/v1.6.36 contain the fix for this issue.

wonderful ! thanks again 🙃

I submit a little explaination for any one is insterested in the detail.
https://github.com/containerd/containerd/pull/10649#issuecomment-2488142828

Which releases of containerd first introduced this issue? Trying to assess in our fleet which node pools are impacted and need to be upgraded. I understand based on the comment from @samuelkarp above that this is fixed in 1.7.22 and 1.6.36 but it's not clear to me after combing through 3-4 related issues/PR which releases first introduced this bug.

Which releases of containerd first introduced this issue? Trying to assess in our fleet which node pools are impacted and need to be upgraded. I understand based on the comment from @samuelkarp above that this is fixed in 1.7.22 and 1.6.36 but it's not clear to me after combing through 3-4 related issues/PR which releases first introduced this bug.

maybe this pr  https://github.com/containerd/containerd/commit/892dc54bd26f6e8b9aea4672208b1ba2158d8a1b first introduced this bug


📝[Docs]: ADD README on FOOD ALLERGY PREDICTION MODEL (EXISTING ON THE ML-REPO)

Is there an existing issue for this?

[X] I have searched the existing issues

Issue Description
In the prediction folder Food allergy prediction model there is no readme present for better understanding.
Suggested Change
To add a proper README on the project to help the audience understand the project
Rationale
No response
Urgency
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

please assign me this task

/assign


Change data::read_ref type

It would make a lot more sense using &[u8] instead of &Vec<u8> here.

Fixed in v0.8.0.


OSHPark link to the rev 2 board is wrong in README.md

Still points to the rev 1.2 board..

Issue is now fixed.


Get consistent on events: Either Action or event, not both

First, I'll point out that none of this really matters. I'm investing blood & sweat into this project because it's fun. It's a low-risk project that potentially 10s of others will use ;-). I don't really care about these topics because I'm not a professional developer. I just play one on TV.
That said, I'd love to have people using Terminal.Gui and say "wow, this thing is really easy to use and work great! The people who worked on it sure were thoughtful.". Of course, 99% of the credit for that will always go to @migueldeicaza.
To this end: This project has become confused on whether the idiom for events is based on Action or event. In addition there's gross inconsistency between naming of events. E.g.

Recently we added static public Action OnResized to Application.
Meanwhile most View derived events use event as in public event EventHandler Enter.
Some event handlers use "On" and some don't. E.g. public event EventHandler OnOpenMenu vs.  public event EventHandler TextChanged.

I'm guilty of contributing to this myself. I hereby commit that moving forward, no more. I will do better.
The best guidance on naming event related things I've seen is this:
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-type-members?redirectedfrom=MSDN

Events always refer to some action, either one that is happening or one that has occurred. Therefore, as with methods, events are named with verbs, and verb tense is used to indicate the time when the event is raised.
✔ DO name events with a verb or a verb phrase.
Examples include Clicked, Painting, DroppedDown, and so on.
✔ DO give events names with a concept of before and after, using the present and past tenses.
For example, a close event that is raised before a window is closed would be called Closing, and one that is raised after the window is closed would be called Closed.
❌ DO NOT use "Before" or "After" prefixes or postfixes to indicate pre- and post-events. Use present and past tenses as just described.
✔ DO name event handlers (delegates used as types of events) with the "EventHandler" suffix, as shown in the following example:
public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);
✔ DO use two parameters named sender and e in event handlers.
The sender parameter represents the object that raised the event. The sender parameter is typically of type object, even if it is possible to employ a more specific type.
✔ DO name event argument classes with the "EventArgs" suffix.

I found this article to be especially clarifying: https://www.codeproject.com/Articles/20550/C-Event-Implementation-Fundamentals-Best-Practices
We are not consistent along these lines in Terminal.Gui at all. This leads to friction for adopters and bugs.
Because I'm so familiar with WinForms and classic .NET event I have a bias for the event/EventHandler model. Action seems well suited for internal APIs, but event/EventHandler seems to scale better for public APIs. I'd like us to minimize use of Action.
I would like to take on fixing this (it speaks to my OCD). There's no way to do this without breaking changes, I'm afraid. But the longer it waits, the harder it will be.
My proposed Event rules for Terminal.Gui moving forward:

We follow the naming advice provided in https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-type-members?redirectedfrom=MSDN
We only use the Action<T> idiom for internal APIs, not for public APIs. For public APIs we use the event/EventHandler model.
For public APIs, the class that can raise the event will implement:

A virtual event raising function, named as OnEventToRaise. Typical implementations will simply do a EventToRaise?.Invoke(this, eventArgs).
An event as in public event EventHandler<EventToRaiseArgs> EventToRaise
Consumers of the event can do theobject.EventToRaise += (sender,, e) => {};
Sub-classes of the class implementing EventToRaise can override OnEventToRaise as needed.

Where possible, a subclass of EventArgs should be provided and the previous state should be included.

At the very minimum, can we agree that moving forward we will follow the above rules?
You'll note that my toplevel_ready PR attempts to follow these rules: https://github.com/migueldeicaza/gui.cs/pull/446
What enhancements, changes would you make to these rules?

I did a code review of the project to get an inventory of just how good/bad of shape we are in. Here it is:

ConsoleDriver

Init - Uses Action

Fine - Internal API

PepareToRun - Uses Action -

Fine - internal API

protected Action TerminalResized;

Fine - Internal API

NetMainLoop -

Uses Action for public Action<ConsoleKeyInfo> WindowsKeyPressed;

FIX: This should not be public !?!?

Application

public static Action<MouseEvent> RootMouseEvent;

Fine - Debugging API

public static event EventHandler<ResizedEventArgs> Loaded

great, except ResizedEventArgs only includes current; best practice is to include previous. Not worth fixing.

public static event EventHandler<ResizedEventArgs> Resized

great, except ResizedEventArgs only includes current; best practice is to include previous. Not worth fixing.

MainLoop

public void Invoke (Action action)

Fine; threading related. Action works great with Tasks.

View

void PerformActionForSubview (View subview, Action<View> action)

Fine - Internal API

public event EventHandler<FocusEventArgs> Enter;
public event EventHandler<FocusEventArgs> Leave;
public event EventHandler<MouseEventEventArgs> MouseEnter;
public event EventHandler<MouseEventEventArgs> MouseLeave;
public event EventHandler<MouseEventEventArgs> MouseClick;
public event EventHandler<KeyEventEventArgs> KeyPress; etc...

All fine.

public event EventHandler<LayoutEventArgs> LayoutComplete;

Fine.

TopLevel

public event EventHandler Ready;

Fine.

Button

public Action Clicked;

FIX - Public API that should use the event/EventHandler model

BREAKING CHANGE unless we can come up with a name for an event that makes more sense than Clicked (Selected ???).

Checkbox

public event EventHandler Toggled

Fine, but ideally would include previous state (either EventHandler<bool> or via a EventArgs subclass)

ComboBox

public event EventHandler<ustring> Changed;

The implementation is questionable.

It's sending the current text; best practice is for an event to provide previous value
Calls to Invoke are spread around. Ideally there would be public virtual void OnTextChanged() method that calls Changed?.Invoke.
The name is "Changed" but the event actually represents "the selection has been confirmed". Rename it to SelectionChanged?

Menu

public MenuItem (ustring title, string help, Action action, Func<bool> canExecute = null) -
public Action Action { get; set; }
etc...

FIX - Public API that should use the event/EventHandler model

BREAKING CHANGE
May be possible to introduce a parallel API retaining backwards compat (an event named named Clicked or Selected).

public event EventHandler OnOpenMenu;

Should event include state? E.g. Which menu?

public event EventHandler OnCloseMenu;
- Should event include state? E.g. Which menu?

RadioGroup

public Action<int> SelectionChanged;

FIX - Public API that should use the event/EventHandler model.

Could avoid BREAKING CHANGE by introducing a parallel event named SelectedItemChanged.

ScrollView

public event Action ChangedPosition;

FIX - Public API that should use the event/EventHandler model.

Could avoid BREAKING CHANGE by introducing a parallel event named SelectedItemChanged.

StatusBar

public Action Action { get; } etc..

FIX - Public API that should use the event/EventHandler model.

Could avoid BREAKING CHANGE by introducing a parallel event named Clicked or Selected

Unrelated: Why does Run use Application.MainLoop.AddIdle() and not just do Invoke?

FileDialog

public Action<(string, bool)> SelectedChanged { get; set; }

FIX - Public API that should use the event/EventHandler model.

public event EventHandler<int> SelectedItemChanged?

public Action DirectoryChanged { get; set; }

FIX - Public API that should use the event/EventHandler model.

public event EventHandler<ustring> DirectorySelected?

public Action FileChanged { get; set; }

FIX - Public API that should use the event/EventHandler model.

`public event EventHandler FileSelected?

ListView

public event EventHandler<ListViewItemEventArgs> SelectedChanged;

Fine, although ideally ListViewItemEventArgs would include the previous state.
Rename to SelectedItemChanged?

public event EventHandler<ListViewItemEventArgs> OpenSelectedItem;

Fine, although ideally ListViewItemEventArgs would include the previous state.

TextView

public event EventHandler TextChanged;

Inconsistently named relative to same property on TextField
BAD DESIGN

Every time Text text changes, a copy of the ENTIRE buffer will be made and passed with this event.
For classes that deal with small amounts of data, this design would be fine. But TextView may hold megabytes or more.
Ideally a EventArgs subclass would be deinfed to make it explicitly clear that the ustring is the old value AND make it easier to add more state in the future.
Instead, we should make an exception to sending state with the event and not do it.
Should this class should be redesigned to use reference values for the text buffer, vs naively just causing copy operations?

TextField

public event EventHandler<ustring> Changed

Inconsistently named relative to same property on TextView
BAD DESIGN

Every time Text text changes, a copy of the ENTIRE buffer will be made and passed with this event.
For classes that deal with small amounts of data, this design would be fine. But TextView may hold megabytes or more.
Instead, we should make an exception to sending state with the event and not do it.
Should this class should be redesigned to use reference values for the text buffer, vs naively just causing copy operations?

Commented here https://github.com/migueldeicaza/gui.cs/pull/621#issuecomment-639354829

See: https://github.com/migueldeicaza/gui.cs/wiki/Framework-Design-Guidelines

@tig is there any change from yesterday? It’s because I’ve read it several times and it’s always the same thing, or else I’ll step aside :-)

@tig is there any change from yesterday? It’s because I’ve read it several times and it’s always the same thing, or else I’ll step aside :-)

Literally just updated it ;-)

It would be easier to read if you highlight the changes than to be reading everything again because it always looks like the same text that I end up giving up on reading it all over ;-)

Roger. Next time I will do that. We're almost done though :-)

I'm dealing with Button's unicode. Only in justified alignment is it a little difficult to get the hotkey position but I will get there.

This was mostly taken care of as part of the push to 1.0. Closing.


DOM changes losing styling

I'm using GSS inside an Ember.js app and when destroying and recreating elements they seem to position once then stop, or something.  I really have no idea what is going on. :)
Here's my example: http://www.bfalkner.com/
Click on Blog, then on 'Brennan Falkner' to return to the first page.  Notice that the main content renders without respect to the container size and doesn't update on resize.  If I change the selectors to use classes instead of IDs, they render the full width of the container overlapping.  Here is how they're styled:
@h |-(#index-main)~-~(#index-projects)-| in(main) gap([$pad]);
#index-main[width] == #index-projects[width] * 1.618;

#index-projects {
  width: <= 300;
}

Running some Javascript after the transition is an option.

Hey. I think this is the case where double inequalities produce underconstrained system. Generally, you may not want to use ~-~ cushions (which produce <= constraints) together with width: <= 300.

It seems to work how I intended on initial render.  Which is to maintain a ratio but not go over 300px.
However if I take that line out entirely then when the elements are added back, their width is 0.  Why is it that the values might change between initial render and removing/re-adding elements to produce the same dom tree?

Because cassowary is iterative solver and it maintains state of computation. It's possible to add more constraints to encourage more determenistic computation

It seems to lose a constraint.
If I remove/add the parent node (main) the constraint returns and another constraint is lost.

You might be right here. Do you use the head version?  (http://rawgit.com/gss/document/ranges2/dist/gss.document.parser.js)

Anyway, just wanted to say thank you for trying to figure out what's the problem. Sorry that you stumbled upon issues. I'd be happy to fix the issue if we can reduce the case to something testable.

2.0.0 from bower
I'll let you know if using head changes anything in a little bit~

I updated the page with the JS version you linked to and its behavior didn't change. I deployed it as well.
I can probably find time over the weekend to make a smaller demo.


Function of transferring a file of the ESploitV2.

I apologize for my bad English.
I need to interact(get result.txt) with a remote machine that does not have a network. As it turned out, through the WHID injector, I can't receive data through the network itself Esploit, and it's sad.
Is it possible to use 3 megabytes of flash memory internally as a disk in Windows to transfer and receive files through it?
The algorithm is as follows:

Download the file getTEMP.cfg via ftp on Esploit.
Connect an internal flash memory(3 megabytes) as a Windows disk.
Use this playload:
Rem:GET RESULT
Press:131+114
PrintLine:cmd
PrintLine:echo F:>>payload.bat
PrintLine:echo copy F:\getTEMP.cfg C:\area\cfg\>>payload.bat
PrintLine:echo start C:\area\control.exe>>payload.bat
PrintLine:payload.bat
PrintLine:echo copy C:\area\result.txt F:\>>result.bat
PrintLine:result.bat
PrintLine:exit

Disk "F" - it's internal memory of Esploit, if there is a possibility to connect internal memory as a Windows disk.

And I already through wi-fi will be with ftp Esploit, broat the file with the results.
Set up the Ncrone, every hour, to perform the first 4 items, and take a file with the results.

Mass storage is not a current feature.
Read the readme file and look at the example payloads. As I said previously try using the serial exfiltration method.  No networking is needed.
Everything is in the readme.

Wait, I misread the question.
I thought the victims computer could not access esploit as it had no networking capability. But now your saying you download a file via ftp(why not just download it via http).  Anyways this implies networking works and the computer does have networking capabilities.
If the computer has networking capabilities then use htttp exfiltration methods, ftp exfiltration methods or others.  Just look at the readme and example payloads.

Is there a possibility, or hope, of the internal memory(2949250 bytes) of the WHID to connect to Windows as a flash disk???
I need to interact with the system from the outside, only through the WHID

Not to sound offensive but I just can't understand you and am unsure if you have a solid grasp of what you have purchased.  Please READ THE README.  I put all of the information needed to be successful in the readme.
Does the victims computer possess the ability to connect to a WiFi network?
If yes then then the ESPloit can host its own private network by means of providing its own access point.  The computer must have a way to connect to this access point.  Thus look at my question above.
Did you read the readme?  Linked below is the relevant section of exfiltrating data.
https://github.com/exploitagency/ESPloitV2/blob/master/README.md#exfiltrating-data
Did you test the example payloads?  Look at the exfil win payloads.  Included is serial, http, ftp, you can even exfil data by blinking the led and analyzing the blinks and duration although that is not an included payload just a creative option.
https://github.com/exploitagency/ESPloitV2/tree/master/payloads

Exfiltration is the process of retrieving the data.  Is this word where the confusion is coming into play?

Also I suggest against using the FTP methods as HTTP methods are faster and only Passive mode ftp is supported.


Should classes be a part of DDS public API?

In the review of the SharedCounter public API (#6334), @vladsud suggested that the SharedCounter class not be exported, and instead export only the ISharedCounter interface. From Vlad:

I do not see much value in having SharedCounter class in here. It should be internal implementation detail., It should be free to change over time as long as public API (ISharedCounter) is not changed.
Other way to say it - this class should not be exported from package. Only interfaces, and factory.
Basically either we push developers to use interfaces, or we should ditch interfaces and export class only - there is not much value in having both.

@ChumpChief points out that today, our DDSes export a class, and that class exposes static create methods that are widely used, so we should be intentional about this change across DDSes to be consistent.

@anthony-murphy has stronger opinions here than me :)
There are certain benefits from exporting only interfaces and static factory function. That said, it may add more pain in various ways (that we can address), like back/forward compat check (I'd prefer these interfaces only to have back compat requirement, and DDS implementations to export mock classes, and any place where someone depends on DDS actually define their own interface, not use DDS interface for that - following classical Ports-and-Adapters design pattern).
The other alternative - get rid of interfaces and use only classes. It's Ok too. But I'd say it puts even stronger emphasis on defining custom interfaces by consumers.

My feeling is we should only export 1 and not both like we do today.
If we choose interface, we can easily just use an export function rather than a static.  The think the downside the interfaces is we can't stop people from implementing them. one pattern to consider is to always add a new interface in non major releases.
If we are in a state like:
interface MyDds{
foo()
}
function createMyDds(args): MyDds

and we want to add something it becomes:
interface MyDds{
foo()
}
interface MyDdsNext{
bar()
}
function createMyDds(args): MyDds & MyDdsNext

Then in the next major release collapse them back:
interface MyDds{
foo()
bar()
}
function createMyDds(args): MyDds

Classes have the advantage that they come with implementation, so if they are extended and child implementations automatically get that implementation as well. The downside is they are treated pretty strictly by the type system example:
https://www.typescriptlang.org/play?#code/FAYwNghgzlAECyBPAIgEygb2LWAHATgJYBuEALgKaxkAWhAdgOYBc9ArgLYBGF+sAvLAAMAbmywAZgHspACgCUWHDlqEoAOlVNYAah1icAX2DHgqCuAj4qEtvRBlCU+rDZQKaKLNTpmCFOjyfsRShKhiwG4e6LL0FADu-p4K8hFRyUqSMgoYxobyQA
This strictness can make testing and mixed package versions hard. The best work around is to always wrap the class like we do in the type tests with type only
https://github.com/microsoft/FluidFramework/blob/main/packages/dds/cell/src/test/types/validateCellPrevious.ts
the above example then is a bit better:
https://www.typescriptlang.org/play?#code/FAYwNghgzlAECyBPAIgEygb2LWAHATgJYBuEALgKaxkAWhAdgOYBc9ArgLYBGF+sAvLAAMAbmywAZgHspACgCUWHDlqEoAOlVNYAah1icAX2DHgqCuAj4qEtvRBlCU+rDZQKaKLNTpmCFOjyfsRShKhiwG4e6LL0FADu-p4K8hEA9ABUGdgZ1HRwarAQLrz4Unw8IBBR1Ii4VBQAHrhS7nC0VJYwsAyU+PQQYFDMObAAgviMnBT0ZLBSErX1sADkGJIyCsGh4bCGKz1w9FJz0FCEjANcYFRkUnhWEBwUffOLZHVUK0ieK+riAAUyvV8B9VlpGAdChw1OdtAwll91tI5EFYCEwiI9gcuGw5tYAI5sQjWVA9FwfZbfAJQP7AFYQqFwcyWUmwXFzQhkOCkMBsKiFOLEXiwawQVD-WAZNKRdzJJQbVEYYyGeRAA
but now all usages need to be very carefully managed, so we don't couple to classes.
Overall, i think i prefer the interfaces world, but neither is a slam dunk

My 2 cents, classes aren't very idiomatic for JS.  All methods in the class are not tree shakable as well.  We should also reduce the number function included with the object.  It does make function discoverability (thru intelligence).  We should figure out a balance here, but in general, I think @anthony-murphy is in the right direction.


Improved type handling by AdsSymbol

Corrected definition of DT
Added DATE_AND_TIME types
Added case for strings (and other types which might be defined as a list)

Fixes #205

Pull Request Test Coverage Report for Build 631

14 of 14 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 94.412%

Totals

Change from base Build 627:
0.05%

Covered Lines:
1115

Relevant Lines:
1181

💛  - Coveralls

Pull Request Test Coverage Report for Build 631

14 of 14 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 94.412%

Totals

Change from base Build 627:
0.05%

Covered Lines:
1115

Relevant Lines:
1181

💛  - Coveralls

Great, this solves #189. Nice work 👍

Well, solves it -ish, depending on what intended behaviour we have in mind. But it might be best to consider further handling of structs as new features.

Great, this solves #189. Nice work 👍

Well, solves it -ish, depending on what intended behaviour we have in mind. But it might be best to consider further handling of structs as new features.

I agree. Handling structures is a completely different beast which I would like to tackle in the time to come.


How to ask for SYSTEM ALERT WINDOW

How to grant this permission please?

Start Intent ACTION_MANAGE_OVERLAY_PERMISSION.
I found and implement this solution from here: https://stackoverflow.com/questions/36016369/system-alert-window-how-to-get-this-permission-automatically-on-android-6-0-an

Here is my pull request (PR)
https://github.com/NeoLSN/cordova-plugin-android-permissions/pull/89

Thanks and it has been merged and released on v1.1.0.


Added ODIN Tile under Tools

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: shalini-peeka:x: SHPEEKASHPEEKA seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Request showcase from ITOKA[Undo autoformat]

Request showcase from ITOKA
{
"id": "itoka",
"name": "ITOKA",
"oneLiner": "A Leading Infrastructure for Music3.0",
"website": "https://www.itoka.xyz/",
"tags": ["NFT", "SocialFi", "Tools / Infrastructure"],
"description": "The ITOKA project seeks to disrupt the centralized music industry by offering a complete infrastructure solution for the web3 music industry. This includes creation tools, data storage, and music streaming services. The goal of ITOKA is to transform the music industry into a decentralized ecosystem, empowering creators with greater control over their content and a fairer share of revenue.",
"usesInternetIdentity": true,
"github": "https://github.com/Itoka-DAO",
"twitter": "https://twitter.com/itokamusic",
"stats": "3M+ minutes on-chain streaming",
"logo": "/img/showcase/itoka_logo.svg",
"video": "/img/showcase/itoka_video.mp4",
"videoContentType": "video/mp4",
"display": "Large",
"screenshots": ["/img/showcase/itoka_screanshot.svg"]
}

Thanks for the PR! If you could please accept the CLA (maybe over at https://github.com/dfinity/portal/pull/1157) I'd be happy to merge

I signed CLA already. The tag didn’t refresh tho

Ugh, let me ping the CLA bot team...

CLA check.

CLA check.


[Enhancement] limit max auto increment cache size (#21249)

What type of PR is this：

[ ] BugFix
[ ] Feature
[x] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #21249
Problem Summary(Required) ：
In current implementation, if the auto increment id counter is overflow, the insert/load must be fail. And if we set the cache size too large, it will cause the overflow manually which is a problem here. So the limitation must be set to prevent this situation. We can simply define the cache size as int instead of long
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

@Mergifyio backport branch-3.0


Clean up RPC tests

Switch to Python 3.5 as it's the default on Ubuntu LTS
Enable p2p-fullblock tests as they should work (but they don't, and that's a concern)
Scale up transaction amounts in fundrawtransaction to try resolving the failure when funding from a watch only address

I've cleaned up a bunch of the code for coinbase maturity checks, but it looks like they're genuinely failing. It's as if somehow it can't find the regtest parameters at all. Even more weirdly, it should return the AuxPoW parameters (effective height 20), yet it actually returns the baseline ones (effective height 0).


[Feature Request] Invalid user credentials

Hi,
I have installed spgo (0.10.1) - which looks to be exactly what I need for SP module builds.
However, when I save a file and am challenged for username and password - I get "Invalid user credentials". I am simply entering domain\username.
I have on premise SP2013 and using standard company network (NTML w. kerberos).
Any idea what is going wrong?
Thanks

@SeanCMrsh - I'm going to track this as an enhancement, but NTLM v2 support is not available right now via node-sp-auth as @koltyakov mentions above.
{This library)[https://github.com/gautamsi/node-ntlm-client] appears to support NTLMv2, but I'm unable to verify this as I do not have access to an NTLMv2 environment. If you want to work with the author of node-sp-auth at https://github.com/gautamsi/node-ntlm-client, that would allow SPGo to support your use case without needing to fall back to WebDav.
Thanks,
Chris

Hello @SeanCMrsh
@s-KaiNet is finalizing NTLMv2 support for node-sp-auth and is looking for testers. Can you test the steps in this post and let us know the results?
Thanks!

In my environment I used SP2013 on-premises with Kerberos authentication enabled (with fallback to NTLM by default) and SPGo v1.30.1 worked just fine (also 1.30.0 and build before that worked as well).
I used domain\username form to authenticate.

@SeanCMrsh, @akupaka  Thanks for testing this out. Great to see the community coming together in support of these projects!

I published SPGo 1.3.2 to the VS Marketplace which adds NTLM v2 support to SPGo!


Some Zigbee devices connected to ZBBridge stopped working

After upgrading to v3.0.4 some sensors connected to ZBBridge stopped working and showing unavailable state. Mainly Motion and open sensors are affected.
Tried to restart the HA, tried to reload integration, but non of them solved the issue.
Devices are online and working in eWelink app.
Tried to restart the bridge, and it did not solve the problem.

Download diagnostics on device page

Maybe you using multiple homes in ewelink app. Because in your log only one cloud device


Mirror of a Binary Tree

Have you read the Contributing Guidelines on Pull Requests?
Yes.
Description
Mirror of a Binary Tree
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
#7126

Please Review my PR @ankitaggarwal23


Update template.yaml

Updated runtime to nodejs18 based on the following deployment error:
Resource handler returned message: "The runtime parameter of nodejs12.x is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (nodejs18.x) while creating or updating functions."

Updating runtime version


HV-1387 Add tests for the string representation of the property path

https://hibernate.atlassian.net/browse/HV-1387

I looked through the tests that we already have. And I didn't want to duplicate beans and stuff to just validate a string representation of the path. So here's what I came up with...
I've added ConstraintViolationAssert#violationOfAnything which allows to ignore the check of actual constraint but you can still do all the other stuff like path, message etc. I also added String propertyPathString to ViolationExpectation so string representations can be tested using the same approach. And as a result I replaced all usages of ConstraintViolationAssert#assertCorrectPropertyPaths.
Looking at the changed tests it seems that string representation of paths covers the cases that you mentioned. Or should we have a set of dedicated tests just for this string representation?

Hmmm, I'm not sold on this one.
I really think it would be better to have a separate test for the string representation, similar to what I did for container elements' string representation. I like the idea of being able to see the behavior of the string representation at a quick glance and having a quick overview of all the cases. Having it widespread everywhere is not a very good idea IMHO.
The other thing that makes me lean this way is that I don't like very much the property path being handled by the containsOnlyViolations facility: I really would like to have people compare the paths instead.
Basically, assertCorrectPropertyPaths should only be used in the string representation tests.

yeah ... I was 50-50 on this one. Having dedicated test for string representation sounds good. But on the other hand we would write similar things that are already in the code to test that path...
So if you think that having dedicated tests is the way to go for this one - I'll agree with you :)
I'll rework this PR, the only question would be - do we want that part about ConstraintViolationAssert#violationOfAnything and string representation validation removed from containsOnlyViolations as well ?

So if you think that having dedicated tests is the way to go for this one - I'll agree with you :)

Yes, I think it's the right path. There will be some duplication for the validated beans but I don't think it's an issue.
Maybe we could create a stringrepresentation package in internal.engine.path? And move ContainerElementStringRepresentationTest there too?

I'll rework this PR, the only question would be - do we want that part about ConstraintViolationAssert#violationOfAnything and string representation validation removed from containsOnlyViolations as well ?

Yes. In these tests, we will use assertCorrectPropertyPaths that we might rename assertCorrectPropertyPathStringRepresentations.

@marko-bekhta FYI, we plan to release CR1 tomorrow.
It would be nice if we could have these tests in by then! If not, we'll push them in the next CR.

@gsmet I see ... I did start working on those, but the changes are only on my laptop at home :)
I think I'll have something for this release, but closer to today's evening.

@marko-bekhta OK, perfect. I plan to wrap the release on tomorrow late afternoon.

@gsmet here's what I have done atm. I changed the function name in a separate commit so it'll be easier to read the tests, but it can be probably squashed later.

Merged, thanks!


Is this repo actively maintained?

First of all, thanks a lot for this amazing library, it is very helpful. I am new to libgdx, but have solid experience in Kotlin. That is way I am planning to start libgdx in Kotlin through this library.
However, I see that the last commit was more than 4 months ago (as of writing this issue), so I wonder if it is actively maintained (kinda LTS) so that we would not miss any new updates from libgdx as well (sorry if the question is not valid, I am new to this repo, and don't know much of the aspects).

Hey @Rhtyme. First of all, latest features are on the develop branch. The main branch contains the latest stable release, so that the documentation is consistent with what you're getting when you set up your application through e.g. gdx-liftoff.
That being said, new features are not actively developed and are mostly contributed by KTX community. I usually try to merge smaller utilities pretty quick, but larger contributions like new modules can drag a little bit since I maintain the library in my spare time. As for newer libGDX versions, I try to update major dependencies pretty regularly. Basically, not much has changed since the last time it was asked in #308. ;)

I've released the latest changes today, so you should see a bit more activity in the main branch. :)

thanks for the quick response. Yes, I totally understand this is open source project, however I see that now the repo looks much fresh ;)


Add windows release debug mode

Motivation
Adapt some tools only works in Debug mode
Verifying this change

[x] Make sure that the change passes the CI checks.

Documentation

[ ] doc-required
(Your PR needs to update docs and you will update later)

[x] doc-not-needed
(Please explain why)

[ ] doc
(Your PR contains doc changes)

[ ] doc-complete
(Docs have been already added)

@merlimat I see your comments here https://github.com/apache/pulsar-client-cpp/pull/72#issuecomment-1293494580
@yaalsn Should we revert the upload logic here? From Matteo's perspective, we should not upload tge artifacts to release due to the credentials issue when pushing a tag.


Fix clipsToBounds issue

Just a small PR to fix clipsToBounds issue. Should not set layer.masksToBounds = false unless we set the mask.
Should fix #303

Thanks @tbaranes


Strided arrays

Hello,
I am currently running a simulation and it appears to work with a previous version. After updating the parcels package I received the following error:
Traceback (most recent call last):
  File "Debug_main.py", line 110, in <module>
    pset.execute(kernels, runtime=delta(days=5), dt=delta(hours=1))
  File "/net/kryo/work/ursho/PhD/Projects/Pteropods/My_parcels/Parcels_master_copy/parcels/parcels/particleset.py", line 652, in execute
    execute_once=execute_once)
  File "/net/kryo/work/ursho/PhD/Projects/Pteropods/My_parcels/Parcels_master_copy/parcels/parcels/kernel.py", line 377, in execute
    self.execute_jit(pset, endtime, dt)
  File "/net/kryo/work/ursho/PhD/Projects/Pteropods/My_parcels/Parcels_master_copy/parcels/parcels/kernel.py", line 253, in execute_jit
    particle_data = byref(pset.ctypes_struct)
  File "/net/kryo/work/ursho/PhD/Projects/Pteropods/My_parcels/Parcels_master_copy/parcels/parcels/particleset.py", line 315, in ctypes_struct
    cdata = [cdata_for(v) for v in self.ptype.variables]
  File "/net/kryo/work/ursho/PhD/Projects/Pteropods/My_parcels/Parcels_master_copy/parcels/parcels/particleset.py", line 315, in <listcomp>
    cdata = [cdata_for(v) for v in self.ptype.variables]
  File "/net/kryo/work/ursho/PhD/Projects/Pteropods/My_parcels/Parcels_master_copy/parcels/parcels/particleset.py", line 302, in cdata_for
    cdata_array = np.ctypeslib.as_ctypes(self.particle_data[v.name])
  File "/home/ursho/anaconda3/envs/py3_parcels/lib/python3.7/site-packages/numpy/ctypeslib.py", line 531, in as_ctypes
    raise TypeError("strided arrays not supported")
TypeError: strided arrays not supported

My setup is as follows, where "mask_u" is the ocean-land mask in our ROMS setup:

data_file = "uvw_pactcs30_10_days.nc"
depthfiles = "depth_z_pos.nc"
mesh_file = "pactcs30_grd.nc"

filenames = {'U': {'lon': mesh_file, 'lat': mesh_file, 'depth': depthfiles, 'data': data_file},
                 'V': {'lon': mesh_file, 'lat': mesh_file, 'depth': depthfiles, 'data': data_file},
                 'W': {'lon': mesh_file, 'lat': mesh_file, 'depth': depthfiles, 'data': data_file},
                 'maskU': {'lon': mesh_file, 'lat': mesh_file, 'data': mesh_file}}

variables = {'U': 'u',
                 'V': 'v',
                 'W': 'w',
                 'maskU': 'mask_u'}

dimensions = {'U': {'lon': 'lon_psi', 'lat': 'lat_psi', 'depth': 'depth_Z', 'time': 'time_counter'},
                  'V': {'lon': 'lon_psi', 'lat': 'lat_psi', 'depth': 'depth_Z', 'time': 'time_counter'},
                  'W': {'lon': 'lon_psi', 'lat': 'lat_psi', 'depth': 'depth_Z', 'time': 'time_counter'},
                  'maskU': {'lon': 'lon_psi', 'lat': 'lat_psi'}}

fieldset = FieldSet.from_c_grid_dataset(filenames, variables, dimensions,allow_time_extrapolation=False)

The setup appears to work, if only U, V, and W are defined in the fieldset, or if only one particle is simulated. As soon as the particle set has more than one particle, the error appears. Below are the some tests to show this behaviour. The simulation works for both particles individually, but not if they are in the same particle set.
pset = ParticleSet(fieldset=fieldset, pclass=JITParticle, lon=233.418167,\
                   lat=47.519787,depth=0.488973,time=0.0)
kernels =  pset.Kernel(AdvectionRK4_3D)
pset.execute(kernels, runtime=delta(days=5), dt=delta(hours=1))

pset = ParticleSet(fieldset=fieldset, pclass=JITParticle, lon=235.439484,\
                   lat=42.997616,depth=3.693717,time=0.0)
pset.execute(kernels, runtime=delta(days=5), dt=delta(hours=1))

pset = ParticleSet(fieldset=fieldset, pclass=JITParticle, lon=[233.418167,235.439484],\
                   lat=[47.519787,42.997616],depth=[0.488973,3.693717],time=0.0)
pset.execute(kernels, runtime=delta(days=5), dt=delta(hours=1))

The three files needed are here
Thank you for your help!

Should be fixed by #785 shortly!

#785 has been merged, so this should be fixed now. Could you rerun with the new master, @ursho2552? I'm closing this Issue, but if you still experience the error, please reopen this Issue.

Yes thank you very much, it works now.


Implement snapshotting for the acoustic wave equation

Implement snapshotting to save snapshots of the forward wavefield used to compute the gradient to reduce memory usage.

Hi Mathias, thank you for your feedback. I have reviewed and cleaned the code to the best of my understanding. I have included a notebook to compare computing the FWI gradient with and without snapshotting and two scripts to calculate the memory usage of both methods. After updating the code, the memory usage for calculating the gradient with snapshotting is more than twice that of the older code version. This reduced memory usage (I guess) because I was passing 'usnaps' with the operator (which is not good practice). I am wondering, is it possible to improve the code more to reduce the memory usage?

Hi Fabio, thank you for your feedback. I have reviewed and cleaned the code to the best of my understanding.


evm_increaseTime's seconds parameter doesn't allow hex encoded values

The seconds parameter for evm_increaseTime doesn't allow hex encoded values. It currently only accepts values of base 10. Though this is easier for the user to use, it differs from the rest of the API, and will likely cause issues later. We should make it support hex encoded values as well.

Hey Tim, is this issue still outstanding?
Swapping decimal for hex (prefaced '0x') in the 'should jump 5 hours' test produces a valid result (can issue pull request to demonstrate if desired). Additionally, tracing the function for 'evm_increaseTime' to its root in 'blockchain_double.js' boils down to addition, which javascript supports for decimal and hex. So, essentially, no change needed.
I see you added this issue shortly after your work on DAO-Truffle (http://truffleframework.com/tutorials/chain-forking-exploiting-the-dao; cool read by the way). I'm wondering if this issue has been raised because hex values wouldn't work with the 'jump' function there? If so, that breaks w/ hex parameters due to logic preceding the call to 'evm_increaseTime' (specifically var params = duration.split(" ");). Happy to add pull request to that repo too if interested.
Before going down either path, wanted to be sure I correctly understood the issue.

Closing this one as we're tracking it in ganache-core #118 now.


Test-DbaCompression question

Feature Request
Should we only show tested compression values for tables with at least one access? Or we should no matter what

imo we should show for every table.
I can just want to know the gains I can get by doing it.
Also, if my instance has started and no access was done to the table (s) because it is one with less usage but I know that is big and I want to check the values as it is today isn't possible.
columns with % of read (scan) / write (update) should be kept but show N/A for the cases where the division can be done because of 0 reads. This way user still be able to weigh his decision 😄

Yes, @ClaudioESSilva - this was my expectation as well and I wondered why I had so few results across my estate. Please do modify the T-SQL as we discussed in Slack, submit a PR and I'll add a Pester test 👍
@js0505 - Claudio and I are on the same time zone and I'd like to get a Pester test in today so I asked him to jump in and modify the T-SQL 💯
Thanks to you both!

fixed


Verify that tests correctly handle rounding on 4GiB boundaries

What type of PR is this?
/kind bug
What this PR does / why we need it:
Verify that PR #199 addresses Issue #94128 by changing the GCP rounding to use a 4GiB aligned value. The GCP  CSI driver is used because it contains a common method for rounding that is easy to modify for testing.
Which issue(s) this PR fixes:
Special notes for your reviewer:
This is a test PR and will not be merged. It is being used to run the test suites to verify that an existing fix works as expected.
Does this PR introduce a user-facing change?:
None

/hold
this should not be merged

@jsafrane Updated the return value

/retest

The test failures are caused by the tests not expecting any rounding for size specified as SupportedSizeRange.Min in the test manifest.
I tested it with Min: 4GiB and it passed just fine.


Update README.md

Proposed changes
Hi there, I complied with the request they made to update the documentation #650
Types of changes
What types of changes does your code introduce to FESTIM?

[ ] Bugfix (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 not work as expected)
[ ] Code refactoring
[x] Documentation Update (if none of the other choices apply)
[ ] New tests

Checklist

[ ] Black formatted
[ ] Unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

https://github.com/festim-dev/FESTIM/issues/650 update .Thanks a lot for the quick review and positive feedback!


Custom Links?

Is there a way to add custom links instead of using bookmarks?  I would like to add some URLs, but not through bookmarks, sort of like "my top visited sites" as opposed to "recent sites".   Basically being able to add in my own links.  Is that possible?

It's not possible at the moment. Is there a reason you don't want to use bookmarks?

I have several specific sites I visit everyday, And because I have a huge amount of bookmarks, makes it a bit harder to go to just those ones.


Python script: test workflow for stable and dev versions of qiskit

What is the expected?
Implement function to run tests for specified repository against stable version of qiskit and against dev version (main branch).
See python runner for getting the idea.
Runner should handle execution workflow for tests and return summary
Related stories:

as core team member/curator I want CI processes takes care of tests, style checks, coverage after submission so that it would reduce time of review of submission
as core team member/curator I want checks and tests to have Terra version associated with them so that we can track which version is breaking the code
as core team member/curator I want CI for tests/checks to be executed in timely manner (weekly) so that entire ecosystem always remains up-to-date

Epic #9

I would like to work on this issue, starting 26th September

@bala-ceg a lot of the codebase already in place, we need to verify that is making sense and there are no errors and potentially improve it


Improve performance of serializer wrt documentsCount

https://github.com/Azure/azure-sdk-for-net/pull/8677#discussion_r345402004

Because of the work in https://github.com/Azure/azure-sdk-for-net/issues/12951 this is no longer needed


Add OpenSSF Scorecard GH Action results to the Component Details.

Caputre the data as part of the cli
Render the data in the Component Details

Completed for both v10 and v11


WIP: Storybook 5

Testing storybook 5 compat, basic functionality seems ok,
Though i have some smaller problems with theming (dark theme doesnt get applied)

@pksunkara should we move the storybook deps to peerDeps?


Enhancementchange runtime filter generator

Proposed changes
Issue Number: close #xxx
Problem summary
change runtime filter generator from pre-order to post-order, it maybe change the quantity of generated runtime filters.
and the ut will be corrected.
Checklist(Required)

Does it affect the original behavior:

[x] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[x] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[x] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 37.63 seconds
load time: 607 seconds
storage size:<PHONE_NUMBER>0 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221103131905_clickbench_pr_39414.html


Bag difference semantics is wrong (reversed)

The semantic for OpBagDiff is wrong.
This can be seen of the following queries:
bash-3.2$ cat sql/org9.sql
(select *
from employees)
except
(select *
from employees
where age = 32)
;
bash-3.2$ ../bin/qcert -source sql -target dnnrc sql/org9.sql -eval -input sql/org.input -schema sql/org.schema -eval-validate -output sql/org9.out
[sql/org9 dnnrc] ERROR
Expected:
{[age : 34; company : 101.000000; eid : 3.000000; name : "Jim Does"],
 [age : 34; company : 103.000000; eid : 5.000000; name : "Joan Doe"],
 [age : 35; company : 104.000000; eid : 6.000000; name : "James Do"]}
Actual:
{}
bash-3.2$ cat sql/org10.sql
(select *
from employees
where age = 32)
except
(select *
from employees)
;
bash-3.2$ ../bin/qcert -source sql -target dnnrc sql/org10.sql -eval -input sql/org.input -schema sql/org.schema -eval-validate -output sql/org10.out
[sql/org10 dnnrc] ERROR
Expected:
{}
Actual:
{[age : 34; company : 101.000000; eid : 3.000000; name : "Jim Does"],
 [age : 34; company : 103.000000; eid : 5.000000; name : "Joan Doe"],
 [age : 35; company : 104.000000; eid : 6.000000; name : "James Do"]}

Fixed in #108


Allow XMPP Server to be different from JID domain

Added support for specifying the XMPP server to connect to when it s different from the XMPP hostname in the JID.

Hi,
You have updated the nuget package too?
Because I don't think this update is in the current version of Sharp.Xmpp hosted in the nuget server.
Thanks.

@stevenlivz This is a really useful core PR, but it looks like your entire development process get pulled into it.
Usually the best approach to Git Flow is to create a branch in your repo for a PR, do the changes, and then create the PR from that branch.
Would you mind cherry picking the first commit (9d5477a) off into a new branch and creating a new PR?  Hopefully that could resolve folks problems (#65, #58, #34), and mine as well.


push_nocopy object/string bug

If you push an object or string to another json object though any of the noncopy functions, when calling json_builder_free, this function tries to deallocate the .name and .ptr, which have not been allocated in this scenario.
I am posting this from my phone sorry for my brevity.

Hm, I suppose the API documentation is a bit lacking here, I think it is intended that these functions take ownership of the allocation from you, as that is how they are used internally in the implementation. Perhaps these functions should be renamed and maybe we can consider adding real nocopy that set a flag to indicate that they are not to be deallocated.


Include mapping configuration

Introduce two new attributes to include the mapping configuration of another mapper / mapping method.
Each mapping configuration is identified by a name which is by default the name of the method, but can be overwritten by NamedMappingConfigurationAttribute, eg. [NamedMappingConfiguration("myName")].
A mapping configuration can be applied to the current mapping method by applying IncludeMappingConfigurationAttribute: [IncludeMappingConfiguration("myName")] / [IncludeMappingConfiguration(nameof(OtherMappingMethod))].
If an IncludeMappingConfigurationAttribute references an ambiguous mapping configuration, a diagnostic should be emitted.
Proposed API:
[AttributeUsage(AttributeTargets.Method)]
public class IncludeMappingConfigurationAttribute : Attribute
{
    public IncludeMappingConfigurationAttribute(string name);
}

[AttributeUsage(AttributeTargets.Method)]
public class NamedMappingConfigurationAttribute : Attribute
{
    public NamedMappingConfigurationAttribute(string name);
}

Usage:
class Fruit { public string Name { get; set; } public decimal PricePerUnit { get; set; } }
class FruitDto { public string Title { get; set; } }

class Apple : Fruit { public int Weight { get; set; } }
class AppleDto : FruitDto { public int Weight { get; set; } }

[Mapper]
public partial static class MyMapper
{
    [MapProperty(nameof(Fruit.Name), nameof(FruitDto.Title))]
    [MapperIgnoreSource(nameof(Fruit.PricePerUnit))]
    private partial FruitDto ToFruit(Fruit fruit);

    [IncludeMappingConfiguration(nameof(ToFruit))]
    public partial static AppleDto Map(Apple apple);
}

What if the (named) mapping configuration is defined in another (different) Mapping class?
(Happens a lot in my projects.)
Will/should it work anyway?

@mutzl it will work as long as it is in the same project and via explicit name. We could probably also add a constructor overload to include the mapper type and generate the name based on the name of the mapper + the name of the mapping method.

Being able to reuse mappings from a base type would be critical for a number of usecases we have

I don't think automatically applying these configurations is not a good idea and make the API / configuration a lot harder to understand and troubleshoot.

This should also work for reverse mappings with an additional property bool Reverse and on existing target instance mappings.

What is the current guidance to work around this issue since the attribute isn't available.
Would you advise passing in the mapper as a property to other mappers?
For the example public partial static AppleDto Map(Apple apple); currently nothing would be automatically mapped since Mapperly doesn't know that a mapper exists for this is that correct?

@latonz  What's the status of this feature? I would really need this for scenarios that involve inheritance. Example:
      public partial PositionDTO Map(Position source);

      [MapProperty(nameof(MassPosition.Mass), nameof(MassPositionDTO.MassInInputUnit))]
      public partial MassPositionDTO Map(MassPosition source);

      [MapProperty(nameof(@DurationPosition.Duration.Hours), nameof(DurationPositionDTO.DurationInH))]
      public partial DurationPositionDTO Map(DurationPosition source);

      // ShaftSealingPosition derives from MassPosition and I need to duplicate this mapping on every subtype
      [MapProperty(nameof(MassPosition.Mass), nameof(MassPositionDTO.MassInInputUnit))]
      public partial ShaftSealingPositionDTO Map(ShaftSealingPosition source);

IncludeMappingConfiguration would solve this problem, but the best solution would be if Mapperly automatically recognizes that there is already a mapping defined for the base class and pick it up automatically.

This hasn‘t been implemented yet and also no one is currently working on this. Feel free to contribute. There is no real workaround, except to duplicate your configuration.

Is this what is causing my open api spec to have a bunch of the same DTOs in it? I'm evaluating Mapperly in creating some example dotnet projects for our company. Here is the mapper I have set up:
using DotnetExamples.API.Dtos;
using DotnetExamples.API.Models;
using Riok.Mapperly.Abstractions;

namespace DotnetExamples.API.Mappers;

[Mapper]
public static partial class Mapper
{
    #region Districts

    public static partial DistrictDto ToDistrictDto(District district);

    #endregion

    #region Principals

    public static partial PrincipalDto ToPrincipalDto(Principal principal);

    #endregion

    #region Superintendents

    public static partial SuperintendentDto ToSuperintendentDto(Superintendent superintendent);

    #endregion

    #region Teachers

    public static partial TeacherDto ToTeacherDto(Teacher teacher);

    #endregion

    #region Schools

    public static partial SchoolDto ToSchoolDto(School school);

    #endregion

    #region Students

    public static partial StudentDto ToStudentDto(Student student);

    public static partial Student ToStudent(CreateStudentDto createStudentDto);
    public static partial void UpdateStudent(UpdateStudentDto updateStudentDto, Student student);

    public static partial void ApplyUpdate([MappingTarget] this Student student, UpdateStudentDto updateStudentDto);

    #endregion
}

Most of these models contain lists of other models, like School has a List of Students (so does Teacher), etc.
Models being generated:

@csteenbock Mapperly does not generate models, only Mapping methods are generated by Mapperly.


Unable to download youtube videos

I was downloading a few nanodegrees, all of it was working perfectly fine, till the morning today.
Today, when I tried resuming my download, none of the videos get downloaded and keep reporting an error
× Getting Youtube video (id=kNxZwfXwvuk) information with quality="22"
2020-06-18T05:26:19.570Z [error]: Failed to download youtube video with id kNxZwfXwvuk with quality="22", retrying with quality="18"
× Getting Youtube video (id=kNxZwfXwvuk) information with quality="18"
2020-06-18T05:26:23.800Z [error]: Failed to download youtube video with id kNxZwfXwvuk with quality="18", retrying with quality=""
× Getting Youtube video (id=kNxZwfXwvuk) information with quality=""
2020-06-18T05:26:28.303Z [error]: Youtube video with id kNxZwfXwvuk could not be downloaded available. The CLI will ignore this error and skip this download. Please check this error message:

"Command failed with exit code 1: C:\\Users\\hot9c\\AppData\\Roaming\\npm\\node_modules\\udacimak\\node_modules\\youtube-dl\\bin\\youtube-dl.exe --dump-json -f best --verbose --encoding utf8 http://www.youtube.com/watch?v=kNxZwfXwvuk"

This is when I'm downloading the data analytics nanodegree.
I don't quite understand it because I've been downloading a few nanodegrees for a couple of weeks now and every nanodegree donwload has gone fine. I have a problem all of a sudden, completely out of the blue.
My udacimak version is 1.6.6, ie updated to the latest.
Windows 10 OS.

But really, if this was an issue with a version or something, then I would expect my previous download which was only yesterday to have failed too. But that worked. So what happened overnight?
EDIT: I decided to go back and try to redownload my old nanodegrees(I had their json files saved).
So, the videos now don't download for those nanodegrees either. That is, the downloads fail even for nanodegrees which were being downloaded successfully in the past(as recently as 1 week ago).
I only have a few days of my free nanodegree course left unfortunately, I request you to look into it as soon as possible.

Hi I just downloaded Data analyst nanodegree program using data.jason file and everything seems to be fine.Maybe u should reinstalling  udacimak.

udacimak version 1.6.6

Okay, the problem was with my expiring license key for my OS, apparently. Reinstalling udacimak and other solutions didn't solve it, but reactivating my OS key did. For anyone else who faces the issue, this might be your problem.