aws-crt-cpp: 0.19.8 -> 0.20.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/aws-crt-cpp/versions.
meta.description for aws-crt-cpp is: C++ wrapper around the aws-c-* libraries
meta.homepage for aws-crt-cpp is: https://github.com/awslabs/aws-crt-cpp
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.20.1 in filename of file in /nix/store/gksbqqd6pphfb1k6dg48b6hri6xw45l8-aws-crt-cpp-0.20.1

Rebuild report (if merged into master) (click to expand)

482 total rebuild path(s)

482 package rebuild(s)

First fifty rebuilds by attrpath
activitywatch
ansible-language-server
antora
apacheHttpdPackages.mod_tile
apacheHttpdPackages_2_4.mod_tile
appvm
ariang
arrow-cpp
arrow-glib
audiobookshelf
authelia
aw-server-rust
aws-crt-cpp
aws-sdk-cpp
bitwarden
botamusique
bundix
cabal2nix
cached-nix-shell
cachix
cdxgen
ceph
ceph-client
ceph-csi
ceph-dev
cloudcompare
colmena
common-updater-scripts
crate2nix
crystal2nix
cz-cli
databricks-sql-cli
dbx
deltachat-desktop
dep2nix
docker-compose-language-service
dot-language-server
dydisnix
easyocr
element-desktop
element-desktop-wayland
emscripten
entwine
epgstation
evcc
faust
faust2
faust2alqt
faust2alsa
faust2csound

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/gksbqqd6pphfb1k6dg48b6hri6xw45l8-aws-crt-cpp-0.20.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A aws-crt-cpp https://github.com/r-ryantm/nixpkgs/archive/b006d87c9de64a0d179362e50d16c3b7cb7f33ec.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/gksbqqd6pphfb1k6dg48b6hri6xw45l8-aws-crt-cpp-0.20.1
ls -la /nix/store/gksbqqd6pphfb1k6dg48b6hri6xw45l8-aws-crt-cpp-0.20.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings
cc @r-burns for testing.

@ofborg build aws-crt-cpp aws-crt-cpp.passthru.tests

@ofborg build arrow-cpp arrow-cpp.passthru.tests


cgroups v2 Support

Work needs to be done to the cgroups lib and containerd metrics interfaces to support cgroups v2 support.  With much of the work in 5.3 kernels this should be reasonable to start supporting as a first class feature and can be a replacement for v1 for some users.
runc recently gained support for v2 as well as crun.

(below are edited by maintainers)
runc checklist
See https://github.com/opencontainers/runc/issues/2209
containerd checklist

[x] base https://github.com/containerd/containerd/pull/3799
[x] PID metrics https://github.com/containerd/containerd/pull/3799
[x] CPU metrics
[x] Memory metrics
[ ] OOM handler
[x] IO metrics: https://github.com/containerd/containerd/pull/3919

containerd/CRI checklist

[x]  metrics: https://github.com/containerd/cri/pull/1376
[x] enable cgroup namespace by default: https://github.com/containerd/cri/pull/1371
[ ] enable cgroup namespace for pod sandboxes as well as for containers? (To be determined)
[x] disable cgroup namespace for privileged pods (discussed in https://github.com/kubernetes/enhancements/pull/1370): https://github.com/containerd/cri/pull/1415
[ ] systemd cgroup driver for rootless

CI

[ ] CI (crun)
[ ] CI (runc)
[ ] CI (rootless crun/runc)

Fedora 31 ships with CGroups v2 by default, and Docker (moby-engine, docker-ce) does not work by default (you need to add this kernel command line arguments systemd.unified_cgroup_hierarchy=0)
Workaround seems to work fine (for now)

The majority of the work will have to be done in runc to get v2 support working fully.  It as the start for cgroupv2 support but still lacks devices support via eBPF

I'm looking into this today and trying to compile a list of all the tasks that need to be completed.

For reference, the Docker/CGroupV2 issue for Fedora 31 is tracked in https://bugzilla.redhat.com/show_bug.cgi?id=1746355

attempting to write eBPF device controller
https://github.com/AkihiroSuda/runc/commits/ebpf

Do we support cgroup2 only for shim v2 runc v2?
If Moby cannot migrate to shim v2 (https://github.com/moby/moby/pull/38943) soon, we also need to support shim v1?

RFC for containerd/cgroups package: https://github.com/containerd/cgroups/pull/102

I think v2 shims.  I'll work on docker to use the v2 shims by default as enough time has past and we are not supporting v1 shims as much anymore.

PR https://github.com/containerd/containerd/pull/3799

added the checklist to the top comment of this issue
cc @Zyqsempai

I will take CPU and Memory metrics.

The base parts are merged now.
We need to add CPU/Memory/IO metrics and OOM handler.
Help wanted.

But i think the prometheus stats should use the same metrics names as v1.  there shouldn't be a reason to have the _v2 suffix on the metrics.

CPU/Memory/IO fields are very different from v1

true but no need to have suffixes on the metrics.  its just a metric and it either has a value or not.

suffixes just break existing dashboards when there can be some overlap between the metrics.  no reason to break pids dashboards when current/limit are EXACTLY the same

Yes, I'm fine for removing _v2 suffix for PID fields.
Maybe memory stuff should have v2 suffix for clarification, but I don't have any strong opinion about this.
If there are fields with same name but different meanings, probably such v2 field should have v2 suffix.

agree.  lets reserve the _v2 suffix for same field names but different meanings.  Other than that, I think we can keep them the same

Seems we can't remove the prefix :cry:
$ git diff upstream/master
diff --git a/metrics/cgroups/v2/pids.go b/metrics/cgroups/v2/pids.go
index 6b693f65..704f87ec 100644
--- a/metrics/cgroups/v2/pids.go
+++ b/metrics/cgroups/v2/pids.go
@@ -26,7 +26,7 @@ import (

 var pidMetrics = []*metric{
        {
-               name: "pids_v2",
+               name: "pids",
                help: "The limit to the number of pids allowed",
                unit: metrics.Unit("limit"),
                vt:   prometheus.GaugeValue,
@@ -42,7 +42,7 @@ var pidMetrics = []*metric{
                },
        },
        {
-               name: "pids_v2",
+               name: "pids",
                help: "The current number of pids",
                unit: metrics.Unit("current"),
                vt:   prometheus.GaugeValue,

$ sudo containerd
INFO[2019-12-13T15:19:04.250646565+09:00] starting containerd                           revision=30c855b7ebe55e47520bfafa91d97a5e3ab8787f.m version=v1.3.0-173-g30c855b7.m
INFO[2019-12-13T15:19:04.292347976+09:00] loading plugin "io.containerd.content.v1.content"...  type=io.containerd.content.v1
INFO[2019-12-13T15:19:04.292417950+09:00] loading plugin "io.containerd.snapshotter.v1.btrfs"...  type=io.containerd.snapshotter.v1
INFO[2019-12-13T15:19:04.292619783+09:00] skip loading plugin "io.containerd.snapshotter.v1.btrfs"...  error="path /var/lib/containerd/io.containerd.snapshotter.v1.btrfs (ext4) must be a btrfs filesystem to be used with the btrfs snapshotter: skip plugin" type=io.containerd.sna
pshotter.v1
INFO[2019-12-13T15:19:04.292637575+09:00] loading plugin "io.containerd.snapshotter.v1.devmapper"...  type=io.containerd.snapshotter.v1
WARN[2019-12-13T15:19:04.292651194+09:00] failed to load plugin io.containerd.snapshotter.v1.devmapper  error="devmapper not configured"
INFO[2019-12-13T15:19:04.292659193+09:00] loading plugin "io.containerd.snapshotter.v1.aufs"...  type=io.containerd.snapshotter.v1
INFO[2019-12-13T15:19:04.295739560+09:00] loading plugin "io.containerd.snapshotter.v1.native"...  type=io.containerd.snapshotter.v1
INFO[2019-12-13T15:19:04.296165681+09:00] loading plugin "io.containerd.snapshotter.v1.overlayfs"...  type=io.containerd.snapshotter.v1
INFO[2019-12-13T15:19:04.296695724+09:00] loading plugin "io.containerd.snapshotter.v1.zfs"...  type=io.containerd.snapshotter.v1
INFO[2019-12-13T15:19:04.301592785+09:00] loading plugin "io.containerd.metadata.v1.bolt"...  type=io.containerd.metadata.v1
WARN[2019-12-13T15:19:04.301739188+09:00] could not use snapshotter devmapper in metadata plugin  error="devmapper not configured"
INFO[2019-12-13T15:19:04.301763508+09:00] metadata content store policy set             policy=shared
INFO[2019-12-13T15:19:04.302004419+09:00] loading plugin "io.containerd.differ.v1.walking"...  type=io.containerd.differ.v1
INFO[2019-12-13T15:19:04.302109943+09:00] loading plugin "io.containerd.gc.v1.scheduler"...  type=io.containerd.gc.v1
INFO[2019-12-13T15:19:04.302223446+09:00] loading plugin "io.containerd.service.v1.containers-service"...  type=io.containerd.service.v1
INFO[2019-12-13T15:19:04.302248170+09:00] loading plugin "io.containerd.service.v1.content-service"...  type=io.containerd.service.v1
INFO[2019-12-13T15:19:04.302372390+09:00] loading plugin "io.containerd.service.v1.diff-service"...  type=io.containerd.service.v1
INFO[2019-12-13T15:19:04.302397652+09:00] loading plugin "io.containerd.service.v1.images-service"...  type=io.containerd.service.v1
INFO[2019-12-13T15:19:04.302495566+09:00] loading plugin "io.containerd.service.v1.leases-service"...  type=io.containerd.service.v1
INFO[2019-12-13T15:19:04.302520976+09:00] loading plugin "io.containerd.service.v1.namespaces-service"...  type=io.containerd.service.v1
INFO[2019-12-13T15:19:04.302608714+09:00] loading plugin "io.containerd.service.v1.snapshots-service"...  type=io.containerd.service.v1
INFO[2019-12-13T15:19:04.302714671+09:00] loading plugin "io.containerd.runtime.v1.linux"...  type=io.containerd.runtime.v1
INFO[2019-12-13T15:19:04.302791529+09:00] loading plugin "io.containerd.runtime.v2.task"...  type=io.containerd.runtime.v2
INFO[2019-12-13T15:19:04.303051446+09:00] loading plugin "io.containerd.monitor.v1.cgroups"...  type=io.containerd.monitor.v1
INFO[2019-12-13T15:19:04.303622805+09:00] loading plugin "io.containerd.monitor.v1.cgroups-v2"...  type=io.containerd.monitor.v1
panic: descriptor Desc{fqName: "container_pids_current", help: "The current number of pids", constLabels: {}, variableLabels: [container_id namespace]} already exists with the same fully-qualified name and const label values

goroutine 1 [running]:
github.com/containerd/containerd/vendor/github.com/prometheus/client_golang/prometheus.(*Registry).MustRegister(0xc000085e80, 0xc00015b5b0, 0x1, 0x1)
        /home/suda/gopath/src/github.com/containerd/containerd/vendor/github.com/prometheus/client_golang/prometheus/registry.go:362 +0xaf
github.com/containerd/containerd/vendor/github.com/prometheus/client_golang/prometheus.MustRegister(...)
        /home/suda/gopath/src/github.com/containerd/containerd/vendor/github.com/prometheus/client_golang/prometheus/registry.go:154
github.com/containerd/containerd/vendor/github.com/docker/go-metrics.Register(...)
        /home/suda/gopath/src/github.com/containerd/containerd/vendor/github.com/docker/go-metrics/register.go:8
github.com/containerd/containerd/metrics/cgroups/v2.New(0xc00031ed80, 0x0, 0x0, 0x0, 0x0)
        /home/suda/gopath/src/github.com/containerd/containerd/metrics/cgroups/v2/cgroups.go:56 +0x361
github.com/containerd/containerd/plugin.(*Registration).Init(0xc0000879e0, 0xc00031ed80, 0x562c7f7716a0)
        /home/suda/gopath/src/github.com/containerd/containerd/plugin/plugin.go:110 +0x3a
github.com/containerd/containerd/services/server.New(0x562c7fa9cd60, 0xc000042098, 0xc000318f00, 0x1, 0x1, 0xc0003078c0)
        /home/suda/gopath/src/github.com/containerd/containerd/services/server/server.go:167 +0xcaa
github.com/containerd/containerd/cmd/containerd/command.App.func1(0xc0000d2580, 0x0, 0xc0002482e0)
        /home/suda/gopath/src/github.com/containerd/containerd/cmd/containerd/command/main.go:177 +0x7fa
github.com/containerd/containerd/vendor/github.com/urfave/cli.HandleAction(0x562c7f7e2180, 0x562c7fa3cf90, 0xc0000d2580, 0xc0000d2580, 0x0)
        /home/suda/gopath/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:523 +0xc0
github.com/containerd/containerd/vendor/github.com/urfave/cli.(*App).Run(0xc000316c40, 0xc00003c1d0, 0x1, 0x1, 0x0, 0x0)
        /home/suda/gopath/src/github.com/containerd/containerd/vendor/github.com/urfave/cli/app.go:285 +0x5e1
main.main()
        github.com/containerd/containerd/cmd/containerd/main.go:33 +0x51

Seems we need to unified the monitor plugin as well. PR: https://github.com/containerd/containerd/pull/3891

@AkihiroSuda I will work on OOM handler.

@Zyqsempai Are you still planning to work on OOM handler?

ping @Zyqsempai

@AkihiroSuda Yes, but unfortunately I will be able to work on it only on the next week.

@Zyqsempai +1


hd44780 and raspberry pi pico text convertion

Hi,
I am having a problem with using this library on my LCD. I have used the code in example/main.c and after connecting raspberry to display and setting the code, the "Hello World!" message instantly switches on the first letter of the display. I don't understand this behavior, when i wired it all correctly and i used LCDwriteMessage("Hello"); not ramMessage. I tried adding LCDgoto("05"); into the code to move the text to right and changed the text to simple "Hello". The message finally came up on the display, but the text wasn't the input. It said "Iemmo" isntead of Hello. I tried re-wiring the cables, without a success. My display might be broken, but i don't think so, because it was working perfectly with my Raspberry pi 4B. One option would be to send different data to the display, like instead of "hello", something like "fghee" which would  show up correct text on the display, but that seems bad to me when you have functioning library.  I would like to know if i made some dumb mistake in wiring or setting correct pins, or it is on the library side. And eventually how to fix it.
Thanks for answer

update:
I have found that during sending data the last bit is being forced to be on so instead of sending "b" in binary: 01100010
its forced to be 01100011 or "c" in this case. Still, i don't know on whose side this problem is.

Could be also damaged output pin on pico, try to configure a different one.
Or you could try to set and reset this pin "manually" to see if it works correctly.
For me this lib works fine :)


Assign multiple stock items to customer

Add ability to assign multiple stock items to a customer

Also would be handy to add a "notes" field to the form for assigning stock to a customer

Implemented


Right side menu doesn't close when going right, slow, and more than half (= simple to fix)

Ionic version:  (check one with "x")
[x] 1.x
[ ] 2.x
I'm submitting a ...  (check one with "x")
[x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
If you open the right side menu, and then slowly close it towards the right and more than half, the side menu snaps back to being open.
Expected behavior:
The right side menu should probably close in this case (at least the left side menu does, and when looking at the code it seems to be a bug...).
Steps to reproduce:

Open right side menu.
Slowly drag the side menu towards the right, and more than half.
Release side menu.

Related code:
The bug is here (sideMenuController.js, self.snapToRest(), line 264):
// Going right, more than half, too slow (snap back)
else if (ratio < 0.5 && direction == 'right' && velocityX < velocityThreshold) {
  self.openPercentage(-100);
}

It should probably instead be:
// Going right, more than half, too slow (snap back)
else if (ratio < -0.5 && direction == 'right' && velocityX < velocityThreshold) {
  self.openPercentage(-100);
}

(= you probably forgot to add the minus sign :-) ).
Other information:
Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
Cordova CLI: 6.3.1
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.1
Ionic CLI Version: 2.1.4
Ionic App Lib Version: 2.1.2
ios-deploy version: 1.9.0
ios-sim version: 5.0.3
OS: Mac OS X Sierra
Node Version: v6.9.1
Xcode version: Xcode 8.1 Build version 8B62

Hello, thanks for opening an issue with us! So this is actually expected behavior. If you try a native android app, such as the Google Play Store, the sidemenu will exhibit the same behavior.

Hmm, no. The left side menu does behave the same as the left side menu in Google Play Store and works correctly, but the RIGHT side menu doesn't! (not that there is a right side menu in Google Play Store, but the behavior of the right side menu in Ionic is clearly different than the left side menu).
And even if the current behavior of the right side menu would be on purpose, the current source code wouldn't make much sense.
To clarify:
Our app currently has this setup:
<ion-side-menu-content edge-drag-threshold="true" drag-content="true">
  ...the main content...
</ion-side-menu-content>
<ion-side-menu side="left">
   ...
</ion-side-menu>
<ion-side-menu side="right">
   ...
</ion-side-menu>

If you look at sideMenuController.js (Ionic version 1.3.2), at line 230, there is the function called snapToRest that is responsible for this behavior.
This function first gets the open ratio of the side menus:
var ratio = self.getOpenRatio();
ratio will be in a range from 0 (closed) to 1 (open) for the left side menu, and from 0 (closed) to -1 (open) for the right side menu.
Then follow the four checks for slowly dragging, where the bug is. Let's look at each one of them separately:
1.
// Going right, less than half, too slow (snap back)
if (ratio > 0 && ratio < 0.5 && direction == 'right' && velocityX < velocityThreshold) {
  self.openPercentage(0);
}

The range of ratio here is from 0 to 0.5, so only affects the left side menu. This checks if the left side menu was slowly dragged open, but less than half the screen. So the left side menu snaps close again.
2.
// Going left, more than half, too slow (snap back)
else if (ratio > 0.5 && direction == 'left' && velocityX < velocityThreshold) {
  self.openPercentage(100);
}

The range of ratio here is from 0.5 upwards, so also only affects the left side menu. This checks if the left side menu was open and slowly dragged towards the close state (direction == 'left') but is still open more than half the screen. So the the left side menu snaps open again.
3.
// Going left, less than half, too slow (snap back)
else if (ratio < 0 && ratio > -0.5 && direction == 'left' && velocityX < velocityThreshold) {
  self.openPercentage(0);
}

Now the same checks seem to be started for the right side menu. This is actually the mirror of Nr. 1, adjusted for the right side menu. The range is from 0 to -0.5, so this only affects the right side menu. This code checks if the right side menu was closed and slowly dragged towards the open state, but less than half the screen. If yes, closes the side menu.
4.
// Going right, more than half, too slow (snap back)
else if (ratio < 0.5 && direction == 'right' && velocityX < velocityThreshold) {
  self.openPercentage(-100);
}

So now we arrived at the problematic code. I would expect a mirror of Nr. 2 here for the right side menu, but it isn't. The affected ratio range is everything smaller than 0.5, so in theory would affect both the left and right side menu. But a ratio < 0.5 for the left side menu would have already exited at Nr. 1, because there is exactly the same check, but without the ratio > 0 check. So this is clearly wrong, even if the behavior was on purpose.
Now for the right side menu, the program will exit here always for slow drags and if it hasn't exited yet in Nr. 3, because this affects the full range (0 to -1) of the side menu ratios. That is why the right side menu jumps back to the open state even if it was almost closed with the drag.
If the right menu should have the exact mirrored behavior as the left side menu, you have to add a minus sign to the 0.5 (as stated above). And as the current 0.5 without the minus sign here doesn't make much sense, I assume this was the original intention anyways when it was originally written. So the correct code here should be:
// Going right, more than half, too slow (snap back)
else if (ratio < -0.5 && direction == 'right' && velocityX < velocityThreshold) {
  self.openPercentage(-100);
}

Sorry for my detailed description, just wanted to make sure that I was correctly understood :-).
Thanks!


Makefiles for example deployment

Create a top-level Makefile in each of the example directories that handles the deployment of the example.
Should deploy the foundation components, e.g., network, iam, storage, and the cluster separately or all together.

Fixed by PR #26


IUO: Generate Optional rather than ImplicitlyUnwrappedOptional

Stop creating ImplicitlyUnwrappedOptional so that we can remove it
from the type system.
Enable the code that generates disjunctions for Optional and
rewrites expressions based on the original declared type being T!.
Most of the changes supporting this were previously merged to master,
but some things were difficult to merge to master without actually
removing IUOs from the type system:

Dynamic member lookup and dynamic subscripting
Changes to ensure the bridging peephole still works

Past commits have attempted to retain as much fidelity with how we
were printing things as possible. There are some cases where we still
are not printing things the same way:

In diagnostics we will print ? rather than !
Some SourceKit and Code Completion output where we print a Type
rather than Decl.

Things like module printing via swift-ide-test attempt to print !
any place that we now have Optional types that were declared as IUOs.
There are some diagnostics regressions related to the fact that we can
no longer "look through" IUOs. For the same reason some output and
functionality changes in Code Completion. I have an idea of how we can
restore these, and have opened a bug to investigate doing so.
There are some small source compatibility breaks that result from
this change:

Results of dynamic lookup that are themselves declared IUO can in
rare circumstances be inferred differently. This shows up in
test/ClangImporter/objc_parse.swift, where we have
var optStr = obj.nsstringProperty
Rather than inferring optStr to be String!?, we now infer this to
be String??, which is in line with the expectations of SE-0054.
The fact that we were only inferring the outermost IUO to be an
Optional in Swift 4 was a result of the incomplete implementation of
SE-0054 as opposed to a particular design. This should rarely cause
problems since in the common case of actually using the property rather
than just assigning it to a value with inferred type, we will behave
the same way.
Overloading functions with inout parameters strictly by a difference
in optionality (i.e. Optional<T> vs. ImplicitlyUnwrappedOptional<T>)
will result in an error rather than the diagnostic that was added
in Swift 4.1.
Any place where ! was being used where it wasn't supposed to be
allowed by SE-0054 will now treat the ! as if it were ?.
Swift 4.1 generates warnings for these saying that putting !
in that location is deprecated. These locations include for example
typealiases or any place where '!' is nested in another type like
Int!? or [Int!].

This commit effectively means ImplicitlyUnwrappedOptional<T> is no
longer part of the type system, although I haven't actually removed
all of the code dealing with it yet.
ImplicitlyUnwrappedOptional<T> is is dead, long live implicitly
unwrapped Optional<T>!
Resolves rdar://problem/33272674.

Please test with following PR:
https://github.com/apple/swift-source-compat-suite/pull/127
@swift-ci Please test source compatibility

@rudkx just a suggestion why don't we get rid of IUO and just have optionals ( ? ) in place. To me IUO sounds pretty confusing especially in the examples section of ( https://github.com/apple/swift-evolution/blob/master/proposals/0054-abolish-iuo.md ) where the type changes automatically depending on what operation is performed which is dangerous. Also for dev what would be the good practice just to get rid of all the forced bang operation and use ? optional types. Please can you help.


Python: OpenAITextCompletion does not accept logger parameter defined in TextCompletionClientBase interface in python SDK

Describe the bug
In Python SDK, the TextCompletionClientBase class declares complete_async function accepts 3 parameters: prompt, settings and logger.
But in OpenAITextCompletion which implements the interface, it only accepts 2 parameters: prompt and settings.
So following code will throw error:
text_completion_client = kernel.get_ai_service(TextCompletionClientBase)(kernel)
result = await text_completion_client.complete_async(
    prompt_template.text, request_settings, NullLogger()
)

The key problem here is: if we only pass 2 parameters to the function, it works but type checking will fail. If we pass 3 parameters to satisfy the type checking, the code won't workk.
Related code in the repository:
https://github.com/microsoft/semantic-kernel/blob/main/python/semantic_kernel/connectors/ai/text_completion_client_base.py#L15-L20
https://github.com/microsoft/semantic-kernel/blob/main/python/semantic_kernel/connectors/ai/open_ai/services/open_ai_text_completion.py#L57-L59
To Reproduce
Repro with below sample code
text_completion_client = kernel.get_ai_service(TextCompletionClientBase)(kernel)
result = await text_completion_client.complete_async(
    prompt_template.text, request_settings, NullLogger()
)

Expected behavior
I can successfully call the function as well as pass type checking.
Screenshots

Platform

OS: Windows
IDE: VSCode
Language: Python
Source: pip package version 0.3.7.dev0

@blackchoey  - thank you for reporting this.  @mkarle  - can you take a look and see what is going on here.

I created a PR that might solve this issue. Waiting for reviews.


Add Plark to Showcase

Adding Plark to the showcase. Using Deno & Deno deploy for the backend.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Khaled Gabr 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.

Closing as stale and we wont accept any new submissions to the showcase


Why one of my pinpoint system is so slow?

I install pinpoint2.0.4 on two Centos7 .
One is for my installation test on vmvare Centos7, the Centos7 is on my laptop, the hardware configration is 4C8G. open the pinpoint web url is very fast, the request 'http://<IP_ADDRESS>:28080/applications.pinpoint'
only take 8ms
Another is for my peformance test for java applications. It was installed on Centos7 , this Centos 7 is a cloudy os. the hardware configration is 32C64G, but open open the pinpoint web url is slow,  the request 'http://<IP_ADDRESS>:28080/applications.pinpoint'
take 40000ms plus, and change other pages, need long time too.
My question is : what are reasons make the pinpoint web so slow? Can you give me some advises, thank you very much

17-Aug-2020 11:10:49.243 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2020-08-17T11:10:49.266 PinpointCollectorApplicationInitializer::ActiveProfile:release
2020-08-17 11:10:51 WARN  Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2020-08-17 11:17:15 WARN  not activating jmx api for admin.
2020-08-17 11:17:15 WARN  DatagramSocket.setReceiveBufferSize() error. 4194304!=212992
17-Aug-2020 11:17:16.536 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/Data/pp-collector/apache-tomcat-8.5.28/webapps/ROOT] has finished in [391,576] ms
17-Aug-2020 11:17:16.551 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-18080"]
17-Aug-2020 11:17:16.625 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-18009"]
17-Aug-2020 11:17:16.629 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 392132 ms
and start collector need 392 seconds.

delete  the code in pinpoint web  file index.html

pinpoint web goes very fast


Library & network edit fixes

Fixes #99, #104

Ah, thanks for catching that and those two log statements I missed @harumhelmy. I think JSON fields in the seeds probably need enclosing braces or something, I'll fix those and merge!


DOC: Update bld matrix

Removed 0.5.2 since there is no reason to use that instead of 0.6
Added 0.8.1
Updated 0.7.0 to 0.7.1

Do we think it is sufficient to just label the tensorflow version? tf-gpu or tf-cpu could be added but IMO it can be inferred.

tf-gpu or tf-cpu could be added but IMO it can be inferred.

Yes I don't think it's necessary.


Change autodefer to auto_defer

This is more of a suggestion, but it might make consistency between different handlers and libs for Hikari more consistent if these references were changed.

Based on comment by developer, this will be closed.


Spaceship API Suggestion

This is not a issue, is a question:
Im using Spaceship to build an API rest. Works great but the problem is with the login API: Spaceship.login(username, password) when two factors authentication is enabled.
The problem is the code call the method ask https://github.com/fastlane/fastlane/blob/c9152e6bf2407739a4db3ceaf61f88ec46a1d778/spaceship/lib/spaceship/two_step_client.rb#L63 and I dont have any callback or something to handle this behaviour in a programatically way.
Spaceship.on_two_steps_authentication{ return 123131 }
Spaceship.login(user, pass)

So I can do something like that:
GET /api/login must return a token
POST /api/login/token?securityCode=124131
I think the spaceship api have the intention to be an API: a DSL to works with Apple or I am wrong?
Thanks!

If you're looking to use spaceship with multiple accounts, you're going to run into trouble really quickly. The session management code isn't really built to handle multiple logins and multiple sessions.
If you only use 1 single account, and that account has 2FA, you can use the tips here:
https://github.com/fastlane/fastlane/tree/master/spaceship#support-for-ci-machines
People use spaceship on CI all the time with 2FA, you just have to save a session and reload it 👍


Updated podspec file

@aol-public/mobile-sdk-team: Ready for review.
JIRA Issue

No need, because the name of the file has to be the same as a name in podspec.


Code Formatting Support

Is there anyway i can add code formatting support to codeArea? Similar to Alt+Shift+F format option in Netbeans And Ctrl+Shilft+F option in Eclipse. In this way i want to improve the representation of code in my code editor. :)

Thanks @TomasMikula. As i am still trying to achieve these features, and I am trying to add autocomplete feature to my project. And i was trying to create a version of [TextAreaDemo] (http://docs.oracle.com/javase/tutorial/uiswing/examples/components/TextAreaDemoProject/src/components/TextAreaDemo.java) in JavaFX using your CodeArea. But i am unable to find any equivalent methods to support the following code
`textArea.getDocument().addDocumentListener(this);
    InputMap im = textArea.getInputMap();
    ActionMap am = textArea.getActionMap();
    im.put(KeyStroke.getKeyStroke("ENTER"), COMMIT_ACTION);
    am.put(COMMIT_ACTION, new CommitAction());`.

My code is available at https://github.com/deepsidhu1313/SyntaxTextAreaFX. Can you please guide me in the procedure to add support for Autocomplete using RichTextFX, by suggesting me equivalent methods ??

@deepsidhu1313 I'm not familiar with Swing, so could you explain what those methods do? Then I'd be able to help you know what the RichTextFX equivalent is or how you would need to build upon it to do that.

@JordanMartinez The code uses a document Listener. I checked JDK's in-built StyledDocument class, it provides document listener , but RichtextFX doesn't. Then Inputmap is action/keyevent listener and actionmap is the action to perform on certain trigger, and in the example code is COMMIT_ACTION which is a string will be added to document on pressing enter and then will be replaced by appropriate suggested keyword or "\n". I hope my understanding of the code is right, i am also not an expert. I have intermediate programming skills. I was just looking for best practise to add autocomplete support to CodeArea.

What does a document listener do? Does it notify you when content within the document has been changed? If so, that's the same as RTFX's plainTextChanges() and richTextChanges().
Ok, I get InputMap and actionmap, which have direct equivalents in RTFX via WellBehavedFX. Have you taken a look at StyledTextAreaBehavior and its demo?

Yes, DocumentListener do that. Methods removeUpdate(), insertUpdate() and changedUpdate() are used to listen these DocumentEvents. I am not sure about the equivalency to RTFX's  plainTextChanges() and richTextChanges().
No i didn't , but thanks i will implement these.
Also is there a way to get caret's location in XY pixels wrt to screen and scene ?? So that i can properly display popup.

Methods removeUpdate(), insertUpdate() and changedUpdate() are used to listen these DocumentEvents. I am not sure about the equivalency to RTFX's plainTextChanges() and richTextChanges().

Let me explain. plainTextChanges() simply emits a PlainTextChange (PTC). A PTC stores three things: the starting position of the text that was removed, the text that was removed, and the text that was inserted. Thus, depending on the removed and inserted values, you can quickly determine what type of change it is: text was removed (inserted = ""; removed = "text"), inserted (inserted = "text"; removed = ""), or replaced (inserted="apple"; removed = "banana").
A PTC is different from richTextChanges() in that it will emit a RichTextChange (RTC) when plainTextChanges() emits an event, but also when no text is inserted/removed/replace but simply restyled. So you probably want to use plainTextChanges if your using it for syntax highlighting.

Also is there a way to get caret's location in XY pixels wrt to screen and scene ?? So that i can properly display popup.

Yes, you can use the new API that's in the as yet unreleased master branch via #410. Or use the currently deprecated Popup API in the most recent release (see the same PR above for the API to which I'm referring).

@JordanMartinez  I am confused a little right now. I understand the role of PTC and plainTextChanges(). But which method will return PTC, so that i can observe the inserted values.

Also Popup demo is not working.

But which method will return PTC, so that i can observe the inserted values.

Now I'm confused. Were you expecting plainTextChanges() to adhere to the Observable pattern? If so, it doesn't. It adheres to the reactive programming paradigm via ReactFX (see the wiki for a tutorial).
If that isn't it, then I'm not sure what's confusing you and I will need you to clarify.

And also may i ask which will be better adding EventHandler or InputMap, because they seem same to me ?? My apologies for the trouble.

I think InputMap is better because a user of your code can always override a small or large aspect of your area's default behavior whereas EventHandler seems to be an all-or-nothing approach. StyledTextArea is an example of the former (aside from a few cases that involve the caret that aren't really overrideable).

My apologies for the trouble.

No trouble at all.

Ok, to avoid confusion. How will you implement Autocomplete feature with a popup suggestion list in Code area?
For the event handler part, I guess i will add a method s that user can setup trigger keys for popup list. Somethings like setAutocompleteListTrigger(EventHandler e) or setAutocompleteListTrigger(KeyCombo kc).

How will you implement Autocomplete feature with a popup suggestion list in Code area?

Well, here's the general principles that make an auto-complete box work:

A trigger causes the auto-complete box to appear with all its options (usually be pressing a key that inserts a letter, though calling it up without any text inserted could work, too).
Every time text is inserted/deleted, the text used to filter through all those options is recalculated and used again to filter them. Then, it redisplays those updated options in the box.
When certain keys are pressed during the time the box is displayed, some action should occur
Escape: hides the box and stops the process
Navigation keys: chooses which item to select
Enter: hides the box and inserts the text that was selected in the auto-completed box.
When all text is deleted, the box should disappear

I'd provide the functionality that does most of this framework code and delegate the actual specific implementations to the user of the area via functional programming.

For the event handler part, I guess i will add a method s that user can setup trigger keys for popup list. Somethings like setAutocompleteListTrigger(EventHandler e) or setAutocompleteListTrigger(KeyCombo kc).

There are a number of options that need to be configured for this to work:

what input (e.g. typing a letter at first) causes the box to initially appear?
what input (e.g. typing escape) causes the box to disappear?
what input (e.g. typing enter) causes the selected option to be inserted

So, you could have setters for such input like setAutocompleteListTrigger, but I feel like this misses the point. Shouldn't such a configuration be in the constructor of your area since it will never change once set?

Wow, :smile:  i didn't expect that much detail.
I totally agree with you. I wanted/want to achieve this. But the problem is detecting TextChanges and caret's Location, i am not Java expert, but implementing old DocumentListener seems easier.
I have checked Popup Demo which is answer to my caret's location problem (i guess in next release, as it is not working now).
Back to first problem (text change listener). Do you have some sample code to detect textchanges??
I can add EventListeners for showing or hiding  Popup.
I feel that by default only syntax highlighting (as basic feature) should be enabled, because enabling keyword suggestion and code parsing by default will have its own overhead. If someone wants to implement these feature in their advance text editor apps or IDE like apps they will be able to do so by simply setting some boolean values.

Back to first problem (text change listener). Do you have some sample code to detect textchanges??

Does this work for you?
Subscription s = area.plainTextChanges().subscribe(tc -> {
    String removed = tc.getRemoved();
    String inserted = tc.getInserted();

    if (!removed.isEmpty() && inserted.isEmpty()) {
        // deletion
    } else if (!inserted.isEmpty() && removed.isEmpty()) {
        // insertion
    } else {
        // replacement
    }
});

I totally agree with you. I wanted/want to achieve this. But the problem is detecting TextChanges and caret's Location

I'd probably use a State Machine to do the above code.
The state would consist of two things: an enum that represents the action that should be taken, and a String that filters the options that the autcomplete box can show. The code would look something like...
class AutocompleteState {

    private static final String EMPTY_STRING = "";

    private String filterText;
    private State state;

    public static enum State { SHOW, HIDE, REFILTER, INSERTION }

    private AutocompleteState(String filterText, State state) {
        this.filterText = filterText;
        this.state = state;
    }

    public static AutocompleteState initial() {
        return new AutocompleteState(EMPTY_STRING, HIDE);
    }

    public void showBox() {
        type = SHOW;
    }

    public void hideBox() {
        type = HIDE;
        filterText = EMPTY_STRING;
    }

    // Note: this method's implementation is probably wrong because a PlainTextChange
    //  can be merged with a previous one. Although I'm assuming a textChange in this case
    //  only inserts or deletes one letter at a time, this may not be true in its actual usage.
    public void updateFilter(PlainTextChange textChange) {
        // Note: textChange.isInsertion() is pseudo code to demonstrate idea
        if (textChange.isInsertion()) {
            filterText += textChange.getInserted();
        } else if (textChange.isDeletion()) {
            filterText -= textChange.getRemoved();
        }
        type = !filterText.isEmpty() ? REFILTER : HIDE;
    }

    public void insertSelected() {
        type = INSERTION;
    }

}

EventStream<?> appearanceTriggers = ...;
EventStream<?> disappearanceTriggers = ...;
EventStream<PlainTextChange> textModifications = area.plainTextChanges().conditionOn(popup.showingProperty());
EventStream<?> insertionTriggers = ...;
EventStream<AutocompleteState> boxEvents = StateMachine
    .init(AutocompleteState.initial())
    .on(appearanceTriggers).transition((appearance, state) -> state.showBox())
    .on(disappearanceTriggers).transition((ignore, state) -> state.hideBox())
    .on(textModifications).transition((textChange, state) -> state.updateFilter(textChange))
    .on(insertionTriggers).transition((ignore, state) -> state.insertSelected())
    .toEventStream();

Subscription sub = boxEvents.subscribe(state -> {
    switch (state.getType()) {
        case: show
            // show popup at caret bounds
            Optional<Bounds> caretBounds = area.getCaretBounds();
            if (caretBounds.isPresent()) { popup.show( /* code */); }
            break;
        case: hide
            popup.hide()
            break;
        case: refilter
            // assumes popup is already displayed
            autocompleteBox.refilter(state.getFilterText());
            // move autocompleteBox to new caret location
            popup.show( /* new location */ );
        default: case: insertion
            area.insertText(state.getStartPosition(), autocompleteBox.getSelectedItem());
            popu.hide();
    }
})

I guess i have to wait for next stable release to merge this code. Thanks for the help. It is more than what i wanted.

By stable release, do you mean the 0.7.0 release? Or are you referring to the next milestone release?

I mean 0.7.0. Plus will try to use Latest JDK instead 1.8u40.

Yeah... that might be a while....

I can wait. :smile:. It is not like that somebody is waiting for me to implement these. My project is for me and others like me, who want to learn and explore Java.
No doubt RichTextFX is in the center of my many projects. But releasing simple and stable API's are my priority.

You can always contribute some code if you're willing ;-)

I would love too. And believe me i want to. But i am still learning advance concepts. I don't make promises that i can't keep. Also i already am working on many projects. SyntaxAreaFX is part of bigger project i promised to my friend.
If you find any basic stuff/coding that i can contribute, please let me know. You can check my novice skills on my repos. :smile:

:laughing: You should see some of my first PRs to this project, haha! Tomas' critiques and code modeled good programming for me in a number of ways.

If you find any basic stuff/coding that i can contribute, please let me know. You can check my novice skills on my repos. :smile:

How about coming up with a list of TestFX tests in #373? Even if you don't write the tests, it would help me know what else to write to insure RTFX has a stable API. If you wanted to write those tests, that would help, too.
I think #150 would be easy to implement. It's not a bug, but it adds a nice feature. As far as I understand, you would need to add the method via reflection (just follow the examples in the code) to TextExt and then add methods in the higher object that delegate to the lower object's method from StyledTextArea to ParagraphBox to TextExt to get it.
I think the rest of the bugs and enhancements would require a deeper understanding of RTFX and how it works, which I will currently assume is a further than you are currently willing to go.

Simple way 😎 if your CodeArea language is Java
you can add code formatting support to codeArea by listen for shortcut like Alt+Shift+L
then use google-java-format library for example :
String formattedSource = new Formatter().formatSource(codeArea.getText());  codeArea.replaceText(0, codeArea.getLength(), formattedSource);


EMAXBUFFER:

My requirement is to validate file type before uploading a file
when i run this
req.file('avatar') to check if file exists
this return this error and server crash is there any way to verify file presence in request ?
Error: EMAXBUFFER: An Upstream (NOOP_avatar) timed out before it was plugged into a receiver. It was still unused after waiting 4500ms. You can configure this timeout by changing the maxTimeToBuffer option.
at null. (../node_modules/skipper/standalone/Upstream/Upstream.js:86:15)
at Timer.listOnTimeout (timers.js:92:15)
[ERROR] 14:59:32 Error

@mikermcneil It too much easy to reproduce just call the upload file function without sending file in request.
the issue is when this line executes req.file('file')
and the parameter bfile has no file in it this error is thrown

ya i got this point but now what's solution for this?


Update to use dagger-cue when released

dagger-cue has been released and all previous github actions broke for example dagger do build

Flagging this one as high priority... I know there are workarounds that allow current dagger-cue users to continue using the action, but I believe they cannot upgrade it. We should prioritize the work discussed, of modifying the github app so that it can run either dagger or dagger-cue.

Flagging this one as high priority... I know there are workarounds that allow current dagger-cue users to continue using the action, but I believe they cannot upgrade it. We should prioritize the work discussed, of modifying the github ~app~ action so that it can run either dagger or dagger-cue.

@shykes I've been digging into this. A PR from @marcosnils here https://github.com/dagger/dagger-for-github/pull/79/files will change the action over to using dagger-cue, but I take it that you see the goal to support both CUE versions of the Dagger cli dagger (i.e. from v0.2.x to v0.2.36) and dagger-cue (i.e. v0.2.232) and NOT support dagger v0.3.x which is not based on CUE.
This could be accomplished by using theversion parameter with the ranges above and selecting dagger or dagger-cue as appropriate. The default for the next version of the GH action would be dagger-cue v0.2.232.

but I take it that you see the goal to support both CUE versions of the Dagger cli dagger (i.e. from v0.2.x to v0.2.36) and dagger-cue (i.e. v0.2.232) and NOT support dagger v0.3.x which is not based on CUE.

IMO this would be a bit of a pain to maintain. I'd suggest releasing a new actions major version that only supports the new dagger-cue binary and is NOT compatible with the old one. That's the intention with the PR I initially started. @shykes shall I move forward with that one?

I have stopped using dagger and will be unsubscribing from this thread, but I would suggest a new action for the new release.

I spent like 2 days trying to onboard WSL2 install for docker on Windows
dagger github actions broke with no alternative other than rewriting from scratch. https://github.com/V-Sekai/v-sekai-game/blob/bd4c41bfd39a1825723041920169ef074d94a53e/.github/workflows/build-project.yml

I spent like 2 days trying to onboard a new developer using Windows on WSL2 install for docker on Windows (rancher desktop) and failed to install WSL2.

Sorry about this. Have you tried with podman on windows though? We have some users that can't pay for DD which are using podman with Dagger successfully. The good part is that they don't have to deal with all the WSL2 part.

dagger github actions broke with no alternative other than rewriting from scratch.

Sorry about that as well. Unfortunately, seems like you got caught in the middle of the cue to SDK pivot and we didn't do a good job to make that transition seamless. Having said that, some other users in Discord and github reported the same issue and we rapidly gave them a solution without having to do any extra work from their ends. Our dedication to our users and community is very valuable; if eventually you decide to try Dagger again, please let us know about things like this so we can address them ASAP.

3. Our primary cicd system is in gocd. Using github actions and dagger was distracting.

Got it. Well.... hopefully we can get your team's attention sometime in the future. We'll be here in case there's anything we can do to help

but I take it that you see the goal to support both CUE versions of the Dagger cli dagger (i.e. from v0.2.x to v0.2.36) and dagger-cue (i.e. v0.2.232) and NOT support dagger v0.3.x which is not based on CUE.

IMO this would be a bit of a pain to maintain. I'd suggest releasing a new actions major version that only supports the new dagger-cue binary and is NOT compatible with the old one. That's the intention with the PR I initially started. @shykes shall I move forward with that one?

Resurrecting this. Yes let’s do it. Ideallwe take great care to have everyone use v4 explicitly (in guides, templates etc) so that future releases (v5 & beyond) have more flexibility. v4 is certain to be our last cue-only release of this app: if we ever make another release it will be certain to a breaking change from v4, so might as well get prepared to keep that painless.

Great, thanks @shykes ! @jpadams please let me know if you need any additional support for this. ccing @gerhard to keep him in the loop.


Phase2-Implement Gateway Service as reverse proxy to forward requests to each microservice on the VM

New Repo for gateway service has been created & gateway service deployed in Dev environment , forwarding to Gwas UI & Gwas Rest API, once apps are deployed in test, staging & Prod the gateway service will also be deployed

Deployed the Gateway app in Prod, validating the application


auro-input not rendering on Svelte

Please verify the version of auro-input you have installed
2.17.8
Please describe the bug

Create a svelte project
Install latest auro-input
Add auro-input to html
See error
Uncaught DOMException: Failed to construct 'CustomElement': The result must not have attributes  at element

Reproducing the error on the docsite
None
Expected behavior
Input should be renderable on svelte
What browsers are you seeing the problem on?
Chrome
Additional context
Works in version 2.16.0. Broken in latest 2.17.8 version. I tried in a new repo, and an existing repo. Reproducible in both scenarios.

I believe that this issue will be resolved with this PR

https://github.com/AlaskaAirlines/auro-input/pull/299

I stand corrected, I consulted with @jordanjones243 and it's believed that this is related to an alternate support feature related to dynamically creating DOM elements via JavaScript

https://github.com/orgs/AlaskaAirlines/discussions/529

Seeing this issue when using it directly from Vue


fix urls to new doc for hetzner example

Signed-off-by: Dominik Bittl<EMAIL_ADDRESS>
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

NONE

/retest


Update comments for actions / renovatebot

We use # tag=v3 in many actions. Removatebot is unable to display the version a PR updates to, and I'm nott sure renovatebot even updates to a released version. For example https://github.com/slsa-framework/slsa-verifier/pull/165 updates codeql action with a hash that is not a release.
We need to use # tag=v3.2.1 instead it seems.

@rarkins is this intended behavior?

When tag=v3 it means Renovate will submit a PR whenever the SHA which v3 tag points to changes. So it's not really "updating a version". It's updating a tag's SHA. When the v3 tag is updated, there's no guarantee that any v3.x.y tag points to the same SHA, although that's usually the case.
If using a fully specified tag such as tag=v3.2.1 it means Renovate will instead look for new tags (such as v3.2.2 or v3.3.0) and the update to those. In such a case the PR will clearly state which version is being updated to, along with the SHA update.
As you're no doubt aware, tags are not immutable - as demonstrated by the use of v3 tag in this example - so even a tag=v3.2.1 could experience a SHA-only update, although that hopefully doesn't happen.

Thank you for the detailed explanation. I thought @v3 tag meant the GHA would resolve to the latest tag in v3, e.g., v3.2.1, etc. But from what you're saying that's not how GHA are resolved by GH either.
Would it be possible for renovatebot to indicate the version in the PR description? For example, instead of only having abcd -> efgch, something like (v3) abcd -> efgch; or, in cases where a v3.x.y corresponds to the v3 tag, v3.xy -> v3.x.w.
Would that break something?

Yes, it should be possible to include the tag in the PR title using some config changes. Please create a discussion in the GitHub repo to try to work out if we can do that using existing config options.

Thank you, done https://github.com/renovatebot/renovate/discussions/16818

Renovate supports comments without the tag= bit so I think this issue is solved.


improve indentation rules

Indentation
Intro
Indent Style is a convention to convey the structure of source code to human readers in programming languages. It's not a requirement in most programming languages but usually language authors adopt a style for their sample code and encourage users to use that. In some particular programming languages, Python for example, indentations are even meaningful to compilers/interpreters, wrong indentations may lead to compiling or runtime errors.
VS Code helps users to write correct indentations with ease. To make this happen, we followed TextMate's style and implemented three regexp patterns you can set to tell VS Code when to increase or decrease indentations.

increaseIndentPattern
decreaseIndentPattern
indentNextLinePattern
unIndentedLinePattern

However, these regexp patterns only decide whether we should modify the indentaion of a line if it matches one pattern, they don't tell us when is a good time to apply the modification. There are two ways to implement this feature, an active one and a passive one.

Active: Whenever the model changes(user input, code format, etc), run indentaion regex rules against current line.
Passive: Whenever users press enter key, run indentaion regex rules against current line.

Active or Passive
The active way looks really good as the indentation can be adjusted immediately when the content of current line matches the indentation rule. Take Ruby def/end block as an example:

Ruby programmers or anyone running into similar situation may only be 100% satisfied if we adjust the indentation correctly once they press d as part of the closing keyword end. But the catch is users might keep typing after we modify the indentation, the content of current line may not match any regex rule any more, should we keep an eye on that and undo previous indentation change? To make things worse, if any indentation regex rule contains $, which matches the ending position of a line, how can we tell whether users finish typing in current line or not?
Taking above into consideration, passive way might be more reasonable. When a user press enter, he or she is sure that the content in current line is satisfactory for the moment and wants to work on following lines. We can calcualte the final indentation for current line and do the updates if it is different from the existing one. Besides, we can calculate the potential correct indentation level for the following line.
In VS Code we chose the passive way.
Are we in good shape now?
We implemented the logic described above (there are several other components that contribute to the indentation, we'll discuss that later) but it's not precisely as expected. Currently we got somewhat wrong with the semantics of decreaseIndentPattern and there might be other cases that might be related or similar:

https://github.com/Microsoft/vscode/issues/1620
https://github.com/Microsoft/vscode/issues/2023
https://github.com/Microsoft/vscode/issues/2272
https://github.com/Microsoft/vscode/issues/4039
https://github.com/Microsoft/vscode/issues/7671
https://github.com/Microsoft/vscode/issues/10307
https://github.com/Microsoft/vscode/issues/11322
https://github.com/Microsoft/vscode/issues/11909
https://github.com/Microsoft/vscode/issues/15301
https://github.com/Microsoft/vscode/issues/15598
https://github.com/Microsoft/vscode/issues/17281
https://github.com/Microsoft/vscode/issues/17639

TODO

[ ] enrich support for decreaseIndentPattern
[ ] auto indent selection
[ ] move lines should honor indentation

In above description I just linked to the documentation of TextMate but unluckily, TextMate's write up about indentation is somewhat ambiguous so here I'd like to share how I understand it.

When we start to write a new line of code, most modern editors will insert some spaces/tabs, or the more popular concept indentation, at the beginning of the line. The reason for that is most programming languages and structured text have indentation conventions, and editors want to be smart about making indentation correct for us.
You might ask how editors decide how many spaces they should insert? There are several approaches to achieve that but here we'll talk about TextMate's mechanism first.
TextMate has four regexp patterns that you can set to tell it when and how to adjust the indentation:

increaseIndentPattern
decreaseIndentPattern
indentNextLinePattern
unIndentedLinePattern

they work perfectly in most cases and even become a de facto standard in this particular area. Successors like Sublime Text, Atom, VS Code ( :smile: ), etc adopt this concept while implementing their smart indentation system.
Indentation Inheritance
If we don't set any indentation rule mentioned above, when you start a new line, TextMate will just inherit the indentation from previous line.
var a;
    var b;

Take above code as example, we are editing a plain text file which has no indentation rules. The first line contains no whitespace but we add 8 spaces at the beginning of the second line by purpose. Now let's say the cursor is after ; in the second line and we press enter, the result will be like
var a;
    var b;
    var c;

The third line just takes the indentation from the second line. One thing to note here is that the third line doesn't take the first line's indentation into consideration in this case. Personally I call it Indentation Inheritance.
Indentation Rules
The four regexp indent patterns are all about adjusting the level of the inherited indentation. So the workflow of starting a new line by pressing enter is more or less

Inherit the indentation from previous lines (it's not always inheriting indentation from one line above, I'll explain it later).
Run these four regexp rules against the content of previous lines and current line to see whether and how to adjust the indentation.
Insert the adjusted indentation at the beginning of the new line.

Tip 1
inheritedIndentationLevel doesn't equal indentationLevelOfPreviousLine always.
increaseIndentPattern
This pattern means if a line matches it, the indentation level of the following line should beinheritedIndentationLevel + 1. We still use above sample code as example
var a;
    var b;

If we set increaseIndentPattern as ^.*b;$, after moving the cursor to the end of the second line and pressing enter, the result is like below ( tabSize=4 and insertSpaces=true )
var a;
    var b;
        var c;

The inherited indentation level is 1 and previous line matches increaseIndentPattern so the final indentation level increases to 2.
decreaseIndentPattern
TextMate documentation says it's the counterpart of increaseIndentPattern but it's not accurate. increaseIndentPattern is talking about the indentation of the following line. However this one is aiming to adjust the indentation of current line. If a line matches this pattern, the indentation level of the following line should be inheritedIndentationLevel - 1.
Since it's about the line we are working on at the moment, the only catch is if the pattern contains $ (match end of line), how can the editor know if the user finishes working on this line or not?
TextMate is really smart in this part, it checks the content of current line against decreaseIndentPattern whenever you type. If it matches, decrease the indentation, if it no longer matches, roll back to previous indentation.

Sublime Text doesn't roll back when the content no longer matches. However it has special handling when you delete all characters in current line, it rolls back to inherited indentation.

Atom is straight forward, if it no longer matches the decreaseIndentPattern rule, it just leaves it there.

Tip 2 I didn't use the definition from TextMate

The increaseIndentPattern should match the lines which increase the indent

This is because increase／decrease is somewhat ambiguous. Take below code as example:
    if (true) {
        var b;
    |

| represents the cursor and we set the decreaseIndentPattern rule as \}. When we type in }, should we decrease the indentation of the third line? Apparently the answer is no and the expected correct output should be:
    if (true) {
        var b;
    }

The inherited indentation level is 2 so after the decrement, the result indentation level is 1. As the indentation of current line is already correct so we don't need to adjust the indentation any more.
indentNextLinePattern
This pattern is called Increase Only Next Line rule. As we highlighted in Tip 1, the inherited indentation level is not always only decided by the line above, indentNextLinePattern is the first exception.
In some programming languages, you are Okay to write a block without brackets if there is just one single statement inside that block.
    if (condition)
        statement();
    otherStatement();

We usually increase the indentation if a line ends with an open bracket {, which indicates the beginning of a block. However in this case, as it's a single-statement-block, we should only increase the indentation of the second line statement() and then the third line should align with the first line as the if block already ends.
For this situation, there is the indentNextLinePattern which matches these lines. The indentation level of the first line is 1 and let's say it matches indentNextLinePattern, the third line should inherit the indentation from the first line, which should be 1 as well.
Tip 3 TextMate's behavior doesn't align with its documentation
The better way to understand these rules is actually playing around with existing mature editor that supports them. I played with TextMate as it's their father. However TextMate doesn't behave totally the same as its documentation describes.
Let's recall what the doc says:

But generally in C-like languages, all lines not terminated with a semi-colon (or ending with starting a block), cause the next line to be indented. This is (with most conventions) also the case when manually breaking one expression into several lines, e.g.:
some_function(argument1,
   argument2,
   argument3);

more_code;

...
The pattern ends up as:
indentNextLinePattern = '^(?!.*;\s*//).*[^\s;{}]\s*$';

But the result in TextMate is not as expected. If I made anything wrong, like setting TextMate improperly, free feel to correct me.

The third line argument3 should inherit indentation from line some_function(argument1, first and since the second line argument2, matches indentNextLinePattern again, the result indentation of line argument3 turns out to be the same as the second line.
unIndentedLinePattern
In the above example, the third line ignores the indentation of the second line but if the second line matches any indentation rule, the rule can still be applied to the third line. Sometimes we may want to ignore several lines completely, that's why we have another rule called unIndentedLinePattern.
Any line that matches this rule is ignored when calculating indentation. Personally I'd like to put it this way: any line that matches unIndentedLinePattern can be removed from the editor while calculating the indentations.
For example, in JavaScript you may write some comments before code and we don't want these comments affect the indentation stuff, we can set the unIndentedLinePattern as '^\s*((/\*|\*/\s*$|//|#).*)?$'
function() {
    var a;
        // if block
    if () {

Then when we calculate the indentation for each time, we can actually see it as
function() {
    var a;
    if () {

The indentation of the comments are not useful and all the indentation rules on the comments will not take effect either.

It's always easy to describe what's the expected behavior but it's difficult to acknowledge that our current implementation is inconsistent with it. Here I'd like to list corner cases I ran into as many as possible
decreaseIndentPattern

[x] check beforeEnterText and afterEnterText against decreaseIndentPattern when pressing enter

unIndentedLinePattern
I configured TextMate to make return false as unIndentedLine so we have below code sample

any line contains return false doesn't affect the indentation of following lines. This is a big missing part in current implementation.

[ ] check previous lines against unIndentPattern when pressing enter
[ ] check beforeEnterText against unIndentPattern when pressing enter

Support selections
When we press enter, Code will check the content surrounding the selection against indentation rules. This is true when the selection is a single cursor. If we select multiple characters, our check against afterEnterText is possibly wrong.

[ ] Support selections when press enter


Describe how to open developer console on windows

This PR adds a description of how to open the developer console on windows using the PowerShell to the readme.

Interesting alternative to https://github.com/widget-/slack-black-theme/pull/53, thanks!


GEOMESA-1256 WPS join process for querying two different schemas

Signed-off-by: Emilio Lahr-Vivaz<EMAIL_ADDRESS>

temporarily closing

updated with joining of attributes

won't let me re-open, moved to #969


Validation layer: null pointer deref when struct contains handle

In the generated code below, there is no check for non-null value before performing value->actionSet
XrResult ValidateXrStruct(GenValidUsageXrInstanceInfo *instance_info, const std::string &command_name,
                          std::vector<GenValidUsageXrObjectInfo>& objects_info, bool check_members,
                          const XrActiveActionSet* value) {
    XrResult xr_result = XR_SUCCESS;
    // If we are not to check the rest of the members, just return here.
    if (!check_members || XR_SUCCESS != xr_result) {
        return xr_result;
    }
    {
        // writeValidateInlineHandleValidation
        ValidateXrHandleResult handle_result = VerifyXrActionSetHandle(&value->actionSet);
        if (handle_result != VALIDATE_XR_HANDLE_SUCCESS) {
            // Not a valid handle or NULL (which is not valid in this case)
            std::ostringstream oss;
            oss << "Invalid XrActionSet handle \"actionSet\" ";
            oss << HandleToHexString(value->actionSet);
            CoreValidLogMessage(instance_info, "VUID-XrActiveActionSet-actionSet-parameter",
                                VALID_USAGE_DEBUG_SEVERITY_ERROR, command_name,
                                objects_info, oss.str());
            return XR_ERROR_HANDLE_INVALID;
        }
    }
    // Everything checked out properly
    return xr_result;
}

No, this was found via static analysis with clang/CodeChecker.

I think I see.  In
XrResult ValidateXrStruct(GenValidUsageXrInstanceInfo *instance_info, const std::string &command_name, std::vector<GenValidUsageXrObjectInfo>& objects_info, bool check_members, const XrActionsSyncInfo* value)

There's a check that activeActionSets is != nullptr if countActiveActionSets > 0, but it only sets xr_result and nothing later tests that result.  So this is similar to #160 in that it needs to gate the next call on xr_result == XR_SUCCESS or just return the validation error.
I'll put this in my queue.
(In the event that activeActionSets == nullptr && countActiveActionSets > 0, at least at the present time there will be a validation error printed.)

No, I don't think that's quite right.
So this addition to hello_xr causes a warning from the validation layer ("XR_ERROR_VALIDATION_FAILURE in xrSyncActions: (syncInfo->countActiveActionSets == 0)"), but it doesn't error. (Is that intended?)
diff --git a/src/tests/hello_xr/openxr_program.cpp b/src/tests/hello_xr/openxr_program.cpp
index 4e8976d..c2ae201 100644
--- a/src/tests/hello_xr/openxr_program.cpp
+++ b/src/tests/hello_xr/openxr_program.cpp
@@ -554,6 +554,11 @@ struct OpenXrProgram : IOpenXrProgram {
         InitializeActions();
         CreateVisualizedSpaces();

+        XrActionsSyncInfo info{XR_TYPE_ACTIONS_SYNC_INFO, nullptr};
+        info.activeActionSets = nullptr;
+        info.countActiveActionSets = 0;
+        xrSyncActions(m_session, &info);
+
         {
             XrReferenceSpaceCreateInfo referenceSpaceCreateInfo = GetXrReferenceSpaceCreateInfo(m_options->AppSpace);
             CHECK_XRCMD(xrCreateReferenceSpace(m_session, &referenceSpaceCreateInfo, &m_appSpace));

while this change will trigger the bad behavior of this bug:
diff --git a/src/tests/hello_xr/openxr_program.cpp b/src/tests/hello_xr/openxr_program.cpp
index 4e8976d..504a975 100644
--- a/src/tests/hello_xr/openxr_program.cpp
+++ b/src/tests/hello_xr/openxr_program.cpp
@@ -554,6 +554,11 @@ struct OpenXrProgram : IOpenXrProgram {
         InitializeActions();
         CreateVisualizedSpaces();

+        XrActionsSyncInfo info{XR_TYPE_ACTIONS_SYNC_INFO, nullptr};
+        info.activeActionSets = nullptr;
+        info.countActiveActionSets = 5; // this is a lie
+        xrSyncActions(m_session, &info);
+
         {
             XrReferenceSpaceCreateInfo referenceSpaceCreateInfo = GetXrReferenceSpaceCreateInfo(m_options->AppSpace);
             CHECK_XRCMD(xrCreateReferenceSpace(m_session, &referenceSpaceCreateInfo, &m_appSpace));

resulting in
[15:22:46.498][Info   ] Available reference spaces: 3
fish: “build/src/tests/hello_xr/hello_…” terminated by signal SIGSEGV (Address boundary error)

In what way is it "not quite right"?
If I apply your second patch (activeActionSets = nullptr and countActiveActionSets = 5) I get the message:
[VALID_ERROR | VUID-XrActionsSyncInfo-activeActionSets-parameter | xrSyncActions]: Structure XrActionsSyncInfo member countActiveActionSets is NULL, but value->countActiveActionSets is greater than 0
  Objects:
   [0] - XrSession (0x0000000000000002)

like I said it would.  Does that not print out for you?
Then I get a crash, like the static check implies.  That's because the pointer is checked but then the code continues on because xr_result is set and then never examined.
If I add if(xr_result != XR_SUCCESS) return xr_result; in ValidateXrStruct after if (0 != value->countActiveActionSets && nullptr == value->activeActionSets) { ... } and I wrap your call to xrSyncActions with CHECK_XRCMD then hello_xr closes down after a validation error.  That's what I expect.  Would you expect something different?
I think we need, like #160, to figure out whether to check xr_result after every test or just plain return.  Do you disagree?
(The behavior from the layer on syncInfo->countActiveActionSets == 0 might be muddled.  It's not an error, but I think it's probably not what apps want, so it gets a validation message.  I would argue in any case that's not part of this bug.)

I don't think I got that message (or any message?) but perhaps I didn't have the layer configured right. As long as you see what's happening with the second patch, then we're good - that's much clearer than my prose from last week.

I did have to set the environment variable for logging to stdout.  I think (grepping for "Env", not in front of my running build at the moment) it's XR_CORE_VALIDATION_EXPORT_TYPE=text.  Do we maybe need a wiki page on GH explaining how to run the validation layers for us and for others?

Yeah, that or a readme. Any reason why logging to stdout isn't default?

fwiw, if checking gets moved up, I'd prefer to convert the use of a pointer to a reference: lacking use of gsl::not_null passing a reference instead of a pointer makes this status clear.

Yeah, that or a readme. Any reason why logging to stdout isn't default?

It turns out there is a readme already.  I didn't know it was there either.
https://github.com/KhronosGroup/OpenXR-SDK-Source/blob/master/src/api_layers/README_core_validation.md

Fix released in 1.0.9


Walmart sensors break config

Using Gmail as the email provider. Everything has been working fine, but I saw the update for Walmart sensors so I reconfigured, adding them to the list. The integration is no longer able to initialize in HA. Restarted to verify it persists after a restart. Confirmed.
Remove the Walmart sensors and verified the integration is immediately working again. Add them back, cannot initialize and everything reports unknown.
Unable to grab logs now, can add tomorrow if necessary.

Ya I'll need logs, thanks!

Please confirm it's fixed for you in the latest release. Thanks!

Look at that. No logs and still solved with rapid speed! Fantastic work, confirmed that sensors are added and appearing as expected. Brilliant job, thanks for that


Changing the display order of skills in a Skill Group results in a 400 error

Attempting to change the display order of Skills in a Skill Group results in a 400 error

:+1:


ENH: Create Dataframe wrapper for Watson table extraction API

Create a wrapper for the Watson Compare and Comply table extraction APIs as part of the "Watson Natural Language Understanding JSON output" line item from our version 0.1 roadmap (#1)
API docs are here: https://cloud.ibm.com/apidocs/compare-comply#extract-a-document-s-tables
The API doc page includes an example of the JSON output of the API (element_classification). The dataframe version of the API output should include all information present in the JSON.

This wrapper work can proceed in two phases:

First directly wrap the output schema of the REST API. That is, the table_headers section of the REST API's return value turns directly into a dataframe called "table_headers"
Then imlement heuristics that will reconstruct a Pandas dataframe that looks like the original table (as opposed to the "shredded" representation that the API returns)

Example documents to use as a target for demonstrating this functionality: https://www.who.int/emergencies/diseases/novel-coronavirus-2019/situation-reports/

There is general purpose code in https://github.com/CODAIT/text-extensions-for-pandas/blob/master/text_extensions_for_pandas/io/watson.py that you should be able to use for the first phase of this work item; directly wrapping the output schema of the REST API in a set of Pandas dataframes.

#68 closes out this issue.


Calling Delete Mutation

I am messing with the demo and created this file from the Mutation.re example:
module Cache = ApolloClient.Cache;

module DeleteTodoMutation = [%graphql
  {|
    mutation DeleteTodo ($id:String!){
      deleteTodoItem(input: { id: $id }) {
        deletedTodoItemId
        clientMutationId
      }
    }
  |}
];

When I call this as is it compiles and fails. To make it work, it has to be
module Cache = ApolloClient.Cache;

module DeleteTodoMutation = [%graphql
  {|
    mutation DeleteTodo ($id:ID!){
      deleteTodoItem(input: { id: $id }) {
        deletedTodoItemId
        clientMutationId
      }
    }
  |}
];

Is this expected? Figured the typing was supposed to catch that. Working example is in #37

I think this is an issue for graphql-ppx. Before you poste there, though, I noticed you're using graphql-ppx-beta.11 which is quite a bit out of date. You might want to verify the behavior on beta.22 first.

You want me to update the deps on your example?

I think we're good now.


[WIP] Record json serde

needs a rebase...

Sorry, I did some local work and pushed to upstream (here) 😂. Never mind this PR.


Stencil routes not working on deploy folder

Resources:
Before submitting an issue, please consult our docs.
Stencil version: (run npm list @stencil/core from a terminal/cmd prompt and paste output below):
 insert the output from npm list @stencil/core here

I'm submitting a ...  (check one with "x")
[X ] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or https://stencil-worldwide.slack.com
Current behavior:
npm init stencil
type -> component
we can start successfully the component with npm start.
If i do npm build and copy www folder to an IIS, routing doesn't work
Expected behavior:
When deploying the app, all example routes should work
Steps to reproduce:

I'm facing the same issue using a Spring Web application.
In my case, when a server context-path is not set (i.e. "/") it works fine but if it is set to anything else it fails to work.


fix(sec): upgrade protobuf-java to 3.16.1

Upgrade protobuf-java 3.12.0 to  for vulnerability fix:
- CVE-2021-22569

3.16.1 also has CVE  CVE-2022-3171
so probably it's better 3.16.3 or something higher


Compare dates

DBFlow Version: "3.0.1"
Issue Kind (Question)
Description:
i save days as string at the format "dd.MM.yyyy" when i query i want to use lessThanOrEq function to compare, but it doesn't work well, do i have to follow some format or there's some things

I solved the problem, it was in the format, when i changed the format into "yyyy-MM-dd", it wroked well.
more info on: http://stackoverflow.com/questions/17507477/comparison-dates-with-string-dd-mm-yyyy-format-in-sqlite


net/http/httptest: ResponseRecorder implements WriteString()

Let's say I have a http.HandlerFunc or a http.Hander I want to benchmark.
In a real world situation, this function would received an instance of *http.response which implements WriteString(). A call to io.WriteString(w, str) will execute w.WriteString(str) instead of w.Write([]byte(str)) which save us a unnecessary allocation.
This situation is not consistent with httptest.ResponseRecorder because it does not implement WriteString().
I propose to implement WriteString(str) in  httptest.ResponseRecorder in order to achieve more accurate benchmarks.
https://github.com/gin-gonic/go/commit/347b0c5aa60c47ac7a7fc0c0b267c8113ce2e66e
Off topic: maybe we should implement WriteString() in another instances of http.ResponseWriter such as: cgi.response and fcgi.response, but this is probably a different issue.

There are so many other differences. But sure. Not for Go 1.5, though, since we're in a freeze.
Send a CL after Go 1.5 is out in early August.

@bradfitz thanks for the info. keep the good work!


kernel is downgraded for all bundles

https://github.com/crc-org/snc/commit/68c6383de78d658b2581fb0f5097dbf34618befc moved the kernel changes from an aarch64-only block to a block which is run when the macOS bundle is enabled. However, the kernel downgrade is done before any bundle is generated, so the kernel will be downgraded for all our bundles, linux, macos, windows.
We need to do something similar to https://github.com/crc-org/snc/pull/637 to address this.

This does not seem to have been scheduled. Any idea about priority and/or sprint this will be dealt with?

Praveen has already been working on this in https://github.com/crc-org/snc/pull/749

This is already taken care of.


Fix CI dirtying source tree

Previously assemblies generated in CI would be marked .dirty in version due to github java setup action creating settings.xml file in git root. This ignores that file.

Codecov Report

Merging #22 (d45f196) into main (c2d6deb) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main      #22   +/-   ##
=========================================
  Coverage     88.25%   88.25%
  Complexity      135      135
=========================================
  Files            30       30
  Lines           315      315
  Branches          2        2
=========================================
  Hits            278      278
  Misses           15       15
  Partials         22       22

Continue to review full report at Codecov.

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


package version control

For the latest version of matplotlib, set_facecolor rather than set_axis_bgcolor should be used in plot_functions?
We should move TensorFlow Distributions to TensorFlow Probability?
It might be better to add information about package versions in the documentation?

Thank you for pointing this out. We've updated the README to include the version control information. For future versions of tensorflow or matplotlib, we would advise the user to modify the code according to their setup. If you would like to suppress the deprecation warnings by tensorflow, consider using the following code:
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'


Add PlayerFishEvent

adds playerfishevent which is called when the player retracts the bobber, useful for grappling hook type items and getting the location of the bobber before retract

You seem to have forked from emortal's fork, which contains some changes I do not want in the main repository.
If it was your intention to open the pr here, you should open another one without emortal's changes, in which case it would be nice if the event is also called for throwing the fishing bobber.
Also the event should be cancellable (use EventDispatcher.callCancellable).


Audio Override

This commit adds audio override functionality.
Audio overrides should be located in the "audio" folder, which should be located inside the mod folder.
Audio override consists of a definition file (JSON) and a folder with override samples.
Override samples must be Stereo 16-bit WAV files and must be at least 1 second in duration.
Definition structure:

EventId (string or an array of strings): Sound Event ID(s) to override.
EventIdRegex (string or an array of strings): Sound Event ID(s) regular expressions, if matched the event will be overrided.
AudioSelectionStrategy ("sequential" or "random"): Selection strategy for multiple override samples.

Additionally, "ns_print_played_sounds" convar has been added to print out sound events as they're requested.
Example mod: dg.BoomMenuAccept.zip

YESSS

merged by request


Loading Botium plugin failed

Describe the bug
I have a fresh installation of Botium Core 1.5.3 with Dialogflow Connector 0.0.9. I use the Botium API following the swagger definition you provide. Although the endpoint /api/status is working, /api/build gives me the error "Loading Botium plugin failed". I tried to downgrade Dialogflow Connector to version 0.0.8 but the problem remained. However, when I downgraded to version 0.0.7 the problem solved and I was able to run the test script.
To Reproduce

Clone botium-core (1.5.3)
Run npm install
Run npm install botium-connector-dialogflow
Run npm run agent

Botium Version

botium-core 1.5.3
botium-connector-dialogflow 0.0.9 or 0.0.8

Can you please enable debug mode (export DEBUG=botium*) and attach the logfile here, thanks

Logfile attached, I just removed the Dialogflow private key. Thank you
logfile.txt

You should use botium-cli (https://github.com/codeforequity-at/botium-cli) to run Botium in agent mode, not botium-core directly.

I am not quite sure I understand. Do you mean that Botium HTTP API is not supported in the new version of botium-core and/or botium-connector-dialogflow?
Is there any way to use Botium Agent through the Botium HTTP API as described here? https://botium.atlassian.net/wiki/spaces/BOTIUM/pages/491671/Botium+Grid
This is something that used to work and as I already mentioned downgrading to a previous botium-connector-dialogflow solves the problem.

botium-core is just a library. Please use Botium-CLI to run it from the command line. I added this hint to the Wiki page now.
There may be a reason why you want to use it from botium-core library (the only one I can mention is that you are a developer and are working on new botium-core features), but for this to work you will have to register global npm links for botium-core.
For Botium users, Botium CLI is the way to go.


Stable merge for week 30 of 2023

New Packages

tailscale-systemd - 0.0.0-1 (#706)

Necessary configuration for tailscale to work on the reMarkable

7zip - 22.01-1 (#699)

Updated Packages

koreader - 2023.06-1 (#696 #705)
plato - 0.9.34-1 (#669)
erode fret oxide rot tarnish decay corrupt anxiety liboxide notify-send - 2.5-2 (#697)

Remove rm2fb runtime dependency for reMarkable 1 devices

Testing results
Installing
reMarkable: ~/new/rmall/ opkg install *.ipk
Installing 7zip (22.01-1) to root...
Installing anxiety (2.5-2) to root...
Installing tarnish (2.5-2) to root...
Installing corrupt (2.5-2) to root...
Installing decay (2.5-2) to root...
Installing erode (2.5-2) to root...
Installing fret (2.5-2) to root...
Upgrading koreader on root from 2023.01-1 to 2023.06.1-1...
Removing obsolete file /opt/koreader/frontend/ui/widget/closebutton.lua.
Package liboxide (2.5-2) installed in root is up to date.
Installing notify-send (2.5-2) to root...
Installing oxide (2.5-2) to root...
Installing rot (2.5-2) to root...
Installing plato (0.9.34-1) to root...
Installing jq (1.6-2) to root...
Downloading https://bin.entware.net/armv7sf-k3.2/jq_1.6-2_armv7-3.2.ipk
Installing rmfm (1.4.0-3) to root...
Package rot (2.5-2) installed in root is up to date.
Installing tailscale-systemd (0.0.0-1) to root...
Package tarnish (2.5-2) installed in root is up to date.
Configuring jq.
Configuring tarnish.
Configuring fret.
Configuring anxiety.
Configuring tailscale-systemd.
Created symlink /etc/systemd/system/multi-user.target.wants/tailscaled.service → /etc/systemd/system/tailscaled.service.
Configuring 7zip.
Configuring decay.
Configuring erode.
Configuring rot.
Configuring oxide.

Run the following command(s) to use oxide as your launcher
$ systemctl enable --now tarnish

Configuring plato.

Place your media files for plato in '/home/root/plato-media'

Configuring koreader.

Run the following command(s) to use koreader as your launcher
$ systemctl enable --now koreader

Configuring corrupt.
Configuring notify-send.
Configuring rmfm.
reMarkable: ~/new/rmall/

Oxide
reMarkable: ~/new/rmall/ systemctl enable --now tarnish
Created symlink /etc/systemd/system/launcher.service → /lib/systemd/system/tarnish.service.
Created symlink /etc/systemd/system/multi-user.target.wants/tarnish.service → /lib/systemd/system/tarnish.service.

Runs smoothly, wifi, lockscreen, screenshots, notifications, gestures (had some problem with trying to get it to recognise but it did get it eventually), task switcher working as intended. Had to click "Import apps" to find the apps though (didn't find it automatically on startup). Process manager also worked fine, when application killed returns correctly to oxides main menu. Can view & take screenshots without any errors.
7zip
reMarkable: ~/new/rmall/ opkg files 7zip
Package 7zip (22.01-1) is installed on root and has the following files:
/opt/bin/7zz
/opt/usr/share/licenses/7zip/License.txt

In PATH, But funny name - consider renaming it to 7z instead?
reMarkable: ~/toinstall/ 7zz x repo.zip

7-Zip (z) 22.01 (armt) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15
 32-bit arm_v:7 thumb:2 locale=C UTF8=- Threads:2

Scanning the drive for archives:
1 file, 66235562 bytes (64 MiB)

Extracting archive: repo.zip
--
Path = repo.zip
Type = zip
Physical Size = 66235562

Would you like to replace the existing file:
  Path:     ./index.html
  Size:     81096 bytes (80 KiB)
  Modified: 2023-07-30 17:55:56
with the file from archive:
  Path:     index.html
  Size:     81096 bytes (80 KiB)
  Modified: 2023-07-26 17:41:56
? (Y)es / (N)o / (A)lways / (S)kip all / A(u)to rename all / (Q)uit? Y

Everything is Ok

Folders: 3
Files: 22
Size:       66290277
Compressed: 66235562
reMarkable: ~/toinstall/ ls
index.html  repo.zip    rm1         rm2         rmall

reMarkable: ~/toinstall/ 7zz a repo.zip test

7-Zip (z) 22.01 (armt) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15
 32-bit arm_v:7 thumb:2 locale=C UTF8=- Threads:2

Open archive: repo.zip
--
Path = repo.zip
Type = zip
Physical Size = 66235562

Scanning the drive:
1 file, 0 bytes

Updating archive: repo.zip

Keep old data in archive: 3 folders, 22 files, 66290277 bytes (64 MiB)
Add new data to archive: 1 file, 0 bytes

Files read from disk: 1
Archive size: 66235682 bytes (64 MiB)
Everything is Ok

reMarkable: ~/toinstall/ 7zz x testfile.rar3.av.rar

7-Zip (z) 22.01 (armt) : Copyright (c) 1999-2022 Igor Pavlov : 2022-07-15
 32-bit arm_v:7 thumb:2 locale=C UTF8=- Threads:2

Scanning the drive for archives:
1 file, 327 bytes (1 KiB)

Extracting archive: testfile.rar3.av.rar
--
Path = testfile.rar3.av.rar
Type = Rar
Physical Size = 327
Solid = -
Blocks = 1
Multivolume = -
Volumes = 1

Everything is Ok

Size:       12
Compressed: 327

Very fast.
KoReader
Launched via oxide, works fine. Connects to my calibe library and no crashes when reading books.
Plato
Launched via koreader, detects and can read books fine. Applications work as intended.
Rot
reMarkable: ~/plato-media/ rot apps get runningApplications
{"Plato":"/codes/eeems/oxide1/apps/6cd104aa811a5d25bca5c90a23b22ce3","codes.eeems.corrupt":"/codes/eeems/oxide1/apps/661a3023fc785f5b8d244960d7da0db5","codes.eeems.fret":"/codes/eeems/oxide1/apps/f3999e4363cb568ea6ccc50aa4b27b23"}

reMarkable: ~/plato-media/ rot apps get appplications
null

Doesn't get registered applications for some reason? But they do all show up in oxide. As for decay, corrupt, tarnish, erode, fret and anxiety they all work fine as stated in the Oxide section.
tl;dr looks good to me 👍

Forgot to add tailscale,
[[0;1;32m●[[0m tailscaled.service - Tailscale node agent
     Loaded: loaded (/etc/systemd/system/tailscaled.service; enabled; vendor preset: disabled)
     Active: [[0;1;32mactive (running)[[0m since Sun 2023-07-30 18:07:45 UTC; 1h 58min ago
       Docs: https://tailscale.com/kb/
   Main PID: 4491 (tailscaled)
     Status: "Connected; REDACTED"
     CGroup: /system.slice/tailscaled.service
             └─4491 /opt/bin/tailscaled --state=/opt/var/lib/tailscale/tailscaled.state --socket=/opt/var/run/tailscale/tailscaled.sock --tun=userspace-networking --socks5-server=localhos
t:1055 --outbound-http-proxy-listen=localhost:1055

Works fine.

Quick validation on my rM1 seems to also be fine.


Don't deprecate setReplayVision.

The functionality of setReplayVision was combined with setVision, so a replacement is more appropriate than a deprecation.

Misunderstanding of the spec on my part, thanks @heinermann.

This was not merged.

Eh, must have been a misclick. Thanks.


Collapse sidebar option

I would like an option to collapse the sidebar.
It could probably be done one of two ways.
One way would be to collapse down to just a little autohide < indicatore.
Another way would be to show a small icon for the db type and a truncated name (or maybe it shows name only on hover).

hello @gooddadmike! I'd love to help you out on this issue! Are you referring to the sidebar that displays when you make a connection to a db?

Yeah. Hiding the connection tab that takes up the left side of the screen. IIRC

Yes. Once the connection is made you have the sidebar that has search and database tables/schema options. I would like to be able to hide that when I'm working on the same sql file for a long time, for example.

I notice this issue hasn't been active for 15 days, so I just created a PR for it. Please take some time to review it. I don't know if the implementation of the sidebar is beautiful enough or not :grimacing:


Implementing simple Push to Talk module.

Hi @alfredh ,
I implemented simple push to talk application. In that implementation I used libre for parsing SIP messages. I do some simple implementation for forwarding received RTP data to other peers. Now I want rewrite the source code from scratch. Is it possible to implement PTT service as a baresip module? How should I integrate this service to the baresip core?
Regards,

can you please share the code that you have written ?
if you want to implement a new application/module using libbaresip,
it can be done in 2 ways:

create a new module of type "application"
create application (outside the baresip tree).

in both cases you can use the API that is defined in baresip.h
if the service is generic and useful to many people, it is probably best
to do it via application module. otherwise a standalone application is
probably better.
Alfred

Thanks for your guidance. Unfortunately I can not share the code, because
of licensing issue.
Currently I don't know is push to talk service useful to many people or
not. PTT has a simple mechanism, one person start talking and other only
listen to the message.
Regards,
Ali
On Mon, Apr 22, 2019 at 9:19 PM Alfred E. Heggestad <
<EMAIL_ADDRESS>wrote:

can you please share the code that you have written ?
if you want to implement a new application/module using libbaresip,
it can be done in 2 ways:

create a new module of type "application"
create application (outside the baresip tree).

in both cases you can use the API that is defined in baresip.h
if the service is generic and useful to many people, it is probably best
to do it via application module. otherwise a standalone application is
probably better.
Alfred
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/alfredh/baresip/issues/694#issuecomment-485473334,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHO3AQL5566UXU42FXDX5DPRXUCJANCNFSM4HHOBGQQ
.

perhaps it is best for you to create a standalone application in this case.
you can use the baresip API as documented here:
https://github.com/alfredh/baresip/wiki/Using-baresip-as-a-library


Is there any plan on releasing pretrained models?

The pre-trained weights can be downloaded in Google Driver.


Return dict when stock symbol array is one symbol

Summary (include Python version)
Python version 3.6
When requesting a real time quote with an array, return the same type and format (in this case a dictionary) regardless of the length of the array.
Date/time of issue
01/09/19
Expected behavior
batch = Stock(["TSLA", "AAPL"])
batch.get_price()
{'TSLA': 338.42, 'AAPL': 153.34}
batch = Stock(["TSLA"])
batch.get_price()
{'TSLA': 338.42}
Actual behavior
batch = Stock(["TSLA", "AAPL"])
batch.get_price()
{'TSLA': 338.42, 'AAPL': 153.34}
batch = Stock(["TSLA"])
batch.get_price()
338.42
And thank you for the library!

This would require a change to the following bit from base.py:
def _get_endpoint(self, endpoint, params={}, fmt_p=None,
                      fmt_j=None, filter_=None):
    result = {}
    if filter_:
        params.update({"filter": filter_})
    self.optional_params = params
    self.endpoints = [endpoint]
    data = self.fetch(fmt_j=fmt_j, fmt_p=no_pandas)
    for symbol in self.symbols:
        if symbol not in data:
           raise IEXSymbolError(symbol)
        if endpoint not in data[symbol]:
           result[symbol] = []
        else:
            result[symbol] = data[symbol][endpoint]
    return self._output_format_one(result, fmt_p=fmt_p, fmt_j=fmt_j)

All that is needed is to change return self._output_format_one(result, fmt_p=fmt_p, fmt_j=fmt_j) to return self._output_format(result, fmt_p=fmt_p, fmt_j=fmt_j)
However, it looks like this behavior was intended, as many other functions rely on _get_endpoint() to return a single value if there is only one symbol. A workaround could be to use
>>>symbol="AAPL"
>>> batch = Stock([symbol])
>>> batch.get_price()
166.52
>>> if isinstance(batch.get_price(),float):
...     print({batch.symbols[0]: batch.get_price()})
...
{'AAPL': 166.52}

This is a relatively easy function to write while keeping the current behavior of iexfinance, as changing _output_format_one() would change many other pieces of code.

Thanks for reviewing and responding!


Fixed placeholder on relationship fetch field

This was always evaluating to 'Select entities' or 'Select an entity'.

A new inspection was created.

The inspection completed: No new issues

A new inspection was created.

Thank you @promatik !

The inspection completed: No new issues

I'm glad to help when I stumble on some bug or improvement!
v4.1 is awesome btw 🙂


Remove leading 'x' from repository name

The leading 'x' is kind of arbitrary. Especially now that we can set
topics on the repositories, we don't need a pattern to distinguish what
is a track or not.
See https://github.com/exercism/meta/issues/1

Thanks for adding those commits, @petertseng!