Artifacts when shrinking windows of Electron apps

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
No
System Info and Version
 System/Version info
Hyprland, built from branch  at commit 0f594732b063a90d44df8c5d402d658f27471dfe  (props: bump version to 0.43.0).
Date: Sun Sep 8 16:48:21 2024
Tag: v0.43.0, commits: 5196

flags: (if any)

System Information:
System name: Linux
Node name: cascade-ws
Release: 6.10.7-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Thu, 29 Aug 2024 16:48:33 +0000

GPU information:
26:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106 [GeForce RTX 2060 SUPER] [10de:1f06] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  560.35.03  Fri Aug 16 21:39:15 UTC 2024

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

======Config-Start======

Config File: /home/cascade/.config/hypr/hyprland.conf: Read Succeeded
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor = DP-1, 2560x1080@200, 0x0, 1.0
monitor = Unknown-1, 1920x1200@120, -1920x0, 1.0
# monitor = , preferred, auto, 1.0

xwayland {
    force_zero_scaling = true
}

# See https://wiki.hyprland.org/Configuring/Keywords/ for more

# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox

# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf

# Some default env vars.
env = XCURSOR_SIZE,32

# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
    kb_layout = us
    kb_variant =
    kb_model =
    follow_mouse = 1

    touchpad {
        natural_scroll = yes
    }

    tablet {
        region_position = 416 0
        region_size = 1728 1080
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
    accel_profile = flat
}

general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 4
    gaps_out = 8
    border_size = 1
    col.active_border = rgba(d3e4c9ff)
    col.inactive_border = rgba(2222227f)
    allow_tearing = true

    layout = dwindle
}

env = WLR_DRM_NO_ATOMIC,1

windowrulev2 = immediate, class:^(cs2)$

decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 20

    drop_shadow = true
    col.shadow = rgba(0000005f)
    col.shadow_inactive = rgba(0000003f)
    shadow_range = 25

    blur {
        enabled = true
        size = 2
        passes = 2
        contrast = 1.2
    }
}

animations {
    enabled = true

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windowsMove, 1, 7, myBezier
    animation = windowsIn, 1, 3, default, popin 90%
    animation = windowsOut, 1, 2, default, popin 95%
    animation = border, 1, 3, default
    animation = fade, 1, 3, default
    animation = workspaces, 1, 5, default
}

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # you probably want this
    split_width_multiplier = 1.4
}

misc {
    #force_hypr_chan = true
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
}

# Layer Rules
layerrule = blur, waybar
layerrule = ignorezero, waybar
layerrule = blur, notifications
layerrule = ignorezero, notifications
layerrule = blur, launcher
layerrule = ignorezero, launcher

# Window Rules
windowrulev2 = float,class:(QQ) # QQ Popups
windowrulev2 = float,title:(Volume Control) # Volume Control
windowrulev2 = float,class:(steam) # Steam Popups
windowrulev2 = float,title:(Qt5 Configuration Tool) # Qt5
windowrulev2 = float,title:(Qt6 Configuration Tool) # Qt6
windowrulev2 = float,title:(Fcitx Configuration) # Fcitx Config
windowrulev2 = float,class:(org.gnome.Nautilus) # Nautilus Popups
windowrulev2 = float,class:(firefox),title:(Library) # Firefox Popups
windowrulev2 = float,class:(vlc) # VLC Popups
windowrulev2 = float,class:(qemu.*) # QEMU
windowrulev2 = float,class:(org.telegram.desktop),title:(Media viewer)
# pinned window
windowrulev2 = bordercolor rgb(598da8) rgb(598da8), pinned:1

# Variables
$proxy_socks5 = socks5://localhost:1080
$proxy_http = http://localhost:1081

# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER

# Function Key bindings
bind = ,xf86audiomute, exec, pactl -- set-sink-mute @DEFAULT_SINK@ toggle
bind = ,xf86audiolowervolume, exec, pactl -- set-sink-volume @DEFAULT_SINK@ -5%
bind = ,xf86audioraisevolume, exec, pactl -- set-sink-volume @DEFAULT_SINK@ +5%
bind = ,xf86audiomicmute, exec, pactl -- set-source-mute @DEFAULT_SOURCE@ toggle
bind = ,xf86monbrightnessdown, exec, blight -d backlight/amdgpu_bl1 set -25.5
bind = ,xf86monbrightnessup, exec, blight -d backlight/amdgpu_bl1 set +25.5

# Hyprland hotkeys
bind = $mainMod, C, killactive,
bind = $mainMod, T, exec, alacritty
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, [float] nautilus --new-window
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, tofi-drun | xargs hyprctl dispatch exec -- ALL_PROXY=$proxy
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, fullscreen
bind = $mainMod, U, bringactivetotop
bind = $mainMod, O, exec, dpms, on
bind = $mainMod, Z, pin

# Hyprland some reload exec-once
bind = $mainMod CTRL ALT, R, exec, killall waybar; waybar
bind = $mainMod CTRL ALT, R, exec, killall fcixt5; fcitx5

# Screenshot
bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" - | wl-copy
bind = $mainMod SHIFT, W, exec, grim -g "$(hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')" - | wl-copy
bind = ,print , exec, grim - | wl-copy

# OBS
bind = $mainMod, HOME, exec, obs-cli recording start --host <IP_ADDRESS> --port 50000
bind = $mainMod, END, exec, obs-cli recording stop --host <IP_ADDRESS> --port 50000

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

$switch_script = ~/.config/hypr/switch_workspace.sh

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, exec, $switch_script switch 1
bind = $mainMod, 2, exec, $switch_script switch 2
bind = $mainMod, 3, exec, $switch_script switch 3
bind = $mainMod, 4, exec, $switch_script switch 4
bind = $mainMod, 5, exec, $switch_script switch 5
bind = $mainMod, 6, exec, $switch_script switch 6
bind = $mainMod, 7, exec, $switch_script switch 7
bind = $mainMod, 8, exec, $switch_script switch 8
bind = $mainMod, 9, exec, $switch_script switch 9
bind = $mainMod, 0, exec, $switch_script switch 10
bind = $mainMod, X, togglespecialworkspace

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, exec, $switch_script move 1
bind = $mainMod SHIFT, 2, exec, $switch_script move 2
bind = $mainMod SHIFT, 3, exec, $switch_script move 3
bind = $mainMod SHIFT, 4, exec, $switch_script move 4
bind = $mainMod SHIFT, 5, exec, $switch_script move 5
bind = $mainMod SHIFT, 6, exec, $switch_script move 6
bind = $mainMod SHIFT, 7, exec, $switch_script move 7
bind = $mainMod SHIFT, 8, exec, $switch_script move 8
bind = $mainMod SHIFT, 9, exec, $switch_script move 9
bind = $mainMod SHIFT, 0, exec, $switch_script move 10
bind = $mainMod SHIFT, X, movetoworkspace, special

bind = $mainMod SHIFT, comma, movecurrentworkspacetomonitor, l
bind = $mainMod SHIFT, period, movecurrentworkspacetomonitor, r

# Bind workspace
workspace = r[1-10], monitor:0
workspace = r[11-20], monitor:1

# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Input Methods
env = XMODIFIERS, @im=fcitx
# This line is removed since it causes GTK applications crash (if without Wayland support)
# env = GTK_IM_MODULE, wayland
# env = QT_IM_MODULE, wayland
env = SDL_IM_MODULE, fcitx

# SDL wayland
# This is deprecated since many clients does not support wayland
# env = SDL_VIDEODRIVER, "wayland,x11"

# NVIDIA Fix
env = LIBVA_DRIVER_NAME, nvidia
env = XDG_SESSION_TYPE, wayland
env = GBM_BACKEND, nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME, nvidia
env = WLR_NO_HARDWARE_CURSORS, 1

# Other Environment
env = QT_QPA_PLATFORMTHEME, qt5ct

# Proxy
env = ALL_PROXY, $proxy_socks5
env = HTTP_PROXY, $proxy_http
env = HTTPS_PROXY, $proxy_http
env = all_proxy, $proxy_socks5
env = http_proxy, $proxy_http
env = https_proxy, $proxy_http
env = NO_PROXY, <IP_ADDRESS>/8,<IP_ADDRESS>/8,<IP_ADDRESS>/12,<IP_ADDRESS>/16

# Auto start
exec-once = hyprpaper
exec-once = waybar
exec-once = fcitx5
# exec-once = swayidle timeout 300 'hyprctl dispatcher dpms off'
exec-once = dbus-update-activation-environment --systemd --all
# Agent
exec-once = /usr/lib/polkit-kde-authentication-agent-1

======Config-End========

Description
Window content scretches abnormally when shrinking window size (either in x or y axis).
It seems that this only happens with electron apps running natively on wayland (Hyprland). This won't appear with XWayland. Electron native wayland support was enabled by --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime options.
I also tried to reproduce it on Sway and it doesn't seem to have such artifacts.
How to reproduce

Open any Electron app with native Wayland support
Shrink the size of the window

Crash reports, logs, images, videos
https://github.com/user-attachments/assets/97006258-1f28-4ed7-8a75-fe3c0f73f520

https://github.com/hyprwm/Hyprland/issues/1462


[client] biome

Can i work on this project @ponderingdemocritus

I think a good way to go to solve this is to add a check for undefined before using the biomes and if the hex is non-existent, get rid of the hex search params in the URL and send back to the login page.


Add flexibility for different kinds of static items in FindPlinth()

Some static objects come as being offset from its position (for example, maybe it was built to sit against a wall). If the level builder uses such an object as a pedestal, and drags a pickup onto it, Lara won't be able to grab that pickup because FindPlinth() requires the positions of both those objects to match exactly and does a collision check between them. To solve this the level builder must adjust the offset of the mesh, which can lead to a lot of trial and error. It would be preferable for FindPlinth() to eventually allow for these kinds of static items to hold items on top of them out of the box.

I think we should make this work first: https://github.com/MontyTRC89/TombEngine/issues/1322


Make bumping the wire format an API breaking change

Hey @Urhengulas after the latest release of the changes in https://github.com/knurling-rs/defmt/pull/747 I am still having problems aligning versions in my setup :sweat:
It appears to me that we missed bumping the dependency defmt-macros of defmt in https://github.com/knurling-rs/defmt/commit/37892413e3a64797bdc213d6a644754ac8bb2eef and also earlier in https://github.com/knurling-rs/defmt/commit/1cbbb334bf508d13c1d537623fe2a4165dfc5d65, it should now depend on defmt-macros-0.3.4.
Following this I tried to wrap my head around how the wire format plays together with the SemVer guarantees, and I think that bumping the wire format is an API breaking change.
This is related to the changes introduced as of https://github.com/knurling-rs/defmt/pull/540, which solved https://github.com/knurling-rs/defmt/issues/287.

The original rationale for decoupling the wire format version from the defmt semver version was that doing a defmt semver-major bump is a giant pain. You can't mix defmt versions in a binary (#426), and this seems fundamentally unfixable with the defmt design. So upgrading defmt requires ALL libraries using it to update. And in turn, that update requires a major bump of the library, because it'll break binaries that are still using the older version.
This happened in the defmt 0.2 -> 0.3 upgrade. It was a giant pain, it took MONTHS.
Decoupling the versions allows defmt to evolve while avoiding regularly inflicting this pain into the ecosystem. I really don't think we should walk back on this decision.
However, I remember discussing making defmt-decoder support multiple wire format versions, which it seems it never happened. Currently old defmt-decoder/probe-run versions support only wire 3, newer ones support only 4, so you have to keep switching between them if some projects have been updated and some other haven't.
If the new versions added support for 4 instead of dropping support for 3 the experience would be much better: you upgrade defmt, you get an error from probe-run saying "please update probe-run", and then everything would be working again.

It'd be nicer to have a single defmt-decoder version support multiple wire format versions. If it's one-to-one bins ca nhack it by depending on multiple defmt-decoder versions at once, yes, but that work needs to be repeated for each project that uses defmt-decoder, and needs manual work to add new versions, vs just cargo updateing to a newer defmt-decoder.

Requiring an update to projects using defmt-decoder sounds far less problematic, IMO. Crates actually using that are few and far between, and being able to support multiple wire versions so that actual users can safely cargo install <decoder thing> without having to worry that you can't decode logs from projects locked to older versions of defmt anymore without cargo install-ing all the time.


Update toolchain version to Java 21 in Paper project setup

In the future, we should allow for properties in code blocks, however this works for now. Thanks


is there any possible use PureRenderMixin in react native

I want to use PureRenderMixin  optimize performance through shouldComponentUpdate,
but after npm i PureRenderMixin --save, I find that I can't call PureRenderMixin correctly :(
I follow react document ES6 step.
import PureRenderMixin from 'react-addons-pure-render-mixin';
class FooComponent extends React.Component {
  constructor(props) {
    super(props);
    this.shouldComponentUpdate = PureRenderMixin.shouldComponentUpdate.bind(this);
  }

  render() {
    return
foo
;
  }
}

and always get Unable to resolve module react-addons-pure-render-mixin error.
maybe the foolish question, is there any possible use PureRenderMixin in react native? if so, how should I fix it?
thanks for your time.
regards.

@facebook-github-bot stack-overflow


Simplify checking for dependency cycles

What does this PR try to resolve?
In my PubGrub work I had to try to understand the check_cycles post resolution pass. I found the code tricky to understand and doing some unnecessary reallocations. I cleaned up the code to remove the unnecessary data structures so that I could better understand.
How should we test and review this PR?
It's an internal re-factor, and the tests still pass. But this code is not extensively tested by our test suite. In addition I ran my "resolve every crate on crates.io" script against a local check out of this branch. With the old code as check_cycles_old and the PR code as check_cycles_new the following assertion did not hit:
fn check_cycles(resolve: &Resolve) -> CargoResult<()> {
    let old = check_cycles_old(resolve);
    let new = check_cycles_new(resolve);
    assert_eq!(old.is_err(), new.is_err());

    old
}

That experiment also demonstrated that this was not a significant performance change in either direction.
Additional information
If you're having questions about this code while you're reviewing, this would be a perfect opportunity for better naming and comments. Please ask questions.

@bors r+
Thanks!

:pushpin: Commit 2b4273d9f2dac88a81cbb91d1e5b73e7cecbc71e has been approved by weihanglo
It is now in the queue for this repository.

:hourglass: Testing commit 2b4273d9f2dac88a81cbb91d1e5b73e7cecbc71e with merge ac8c6aba13c07e8e94940a3c465f1f52294832ea...


Bug: setState() called after dispose()

I found a bug when using QuillEditor inside a Stepper-Widget.
I also have a suggestion for fixing: After adding if (!mounted) return; before setState() inside raw_editor.dart in line 904 & 960 the issue did not come up again.
Here is the error message:
E/flutter (24393): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: setState() called after dispose(): RawEditorState#669f3(lifecycle state: defunct, not mounted, tickers: tracking 0 tickers) E/flutter (24393): This error happens if you call setState() on a State object for a widget that no longer appears in the widget tree (e.g., whose parent widget no longer includes the widget in its build). This error can occur when code calls setState() from a timer or an animation callback. E/flutter (24393): The preferred solution is to cancel the timer or stop listening to the animation in the dispose() callback. Another solution is to check the "mounted" property of this object before calling setState() to ensure the object is still in the tree. E/flutter (24393): This error might indicate a memory leak if setState() is being called because another object is retaining a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breaking the reference to this object during dispose().


Here is the unit test intentionally failing to show the problem is with http-datasource

Here @sdesai

Closing this out, and replacing it with 516 (which has some minor tweaks to get it in it's final form)


Update weston and patches

Required some manual work to update, but last I tried, it still works.

 Thanks!


web panel doesn't work with node 5.0 and express 4.13.3

Even when using the expressLogger example as a minimum test case it doesn't do anything.

Just tested and it seems to be functional. Deps listed below. Perhaps a screenshot and a snippet of code can help us debug.
<EMAIL_ADDRESS>~/Github/Scribe.js
+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | +--<EMAIL_ADDRESS>| | | `--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | +--<EMAIL_ADDRESS>| | +--<EMAIL_ADDRESS>| | | `--<EMAIL_ADDRESS>| | +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| | `--<EMAIL_ADDRESS>| +--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>| `--<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>


feature: concise console log

Hi,
Would it be possible to have a feature flag to only provide the details of failed test. We could show the total number of tests ran , success (count only) and then the failed test details as shown now. This helps to easily focus on the issue.
thanks.

recently using jest exclusively. so don't need this anymore.


feat(mesh): extracts gateway info from the ingress route

Fixes #12

It is looking good.
So, it is going to be a single annotation with the format {namespace}/{gw-name}, which is the same as VirtualServices expect.


use the latest stable and lts node versions in ci

@asapach could you remove the npm install thing from the conf as well? that one is causing some failures

Looks like npm@3 is causing some kind of problems. More investigation is needed.

@mafintosh: should be good to go


Adopt noasync for ThreadSpecificVariable

Mark ThreadSpecificVariable.currentValue as not available from asynchronous context.
Motivation:
From SE-0340 (Unavailable From Async Attribute):

The Swift concurrency model allows tasks to resume on different threads from the one they were suspended on. For this reason, API that relies on thread-local storage, locks, mutexes, and semaphores, should not be used across suspension points.

Modifications:
add @available(*, noasync) to  ThreadSpecificVariable.currentValue in Swift 5.7+
Result:
Prevent accidental misuse of ThreadSpecificVariable
Note: The noasync diagnostics in the latest Swift 5.7 nightly compiler emits errors instead of warnings but this is already fixed and will be part of the next 5.7 nightly toolchain. https://github.com/apple/swift/issues/59748

@swift-nio-bot test this please


runc-shim: publish init exit after all processes have exited

Building off of https://github.com/containerd/containerd/pull/10634, took a stab at an implementation of what we discussed in slack, namely:
1. process the init exit, squirrel away its exit event and block new exec starts
2. wait for all pending execs to settle to running or early-exit
3. kill all container processes
4. wait for the running count to drop to zero, with a time bound
5. wipe out the running list (so we don't publish exit events for late-reaped execs) and publish the squirreled-away init event

This implementation in particular launches a goroutine per-container init exit. I did write another implementation which doesn't require that, but it was a bit more complex, and I wasn't sure it was worth the payoff.
However, I'm sure others (cc @corhere) have better ideas, so I'd be happy to hear them.

This implementation in particular launches a goroutine per-container init exit. I did write another implementation which doesn't require that, but it was a bit more complex, and I wasn't sure it was worth the payoff.

I agree. One ephemeral goroutine per container that is currently in the process of being torn down is cheap, and we always have the option to optimize later.

Looks like you might be having trouble getting the watchdog timer to work as expected? Timers before language version go1.23 (which we are currently stuck in) were tricky to use correctly, but there are patterns which can be applied to make them work as expected.

Oh! I don't usually use them like I did here, but I also wasn't aware/don't remember if I knew about those pitfalls (and now I'm worrying about whether I've used them wrong before 😅)

I guess it's something to call out that this implementation is slightly different than what we discussed – we talked about was:
[...]
4. wait for the running count to drop to zero, with a time bound
5. wipe out the running list (so we don't publish exit events for late-reaped execs) and publish the squirreled-away init event

What this does:
[...]
4. Subscribe to exits + wipe out the running list (so processExits doesn't publish events for exiting execs)
5. Wait for running count to drop to 0/for us to receive exits for all the running execs, or timeout
6. publish the exec exits we received and then publish the squirreled-away init event

It felt cleaner to do it this way rather than add a subscriber to s.exitSubscribers but still have s.processExits publish these exits, but let me know if you think otherwise.

/cc @samuelkarp

The code is a bit complicated. https://github.com/containerd/containerd/pull/10647

Superceded by https://github.com/containerd/containerd/pull/10651


Swap URLs for Links

On the Get Access there are URLS in the text.

We should turn them into actual links users can click on and go to those websites. Like here.

These seem to be the link that need to be created.

Grounded in Philly
Act 135
The Philadelphia Land Bank
Grounded in Philly
Philadelphia Legal Assistance
Garden Justice Legal Initiative
Land Bank’s guide to the side yard acquisition process

This is fixed on Staging, so I'm moving this to "In Staging."

closed by #564


Return-type of BLAKE2b in keyed and non-keyed mode is the same

Currently BLAKE2b always returns a Digest, even if it was used with a secret-key and represents a MAC. Digest does implement PartialEq in constant-time, like Tag in HMAC and Poly1305, but doesn't provide the function unprotected_as_bytes(), but instead as_bytes().
Perhaps BLAKE2b should return a Tag when used with a secret key, making the difference more clear. Maybe even move keyed-BALKE2b into the mac module instead.

After discussing with a potential user, it's been decided that the current API, that offers keyed-mode for BLAKE2b in hazardous, will be kept as-is in terms of return-types.


[opentelemetry-tesla] add custom span name override as middleware opt

This PR adds a new middleware option so that it's possible to override the span name.
eg:
def client(url) do
  middleware = [
    {Tesla.Middleware.BaseUrl, url},
    {Tesla.Middleware.OpenTelemetry, span_name: "POST :outgoing-webhooks"}
  ]

  Tesla.client(middleware)
end

Changes:

removed extra bracket from mix.exs, preventing compilation
added test cases for the three possible span name rules
added a @moduledoc
added capture_log: true in tests

doesn't this go against span names guidelines?

It doesn't break semantic conventions since those say it should be the "route" and if that isn't available then the method.
But this should be a function, not a static name. The function should take the path and return the span name.That way it can be used to convert a path to a route.
I suppose it could accept either a string or a function, that way if you are using the client for only one path you can just set the span name to a static value.

@ricardoccpaiva
My understanding of the semantic convention is that providing a way to override would be fine. The only requirement is that the span name should be a low cardinality name that represents the request
Here's the relevant part from the guidelines:

HTTP spans MUST follow the overall guidelines for span names. Many REST APIs encode parameters into URI path, e.g. /api/users/123 where 123 is a user id, which creates high cardinality value space not suitable for span names. In case of HTTP servers, these endpoints are often mapped by the server frameworks to more concise HTTP routes, e.g. /api/users/{user_id}, which are recommended as the low cardinality span names. However, the same approach usually does not work for HTTP client spans, especially when instrumentation is provided by a lower-level middleware that is not aware of the specifics of how the URIs are formed. Therefore, HTTP client spans SHOULD be using conservative, low cardinality names formed from the available parameters of an HTTP request, such as "HTTP {METHOD_NAME}". Instrumentation MUST NOT default to using URI path as span name, but MAY provide hooks to allow custom logic to override the default span name.

@tsloughter @ricardoccpaiva
Instead of a function that takes the path, what if we allow either a string or a function that takes the Tesla.Env?
@type span_name_opt :: String.t() | (Tesla.Env.t() -> String.t())

Just added a new commit that does that. What do you think?

I was waiting tesla to be merged here just to do the same type of pr. :heart:

+1 to passing the whole Env.

@tsloughter @ricardoccpaiva
Instead of a function that takes the path, what if we allow either a string or a function that takes the Tesla.Env?
@type span_name_opt :: String.t() | (Tesla.Env.t() -> String.t())

Just added a new commit that does that. What do you think?

LGTM

Alright. Just merged latest main branch. Should be good to go!
Thank you!

Hey, @tsloughter @ricardoccpaiva
Do you need anything else to merge this one?

I think it is good to go. @ricardoccpaiva ?

Hey, @tsloughter @ricardoccpaiva Do you need anything else to merge this one?

✅

CI issues look to be completely unrelated to this PR, so I'll go ahead and merge.

not sure of what's the procedure not that this has been merged. Should a minor version be released?

@ricardoccpaiva yea, that'd be good.

@ricardoccpaiva yea, that'd be good.

I can take care of that but not sure if I have permissions given that the package ownership has been transfered.

@ricardoccpaiva oh, i thought we got that fixed. If not let me know and either we'll get it fixedoro I'll publish.

@tsloughter can you approve this and then after merging I'll try to release a new version of the package?

@ricardoccpaiva yup, done


Raspberry Pi 4: Qt (PySide2) and pyrealsense2 frame buffer overflow

Required Info

Camera Model
{D400 }

Firmware Version
<IP_ADDRESS>

Operating System & Version
raspbian (realsense precompiled)

Kernel Version (Linux Only)
4.19.97-v7l+

Platform
Raspberry Pi 4 (8GB)

SDK Version
2.0

Language
Python, PySide2

Segment
others

Issue Description
Hello Everybody!
I am currently trying to port a x86 Python/Qt Gui Application to Raspberry Pi 4.
My Problem is, that whenever i load the quite simple test-application i run into an issue which is quite awkward and I couldn't get my Head around it. When the application starts, the Qt UI Window opens and the video-stream starts playing (comes from a QThread but i tried it with python threading too) but only for exactly 16 frames. It doesn't matter if I reduce the resolution, framerate oder other stuff. Even when I "manually" add a timer.sleep(x) command and then just poll_for_frames() instead of wait_for_frames(). After those 16 Frames "RuntimeError: Frame didn't arrive within 5000" is thrown.
So I made some research on this and I think the problem could be that the frame buffer is overflowing and therfore no new frames arrive. Usually this is handled by the pyrealsense2 functions but I think, that there has to be some kind of "misplay" between the different libraries I use. I tried some coding with the frame_queue class and after those initial 16 Frames I tried to reinitialize the frame_queue object but I didn't get this to work properly. Still the same problem. Oddly, the examples from the realsense documentation work flawlessly and even if i rewrite them as python threads it works (opencv used for presentation). As soon as I try anything with Qt the issue occurs.
Does anyone have a similar problem or at least any useful information about this issue?
Following: the "cleanest" version of the code which at least on my raspberry pi ensures the reproduction of the issue I am enlisting here.
main.py
from PySide2.QtWidgets import QApplication
from camera import Camera
from mainWindow import MainWindow
import sys

if __name__=="__main__":

    app = QApplication(sys.argv)
    window = MainWindow()

    window.show()

    window.StartCamera()

    app.exec_()

mainWindow.py
from PySide2.QtWidgets import QLabel, QVBoxLayout, QWidget, QMainWindow
from PySide2.QtGui import QPixmap, QImage
from PySide2.QtCore import Slot, Signal
from camera import Camera

class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)

        self.widget = QWidget()
        self.color_label = QLabel("")
        self.widgetLayout = QVBoxLayout()
        self.widgetLayout.addWidget(self.color_label)
        self.widget.setLayout(self.widgetLayout)
        self.setCentralWidget(self.widget)

        self.camera = Camera()

    @Slot(QImage)
    def receiveFrame(self, color_frame: QImage):
        self.color_label.setPixmap(QPixmap.fromImage(color_frame))

    def StartCamera(self):
        self.camera.colorFramesReady.connect(self.receiveFrame)
        self.camera.start()

camera.py
from PySide2.QtCore import QThread, Signal, Slot
from PySide2.QtGui import QImage
import pyrealsense2 as rs
import logging

class Camera(QThread):

    colorFramesReady = Signal(QImage)

    def __init__(self):

        QThread.__init__(self)
        self.config = rs.config()
        self.pipeline = rs.pipeline()
        self.frames = rs.frame()
        self.camera_running = True

        #self.config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
        self.config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)

        self.pipeline.start(self.config)

        self.frame_counter = 0

    def run(self):
        while(self.camera_running):
            self.frames = self.pipeline.wait_for_frames()

            #depth_frame = self.frames.get_depth_frame()
            color_frame = self.frames.get_color_frame()

            q_color_frame = self.realsenseColorFrameToQImage(color_frame)

            self.colorFramesReady.emit(q_color_frame)

            self.frame_counter = self.frame_counter +1

            logging.error(str(self.frame_counter)) #potentially faster than print function

    def realsenseColorFrameToQImage(self, color_frame):
        result = QImage(color_frame.get_data(), 640, 480, 640*3, QImage.Format.Format_RGB888)
        return result

Hi @zmukash   The situation that you describes makes me think of a 16-frame limitation described in the link below.
https://github.com/IntelRealSense/librealsense/issues/946
A solution that worked for one Python user was to save the franes in memory with the Keep() instruction.  Keep() has its own limitation though in that it is suited to recording sessions of up to 30 seconds length because the computer's memory capacity is consuned by the stored frames.
https://github.com/IntelRealSense/librealsense/issues/6164#issuecomment-607714808

Hi @MartyG-RealSense and thanks for the fast answer and for the further input from other issues!
Sadly, I have to tell you that the solutions you provided to me were only partially helpful. Now it actually runs for more than those 16 frames but not more than those 30 seconds because the memory is used up. I actually need to have the stream running more than this...if possible infinitely!
Isn't there any kind of release command in order to release the memory which was blocked by the references to the frames? In C++ this wouldn't be that much of an issue but in python the memory management is rather limited.
When I am used the keep() command it also doesn't matter it i am closing and reopening the pipeline. I also changed my object variables to temporary one, tried to call python gc (garbage collection) and using the python del command but nothing prevents the stream from stopping because the memory is not actually freed.

Under normal circumstances, the 400 Series cameras can run indefinitely so long as their temperature remains within recommended tolerances and there isn't a glitch outside of the camera (in the USB equipment, computer hardware, operating system, etc).  Likewise, recording durations can run for long periods.
Sometimes though, if a Python application is written in a certain way then it can cause the frames to reach a limit point where no further frames are received, like in the case linked to.
There was a case of a Python user with a Keep() project that had non-releasing frames, and they found that the cause was their numpy version.
https://github.com/IntelRealSense/librealsense/issues/3164

So I investigated the issue with the memory leak and apparently it is the QImage (converter) function which was leaking memory in this context. I am going to provide further informations on this issue later this day (with small example)

Thanks very much @zmukash for the forthcoming details

Through debugging I saw that actually not the keep() command was leaking memory but the QImage(...) function (seen in first post in realsenseColorFrameToQImage() function. There is a workaround for this here.
By simply replacing this I got the realsense to work without the keep() function but still somehow my UI stopped after some seconds. I did not investigate this issue further because I had already written an alternative (test-) programm which gave me much better results (see below). I used multiprocessing instead of threading. From my understanding this has the advantage that the memory is not directly shared between processes but communication is done through a Queue.
Attention: Multiprocessing can throw exceptions when not using certain formats for communication. So this can be quite easily be solved by just queuing ndarrays (numpy). Also I got some struggle figuring out, that multiprocessing does not like to be handed specific class instances from another process. So my advice would there be: Make the process for data collection as much standalone as possible and don't try to make it use for example a pipeline() from another process.
main.py
from PySide2.QtWidgets import QApplication
from camera import Camera
from mainWindow import MainWindow
import sys
import multiprocessing as mp
import pyrealsense2 as rs
import numpy as np

#process method which is running in parallel
def foo(q,lock):

    config = rs.config()
    pipeline = rs.pipeline()
    frames = rs.frame()

    config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
    pipeline.start(config)

    i = 0

    while(True):
        lock.acquire()
        try:
           frames = pipeline.wait_for_frames()
           color_frame = np.asanyarray(frames.get_color_frame().get_data())

           q.put(color_frame)

        finally:
            lock.release()
            i = i+1

if __name__=="__main__":

    #Starting the process method
    lock = mp.Lock()
    ctx=mp.get_context('spawn')
    q = ctx.Queue(maxsize=4)
    p = mp.Process(target=foo, args=(q,lock,))
    p.start()

    #Starting Qt Application Window
    app = QApplication(sys.argv)

    window = MainWindow(q)

    window.show()

    app.exec_()

    p.join()

mainWindow.py
from PySide2.QtWidgets import QLabel, QVBoxLayout, QWidget, QMainWindow
from PySide2.QtGui import QPixmap, QImage
from PySide2.QtCore import Slot, Signal
from camera import Camera
import multiprocessing as mp
import numpy as np
import qimage2ndarray

class MainWindow(QMainWindow):
    def __init__(self,q):
        QMainWindow.__init__(self)

        self.widget = QWidget()
        self.color_label = QLabel("")
        self.widgetLayout = QVBoxLayout()

        self.widgetLayout.addWidget(self.color_label)

        self.widget.setLayout(self.widgetLayout)

        self.setCentralWidget(self.widget)

        self.camera = Camera(q)
        self.camera.colorFramesReady.connect(self.StartCameraUpdates)
        self.camera.start()

    def realsenseColorFrameToQImage(self, color_frame):
        result =qimage2ndarray.array2qimage(color_frame)
        return result

    @Slot(np.ndarray)
    def StartCameraUpdates(self,image):
        self.color_label.setPixmap(QPixmap.fromImage(self.realsenseColorFrameToQImage(image)))

camera.py
from PySide2.QtCore import QThread, Signal, Slot
from PySide2.QtGui import QImage
import pyrealsense2 as rs
import multiprocessing as mp
import numpy as np

class Camera(QThread):

    colorFramesReady = Signal(np.ndarray)

    def __init__(self,q):
        QThread.__init__(self)
        self.q = q
        print('QThread Opening...')

    def run(self):
        while True:
            self.colorFramesReady.emit(self.q.get())

This is a great resource for RealSense community members in the future who might encounter similar problems.   Thanks for sharing your solution!   :)


Devices available in NodeRed?

Noob question, sorry if I'm getting mixed up...
Installation on Raspberry Pi was fine (I think).
Should I be able to see the Sonoff devices in my Node Red installation?

I have Hass.IO on Raspberry and all Sonoff device automations in Node-RED


Unity - Explicitly include meshes in .obj format

Pull Request
Thank you for contributing to @dvcs/gitignore and https://www.gitignore.io.
New or update
Select the appropriate check box for this pull request. This helps when merging to ensure there are no conflicts with other templates or misunderstandings of how thee template list works.
New

[ ] Template - New .gitignore template
[ ] Composition - Template made from smaller templates
[ ] Inheritance - Template similar to an existing template
[ ] Patch - Template extending functionality of existing template

Update

[X] Template - Update existing .gitignore template

Details
Wavefront object format is a commonly used exchange format between 3D modelling applications, but the .obj extension is commonly excluded in global exclude files, because files with the same extension are auto-generated when compiling code.

There are two options to make this merge

Create a Unity.patch file and add these lines to that — CI is failing because you're updating a template that is managed by GitHub
Submit a pull request to https://github.com/github/gitignore/blob/56e3f5a7b2a67413a1d3e33fceb8100898015a2e/Unity.gitignore


move Test::Output to "test-depends"

Test::Output is used only in t/120-templates.t.
So I don't think we should list it as "depends".

Thanks!


IEnumerable is not correctly binding

Hi,
I have an Issue when I try to upload Files from my Angular 6 app to .net core web api.
Here is my C# classes:
public class SampleDetailsDto
 {
     public Guid Id{ get; set; }
     [Required]
     public string Text { get; set; }
     public string ImageUrl { get; set; }
     public IEnumerable<IFormFile> Files { get; set; }
     public IList<SampleItemDto> SampleItems { get; set; }
 }
 public class SampleItemDto : EntityDto<Guid?>, IAuditedDto, IDeleteAuditedDto
 {
     public Guid Id{ get; set; }
     [Required]
     public string Text { get; set; }
     public string ImageUrl { get; set; }
     public IEnumerable<IFormFile> Files { get; set; }
 }

My C# Controller:
        [Route("{id:guid}")]
        public async Task<IActionResult> UpdateAsync([FromRoute]Guid id, [FromForm] SampleDetailsDto dto)
        {
              Console.Write(dto.Files?.Length); // return null
              return OK();
       }

As you can see Files are null.
But if I look in the request:

With more details:

As we can see the Files are correctly sent to the server, in the name we can see that there are supposed to be correctly bind to the DTO which is not the case.
I read here: https://github.com/aspnet/Mvc/issues/7719 that It s recommended to use IFormCollection, so yes, I can see all the Files uploaded, but they are all in one property called "Files" instead of being linked to SampleDetailsDto or ChildSampleDto.
I did a really basic repository, so you will be able to test the problem:
https://github.com/ranouf/TestMultipleUpload
Did you notice this bug too? Did you find a way to patch it?
note: this bug was originally created here: https://github.com/dotnet/core/issues/1967

Thanks for contacting us, @ranouf.
@dougbu, can you please look into this? Thanks!

note: this bug was originally created here: dotnet/core#1967

This is the correct place to file this issue. Suggest closing dotnet/core#1967.

Did you notice this bug too?

Thank you for your feedback. We're closing this issue as we think this is fixed in our working code base. Would you be able to try our nightly builds and see if the issue is resolved for you? (The #8311 fix was made only a couple of weeks ago, after the most recent 2.2 preview release on NuGet.org.)
Nightly builds are available from https://dotnet.myget.org/gallery/aspnetcore-dev.
Alternatively, the workaround is to remove [FromForm] (which is technically incorrect for IFormFile) from the dto parameter. But due to #7770, that might not work unless you're using one of the 2.2 preview releases (which are available on NuGet.org).

Thanks @dougbu !
Last question, if I use the nightly build, will I be able to deploy it on Azure?

@ranouf see https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/azure-apps/?view=aspnetcore-2.2

Thanks

I followed your advices:

I added the last version of AspNetCoreRuntime in csproj (https://dotnet.myget.org/feed/aspnetcore-dev/package/nuget/AspNetCoreRuntime.2.2.x64) ( for other people who want to do it, do not forget to add a new nuget Source in VS: https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json)
I remove [FromForm] before the Dto and replaced it by [FromBody]

I now have an error 400 when I post the request.
Here is what I post:

------WebKitFormBoundary4JBB3jcAGh0A72fE
Content-Disposition: form-data; name="name"
asda
------WebKitFormBoundary4JBB3jcAGh0A72fE
Content-Disposition: form-data; name="files[0]"; filename="19763265060_05f2ff50bb_o.jpg"
Content-Type: image/jpeg
------WebKitFormBoundary4JBB3jcAGh0A72fE
Content-Disposition: form-data; name="files[1]"; filename="19925044056_474370724c_o.jpg"
Content-Type: image/jpeg
------WebKitFormBoundary4JBB3jcAGh0A72fE
Content-Disposition: form-data; name="children[0].name"
qqq
------WebKitFormBoundary4JBB3jcAGh0A72fE
Content-Disposition: form-data; name="children[0].files[0]"; filename="19763733839_c60669a986_o.jpg"
Content-Type: image/jpeg
------WebKitFormBoundary4JBB3jcAGh0A72fE
Content-Disposition: form-data; name="children[0].files[1]"; filename="19119802213_79cc08f259_o (1).jpg"
Content-Type: image/jpeg
------WebKitFormBoundary4JBB3jcAGh0A72fE--

the response is:
{"":["The input was not valid."]}
https://github.com/ranouf/TestMultipleUpload/commit/7f0049430965008dbf0762fd8109d224ac911e66
Do I miss something?

I remove [FromForm] before the Dto and replaced it by [FromBody]

Remove both attributes entirely. When using any release from NuGet.org, you do not have the #8311 fix.

I removed [FromBody]
I added a new source in VS (https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json)
I added  in the CSProj
From what I understand, it should work, but I still have an error 400.

Do I need to change something in the client request? (the client request is configured here: https://github.com/ranouf/TestMultipleUpload/blob/46572ca99dd71a1db48866afc4b8b1a49a1bc875/client/src/app/services/api.services.extensions.ts#L22)
Do I need to do something else server side?
Thanks

I removed [FromBody]
I added a new source in VS (https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json)
I added  in the CSProj
I installed 'Release/2.2.1XX
(2.2.x Runtime)' from (https://github.com/dotnet/core-sdk/blob/master/README.md#installers-and-binaries)
From what I understand, it should work, but I still have an error 410.

Do I need to change something in the client request? (the client request is configured here: https://github.com/ranouf/TestMultipleUpload/blob/46572ca99dd71a1db48866afc4b8b1a49a1bc875/client/src/app/services/api.services.extensions.ts#L22)
Do I need to do something else server side?
Thanks

Hi, @dougbu , sorry to relaunch you, when you have time, could you answer, You are currently the only one who seem to have found the correct solution :)

@ranouf I'm hoping to try things out locally later today or perhaps tomorrow morning.

@ranouf I'm unable to use the repro solution due to its high number of dependencies and issues blocking progress. Right now npm run start in the client directory writes some output, ending with Compiled successfully then does nothing more.
Please test with 2.2 Preview 3 i.e. nightly packages

create a NuGet.config file in the solution root containing<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="dev" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

download a nightly 2.2 SDK from https://github.com/dotnet/core-sdk
create a global.json file in the solution root containing{
  "sdk": {
    "version": "2.2.100-preview2-009404"
  }
}

The version above should match whatever you downloaded above.

Note you don't need the AspNetCoreRuntime.2.2.x64 package for local testing. In addition, that package is unlikely to override enough to be sure the app is using ASP.NET Core MVC 2.2 Preview 3 packages.
If the above does not resolve your concern, we need more information about the failure. In that case, please write a functional test or two in C# demonstrating what the TestMultipleUpload.Api project is doing that you don't expect and reopen this issue with the new repro and details. (The problem is specific to the submitted request, not the technology used to make that request.)

Thanks :)
I will try that probably tommorow or monday.

Hi,
here are more explanation how to launch the repo:
Server side:
Open the TestMultipleUpload.sln
Click on Ctrl+F5 (of F5) to launch the server
On going to https://localhost:44344/api/family, you will "["value1","value2"]" which means the server is ready.
Client side
in the client folder, to install all the dependancies, run  npm install

Note: sometimes, npm fails, remove the node_modules folder and re run npm install
then still in the same folder, to build the app, run npm run start

and then launch http://localhost:4200

Fill the fields
Add Pictures
You can add new child by clicking Add.
Then click Save
In chome inspection, in Network Tab, you can see the request failed:

here are the form data details:
------WebKitFormBoundarynZ1QPMAJQjq6RTi7
Content-Disposition: form-data; name="name"
Parent
------WebKitFormBoundarynZ1QPMAJQjq6RTi7
Content-Disposition: form-data; name="files[0]"; filename="19925095426_7b3af99df3_o.jpg"
Content-Type: image/jpeg
------WebKitFormBoundarynZ1QPMAJQjq6RTi7
Content-Disposition: form-data; name="children[0].name"
Child 0
------WebKitFormBoundarynZ1QPMAJQjq6RTi7
Content-Disposition: form-data; name="children[0].files[0]"; filename="19925095426_7b3af99df3_o.jpg"
Content-Type: image/jpeg
------WebKitFormBoundarynZ1QPMAJQjq6RTi7
Content-Disposition: form-data; name="children[0].files[1]"; filename="19950324155_5321a6eb7e_o.jpg"
Content-Type: image/jpeg
------WebKitFormBoundarynZ1QPMAJQjq6RTi7--
Next post, I will test your suggestions :)

I followed your instructions.
The current version installed is:

I can see the new version installed:

In my csproj, I had:

I was not sure if I have to do with it, I try to update with nugget, but I have an infinite loading

I now have many errors with the API project and I m not able to launch it anymore:

I m not sure what I have to do now?

@ranouf

then launch http://localhost:4200

This and later steps were what I was missing. The latest issue is not the IFormFile collections per se. Instead, [ApiController] changes the binding source of the entire ParentDto to BindingSource.Form and that doesn't support a form URL-encoded body. That leads to the 415 response.
Restoring the [FromForm] (which works in ASP.NET Core MVC 2.2) unearths another issue: The submitted filenames should match the property i.e. not be indexed. A supported submission would have
Content-Disposition: form-data; name="files"; filename="19925095426_7b3af99df3_o.jpg"
...
Content-Disposition: form-data; name="children[0].files"; filename="19925095426_7b3af99df3_o.jpg"
...
Content-Disposition: form-data; name="children[0].files"; filename="19950324155_5321a6eb7e_o.jpg"

I'm not sure how to change your code to submit the files with the above names.

Separately, as I said above

Note you don't need the AspNetCoreRuntime.2.2.x64 package for local testing. In addition, that package is unlikely to override enough to be sure the app is using ASP.NET Core MVC 2.2 Preview 3 packages.

and

The version above should match whatever you downloaded above.

A mismatch here may lead to the errors you've highlighted.

@ranouf I changed https://github.com/ranouf/TestMultipleUpload/blob/46572ca99dd71a1db48866afc4b8b1a49a1bc875/client/src/app/services/api.services.extensions.ts#L63
to
this.appendFormData(formData, data[i], root);

and your sample worked perfectly

Thanks for your quick answer :)
I added you as collaborator to the repository so you can push your modifications.

I added you as collaborator to the repository so you can push your modifications.

Doesn't look like I have sufficient access to create a branch. But, I've already provided the NuGet.config and global.json files. Beyond that (and the need to align versions between global.json and the SDK),
diff --git a/client/src/app/services/api.services.extensions.ts b/client/src/app/services/api.services.extensions.ts
index 609d58db27..f7768746fe 100644
--- a/client/src/app/services/api.services.extensions.ts
+++ b/client/src/app/services/api.services.extensions.ts
@@ -60,7 +60,7 @@ export class FamilyServiceExtensions extends FamilyService {
       formData.append(root, data);
     } else if (Array.isArray(data)) {
       for (var i = 0; i < data.length; i++) {
-        this.appendFormData(formData, data[i], root + '[' + i + ']');
+        this.appendFormData(formData, data[i], root);
       }
     } else if (typeof data === 'object' && data) {
       for (var key in data) {
diff --git a/server/TestMultipleUpload.Api/Controllers/FamilyController.cs b/server/TestMultipleUpload.Api/Controllers/FamilyController.cs
index 9b0cc9697a..40b73cb3f3 100644
--- a/server/TestMultipleUpload.Api/Controllers/FamilyController.cs
+++ b/server/TestMultipleUpload.Api/Controllers/FamilyController.cs
@@ -21,13 +21,15 @@ namespace TestMultipleUpload.Api.Controllers
         // POST api/values
         [HttpPost]
         [ProducesResponseType(typeof(ParentDto), (int)HttpStatusCode.OK)]
-        public IActionResult Post(ParentDto dto)
+        public IActionResult Post([FromForm] ParentDto dto)
         {
             Console.Write("Parent Name:" + dto.Name);
+
             if (dto.Files != null)
             {
                 Console.Write("Parent files:" + dto.Files.Count());
diff --git a/server/TestMultipleUpload.Api/TestMultipleUpload.Api.csproj b/server/TestMultipleUpload.Api/TestMultipleUpload.Api.csproj
index 3070978f46..3897728dd0 100644
--- a/server/TestMultipleUpload.Api/TestMultipleUpload.Api.csproj
+++ b/server/TestMultipleUpload.Api/TestMultipleUpload.Api.csproj
@@ -6,13 +6,8 @@
     <LangVersion>latest</LangVersion>
   </PropertyGroup>

-  <ItemGroup>
-    <Folder Include="wwwroot\" />
-  </ItemGroup>
-
   <ItemGroup>
     <PackageReference Include="Microsoft.AspNetCore.App" />
-    <PackageReference Include="AspNetCoreRuntime.2.2.x64" Version="2.2.0-preview3-35364" />
   </ItemGroup>

 </Project>

I removed the AspNetCoreRuntime.2.2.x64 dependency only because I apparently do not have the correct extension to support the AzureSiteExtension package type. I normally see this type of package referenced only in the Azure Portal.

Unassigning issue that's on the backlog…

Hi @dougbu ,
Great thanks for your help! It s finally working correctly :)
Here is the last push:
https://github.com/ranouf/TestMultipleUpload/commit/eab8ff287fff3bd464d9c02860dce83474c5a75c
I had to modify the api.services.extensions.ts part to separate array of file from array of object.
The issue was from client part, but It s an interesting case for people who want to upload files to a .net core app.
Thanks again!


Blending live camera video with a video file

Hi , thanks for this amazing lib
I'm trying to blend video from a file (mp4) with live camera video, and then record the results
i couldn't find any example of this approach in Demo code , is it possible to do this?

@devAlikhani Hi. I've added CameraVideoBlendVC.swift to demo project. It's a simple example to blend video with live camera. Maybe you need a custom video source to pause and resume the video output.

Thanks @Silence-GitHub for your attention and support , I’ve try to improve your example as well.


Rename the global variable "IsWindows"  to "IsWindowsImage".

Resolve #731

@Tong-Xu @LiliDeng Please help me understand why you worked on cosmetic stuff even there are multiple P0 and P1 issues open. Why is it necessary to rename the variable?

@juhlee-microsoft Tong can help on easy task currently for the first question, #731 mentioned that $IsWindows is reserved name in PowerShell 6 version. Thanks!

@juhlee-microsoft Tong can help on easy task currently for the first question, #731 mentioned that $IsWindows is reserved name in PowerShell 6 version. Thanks!

Thanks, does it need to test before merging?

We will run a test to make sure though it is a simple.

@lizzha Please help merge this PR, testing pass. Final result failed for the same issue which #739 fixed, I will create a new PR for such issue.
02/19/2019 06:24:13 : [INFO ] 	Connections=1 : throughput=3.98Gbps cyclePerBytet=2.08 Avg_TCP_lat=1742.749
02/19/2019 06:24:13 : [INFO ] Uploading the test results..
02/19/2019 06:24:13 : [INFO ] Database details are not provided. Results will not be uploaded to database!
02/19/2019 06:24:13 : [INFO ] Test result : PASS


Doesn't this plugin support iOS??

I can't communicate with elasticsearch only on ios device without any error.... Doesn't this plugin support iOS??

@leegiseong20030603: The library was developed for server-side uses, but there is nothing in practice that prevents it to work on Flutter / iOS. However, iOS may require permissions similar to Android: https://flutter.dev/docs/development/data-and-backend/networking#android

@leegiseong20030603: The library was developed for server-side uses, but there is nothing in practice that prevents it to work on Flutter / iOS. However, iOS may require permissions similar to Android: https://flutter.dev/docs/development/data-and-backend/networking#android


Execute python with userbutton

Hello,
i'm trying to implement some userbuttons to control a BrightPi Module.
BrightPi is controlled via I2C and my scripts talk via python.
To have everything i need in one script i wrote a "led_button.py" and to make it work with userbuttons i wrote some one-line shell scripts like this:
#!/bin/bash
python3 /var/www/macros/led_button.py --white

permissions of both files are:
-rwxrwxr-x 1 www-data www-data led_button.py
-rwxrwxr-x 1 www-data www-data led-taglicht.sh

My userbuttons looks like that:
Tag-Light,led-taglicht.sh,btn btn-info btn-lg,style="width:10%"

When i execute led-taglicht.sh from shell everythin works fine.
When i execute it from userbuttons nothing happens. scheduleLog has the exec-line:
{2020/10/12 18:49:39} Executing macro /var/www/macros/led-taglicht.sh &

But nothing is happening.
Even using the full pyhton3-path /usr/bin/python3 was not working.
Any ideas what the problem may be?

Nearly had same problems. Try to execute the stop.sh script in a shell and afterwards start it again with the start.sh script. Keep an eye on the shell and push your buttons, maybe you get some useful error messages there as I did.

Maybe the www-data user needs i2c rights:
sudo apt install i2c-tools
sudo adduser www-data i2c
sudo reboot

Haha!!!
That helped!!!
I had to add the user www-data to the i2c-group.
How can i see on shell what is going on if i push a button in RPi-Cam?


Add docs for codespaces.openFiles

Document customizations.codespaces.openFiles.
cc @craiglpeters

@joshaber Could you help make the same change to https://github.com/devcontainers/spec/blob/main/docs/specs/supporting-tools.md ? Else, next time this change might get overridden.

@joshaber Could you help make the same change to https://github.com/devcontainers/spec/blob/main/docs/specs/supporting-tools.md ? Else, next time this change might get overridden.

Ah, yup! Updated in https://github.com/devcontainers/spec/pull/172.


Add a contribution

Add my contribution to 2D Black Hole Visualization challenge

Community Contribution
Link to live project, video, or image:
https://editor.p5js.org/mberger75/sketches/f_8oKzndG
Sharing

[x] I would be happy to have my project shared on The Coding Train's social media!

Instagram:
Twitter:

Thanks for sharing!


Update Avro-C dependency to 1.8.0

It includes some useful bugfixes, including handling of namespaces:
https://issues.apache.org/jira/browse/AVRO-1663

Looks great, thanks!
Any of the bugfixes significant enough that we should change the README to recommend this version of avro-c?  I don't suppose there are distro packages available yet?

I think right now it isn't too critical. I still want to get proper support for default values into Avro-C (which would allow us to fix #1); I'd say that when that is done, we can recommend using that version of Avro. Need to find the time to make that patch to Avro though.


Caliptra ROM and RTFW shall reject all Mailbox transactions from PAUSER 0xFFFFFFFF

Caliptra Runtime Firmware directly maps DPE Clients to their associated PAUSER value, which DPE interprets as their LOCALITY.
Caliptra assigns LOCALITY 0xFFFF_FFFF for itself, and use it to attest to its own measurements (e.g. RTFJ).
For this reason, It should be required for both Caliptra ROM and Runtime Firmware to reject all mailbox transactions coming from PAUSER 0xFFFF_FFFF.

A  stash measurement, or a generic DPE command coming from that PAUSER would be otherwise attested as Caliptra measured.

sounds ok to me


Reread Issues

Two know issues with rereads:

Re-reads are unable to handle multiple formats (ex read a hardcover in 2012, did an audio re-read in 2015). This also leads to problems with counting pages vs. counting duration.
The Yearly Report will mark any book whose read date doesn't match the report year as a reread. This means rereads whose read dates have been updated will show as a reread during the original year.

Both of these are limitations to how good reads handles rereads, and there isn't a great way around it. Issue 2 can be prevented simply by ensuring your read date matches the original read and isn't a reread date. This may be problematic to counting books for Goodread challenges though.
Issue two could be handled by shelving a book multiple times (once per format). This has its own drawbacks for tracking books on Goodreads. It would make the reporting of the application work better, but personally I oppose the idea of shelving the same book more than once, even if if they are different formats.

Goodreads added support for multiple read dates, so depending on how this looks in the CSV files, this could be fixed once the parsing code is updated.


torchvision.ImageFolder type hint need update to include Path type

The type hint of root in ImageFolder in torchvion is str, but it also support pathlib.Path type, this will result in pyright warning, so seems we should update the type hint to root: str | Path?
 def __init__(
            self,
            root: str,
            transform: Optional[Callable] = None,
            target_transform: Optional[Callable] = None,
            loader: Callable[[str], Any] = default_loader,
            is_valid_file: Optional[Callable[[str], bool]] = None,
    ):

cc @pmeier

Hi @wztdream , thanks for the report, would you like to submit a PR to fix this?

If I will make the above-proposed changes (root: Union[str, Path]) in ImageFolder, then mypy generates the following error
torchvision/datasets/folder.py:311: error: Argument 1 to "__init__" of
"DatasetFolder" has incompatible type "Union[str, Path]"; expected "str"
[arg-type]
            super(ImageFolder, self).__init__(root, loader, IMG_EXTENSIONS...
                                              ^
Found 1 error in 1 file (checked 109 source files)

Now, if to tackle this, I change the type on DatasetFolder, then it will lead to the same error on its parent class. Similarly, this error will continue for all depending classes as now all are having root: str type.
@NicolasHug, please take a look into this. Either we change all root: str -> root: Union[str, Path] or is there any other way to handle this issue?

@vivekkumar7089 See https://github.com/pytorch/vision/pull/4122#pullrequestreview-692914671.


new trenitalia sensor

Description:
Viaggiatreno sensor is used to check train delay on Italian public railroads. It uses no external dependencies, all requests are made with urllib.request
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#1317
Example entry for configuration.yaml (if applicable):
sensor:
   - platform: viaggiatreno
     station_name: ROMA TERMINI
     train_no: 34028

Checklist:
If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

If the code does not interact with devices:

[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

I'll fix these as soon as I have some time...

Now should be ok


Add bility to DROP/ALTER TABLE and add comments/tags

Add ability to DROP/ALTER TABLE and add comments/tags
Feature request from Marion Beaufrere

That's supported already, there's a configuration flag to "allow DML" at the database level

awesome!


python3 distutils patch maintenance

Motivation for this change
Fix https://github.com/NixOS/nixpkgs/pull/39576#issuecomment-402054301
cc @vcunat
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Success on aarch64-linux (full log)
Attempted: python36, python37
Partial log (click to expand)
copying path '/nix/store/rwn23z99vnbcq1px1vk8pmabawff7i0z-sqlite-3.24.0' from 'https://cache.nixos.org'...
copying path '/nix/store/lqnf05qdjshwijs9dr3klzk31y4qkj2g-coreutils-8.29' from 'https://cache.nixos.org'...
copying path '/nix/store/5lngsma59wrh8bk0yc469shar788ii5i-readline-6.3p08' from 'https://cache.nixos.org'...
copying path '/nix/store/pngyllkbhkjvbkmwg1k6nhf1mx9775w6-perl-5.24.4' from 'https://cache.nixos.org'...
copying path '/nix/store/dn3lkiwcd63r26cq9k5v3vpimn5dw8sl-python3-3.6.6' from 'https://cache.nixos.org'...
copying path '/nix/store/a0w685vyychvsi91x4mh4f592hyazfyg-openssl-1.0.2o-bin' from 'https://cache.nixos.org'...
copying path '/nix/store/rna5x7mlm79vvzaga2k4nbcx4yvjr49y-openssl-1.0.2o-dev' from 'https://cache.nixos.org'...
copying path '/nix/store/qyzfpwskrzhi10xf0mk2mz49v3jz6yj8-python3-3.7.0' from 'https://cache.nixos.org'...
/nix/store/dn3lkiwcd63r26cq9k5v3vpimn5dw8sl-python3-3.6.6
/nix/store/qyzfpwskrzhi10xf0mk2mz49v3jz6yj8-python3-3.7.0

Success on x86_64-linux (full log)
Attempted: python36, python37
Partial log (click to expand)
these paths will be fetched (9.89 MiB download, 56.74 MiB unpacked):
  /nix/store/pdskgi8f0w2c4b0hl11d23qqzlnira16-python3-3.7.0
copying path '/nix/store/pdskgi8f0w2c4b0hl11d23qqzlnira16-python3-3.7.0' from 'https://cache.nixos.org'...
/nix/store/ihxxqhpdx3v06la2h02mgqkfvfhhymv3-python3-3.6.6
/nix/store/pdskgi8f0w2c4b0hl11d23qqzlnira16-python3-3.7.0

Failure on x86_64-darwin (full log)
Attempted: python36, python37
Partial log (click to expand)
    if (openpty(&master_fd, &slave_fd, NULL, NULL, NULL) != 0)
        ^
./Modules/posixmodule.c:6018:11: error: implicit declaration of function 'forkpty' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    pid = forkpty(&master_fd, NULL, NULL, NULL);
          ^
./Modules/posixmodule.c:6018:11: warning: this function declaration is not a prototype [-Wstrict-prototypes]
2 warnings and 2 errors generated.
make: *** [Makefile:1793: Modules/posixmodule.o] Error 1
builder for '/nix/store/1mpwdflyqkmkjxknpkzfp53q2hkz4hd2-python3-3.7.0.drv' failed with exit code 2
error: build of '/nix/store/1mpwdflyqkmkjxknpkzfp53q2hkz4hd2-python3-3.7.0.drv' failed

The build failure in python37 is not related to this PR.

@GrahamcOfBorg build python36

Success on x86_64-linux (full log)
Attempted: python36
Partial log (click to expand)
/nix/store/ihxxqhpdx3v06la2h02mgqkfvfhhymv3-python3-3.6.6

(from the report I wasn't sure of 3.6 status on darwin)

Success on aarch64-linux (full log)
Attempted: python36
Partial log (click to expand)
/nix/store/dn3lkiwcd63r26cq9k5v3vpimn5dw8sl-python3-3.6.6

Success on x86_64-darwin (full log)
Attempted: python36
Partial log (click to expand)
/nix/store/9lfxy10hwpnip3xs6vx8xnjhwryx1mr8-python3-3.6.6

Oh, I see it was a trivial merge conflict, in a way.


No option for triggering manual sync of public keys

Describe the bug
There is no way for Android Verifier App to trigger the manual synchronisation of public key as it is in the iOS Verifier App.

Expected behaviour

The same behaviour should be implemented for both Verifier App versions -- iOS and Android.
Steps to reproduce the issue

Technical details
Galaxy XCover 4, Modellnummer: SM-G390F,
Android-Version: 9, Verifier App 1.0.0
Possible Fix

Additional context

Closed with PR: https://github.com/eu-digital-green-certificates/dgca-verifier-app-android/pull/43

@ltranvan sorry, was not aware of the flow. Will reopen it. I just implemented related changes. Should I move the issue specific state after implementation?

Due the issue is shifted to Sprint Backlog by Jörg i have moved it to the Open column in the EU DGC Bugtracking too.

PR: https://github.com/eu-digital-green-certificates/dgca-verifier-app-android/pull/60


Enable cadl-ranch union test cases

Description
Due to a few issues, we've disabled union test cases from cadl-ranch temporarily. Need to restore it by fixing a few issues.

[ ] Fix incomplete anonymous model replacement: #3953
[ ] Fix incorrect naming of anonymous request body type

depend on #3994


cmd/bosun: clear filters when changing metrics in graph view

Fixes #1679, Creates #??

Need to test this more before merging. This code is really messy at this point. There is probably repeated operations on tags and filters that don't need to be there. Once OpenTSDB is at v2.3 we can remove support for v2.1 and at that time I think it will be easier to redo this code.

There is still an edge case here where if you switch metrics, the two metrics share a tag key, but the value set for that tag is not present in the new metric it will still be there.
However, in that case this isn't hidden and you can just change the value, so I don't care to fix this at this point.


Prepare a test dataset

Description of feature

Raw metagenomic FASTQ data from both Illumina and Nanopore platforms.
Databases include Kraken2, Centrifuge, and Diamond.
Utilize the output of nf-core/taxprofiler to prepare the test data for meta-val.

There are two versions of raw fastq test data, need to test which version contains viruses and other species.
Version1:

Illumina data: SRR14000771, SRR5597270 downloaded from https://www.nature.com/articles/s41467-022-28581-5
Nanopore data: ERR5396170 downloaded from https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-022-05103-0

Version2:
Both illumina and nanopore data downloaded from https://www.nature.com/articles/s41598-021-83812-x


Feature: Add support for duel scroll wheel mouses

What feature or improvement do you think would benefit Files?
Propper Support for mice with independent horizontal and vertical scroll such as the MX Master series
Requirements
Currently, when in coulomb view, when cursor is in a folder that can scroll vertically, horizontal scroll is overridden by vertical scroll with both mouse wheels on MX master, even when set in logi options+. This would add an option to enable support for multiple scroll wheels so wherever you or the mouse is it can scroll in either direction is view allows it.
Files Version
<IP_ADDRESS>
Windows Version
10.0.22631.3737
Comments
No response

Thanks for the feedback, I've added this to the project board.

Scrolling is typically handled by the app framework, are there any similar requests on the WinUI repo? https://github.com/microsoft/microsoft-ui-xaml/issues

I couldn't find one but we probably could get the first one's offset and set it to the second one.


Feature: asyncpg Queue backend

It's nice to see a Postgres backend added.  I'm just starting to experiment with it, and so far, it's great.
I'm curious do you have plans to offer an an asyncpg based Queue in addition the current psycopg implementation?  If not, would you be willing to accept a PR adding support?

hey @cofin, probably not unless the PR is extremely minimal. i don't think there would be much benefit to it. going to close this issue for now but happy to discuss

@tobymao maybe I could ask for your opinion then.
The LGPL license that psycopg has is problematic for my use case (and many other organization have a similar stance). What was the reason for using psycopg over asyncpg?  Are there additional features (other than sync support) that psycopg offers?
Just to further clarify my use case.  All of the databases I would connect to are Google CloudSQL or AlloyDB instances.  There's a convenient asyncpg integration for the auth proxy, but there is no such library for psycopg.

@cofin i change my mind. due to it being lgpl, i'll accept a PR that replaces psycopg with it. will you make a PR? i'm  currently quite constrained so may not be able to do it

@tobymao, Thanks for reconsidering. I don't mind creating the PR, and I've actually made a bit of progress on it already.  Did you want me to remove the psycopg implementation or allow for either to be used?

probably remove it. is it a pretty easy switch?

probably remove it. is it a pretty easy switch?

Yes, for the most part.
The main changes are around prepared statements and the way the listen/notify mechanism works.  I'll submit the PR with them both added, you can weigh in once more.  At that point, I can remove the psyocpg adapter before we merge.


Combobox don't work as needed

"Setting IsSelected on ComboBoxItem from XAML doesn't select the element"
"ComboBox without selected item has small height"

                     <StackPanel>
                        <ComboBox>
                            <ComboBoxItem IsSelected="True" Content="Editable #1" />
                            <ComboBoxItem Content="Editable #2" />
                        </ComboBox>
                        <Button Content="Test button" />
                        <ComboBox>
                            <ComboBoxItem IsSelected="True" Content="Editable #1" />
                            <ComboBoxItem Content="Editable #2" />
                        </ComboBox>
                    </StackPanel>
                    <ComboBox IsEnabled="False">
                        <ComboBoxItem IsSelected="True" Content="Disabled #1" />
                    </ComboBox>
                    <ComboBox IsEnabled="False">
                        <ComboBoxItem IsSelected="True" Content="Disabled #1" />
                    </ComboBox>
                    <TextBox Text="Plain TextBox" />

I have also seen this issue in my app.

I'm currently rewriting our selection logic, I will fix this in the process.

Also: point 2 should have been fixed by https://github.com/AvaloniaUI/Avalonia/pull/3528

Should be fixed now.


Responsive mobile/web container padding inconsistent

The mobile view applies additional padding to the container so any padding applied to content is inconsistent between mobile & web views... is this intended?
If we have any backgrounds on the container and borders/padding within the columns it means we need additional styles to compensate for the padding in the mobile view.
If we remove the padding then content is flush against the edge of the container (consistent with the web view) but this also makes it flush against the mobile screen so just replacing the padding with a margin seems to be a better option...
@media (max-width: 768px) {
  .container {
    width: auto;
    padding: 0 0px;
    margin:0 10px;
  }
}

Moved the padding to the body instead in 2.0.2-wip.


How I can create a new hypothesis?

I have started a new instance of DISK and I would like to create a hypothesis related to the bicycle rent example.
However, I cannot add a new hypothesis question.
Is the selector using a hardcoded list or fetch from the MediaWiki?

@hvarg https://media3.giphy.com/media/phJ6eMRFYI6CQ/giphy.gif?cid=36b14fac9f55k0td3lw1hk0229td6qh4lukgc4qtc0dv0zni&rid=giphy.gif&ct=g

Questions are read directly from the ontology. You are still able to create an hypothesis, just ignore the question form and write down the triples directly.
If you want to create a question, you must follow the scientific question ontology and upload the owl file to some public place.
I'll work on adding the question source to the configuration file.

You can add your own questions on the configuration file now:
https://github.com/KnowledgeCaptureAndDiscovery/DISK-WEB/commit/ace562846f2ce6fd732107081ffd25db2f721292


observation_space problem

foo Gym is my customized Gym environment
There is a problem when setting the observation_space
There is an error in my program
ValueError: Cannot feed value of shape (1,) for Tensor 'deepq/input/Ob:0', which has shape '(?, 5)'
I think my observation_space set format is the same as CartPole-v1
==================================
and there are CartPole-v1 environmental's observation_space
    # Angle at which to fail the episode
    self.theta_threshold_radians = 12 * 2 * math.pi / 360
    self.x_threshold = 2.4

    # Angle limit set to 2 * theta_threshold_radians so failing observation
    # is still within bounds.
    high = np.array([self.x_threshold * 2,
                     np.finfo(np.float32).max,
                     self.theta_threshold_radians * 2,
                     np.finfo(np.float32).max],
                    dtype=np.float32)

    self.action_space = spaces.Discrete(2)
    self.observation_space = spaces.Box(-high, high, dtype=np.float32)

==================================
and there are environmental programs's observation_space
    self.action_space = spaces.Discrete(10)
    low =  np.array([0,-90,-180,  0, 0])
    high = np.array([300,90,180,  5, 5])

    self.observation_space = spaces.Box(low=np.array(low), high=np.array(high), dtype=np.float32)

==================================
and there are main programs (stable_baselines dqn example,Only change foo Gym )
   import gym
   import gym_foo
   from stable_baselines.common.vec_env import DummyVecEnv
   from stable_baselines.deepq.policies import MlpPolicy
   from stable_baselines import DQN, PPO2, A2C, ACKTR

   env = gym.make('foo-v0')
   print("Observation space:", env.observation_space)
   print("Shape:", env.observation_space.shape)

   model = DQN(MlpPolicy, env, verbose=1)
   model.learn(total_timesteps=250)
   model.save("deepq_cartpole")

   del model # remove to demonstrate saving and loading
   model = DQN.load("deepq_cartpole")
   obs = env.reset()
   while True:
       action, _states = model.predict(obs)
       obs, rewards, dones, info = env.step(action)
       env.render()

Check docs on custom environments, especially the use of check_env utility to make sure that your environment works as expected.

The following program does not run
from stable_baselines.common.env_checker import check_env
env = FooEnv()
It will check your custom environment and output additional warnings if needed
check_env(env)
Is the stable baselines's environment and gym's environment not common?

No, stable-baselines uses the same API as presented in OpenAI Gym. check_env attempts to check that the environment follows the API. If you are getting an error with that code, it likely means there is something off in your environment (check the error message).

I think the following output is the success of the gym environment, so isn’t it?
output:
Observation space: Box(5,)
Shape: (5,)
Action space: Discrete(10)
Sampled action: 4
(5,) 10 False {}
==========================
import gym
import gym_foo
from gym import spaces

from stable_baselines.common.vec_env import DummyVecEnv
from stable_baselines.deepq.policies import MlpPolicy
from stable_baselines import DQN

env = gym.make('gym_foo:foo-v0')

print("Observation space:", env.observation_space)
print("Shape:", env.observation_space.shape)
print("Action space:", env.action_space)
obs = env.reset()
action = env.action_space.sample()
print("Sampled action:", action)
obs, reward, done, info = env.step(action)
print(obs.shape, reward, done, info)


Can't reference style.css when using cssCodeSplit: false

[x ] I have tried upgrading by running bundle update vite_ruby.
[ x] I have read the troubleshooting section before opening an issue.

Description 📖
When set cssCodeSplit: false,  has error:
Vite Ruby can't find entrypoints/style.css in public/esm-bundle/manifest.json or public/esm-bundle/manifest-assets.json.

This appears to be caused by https://github.com/ElMassimo/vite_ruby/blob/aba897ecc6d8ffb19f0e413d40c913ee897d90f1/vite_ruby/lib/vite_ruby/manifest.rb#L161
Reproduction 🐞
set vite.config.js cssCodeSplit: false, and add <%= vite_stylesheet_tag 'style.css' unless ViteRuby.instance.dev_server_running? %> to rails layout

Vite Ruby Info
Run bin/rake vite:info and provide the output:
bin/vite present?: true
vite_ruby: 3.0.2
vite_rails: 3.0.1
rails: 7.0.0.alpha2
node: v16.13.1
npm: 8.1.2
yarn: 3.1.1
pnpm: Usage Error: This project is configured to use yarn

$ pnpm ...
ruby: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-darwin20]

installed packages:
<EMAIL_ADDRESS>/Users/ding/Projects/brickdoc
├─┬<EMAIL_ADDRESS>-> ./packages/brickdoc-headless-design-system
│ ├─┬<EMAIL_ADDRESS>invalid: "^3.5.10" from packages/brickdoc-headless-design-system, "^3.5.10" from packages/brickdoc-design-system
│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ ├─┬<EMAIL_ADDRESS>│ │ └──<EMAIL_ADDRESS>deduped
│ └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>-> ./packages/brickdoc-design-system
│ └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>-> ./packages/brickdoc-editor
│ └─┬<EMAIL_ADDRESS>invalid: "workspace:packages/brickdoc-design-system" from packages/brickdoc-editor -> ./packages/brickdoc-design-system
│   └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>deduped
├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>deduped
└──<EMAIL_ADDRESS>

Logs 📜
If not providing a reproduction:

Output
Run DEBUG=vite-plugin-ruby:* bin/vite dev or DEBUG=vite-plugin-ruby:* bin/vite build and provide the output:

Screenshots 📷
Provide console or browser screenshots of the problem.

@0xDing Because most of the time tag helpers are used to reference entrypoints, they are prefixed by default.
You can disambiguate the reference by using ~/ to refer to the sourceCodeDir:
<%= vite_stylesheet_tag '~/style.css' %>

Added to the Troubleshooting guide so that it's easier to find in the future.


Move setup information to setup.cfg

Use a declarative syntax to avoid mixing code and configuration.
Simplifies handling of long description file by reducing some
boilerplate.
For details on this setuptools feature, see:
https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files
Django also uses supet.cfg, see commit:
https://github.com/django/django/commit/85efc14a2edac532df1a9ad4dd9b6d4a4dcf583e

Thanks! That's awesome.


Added a new page for site

Hope you like it!

(I want the alias ....... at the bottom of the page)


Test issue @grassycheetah

This is a test issue. I'm not sure that you have any problems.

Test successful!


Implemented verbosity levels

#81 Implementation
There are three verbosity levels now:

silent - only basic information is shown (e.g. python version, build
duration, logs path)
normal in addition to the silent level CMake output is also sown
full - verbose output from Makefile builds is also shown

The levels above are controlled with the --verbosity-level flag,
the --verbose flag is mutually exclusive with it and sets the
verbosity level to full

@ruslo Fixed the normal level level

Fixed the normal level

looks good, let's wait for testing finish just to be sure


LFS-469: Upgrade versions of sling, jackrabbit, oak and dependencies

Notes for @sdumitriu:

jackrabbit: used 2.18.5 (latest stable version is 2.20.x (http://jackrabbit.apache.org/jcr/downloads.html) but it was not found in all our configured repositories)
oak: used 1.20.0 (latest stable 1.30.0 (http://jackrabbit.apache.org/jcr/downloads.html), versions 1.22.x and later give some API compatibility problems)

Jackrabbit/Oak dependencies that had to be updated:

tika: used latest vesion: 1.24.1 (https://tika.apache.org/)
commons-codec: used latest version: 1.14 (http://commons.apache.org/proper/commons-codec/)

Sling, OSGI and other packages:

sling-api: used latest stable version 2.22.0 (https://sling.apache.org/downloads.cgi)
osgi: (osgi.core: v7.0.0), (osgi.service.*: v1.4.0) - development seems to have stopped in ~2018 @ these versions (see https://mvnrepository.com/artifact/org.osgi/osgi.core, https://www.osgi.org/developer/downloads/)

@allasm  Do you have any recommendations as how to approach testing this PR?

This PR is now deprecated, closing.


Backslashes in get parameter

TYPO3 uses unescaped backslashes in the template viewer in the backend.
Pow convert the backslashes to forward slashes. This breaks the template modul.

The backslash is not part of the spec. See RFC3986 &sec;2:

Characters that are allowed in a URI but do not have a reserved purpose are called unreserved.  These include uppercase and lowercase letters, decimal digits, hyphen, period, underscore, and tilde.


Web UI doesn't respect x-script-name header, can't login

My Environment

ArangoDB Version:        3.9
Deployment Mode:      Single Server
Deployment Strategy:   Manual Start in Docker
Configuration:               default
Infrastructure:               own
Operating System:        Docker on Ubuntu 20.04
Total RAM in your machine:        8
Disks in use:                  SSD
Used Package:              Docker - official Docker library

Component, Query & Data
Affected feature:
Web UI
Steps to reproduce

Put arangodb behind reverse proxy, nginx in this case
Use a redirect

location /admin/arangodb/ {
    proxy_pass http://localhost:7019/; # I use
    proxy_redirect ~^/(.*) http://$http_host/admin/arangodb/$1;
    proxy_set_header X-Script-Name /admin/arangodb;
}

add this to arangod.conf

[frontend]
proxy-request-check = false

attempt login via web UI

Problem:
Login request is sent to a path without /admin/arangodb in it
I tried to search x-script-name in the repo and the only hit is this which afaik only outputs config on .../_db/_system/_admin/aardvark/config.js route -> which actually outputs correct "basePath":"/admin/arangodb",
Is it possible that the feature got erased since it was introduced?
Expected result:
Requests are directed to correct path
Possible solution:
Many apps and frameworks have a BASE_PATH env var. This could be really useful for arangodb as well

I was unable to get that to work. Even if basePath is correctly set up (as shown by querying .../_db/_system/_admin/aardvark/config.js), login page doesn't direct auth requests to correct path

We have the same problem, any idea where/how to fix this?


🎬 Detail actions

Actions: Detail page
Adds custom action buttons to detail page.

Adds BaseView properties:

exclude_actions_from_detail = [] exclude an action from that view's detail page
exclude_actions_from_list = [] exclude an action from that view's list page

Examples
Currently working from our app's feature branch: https://github.com/WGBH-MLA/chowda/pull/158
List page

Optional icons

Detail page

☝ Here, "Combine" is excluded from this detail view.
actions.py
Added:

action_btn_class: action button class (default: btn-outline)
icon_class: icon class for icon next to button (default: fa-solid fa-plus)

Templates

Refactors out action.html from list page

Reused in both list and detail for consistent style

JS

Adds actions.js with custom js to apply to #modal-action

Copied from list.js, with minor changes

Refactors out alerts.js from list.js

Closes #301

The python3.8 tests all passed, but it failed with Segmentation fault (core dumped).
It might be a transient runner error. Try re-running the job.


Step 1 error "Could not determine java version from '11.0.2" when using ./gradlew

I got an error when looking into pact.  [BTW:why is gradle looking for version 4.6 when 6.5.1 is available?  Haven't folks updated to the newer Gradle verions?]
Here is a transcript of what I did:
% ./gradlew :providers:dropwizard-provider:run
Downloading https://services.gradle.org/distributions/gradle-4.6-all.zip
......
Unzipping /Users/sasconsul/.gradle/wrapper/dists/gradle-4.6-all/bcst21l2brirad8k2ben1letg/gradle-4.6-all.zip to /Users/sasconsul/.gradle/wrapper/dists/gradle-4.6-all/bcst21l2brirad8k2ben1letg
Set executable permissions for: /Users/sasconsul/.gradle/wrapper/dists/gradle-4.6-all/bcst21l2brirad8k2ben1letg/gradle-4.6/bin/gradle
FAILURE: Build failed with an exception.

What went wrong:
Could not determine java version from '11.0.2'.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org
sasconsul@Stuarts-MBP pact-workshop-jvm % java --version
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Got the step working when I used :
gradle :providers:dropwizard-provider:run
But, there are many errors in the log before the application starts.

Lots of exceptions on Java 11, but no exceptions on Java 8

I've upgraded Gradle to 6.6.1, which works with Java 11


How does Este handle data fetching dependencies on route handler components?

I'm new to this starterkit and I'm super impressed and excited by the way it's structured to accommodate multiple platforms in the react ecosystem and the common code shared between them. Even though there's not much documentation in the codebase just reading through the code is documentation in and of itself which is a sign it's super well written so thanks and kudos to everyone! I do have a question pertaining to how the starterkit expresses data fetching dependencies associated with specific routes.
In the React Redux Universal Hot Example Starterkit (https://github.com/erikras/react-redux-universal-hot-example) route handler components contain a static fetchData() method for fetching data on the server-side. This is also the Redux's prescribed way of handling data fetching (see here: https://github.com/rackt/redux/blob/master/docs/recipes/ServerRendering.md#next-steps)
How does Este handle data fetching dependencies? It's not immediately clear to me while running through the code.
Thanks everyone!

Este uses higher order components for data fetching, universally demonstrated here https://github.com/este/este/blob/master/src/browser/todos/Page.react.js#L35 and here https://github.com/este/este/blob/master/src/native/todos/Page.react.js#L32.


Updated hyperlink to fivetran_log__credit_mar_destination_history model

The current hyperlink redirects to an empty document for fivetran_log__credit_mar_destination_history model
Pull Request
Are you a current Fivetran customer?
Fivetran employee
What change(s) does this PR introduce?

Did you update the CHANGELOG?

[ ] Yes

Does this PR introduce a breaking change?

[ ] Yes (please provide breaking change details below.)
[ ] No  (please provide an explanation as to how the change is non-breaking below.)

Did you update the dbt_project.yml files with the version upgrade (please leverage standard semantic versioning)? (In both your main project and integration_tests)

[ ] Yes

Is this PR in response to a previously created Bug or Feature Request

[ ] Yes, Issue/Feature [link bug/feature number here]
[ ] No

How did you test the PR changes?

[ ] CircleCi
[ ] Local (please provide additional testing details below)

Select which warehouse(s) were used to test the PR

[ ] BigQuery
[ ] Redshift
[ ] Snowflake
[ ] Postgres
[ ] Databricks
[ ] Other (provide details below)

Provide an emoji that best describes your current mood

:dancer:
Feedback
We are so excited you decided to contribute to the Fivetran community dbt package! We continue to work to improve the packages and would greatly appreciate your feedback on our existing dbt packages or what you'd like to see next.

I noticed the buildkite job has failed and changes are not reflected in the documentation. Do you have permission to re-launch the job? @fivetran-joemarkiewicz

I do! BuildKite is not yet rolled out into the main branch (which is why it failed). the contents of PR #64 will include the BuildKite migration. Until then the job will show as failed.
The documentation on the dbt hub will only show following the official release (which we are waiting to cut until we can merge PR #64). The docs on Fivetran and the GitHub repo should be up to date following your most recent PR merge.


Feature/greenkeeper lockfile

Fixes #182
Fixes #178

:rocket: deployment of profiles succeeded (http://profiles-pr-183.dev.beta.nhschoices.net)


Diff: Add options to ignore indent, comments, case

Continuing on #2804
Enjoy!

Really useful feature 👍 Thx

Would be useful on patch page too?

Ignore Indentation suggest that it does ignores only leading white-space. Indeed, it seams it ignores white space changes at all. This diff is no diff for Ignore Indentation.

Might align to git wording, e.g. space change

You're right about the indentation/whitespace changes. We are reusing the standard SAP diff, which describes it incorrectly:

I was just using the same terminology 😀 .
How about "Ignore Whitespace"?

Ignore Whitespace is definitely better than the indentation 😅


[helm chart] make image tag configurable

If image.tag is set in values.yaml then that tag is used, otherwise
falls back to Chart version
This makes easy to deploy images tagged with different names which
are not according to sem ver 2 i.e. 'latest' or other valid
container image tags

fixes #88

@ssudake21 @PrasadG193 should I address the changes suggested by rimusz in this PR (having appVersion in Chart.yaml) or should that be addressed in separate PR?

We can address those in the same PR


rules_jvm_external 6.6

Hello @shs96c, @cheister, modules you maintain (rules_jvm_external) have been updated in this PR. Please review the changes.

Please check the presubmit failures, the release archive seems to be messed up:
rules_jvm_external-6.6.bazelrc
rules_jvm_external-6.6.bazelversion
rules_jvm_external-6.6.gitattributes
rules_jvm_external-6.6.gitignore
rules_jvm_external-6.6AUTHORS
rules_jvm_external-6.6BUILD
rules_jvm_external-6.6CODEOWNERS
rules_jvm_external-6.6CONTRIBUTING.md
rules_jvm_external-6.6CONTRIBUTORS
rules_jvm_external-6.6LICENSE
rules_jvm_external-6.6MODULE.bazel
rules_jvm_external-6.6README.md
rules_jvm_external-6.6RELEASING.md
rules_jvm_external-6.6WORKSPACE
rules_jvm_external-6.6WORKSPACE.bzlmod
rules_jvm_external-6.6defs.bzl
rules_jvm_external-6.6docs/

Fixed the release archive. PTAL!


Add WebHook support to the OpenShiftService

For @rimolive to validate.
I'm pulling some code to this effect out of the work done in #40 to isolate that task to the GitHubService.  Can we outline the requirement here for why the OpenShiftService needs:
/**
 * Return the Github WebHook from an application.
 *
 * @param namespace
 * @param applicationName
 * @return
 */
String getGithubWebhook(String namespace, String applicationName);

The commit in which I removed this from #40 is here: 13bf9ba26b0dbd6f0d02d7015d4ed2c842d76d65

I think there is a confusion with the term "GitHub webhook". Let me explain better.
From GitHub developer:
"Webhooks allow you to build or set up integrations which subscribe to certain events on GitHub.com. When one of those events is triggered, we'll send a HTTP POST payload to the webhook's configured URL. Webhooks can be used to update an external issue tracker, trigger CI builds, update a backup mirror, or even deploy to your production server. "

So as you can seem what GitHub does is send a HTTP POST to a URL with the event information(which are also described what events can be triggered). However, this URL is not generated by GitHub but by the external tool that will be triggered (which in our case is OpenShift).
From OpenShift side, when you create the applications from the templates, they come with two kinds of Webhooks: the GitHub and the Generic webhooks. The only difference between them is GitHub webhook contains a secret to handle the payload. See https://docs.openshift.com/enterprise/3.1/dev_guide/builds.html#webhook-triggers
Based on that explanation, we need to get the Webhook URL information from the project(and this is another thing we need to handle since a single project can have one or more BuildConfig objects) and then use the GitHub API to add this Webhook to the repo.
Does that clarify the implementation I made for #40 ?

Yep, totally clear.  My point was more about separation of concerns.
GitHubService deals with any API calls we make to GitHub.
OpenShiftService deals with any API calls we make to OpenShift.
The Core API and Impl are where we might get information about the
appropriate URL to use from the OpenShiftService and then call the
GitHubService to make a webhook out of it.
So this issue, #40, was about making GitHub webhooks.  What the value
should be is a separate piece that should be handled by the core impl,
based on a call to the OpenShiftService to see what it should be.
Is that more clear or am I missing something?

Correct, that is the correct flow.

Upstream in 64f2176a544d887d5eaf73725145133bca2bc31f