JavaFX apps lose focus when inside element is being dragged by mouse.

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 4520b30d498daca8079365bdb909a8dea38e8d55  (version: bump to 0.44.1).
Date: Wed Oct 9 12:54:39 2024
Tag: v0.44.1, commits: 5309
built against aquamarine 0.4.2

flags: (if any)

System Information:
System name: Linux
Node name: mainPC
Release: 6.6.56-1-lts
Version: #1 SMP PREEMPT_DYNAMIC Thu, 10 Oct 2024 12:04:53 +0000

GPU information:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] [1002:73ff] (rev c7) (prog-if 00 [VGA controller])

os-release: NAME="EndeavourOS"
PRETTY_NAME="EndeavourOS"
ID="endeavouros"
ID_LIKE="arch"
BUILD_ID="2023.11.17"
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://endeavouros.com"
DOCUMENTATION_URL="https://discovery.endeavouros.com"
SUPPORT_URL="https://forum.endeavouros.com"
BUG_REPORT_URL="https://forum.endeavouros.com/c/general-system/endeavouros-installation"
PRIVACY_POLICY_URL="https://endeavouros.com/privacy-policy-2"
LOGO="endeavouros"

plugins:

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

Config File: /home/mobilex/.config/hypr/hyprland.conf: Read Succeeded
################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,1

# Custom monitor setup for my main computer
monitor= desc:Lenovo Group Limited T22i-20 V9077BKV, prefered, -1920x0, 1
monitor= desc:Lenovo Group Limited T22i-20 V90A9G1P, prefered, 0x0, 1

###################
### MY PROGRAMS ###
###################

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

# Set programs that you use
$terminal = kitty
$fileManager = thunar
#$menu = pgrep -x wofi > /dev/null || wofi -ani --show drun
$menu = anyrun

#################
### AUTOSTART ###
#################

# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:

# exec-once = $terminal
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once=ags
exec-once = nm-applet
#exec-once = waybar
exec-once = udiskie --tray
exec-once = keepassxc
exec-once = hyprpaper
exec-once = hypridle
#exec-once = dunst --startup_notification
#exec-once = ~/.config/hypr/scripts/xdg-hypr.sh
exec-once = ~/.config/hypr/scripts/autostart.sh
exec-once = clipse -listen
exec-once = quimup
exec-once = webcord
exec-once = solaar -w hide

#############################
### ENVIRONMENT VARIABLES ###
#############################

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24

#env = XDG_CURRENT_DESKTOP,hyperland

#env = AQ_DRM_DEVICES,/dev/dri/card2:/dev/dri/card1

#####################
### LOOK AND FEEL ###
#####################

# Refer to https://wiki.hyprland.org/Configuring/Variables/

# https://wiki.hyprland.org/Configuring/Variables/#general
general {
    gaps_in = 5
    gaps_out = 20

    border_size = 2

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    col.active_border = rgba(3DAEE9ff) rgba(f9207bff) 45deg
    col.inactive_border = rgba(595959aa) -360deg

    # Set to true enable resizing windows by clicking and dragging on borders and gaps
    resize_on_border = false

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = false

    layout = dwindle

    allow_tearing = false
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 5

    # Change transparency of focused and unfocused windows
    active_opacity = 1
    inactive_opacity = 1

    dim_special= 0.4

    drop_shadow = true
    shadow_range = 15
    shadow_render_power = 3
    col.shadow = rgba(00000055)

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
	# Eats pereformance on lowend devices
        enabled = false
        size = 2
        passes = 1
        vibrancy = 2
        popups = true
        special = true
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
    enabled = true

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

    bezier = easeOut, 0.11, 0.99, 0.46, 1
    bezier = easeInOut, 0.8, 0, 0.2, 1

    animation = windowsMove, 1, 4, easeOut
    animation = windowsIn, 1, 4, easeOut, popin 90%
    animation = windowsOut, 1, 4, easeOut, popin 90%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 4, easeOut, slidefade 10%
    animation = specialWorkspace, 1, 4, easeOut, slidefadevert 2%
}

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

# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
    new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
    disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}

#############
### INPUT ###
#############

# https://wiki.hyprland.org/Configuring/Variables/#input
input {
    kb_layout = cz
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    numlock_by_default = false # Badly broken

    repeat_delay = 250
    repeat_rate = 35

    follow_mouse = 1

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.

    touchpad {
        natural_scroll = true
		   disable_while_typing = true
		   scroll_factor = 0.6
        middle_button_emulation = true
    }
    special_fallthrough = true

    tablet {
        output = DP-2
	     region_size = 1920 1080
    }

}

# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
    workspace_swipe = false
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
    name = epic-mouse-v1
    sensitivity = -0.5
}

####################
### KEYBINDINGSS ###
####################

# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exec, nwg-bar
bind = $mainMod, A, exec, ags -r "sidebar()"
bind = , XF86PowerOff, exec, nwg-bar
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, togglefloating
bind = $mainMod, F11, fullscreen

bind = $mainMod, L, exec, loginctl lock-session

# 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

bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d

source = ~/.config/hypr/keymap/workspaces.conf

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, S
bind = $mainMod SHIFT, S, movetoworkspace, special:S

# Example special workspace (scratchpad)
bind = $mainMod, D, togglespecialworkspace, D
bind = $mainMod SHIFT, D, movetoworkspace, special:D

# 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

# Set/Mute Autio level
binde = , XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 & wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
binde = , XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 & wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-

bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle

# Requires playerctl
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playercl previous
bindl = , XF86AudioNext, exec, playerctl next

# Set Brightness (Small increments with Shift)
bindl = , XF86MonBrightnessUp, exec, brightnessctl set +5%
bindl = , XF86MonBrightnessDown, exec, brightnessctl set 5%-

binde = Shift , XF86MonBrightnessUp, exec, brightnessctl set +10
binde = Shift , XF86MonBrightnessDown, exec, brightnessctl set 10-

bindl = , Print, exec, hyprshot -z -m region
bindl = CTRL, Print, exec, hyprshot -z -m output
bindl = SHIFT, Print, exec, hyprshot -z -m window

bind = $mainMod, V, exec, kitty --class clipse -e clipse

bind = $mainMod SHIFT, P, exec, hyprpicker -a

##############################
### WINDOWS AND WORKSPACES ###
##############################

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

# Example windowrule v1
# windowrule = float, ^(kitty)$

# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$

windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

windowrulev2 = float, class:(wofi)
windowrulev2 = pin, class:(wofi)
windowrulev2 = stayfocused, class:(wofi)

windowrulev2 = move 0 0, class:(nwg-bar)

windowrulev2 = float, class:(clipse)
windowrulev2 = size 622 652, class:(clipse)

# Quimup Settings
windowrulev2 = float, class:(Quimup)
windowrulev2 = move 100%-w-25 60, title:(Quimup)
windowrulev2 = size 1230 750, title:(Quimup Media Browser)
windowrulev2 = move 100%-w-25 180, title:(Quimup Media Browser)
windowrulev2 = size 650 750, title:(Quimup Settings)
windowrulev2 = move 100%-w-25 180, title:(Quimup Settings)

windowrulev2 = dimaround, class:(org.kde.kdialog)

windowrulev2 = tile, class:(lite-xl)

windowrulev2 = workspace special:D, class:(WebCord)

windowrulev2 = float, class:(org.keepassxc.KeePassXC)
windowrulev2 = size 1500 900, class:(org.keepassxc.KeePassXC)
windowrulev2 = center 1, class:(org.keepassxc.KeePassXC)

windowrulev2 = float, class:(com.defold.editor.Start)
windowrulev2 = tile, class:(com.defold.editor.Start), title:^(.*Defold.*)$

# Does not work as expected
workspace = 9,monitor:desc:Lenovo Group Limited T22i-20 V9077BKV,default:true

workspace = special:S, gapsout:40
workspace = special:D, gapsout:40

layerrule = noanim, notifications
layerrule = dimaround, overlay

exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

Config File: /home/mobilex/.config/hypr/keymap/workspaces.conf: Read Succeeded

###############################
### ENGLISH WORKSPACE BINDS ###
###############################

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

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

###############################
###  CZECH WORKSPACE BINDS  ###
###############################

# Hardcoded fix for czech keyboard

# Switch workspaces with mainMod + [0-9]
bind = $mainMod, plus, workspace, 1
bind = $mainMod, ecaron, workspace, 2
bind = $mainMod, scaron, workspace, 3
bind = $mainMod, ccaron, workspace, 4
bind = $mainMod, rcaron, workspace, 5
bind = $mainMod, zcaron, workspace, 6
bind = $mainMod, yacute, workspace, 7
bind = $mainMod, aacute, workspace, 8
bind = $mainMod, iacute, workspace, 9
bind = $mainMod, eacute, workspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, plus, movetoworkspace, 1
bind = $mainMod SHIFT, ecaron, movetoworkspace, 2
bind = $mainMod SHIFT, scaron, movetoworkspace, 3
bind = $mainMod SHIFT, ccaron, movetoworkspace, 4
bind = $mainMod SHIFT, rcaron, movetoworkspace, 5
bind = $mainMod SHIFT, zcaron, movetoworkspace, 6
bind = $mainMod SHIFT, yacute, movetoworkspace, 7
bind = $mainMod SHIFT, aacute, movetoworkspace, 8
bind = $mainMod SHIFT, iacute, movetoworkspace, 9
bind = $mainMod SHIFT, eacute, movetoworkspace, 10

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

Description
I noticed that when you have JavaFX app with a drag element (drag and drop) and you drag the element it unfocuses the window and cancels the drag. This seams to be bug from the Hyprland side as no other DE I tried had this issue.
How to reproduce

Install (almost) any JavaFX app (tried Defold and scene builder)
Try to drag some elements in the app.
See the element immediately return back to the original position.

Crash reports, logs, images, videos
Example of dragging in Defold:
https://github.com/user-attachments/assets/00e1a95a-8ce3-4743-8650-b14d95caab3d

Update:
JavaFX creates additional window for the dragged element witch unconveniently is called java. So hyprland auto focuses on the java window witch deselects the main window.
 Output of `hyprctl clients`* when dragging occurred
Window 5a8723a022e0 -> mario - Defold 1.9.4: ## JavaFX Main App
	mapped: 1
	hidden: 0
	at: 22,57
	size: 1876,1001
	workspace: 2 (2)
	floating: 0
	pseudo: 0
	monitor: 0
	class: com.defold.editor.Start
	title: mario - Defold 1.9.4
	initialClass: com.defold.editor.Start
	initialTitle: Defold 1.9.4
	pid: 56093
	xwayland: 1
	pinned: 0
	fullscreen: 0
	fullscreenClient: 0
	grouped: 0
	tags: defold
	swallowing: 0
	focusHistoryID: 0

Window 5a8723a06500 -> java: ## JavaFX Dragged Element
	mapped: 1
	hidden: 0
	at: 49,289
	size: 24,24
	workspace: 2 (2)
	floating: 1
	pseudo: 0
	monitor: 0
	class:
	title: java
	initialClass:
	initialTitle: java
	pid: 56093
	xwayland: 1
	pinned: 0
	fullscreen: 0
	fullscreenClient: 0
	grouped: 0
	tags:
	swallowing: 0
	focusHistoryID: 7

** Output simplified to show only relevant clients*

can you try finding a nofocus rule to target those? or perhaps noinitialfocus?

Could be a solutuon but i think this should be included into hyprland so that it doesn't happen at all.

Here is inkscape clients (running on xwayland) while draging/reordering layers.
 hyprctrl clients output (Summary)
Window 61c16fe45b00 -> org.inkscape.Inkscape: ## Inkscape dragged layer window
	mapped: 1
	hidden: 0
	at: 1411,259
	size: 480,27
	workspace: 3 (3)
	floating: 1
	pseudo: 0
	monitor: 0
	class:
	title: org.inkscape.Inkscape
	initialClass:
	initialTitle: org.inkscape.Inkscape
	pid: 250831
	xwayland: 1
	pinned: 0
	fullscreen: 0
	fullscreenClient: 0
	grouped: 0
	tags:
	swallowing: 0
	focusHistoryID: 13

Window 61c16c4b0ce0 -> *New document 1 - Inkscape: ## Inkscape main window
	mapped: 1
	hidden: 0
	at: 22,57
	size: 1876,1001
	workspace: 3 (3)
	floating: 0
	pseudo: 0
	monitor: 0
	class: Inkscape
	title: *New document 1 - Inkscape
	initialClass: Inkscape
	initialTitle: New document 1 - Inkscape
	pid: 250831
	xwayland: 1
	pinned: 0
	fullscreen: 0
	fullscreenClient: 0
	grouped: 0
	tags:
	swallowing: 0
	focusHistoryID: 0

Reddit discussion (context): https://www.reddit.com/r/hyprland/comments/1gf1eaw/cant_drag_elements_in_javafx_based_applications/
The problem is not with the other DEs because they do not try to organize your windows automatically (no tiling WM, or compositor in Wayland).


Work around String metatype bug

There's a bug that causes a crash when attempting to print the description of a type with a stored "thin" metatype: https://github.com/swiftlang/swift/issues/62003
Here's a trivial example that demonstrates the crash and also shows that using a computed works around the issue
enum E {}

struct Good {
    var e: E.Type { E.self }
}
struct Bad {
    let e: E.Type = E.self
}

print("\(Good())") // prints "Good()"
print("\(Bad())") // crashes

Alternatively we could replace the InjectionConfiguration.Type property entirely as suggested here: https://github.com/krzysztofzablocki/Inject/pull/20#issuecomment-1102306265

thanks @john-flanagan !

@krzysztofzablocki Could you make a bugfix release to make this change easier to consume in our app?


Implementation of ArgumentOfCorrectType tests

But not done yet!
There are a LOT of tests to implement for this.

Ready to go.

lgtm

You missed one test case, but I'll add it!


XFA - Add support for overflow element

and fix few bugs:

avoid infinite loop when layout the document;
avoid confusion between break and layout failure;
don't add margin width in tb layout when getting available space.

/botio test

/botio-windows test

@calixteman looks like some ref tests failed with this PR

Wiped out the bad cached file, let's try this again.
/botio-windows test

/botio test

/botio makeref

@brendandahl It looks like this regressed at least xfa_imm1344e-page1 in all browsers/platforms, and possibly the rest of that file as well, why was this landed as-is?

I mixed up the refs for that one (thought it was improving). Calixte has a fix in progress, so we'll just re-run with the fix.


CSV: set minKubeVersion to 1.26.0

SSIA

/override ci/prow/e2e-aws-operator
CSV is not tested by any test


Missing Email field?

The documentation https://hexdocs.pm/backpex/what-is-a-field.html#configuration mentions a Email field, but it seems to not actually exist.
I need it for my current project so I will implement it myself if its missing. Would you be interested in a PR with this?
Thank you!

Hey, good catch! I removed the field from the docs in #420. I would be interested in a PR. What features do you have in mind for an email field?

I guess the main things are to have the input element use the correct type and then the option of having the value rendered using a anchor with href="mailto.
But as I'm writing I realize this is maybe something that is more effectively done by adding something more generalized as an option to the Text field where you can override the type of the input. This together with a separate generalized option to have any value rendered as a link would allow developers to choose themselves if they want clicking the email to do the mailto thing, or if they would like it to link for example a page showing all the emails sent to that email.
Some suggested code to illustrate what I'm rambling about
  def fields do
    [
      contact_email1: %{
        module: Backpex.Fields.Text,
        searchable: true,
        label: "Contact email"
        input_type: "email",
        value_link_fun: fn value -> ~p"/sent_emails?contact_email=#{value}" end
      },
      contact_email2: %{
        module: Backpex.Fields.Text,
        searchable: true,
        label: "Contact email"
        input_type: "email",
        value_link_fun: fn value -> "mailto:#{value}" end
      },
...

But I understand if you think this is too messy and its not really a issue to create custom fields. But I do think a Email field with some common defaults such as the mailto href etc, could be useful.

In my opinion, we should focus on creating additional fields rather than complicating existing fields. If there is a need for email values, let's create a new field for that specific use case.
We once tried to merge Text with Textarea, but it did not work out well. So I suggest sticking to a separate Backpex.Fields.Email field is a good idea.

its not really a issue to create custom fields

If you have a really specific use case, I recommend creating a custom field in your application, but an email field is certainly not and could be useful for other applications as well. So I would love to see a pull request from you.

But I do think a Email field with some common defaults such as the mailto href etc, could be useful.

I agree 🤝

You can already overwrite how the value is displayed by using render_value (index & show).
There are already some functions to configure how to render a field in a form, see here.
The task would be to add a an option to the change the type from text to any other type.
But this could also be confusing because you could also add “button“ as type and this would lead to confusing behaviour.
So maybe its better to have a separate E-Mail Field. WDYT?

Thanks for the feedback and I agree, adding email field makes sense. On vacation atm, but will create a PR for it next week when I'm back.

Hey @rakso-startkoden, what's the status of this issue? Do you still want to work on an email field?

I will close this issue, but we can reopen it again when you have time to work on it @rakso-startkoden


Identify WMS Features

@dkemlage Can you please take a look at this? It should be ready for review on all platforms.
Note that there is an issue with callouts on Android that I'm investigating. I believe it is a bug and I'm working on a bug report. The sample still works, you'll just need to pan the map before the callout appears.


Whitelist user section

We have a filter to hide changesets by whitelisted users, but no way to see/add a user to the whitelist from the UI.

We should hide this filter for now, and make it visible when we have added:

An option to see whitelist of the logged in user
An option to add any user to the whitelist (via the User panel, or manually)

cc @ajithranka @kepta @willemarcel @batpad

As some people have already whitelisted users, I think it's not the case to hide it... New users won't understand why this filter exists, but I think it can be very useful to the Mapbox team.

@kepta can you document how the url can be manually updated to include the whitelist parameter in the filter query? That way if someone from the Mapbox team is trying to do this, we can point them to it without causing confusion to any new users around what the filter means.
The whitelist user section should anyway be added soon, so this is a quick fix. Does that sound okay @willemarcel?

@rasagy good!

Deferring to a later milestone for now.

I'm working on a button to add any user to the whitelist

bump this can be a really useful filter to have. Both for Mapbox data team and community. This was brought up during conversation with community members more than a few times at SoTM Japan. @willemarcel @kepta @batpad lets prioritize this the sooner we can?

@manoharuss I've worked on it, but it yet needs some improvement https://github.com/mapbox/osmcha-frontend/pull/207


Various cleanups.

Add debug implementations.
Mark everything as repr(C) and repr(packed), just to be sure.

👍 LGTM

On an semi-related note, I'd appreciate help in understanding what's going on with repr(packed).
This note from the repr documentation is intimidating:

In particular, most architectures strongly prefer values to be aligned. This may mean the unaligned loads are penalized (x86), or even fault (some ARM chips). For simple cases like directly loading or storing a packed field, the compiler might be able to paper over alignment issues with shifts and masks. However if you take a reference to a packed field, it's unlikely that the compiler will be able to emit code to avoid an unaligned load.

As of Rust 1.0 this can cause undefined behavior.
repr(packed) is not to be used lightly. Unless you have extreme requirements, this should not be used.

Since our case requires liberal use of repr(C, packed), is there a way to minimize penalties and undefined behavior?  Perhaps through more asserts or wrappers?
Let me know if there's something to this, and I'll open a separate issue.

As I understand it, repr(C) should suffice as long as the fields are aligned. With repr(packed) everything should still work without undefined behavior as long as we avoid references to unaligned fields.
https://github.com/rust-lang/rust/pull/44884 was merged about a week ago, so this should make things safer (but I don't know details either).

I wish Rust had static assert, which would allow asserting the size of a struct to ensure there is no padding. I'll probably look into that and switch to using that as a way to verify that what you see is what you get, since using unsafe to access fields is somewhat silly in many cases.

We could add a unit test that checks the struct sizes.


Why does the OD1NF1ST interactive web display flash and disappear quickly?

Thank you for your code sharing about OD1NF1ST in URL https://github.com/MichaelWrana/OD1NF1ST. I have some questions about how to produce a OD1NF1ST Interactive Web Display.
1）I have run MFS and generated the data files

2）run python -m odf.web and visit http://<IP_ADDRESS>:8572/

The following icon is uploaded by me

then， the OD1NF1ST interactive web display flash and disappear quickly，the log is：

I also can‘t succeed to run the subsystem “odf/ids”. It seeems that the tf version not right? Because I believe the code is right.


Error on postbuild:ng-render

@clbond
{ Error: Hash: f035cd159f5aa4b9d6aa
Version: webpack 3.5.6
Time: 3203ms
Asset     Size  Chunks  Chunk Names
0.js  1.08 kB       0  app/app.module
0.js.map  6.51 kB       0  app/app.module
[Cos1] ./src/app/app.module.ts 509 bytes {0} [built] [failed] [1 error]
[0] multi ./app/app.module.ts 28 bytes {0} [built]
ERROR in ./src/app/app.module.ts
Module build failed: TypeError: Cannot read property 'newLine' of undefined
No where in the code we have newLine, except in dist/vendor.js that too in the comments section of a function
FYI: This project is based out of Angular-Cli project
Any help on this appreciated

Your TypeScript version is out of date. Bring it up to date (2.3 i think)


Change /lib structure

/lib/db for database drivers
/lib/api for Impress common API packages
/lib/core for Impress core libs

Not good idea


Updates to Acknowledgements panel

A few updates are suggested for the Acknowledgements panel:
add instructive texts
label name change
This ticket replaces https://github.com/ClinGen/clincoded/issues/2202

add instructive texts

a. Under the "Acknowledge Other Contributors" button (in figure above), add instructive text so curators know they don't need to click this unless they need to acknowledge other contributors. Something like:
"You only need to Acknowledge Other Contributors if other groups have contributed to the supporting curation and/or approval of your Classification"
b. Under the "Classification Approvers" pulldown, add instructive text to advise curators they don't need to add in their own group as an Approver. Something along the lines of:
"If your Affiliation is the only Approver for this Classification, then do not select it here because it will be selected by default"

label name change
Rename "Classification Approver" to "Secondary Classification Approver"
Rename "Classification Contributor" to "Secondary Classification Contributor"

@markmandell Please take a look at point 2, i.e. changing the names

Same ticket https://github.com/ClinGen/gene-and-variant-curation-tools/issues/234
Merged to prod


fuzzing: build helm fuzzer from correct dir

Signed-off-by: AdamKorcz<EMAIL_ADDRESS>
Summary

The location of FuzzHelmProvenanceUnmarshal has changed. This PR updates the OSS-Fuzz build script with the correct location.
Release Note

Documentation

Codecov Report

Merging #1264 (f58c3d2) into main (610b728) will decrease coverage by 21.22%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #1264       +/-   ##
===========================================
- Coverage   63.27%   42.04%   -21.23%
===========================================
  Files          82       74        -8
  Lines        7670     7225      -445
===========================================
- Hits         4853     3038     -1815
- Misses       2205     3878     +1673
+ Partials      612      309      -303

Flag
Coverage Δ

e2etests
?

unittests
42.04% <ø> (-0.05%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

 Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


404 for linux packages

Hi,
i can't update my owncloud instance anymore via owncloud.org linux packages, because i'm getting 404 on
https://download.owncloud.org/download/repositories/stable/owncloud
This Link is listed from the main website on tab "Packages": https://owncloud.org/install/#instructions-server
Greets,
ManOki

Thanks for the info, we're looking into it.
In the meantime the versioned URLs still work, like https://download.owncloud.org/download/repositories/9.0/owncloud so if you need to update quickly you could use those.
@danimo @jnweiger @michaelstingl

Hey @ManOki  Sysadmins are on it.

We hit a disk full error. sorry for that.
Everything is recovered by now.


ERROR 08-18 00:51:02 async_llm_engine.py:57] Engine background task failed
ERROR 08-18 00:51:02 async_llm_engine.py:57] Traceback (most recent call last):
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 47, in _log_task_completion
ERROR 08-18 00:51:02 async_llm_engine.py:57]     return_value = task.result()
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 642, in run_engine_loop
ERROR 08-18 00:51:02 async_llm_engine.py:57]     result = task.result()
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 585, in engine_step
ERROR 08-18 00:51:02 async_llm_engine.py:57]     request_outputs = await self.engine.step_async(virtual_engine)
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 239, in step_async
ERROR 08-18 00:51:02 async_llm_engine.py:57]     virtual_engine].schedule()
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 950, in schedule
ERROR 08-18 00:51:02 async_llm_engine.py:57]     scheduler_outputs = self._schedule()
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 925, in _schedule
ERROR 08-18 00:51:02 async_llm_engine.py:57]     return self._schedule_default()
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 785, in _schedule_default
ERROR 08-18 00:51:02 async_llm_engine.py:57]     prefills = self._schedule_prefills(budget,
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 683, in _schedule_prefills
ERROR 08-18 00:51:02 async_llm_engine.py:57]     num_new_tokens = self._get_num_new_tokens(seq_group,
ERROR 08-18 00:51:02 async_llm_engine.py:57]   File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 1206, in _get_num_new_tokens
ERROR 08-18 00:51:02 async_llm_engine.py:57]     assert num_new_tokens > 0
ERROR 08-18 00:51:02 async_llm_engine.py:57] AssertionError
Exception in callback _log_task_completion(error_callback=<bound method...72047c646d70>>)(<Task finishe...ertionError()>) at /usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py:37
handle: <Handle _log_task_completion(error_callback=<bound method...72047c646d70>>)(<Task finishe...ertionError()>) at /usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py:37>
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 47, in _log_task_completion
    return_value = task.result()
  File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 642, in run_engine_loop
    result = task.result()
  File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 585, in engine_step
    request_outputs = await self.engine.step_async(virtual_engine)
  File "/usr/local/lib/python3.10/dist-packages/vllm/engine/async_llm_engine.py", line 239, in step_async
    virtual_engine].schedule()
  File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 950, in schedule
    scheduler_outputs = self._schedule()
  File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 925, in _schedule
    return self._schedule_default()
  File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 785, in _schedule_default
    prefills = self._schedule_prefills(budget,
INFO 08-18 00:51:02 async_llm_engine.py:181] Aborted request cmpl-14b87b97d9a8481d8963a0a1652b217b-0.
  File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 683, in _schedule_prefills
    num_new_tokens = self._get_num_new_tokens(seq_group,
  File "/usr/local/lib/python3.10/dist-packages/vllm/core/scheduler.py", line 1206, in _get_num_new_tokens
    assert num_new_tokens > 0
AssertionError

To be clear, the bug is at least that the entire vllm engine is taken down by prompt=''


Use Merchant Code while payment initiating

Hi upi_pay,
Thanks for the great plugin. Can you provide Merchant Code add option, while initiating payments? I can see that upi_india has this option.
Solution #
Add merchantCode in UpiPay.initiateTransaction() function. It is available in TransactionDetails class.

Allowing just merchant code in initiateTransaction API won't actually solve much. There is more nuance to supporting merchant payments. Track the progress or development related to that here #38


Can't access my Nami Wallet

The wallet itself is relatively new, but as of yesterday I can't access it. Nami chrome extension is not displaying any option to log in. The only options displayed are to create a new wallet or import another wallet e.g. Yoroi. I do have my seed phrase so that won't be a problem, but I don't have the option to explore that. I have removed and reinstalled the extension and still nogo.
I would really and greatly appreciate your help.
Thank you

It looks like the Chrome Nami storage have been wiped/corrupt/reset for some reason.
The "import" option is the one to be used to import your wallet.
The seed phrase "is" the wallet, Nami only allow you to interact with it, so you have to import it to retrieve your data.
All wallet data are encrypted on the blockchain using the key generated with the seed. When importing the seed, Nami can find and interact with your "on chain" data.

Thank you for your response. However, on the next screen after entering my
seed phrase, I am prompted to create an account. Please see the screenshot
below. Do I have to create a new account?
[image: image.png]
Thank you
On Sun, Jan 9, 2022 at 12:44 PM Pascal Lapointe @.***>
wrote:

It looks like the Chrome Nami storage have been wiped/corrupt/reset for
some reason.
The "import" option is the one to be used to import your wallet.
The seed phrase "is" the wallet, Nami only allow you to interact with it,
so you have to import it to retrieve your data.
All wallet data are encrypted on the blockchain using the key generated
with the seed. When importing the seed, Nami can find and interact with
your "on chain" data.
—
Reply to this email directly, view it on GitHub
https://github.com/Berry-Pool/nami-wallet/issues/197#issuecomment-1008352466,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXHEG3PSA6FFKSB2PHTDXJDUVHJPHANCNFSM5LSDZ3QQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Richard Sarumi
Mobile:<PHONE_NUMBER>
@.***

Thank you very much for your help. I was able to create another account and
retrieve my stuff using the seed phrase. I appreciate your prompt response
and assistance.
On Sun, Jan 9, 2022 at 12:44 PM Pascal Lapointe @.***>
wrote:

It looks like the Chrome Nami storage have been wiped/corrupt/reset for
some reason.
The "import" option is the one to be used to import your wallet.
The seed phrase "is" the wallet, Nami only allow you to interact with it,
so you have to import it to retrieve your data.
All wallet data are encrypted on the blockchain using the key generated
with the seed. When importing the seed, Nami can find and interact with
your "on chain" data.
—
Reply to this email directly, view it on GitHub
https://github.com/Berry-Pool/nami-wallet/issues/197#issuecomment-1008352466,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AXHEG3PSA6FFKSB2PHTDXJDUVHJPHANCNFSM5LSDZ3QQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>

--
Richard Sarumi
Mobile:<PHONE_NUMBER>
@.***


spell checker makes lots of errors

spell checker always errors with words e.g. Microbiota or NFDI

changed the spellchecker config and improved the whitelist.
Still a lot of work to clean everything


Typo in Python Wiki

Method
Description

logging.critical(message)
Writes a message with level CRITICAL on the root logger.

logging.error(message)
Writes a message with level ERROR on the root logger.

logging.warning(message)
Writes a message with level WARNING on the root logger.

logging.info(message)
Writes a message with level INFO on the root logger.

logging.debug(message)
Writes a message with level CRITICAL on the root logger.

Bolded CRITICAL should be replaced with DEBUG.

@asavaritayal could you make the change?

Done, thanks for pointing out!


V1.4 bugfix groupname case sensitivity

Resolves #154

Codecov Report

Merging #216 (1d93b19) into dev (b4cd444) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##                dev     #216   +/-   ##
=========================================
  Coverage     66.16%   66.16%
  Complexity      625      625
=========================================
  Files           111      111
  Lines          2143     2143
  Branches        235      235
=========================================
  Hits           1418     1418
  Misses          643      643
  Partials         82       82

Continue to review full report at Codecov.

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


Add PHP 7.4 version test

Changed log

Add php-7.4 version test during Travis CI build.
Fix coding style via StyleCI check.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Coverage decreased (-17.0%) to 83.019% when pulling 55a9bfba9d9eec6220afb69659839c90f5c975b6 on open-source-contributions:add_php74 into 1702fd5d5d4e6418315434e005d1fb5521c6973c on gpslab:master.

Sorry, but i can’t accept this because PHPUnit 4.8 is not compatible with PHP 7.4. It is necessary to abandon the old PHP and release a new major version, but for this I would at least add type hinting.

@peter-gribanov, thanks for your reply and explanation.
Could you reopen this PR and let me drop old PHP versions?
Once this latest PR is merged, this package can release latest version to support php-7.4 :).


Add [OI]6300 in the list of emission lines

Is it possible to include [OI]6300 in the list of emission lines? It is often weak but useful for the BPT + VO87 diagram analysis in AGN hosts.

Done in https://github.com/desihub/fastspecfit/commit/fad2503a298e38fec6840b461b13c44f2e8c3733.


Fix tx

What current issue(s) does this address, or what feature is it adding?
fix #901
How did you solve this problem?
removing the mutable default arguments and changing many class attributes to instance attributes.
How did you make sure your solution works?
make test
Are there any special changes in the code that we should be aware of?
no
Please check the following, if applicable:

[ ] Did you add any tests?
[X] Did you run make lint?
[X] Did you run make test?
[X] Are you making a PR to a feature branch or development rather than master?
[X] Did you add an entry to CHANGELOG.rst? (if not, please do)

Coverage decreased (-0.003%) to 86.394% when pulling b976800c4a1274d96ec0dbda0f7251793fb59dbf on ixje:fix-tx into 44d646f94f7d730d8af8934936bfa6ebd032710c on CityOfZion:development.


Issue running GSM8K_DSPy prompt_optimization.py

I attempted to run the following python prompt_optimization.py --task=GSM8K_DSPy --run_validation --do_not_run_larger_model  --evaluation_engine=gpt-4o --test_engine=gpt-3.5-turbo-0125 and there were a couple of issues. 1. TypeError: Can't instantiate abstract class GSM8K_DSPy with abstract method get_default_task_instruction. I fixed this by adding the method.
2. Then I encountered TypeError: textgrad.tasks.big_bench_hard.string_based_equality_fn() argument after ** must be a mapping, not list.

Sorry about these, the updates making textgrad multimodal had breaking changes for these. We just pushed a hotfix for this. Thank you so much for catching it -- let us know if you still get errors!


Use builder to init output stream

This is a breaking change.
Resolves PR#512 and #613
This pull request may be related https://github.com/RustAudio/rodio/pull/547

Use a builder pattern to configure output stream.
Make root mixer available to users.
Rename some of the creation methods.
Try alternative configurations when opening default stream.
....

Still missing:

Examples that demonstrate custom stream configuration.
Update rustdocs in lib.rs

Regarding the build errors, when I rub cargo clippy I do not get any errors, I wonder which configuration or command should I use to see the same documentation errors locally.

I have not done a full review (given its still a draft) but looked through it quickly and tried to address all the comments you made. What I see looks great though :partying_face: ! It is clear you carefully considered your choices. Thank you very much for all the work.
Ill be careful not to create any merge conflicts. Given how big this PR is ill stay away from making larger changes till this has landed.

@dvdsk I have added dome docs, so in this form I'd say it is complete. The biggest reason I titled it as a draft was that more API changes would be considered unnecessary.

Only thing I still have a problem with is the OutputStreamConfig being public. I would still prefer another name for that one open function (see discussion) but we can merge that as is.
We do still need a changelog entry (see CHANGELOG.md) and ideally we should add a porting_guide.md given this is a breaking change.

I have added a custom config example (doubles as a test for the builder).

Updated change log.

This now also resolves: #643

Thanks a lot for all the hard work Petr. This has really improved the API :+1:


create and update the json

What type of PR is this? (check all applicable)

[x] 🚀 Added Details
[x] 🌟 stared the repo
[ ] 🐛 Grammatical Error
[ ] 📝 Documentation Update
[ ] 🚩 Other

Description
Add Link of GitHub Profile
https://github.com/Ashish7129

@keshavsingh4522 Can you please merge this ?


Format SQL queries when printing them to the logs

Before, the query would be formatted equivalent to the input string:
[2020-04-18T23:47:32Z DEBUG sqlx_core::postgres::executor] SELECT id, queue, ..., elapsed: 2.320µs

        SELECT id, queue, payload, status, priority, created_at, updated_at
    FROM jobs
    WHERE status = $1
    ORDER BY priority ASC, created_at ASC

After, the query is formatted cleanly and consistently:
[2020-04-19T00:30:18Z DEBUG sqlx_core::postgres::executor] SELECT id, queue, ..., elapsed: 2.280µs

    SELECT
      id,
      queue,
      payload,
      status,
      priority,
      created_at,
      updated_at
    FROM
      jobs
    WHERE
      status = $1
    ORDER BY
      priority ASC,
      created_at ASC

This uses the sqlformat crate, which was ported from the Javascript sql-formatter-plus library specifically for this purpose.

Awesome.
Do you know if there is a way to emit a log as "sqlx::query" so it's easier for people to turn on/off these logs?
E.g.,
[2020-04-18T23:47:32Z DEBUG sqlx::query] SELECT id, queue, ..., elapsed: 2.320µs

Also it looks like your idea is to interpolate the query with the provided values. I can get behind that. Perhaps we should use some kind of coloring (maybe cyan) for the bind arguments so they stand out in the query string.

The interpolation was part of the port from the Javascript library. I'm not strongly in favor of one approach or the other on that, although we have the option of using it. If we do interpolate, I agree coloring the arguments is a good idea.
As far as sqlx_core::postgres::executor changing to sqlx::query, I can look into this. I know this is set by the log crate based on the module where the log line is located. Maybe there's a way to override it, I'll have a look at the log documentation. (Alternatively there may be some way to change it by moving code around.)


[GUI] Error when changing the device template, from a "firmware update template" to any other template

I'm submitting a ...

[x] bug report
[ ] feature request
[ ] support request

Do you want to request a feature or report a bug?

report a bug

What is the current behavior?

In the GUI, when I want to change the template of an existing device, this template being characteristic of Firmware Update, the update happens, but the GUI fails to render the screen, leaving it all empty.

If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

Create a template for the LwM2M Firmware Update;
Create a device and associate the newly created template with the device;
After the device is created, try to change the template of the device (remembering that the current template needs to be a template with firmware update metadata);
The update is successful, but the GUI does not seem to know how to render the screen correctly and everything disappears;
If I reload the page (F5), everything goes back to normal, with the device having the new template;

What is the expected behavior?

It is expected that the GUI will be rendered correctly after changing the template on the device.

What is the motivation / use case for changing the behavior?

There is no practical use case for changing the device's firmware update template, but this is an error in the GUI, as everything disappears after confirming the templates change.

Please tell us about your environment:

Version: 0.5.0-rc1
Environment: docker-compose
Operating system: Ubuntu 18.04

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)

Template with firmware update metadata, currently associated with the device:

When trying to change the current template for any template (there is no need for firmware update metadata), an error occurs:

The screen is completely empty:

Error does not persist in version 0.6.0-rc2 (Docker-compose)


chore: add antfu open collective

Description
Check description: to see the change sin readme file the PR must be merged

Instead, we better remove that file, and let it inherit automatically from https://github.com/antfu-collective/.github


Use the latest Python 3.6 in the python3 image

Debian Stretch (which is the current stable and used as the base image
for distroless) doesn't have Python 3.6, nor will it.  Instead, we
grab the python3.6 packages from Debian Buster, which is the current
testing branch.
This falls heavily into the Works For Me category.  Since these images
are minimalist, using a package from testing shouldn't conflict with
other bits in the image, but my dpkg-fu is sufficiently weak that I
can't guarantee that.  It'd be nice to have somebody take a deeper look.

This sounds like some extreme risk of having buster packages silently overwriting jessie ones (already the jessie-backports stuff is shady).

@MarkusTeufelberger That very well may be true.
Alternatives?

My rejected alternative set of build rules, or a separate dpkg_list() rule that only contains buster packages (as well as a separate dpkg_list() rule for jessie-backports). Still won't work since the "packages" name is hardcoded, but it would be easier to fix that one.
Also, how exactly did you verify that the hash<PHONE_NUMBER>f80a25a67982360f1b5e33383281bf884aa12ab556b7a3613f031b is signed by some Debian authority?

@MarkusTeufelberger I'm not quite following your suggested alternative.  Do you have a PR or doc to reference?
As for validating the hash, that can be done here: http://snapshot.debian.org/archive/debian/20171101T160520Z/dists/buster/main/binary-amd64/

In that directory you only have the hash of the Packages.gz file, it could have been put there by anyone - this is even just a HTTP only connection, so you don't even have TLS to help you. You would need to download the Release file for Debian Buster and verify the signature of that file with the Debian FTP masters' key.
Yes, PRs #94 and #96 as well as issue #72

@MarkusTeufelberger Ah, yes.  Thanks for the clarification.  Presumably this is something that you do on a regular basis, so I would expect there to be tooling for verifying the signature?  Could you point me at the relevant tools?

Here is the documentation on how to do it manually (using gpg2, wget and a web browser): https://github.com/mgit-at/rules_pkg/tree/master/deb_packages
In general this is commonly done by apt/apt-get and various other Debian tools, but this project here does not use any of them. Returning a SHA256 hash of a Packages.gz file is not a very standard operation, so it is a bit hard to give a single command.
If you check in hashes to generate base images from, I would expect you to have followed the Debian guidelines for https://wiki.debian.org/SecureApt.
Anyways, the main issue still remains that this PR very likely is either not deterministic or just overwrites all contained packages with Buster ones. Since this project does more magic than maybe necessary, it is hard to detect this though, hence my warning instead of letting this silently seep into all base images for the official rules_docker rule set... ;-)

@MarkusTeufelberger Yep.  I appreciate the "deeper look" that I had hoped for. :) I agree that the approach taken here of just pulling in arbitrary buster packages over a stretch installation probably isn't a good one.  I can close the PR as a result.
A better answer would probably be to build or reference updated packages for stretch, but that would likely involve hosting our own packages, or trusting somebody else to do that same, neither of which seems very palatable.
A more radical alternative would be to use ubuntu releases and packages instead of debian ones, since they are updated much more frequently, but in doing so we'd loose determinism, since Ubuntu doesn't maintain the same sort of timestamped FTP mirror that debian does.
It's probably still important that we have the ability to provide more granular package control in these images at some point.  Users aren't going to want to use a long out-of-date Python (or Java or Go), and in the case of underlying bugs it may be important to address them sooner than debian stable.  I don't have a good path forward here, but hope it's something the core team is thinking about.


Add test for AzureRmSqlServerActiveDirectoryAdministratorTest

This is adding test for new Swagger AzureRmSqlServerActiveDirectoryAdministrator API for ActiveDirectoryOperations include:

Create/Update ActiveDirectory Admin
Get ActiveDirectory Admin
Delete ActiveDirectory Admin
Get list of ActiveDirectory Admin

Swagger PR at: https://github.com/Azure/azure-rest-api-specs/pull/1203

Can one of the admins verify this patch?

Can one of the admins verify this patch?

@jaczhan,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@jaczhan add to whitelist

Adding test for Swagger AzureRmSqlServerActiveDirectoryAdministrator
https://github.com/Azure/azure-rest-api-specs/pull/1203

We will rerecord the tests separately - https://github.com/Azure/azure-sdk-for-net/issues/3267

@jaczhan looks good, as soon as CI passes this can be merged.


[FEATURE]  new puzzle game

Description
i want to add this amazing puzzle game
Screenshots

Additional information
No response

@panwar8279 please assign this to me

Hi @abansal15 ,  I have assigned this issue to you. Kindly complete this issue within 10 August. Make sure this game is in react. Good luck!

@panwar8279 please review it i have raised the pr

Hi @panwar8279 assign me please


Having issues when importing this package to Angular 5

I think because this package uses require(), I am having the issue.
Can you suggest a solution !!!

Error Details
import HighLevelConsumer from "kafka-node";
console.log(HighLevelConsumer);

[0] WARNING in ./node_modules/optional/optional.js
[0] 6:11-26 Critical dependency: the request of a dependency is an expression
[0]     at CommonJsRequireContextDependency.getWarnings (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/dependencies/ContextDependency.js:39:18)
[0]     at Compilation.reportDependencyErrorsAndWarnings (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:703:24)
[0]     at Compilation.finish (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:561:9)
[0]     at applyPluginsParallel.err (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compiler.js:506:17)
[0]     at /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/tapable/lib/Tapable.js:289:11
[0]     at _addModuleChain (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:507:11)
[0]     at processModuleDependencies.err (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:477:14)
[0]     at _combinedTickCallback (internal/process/next_tick.js:131:7)
[0]     at process._tickCallback (internal/process/next_tick.js:180:9)
[0]  @ ./node_modules/optional/optional.js
[0]  @ ./node_modules/kafka-node/lib/codec/snappy.js
[0]  @ ./node_modules/kafka-node/lib/codec/index.js
[0]  @ ./node_modules/kafka-node/lib/kafkaClient.js
[0]  @ ./node_modules/kafka-node/kafka.js
[0]  @ ./client/app/_pages/report/report.component.ts
[0]  @ ./client/app/app.module.ts
[0]  @ ./client/main.ts
[0]  @ multi webpack-dev-server/client?http://<IP_ADDRESS>:0 ./client/main.ts
[0]
[0] WARNING in ./node_modules/node-zookeeper-client/lib/jute/index.js
[0] 771:20-47 Critical dependency: the request of a dependency is an expression
[0]     at CommonJsRequireContextDependency.getWarnings (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/dependencies/ContextDependency.js:39:18)
[0]     at Compilation.reportDependencyErrorsAndWarnings (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:703:24)
[0]     at Compilation.finish (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:561:9)
[0]     at applyPluginsParallel.err (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compiler.js:506:17)
[0]     at /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/tapable/lib/Tapable.js:289:11
[0]     at _addModuleChain (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:507:11)
[0]     at processModuleDependencies.err (/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/webpack/lib/Compilation.js:477:14)
[0]     at _combinedTickCallback (internal/process/next_tick.js:131:7)
[0]     at process._tickCallback (internal/process/next_tick.js:180:9)
[0]  @ ./node_modules/node-zookeeper-client/lib/jute/index.js
[0]  @ ./node_modules/node-zookeeper-client/index.js
[0]  @ ./node_modules/kafka-node/lib/consumerGroupMigrator.js
[0]  @ ./node_modules/kafka-node/lib/consumerGroup.js
[0]  @ ./node_modules/kafka-node/kafka.js
[0]  @ ./client/app/_pages/report/report.component.ts
[0]  @ ./client/app/app.module.ts
[0]  @ ./client/main.ts
[0]  @ multi webpack-dev-server/client?http://<IP_ADDRESS>:0 ./client/main.ts
[0]
[0] ERROR in ./node_modules/buffermaker/test/BufferMaker.js
[0] Module not found: Error: Can't resolve 'should' in '/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/test'
[0] resolve 'should' in '/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/test'
[0]   Parsed request is a module
[0]   using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/package.json (relative path: ./test)
[0]     Field 'browser' doesn't contain a valid alias configuration
[0]   after using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/package.json (relative path: ./test)
[0]     resolve as module
[0]       /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/test/node_modules doesn't exist or is not a directory
[0]       /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/node_modules doesn't exist or is not a directory
[0]       /home/surajgupta/public_html/newamps/data-charts-application/node_modules doesn't exist or is not a directory
[0]       /home/surajgupta/public_html/newamps/node_modules doesn't exist or is not a directory
[0]       /home/surajgupta/public_html/node_modules doesn't exist or is not a directory
[0]       /home/surajgupta/node_modules doesn't exist or is not a directory
[0]       /home/node_modules doesn't exist or is not a directory
[0]       /node_modules doesn't exist or is not a directory
[0]       looking for modules in /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules
[0]         using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/package.json (relative path: ./node_modules)
[0]           Field 'browser' doesn't contain a valid alias configuration
[0]         after using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/package.json (relative path: ./node_modules)
[0]           using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/package.json (relative path: ./node_modules/should)
[0]             no extension
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should doesn't exist
[0]             .ts
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should.ts doesn't exist
[0]             .js
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should.js doesn't exist
[0]             as directory
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should doesn't exist
[0]       looking for modules in /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules
[0]         using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./node_modules)
[0]           Field 'browser' doesn't contain a valid alias configuration
[0]         after using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./node_modules)
[0]           using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./node_modules/should)
[0]             no extension
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should doesn't exist
[0]             .ts
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.ts doesn't exist
[0]             .js
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.js doesn't exist
[0]             as directory
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should doesn't exist
[0]       looking for modules in /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules
[0]         using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./node_modules)
[0]           Field 'browser' doesn't contain a valid alias configuration
[0]         after using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./node_modules)
[0]           using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./node_modules/should)
[0]             no extension
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should doesn't exist
[0]             .ts
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.ts doesn't exist
[0]             .js
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.js doesn't exist
[0]             as directory
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should doesn't exist
[0]       looking for modules in /home/surajgupta/public_html/newamps/data-charts-application/public/client
[0]         using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./client)
[0]           Field 'browser' doesn't contain a valid alias configuration
[0]         after using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./client)
[0]           using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./client/should)
[0]             no extension
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should doesn't exist
[0]             .ts
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should.ts doesn't exist
[0]             .js
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should.js doesn't exist
[0]             as directory
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should doesn't exist
[0]       looking for modules in /home/surajgupta/public_html/newamps/data-charts-application/public/client
[0]         using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./client)
[0]           Field 'browser' doesn't contain a valid alias configuration
[0]         after using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./client)
[0]           using description file: /home/surajgupta/public_html/newamps/data-charts-application/public/package.json (relative path: ./client/should)
[0]             no extension
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should doesn't exist
[0]             .ts
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should.ts doesn't exist
[0]             .js
[0]               Field 'browser' doesn't contain a valid alias configuration
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should.js doesn't exist
[0]             as directory
[0]               /home/surajgupta/public_html/newamps/data-charts-application/public/client/should doesn't exist
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/test/node_modules]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/node_modules]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/node_modules]
[0] [/home/surajgupta/public_html/newamps/node_modules]
[0] [/home/surajgupta/public_html/node_modules]
[0] [/home/surajgupta/node_modules]
[0] [/home/node_modules]
[0] [/node_modules]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should.ts]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.ts]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should.js]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.js]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/buffermaker/node_modules/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.ts]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should.js]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/node_modules/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should.ts]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should.js]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should.ts]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should.js]
[0] [/home/surajgupta/public_html/newamps/data-charts-application/public/client/should]
[0]  @ ./node_modules/buffermaker/test/BufferMaker.js 1:0-17
[0]  @ ./node_modules/buffermaker ^.*BufferMaker$
[0]  @ ./node_modules/buffermaker/index.js
[0]  @ ./node_modules/kafka-node/lib/protocol/protocol.js
[0]  @ ./node_modules/kafka-node/lib/protocol/index.js
[0]  @ ./node_modules/kafka-node/kafka.js
[0]  @ ./client/app/_pages/report/report.component.ts
[0]  @ ./client/app/app.module.ts
[0]  @ ./client/main.ts
[0]  @ multi webpack-dev-server/client?http://<IP_ADDRESS>:0 ./client/main.ts

@surajprgupta this module is meant to be used with nodejs.

Yes, I know that, and it's running fine with express js,
but I have front-end in Angular 2+(5)  and backend in express js,
and was trying to integrate it directly into the Angular,
To reduce the extra HTTP call to the backend server to access Kafka
@kosik86

@surajprgupta ... that's not how things work.
In order for that to ever work, your Kafka server would have to be open to the entire internet to do whatever it pleases with...


Add TabBarNavigation with dinamic logic

Even as it looks like is working correctly, is not rendering in any view


[BUG] upgrade fails due to incompatibility of config.yaml in 0.7.X and 0.8.X

Describe the bug
Previously I was on version 0.7.4 and wanted to upgrade to 0.8.X. I performed the upgrade as usual and received 502 error. while ensuring nothing wrong with the scheme or MySQL database I've decided to wipe the entire folder and clone the stable branch again. Same thing, 504 error. Then I realized that it might be something due to configuration.
I invoked debugging server and found out the images don't load (static / media) but confirming the location all seems correct. later on the way, I fixed it by copying the crucial information from config.yaml to the new template_config.yaml, I realized there are new options there such as remote_login_enabled and remote_login_header which didn't show up on 0.7.4 config, by setting them correctly I found out that this was the issue.
Steps to Reproduce
Steps to reproduce the behavior:

have a 0.7.X copy of inventree
pull the latest stable branch and invoke database backup
upgrade to 0.8.X but leave the previous config, the config.yaml from the previous installation of 0.7.4 will still exist.
get 504 error/assets not loading up

Expected behavior
The expected behavior is that the new values in the 0.8.X config will have default values, if not given, the defaults will be used. it seems that if emote_login_enabled and remote_login_header are not configured properly either they don't have default values or those values don't match the one in the config_template.YAML file.
By correctly setting those default values even if you upgrade without touching the config files your inventory system will still work as expected.
Solution
modify config_template.yaml from 0.8.x according to your needs and apply it, do not use 0.7.X config file.
later on to fix it there should probably be some check on those values and they should default if not set explicitly.
Deployment Method

[ ] Docker
[X] Bare Metal

@Zontex thanks for raising this. Is it just the remote_login_enabled and remote_login_header ones that you had to disable?

@Zontex thanks for raising this. Is it just the remote_login_enabled and remote_login_header ones that you had to change? And what did you have to change them to specifically?

They didn't exist in the previous config.yaml from 0.7.4 so I just copied those parameters AS IS from config_template.yaml of version 0.8.0 and it fixed the problem.

@SchrodingersGat this seems to stem from the settings refactors - I am working on a fix; we should update the 0.8.0 image once we have confirmed the fix.

@matmair sure LMK if you can replicate. I cannot seem to reproduce the issue on my end.

@matmair sure LMK if you can replicate. I cannot seem to reproduce the issue on my end.

Have you tried deleting remote_login_enabled and remote_login_header from your config.yaml at version 0.8.x?

Yep I have tried exactly that. Currently running without issue

Are you running in production or debug mode? And behind any other proxy / server / etc?

Tried both production and debug mode
Production gives error while debugging doesn't load the static and media
content. Running on bare metal behind nginx proxy
On Sat, Aug 6, 2022, 3:05 AM Oliver @.***> wrote:

Are you running in production or debug mode? And behind any other proxy /
server / etc?
—
Reply to this email directly, view it on GitHub
https://github.com/inventree/InvenTree/issues/3475#issuecomment-1207096843,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AETSJRLKCEOY5YVL7JSDSWLVXWT5TANCNFSM55V2PG3A
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Zontex I now have tried to reporduce this with every release of 0.7.x to 0.8.0. I always tried on bare metal (debian buster) and pulled the branch into a fresh folder, set database, media and static folder and ran inv update. After checking it works I pulled 0.8.0 and ran inv update again.
Is there anything else you changed?

@Zontex I now have tried to reporduce this with every release of 0.7.x to 0.8.0. I always tried on bare metal (debian buster) and pulled the branch into a fresh folder, set database, media and static folder and ran inv update. After checking it works I pulled 0.8.0 and ran inv update again. Is there anything else you changed?

I don't think so. if you can't reproduce it, close it. maybe someone else will come up with duplicate of how they had this so this can be fixed? or perhaps wait for 0.9.0 update see if it happens to me again haha

I'll close out for now but we will keep an eye on this for sure. We take stuff like this seriously! Please let us know if you gain any more insight into this.

@Zontex are you using environmental values by any chance? Maybe there is something set in your env that causes this


Relatively large template parameter list brings down the whole site

From what I understand there are some guards that terminate compilation when certain time/memory threshold has been reached, however, I've found an edge case that brings down the whole site to a grind (either 502 Bad Gateway or even makes the whole site unresponsive)
Here's the repro:
[REDACTED]
Use large Count (>10000)

I tried this locally. Node (and GCC) take 100% CPU and I can't reload the site. Node doesn't respond to requests anymore either.
I closed the browser tab 10 minutes ago and both gcc and node still run at 100% CPU.
I had to kill the process.

Hi @murderotica Thanks for the report. Just in case, I've redacted the offending code from the post until we get a chance to look into it later today.
We'll keep you updated

"Relatively large" hehe :)
I compiled the snippet:
$ /opt/compiler-explorer/gcc-8.1.0/bin/g++ -g -o /tmp/foo.s -masm=intel -S -std=c++1z /tmp/foo.cc

There's a call to a template function whose mangled name is...pretty large:
$ grep call /tmp/foo.s | wc -c
118937

The line starts something like:
        call    _ZN8make_idxILm10000EE5idx_tIJ3IdxILm0EES2_ILm1EES2_ILm2EES2_ILm3EES2_ILm4EES2_ILm5EES2_ILm6EES2_ILm7EES2_ILm8EES2_ILm9EES2_ILm10EES2_ILm11EES2_ILm12EES2_ILm13EES2_ILm14EES2_ILm15EES2_ILm16EES2_ILm17EES2_ILm18EES2_ILm19EES2_ILm20EES2_ILm21EES2_ILm22EES2_ILm23EES2_ILm24EES2_ILm25EES2_ILm26EES2_ILm27EES2_ILm28EES2_ILm29EES2_ILm30EES2_ILm31EES2_ILm32EES2_ILm33EES2_ILm34EES2_ILm35EES2_ILm36EES2_ILm37EES2_ILm38EES2_ILm39EES2_ILm40EES2_ILm41EES2_ILm42EES2_ILm43EES2_ILm44EES2_ILm45EES2_ILm46EES2_ILm47EES2_ILm48EES2_ILm49EES2_ILm50EES2_ILm51EES2_ILm52EES2_ILm53EES2_ILm54EES2_ILm55EES2_ILm56EES2_ILm57EES2_ILm58EES2_ILm59EES2_ILm60EES2_ILm61EES2_ILm62EES2_ILm63EES2_ILm64EES2_ILm65EES2_ILm66EES2_ILm67EES2_ILm68EES2_ILm69EES2_ILm70EES2_ILm71EES2_ILm72EES2_ILm73EES2_ILm74EES2_ILm75EES2_ILm76EES2_ILm77EES2_ILm78EES2_ILm79EES2_ILm80EES2_ILm81EES2_ILm82EES2_ILm83EES2_ILm84EES2_ILm85EES2_ILm86EES2_ILm87EES2_ILm88EES2_ILm89EES2_ILm90EES2_ILm91EES2_ILm92EES2_ILm93EES2_ILm94EES2_ILm95EES2_ILm96EES2_ILm97EES2_ILm98EES2_ILm99EES2_ILm100EES2_ILm101EES2_ILm102EES2_ILm103EES2_ILm104EES2_ILm105EES2_ILm106EES2_ILm107EES2_ILm108EES2_ILm109EES2_ILm110EES2_ILm111EES2_ILm112EES2_ILm113EES2_ILm114EES2_ILm115EES2_ILm116EES2_ILm117EES2_ILm118EES2_ILm119EES2_ILm120EES2_ILm121EES2_ILm122EES2_ILm123EES2_ILm124EES2_ILm125EES2_ILm126EES2_ILm127EES2_ILm128EES2_ILm129EES2_ILm130EES2_ILm131EES2_ILm132EES2_ILm133EES2_ILm134EES2_ILm135EES2_ILm136EES2_ILm137EES2_ILm138EES2_ILm139EES2_ILm140EES2_ILm141EES2_ILm142EES2_ILm143EES2_ILm144EES2_ILm145EES2_ILm146EES2_ILm147EES2_ILm148EES2_ILm149EES2_ILm150EES2_ILm151EES2_ILm152EES2_ILm153EES2_ILm154EES2_ILm155EES2_ILm156EES2_ILm157EES2_ILm158EES2_ILm159EES2_ILm160EES2_ILm161EES2_ILm162EES2_ILm163EES2_...

Will dig as to why the demangler stage croaks on this though!

It's not the demangler. As well as having that one giant line there are many labels and I think there's some interaction between the O(N^2 or worse) "find dead code" and this...

Also @bugwelle I don't see GCC taking 100% CPU when I run locally - are you sure it took 100% CPU? GCC runs just fine and completes, and then node.js chokes on the input.

Ok traced back to a very dodgy regular expression in AsmParser.js:
/..(entry|func)\s+(?:([^)])\s*)?([.a-zA-Z_$][a-zA-Z0-9$_.]*)($/
Which takes an astronomically long time on the long line :)  Will fix...

Turns out starting your regex with .* isn't a great idea for performance...

Also @bugwelle I don't see GCC taking 100% CPU when I run locally - are you sure it took 100% CPU? GCC runs just fine and completes, and then node.js chokes on the input.

Sorry, my bad. I must have mixed it up with another process that was running on my machine (I just had a quick look at it using htop). Only node had a high workload. :)

There are seven Regex in ./lib that start with const re = /.* .... Can't we simply remove .* as the regex will essentially still be the same (it just won't match the characters before the actual regex which isn't a problem as we don't process them anyway). Maybe I'm missing edge cases but that's what I think with my current understanding of JavaScript regex. :)

@bugwelle absolutely. Unless the match needs the whole matching line then it's equivalent. In 478ac62 I do the main ones that matter for this bug.

Compiling the code sample now works as expected.
Thanks!
For the record, I've readded the code to the issue
@bugwelle let us know if we can help in something if you decide to open a PR for those remaining regexes :)


link-out to ImmuneRegulation URL

Add a cross reference to the Immune Regulation for gene symbols with the following URL:
The URL should look like this: https://immuneregulation.mssm.edu/metadata-all.html?s=[GeneName] such as https://immuneregulation.mssm.edu/metadata-all.html?s=STAT1

OK, I see what you mean now.  Sure, why not a new box.

Looks good, works as expected.

Still works.  Closing issue.


use for circular widgets

Hi. Thanks for sharing your library, how to use that for circular widgets and use that for listview items?
thanks

Looking for it aswell, have you find the answer?

MaterialRippleLayout.on(v)
.rippleColor(App.RIPPLE_COLOR)
.rippleAlpha(0.5f)
.rippleHover(true)
.rippleOverlay(true)
.rippleRoundedCorners(25)
.create();


collapse missingval when constructing rasterstack if possible

Before this PR, a call to RasterStack will always return a stack where missingval is a NamedTuple, which looks kind of clunky if all rasters in a big stack have the same missingval.
This just checks if all missingvals are the same, and sets the missingval to just a value if that's the case.

This should all be covered by existing tests, so good to go as far as I'm concerned


Explore using sphinx-jupyter

I was looking into sphinx-jupyter and I think it might be useful as a part of our build chain. It specifies directives for parsing and running cells as a doctree transformation, and I think expects people will directly use jupyter directives as opposed to using jupyter notebooks as inputs.
Three ways I could imagine using it (off top of my head)

if we end up doing execution within sphinx we could try utilizing this directly. In this case we might want to add some caching somehow
if we keep execution pre-sphinx we could try seeing if jupyter-sphinx would be friendly to allowing a read-only ipynb parser that uses the myst markdown parser under the hood.
if they aren't OK with that, we can take heavy inspiration or reuse components from jupyter sphinx in how we render cells, outputs, etc.

I wonder if @akhmerov has thoughts on that!

Not to pick a fight lol, but I feel we are kind of superseding this package. So the take heavy inspiration option seems the way forward for me.

FYI @choldgraf if you could label new issues and (if applicable) add them to the milestone 😁

I think it somewhat depends on what functionality is inside myst and what is in sphinx-jupyter.
Eg I could a case for "keep myst jupyter agnostic, it is just a better markdown parser and bridge to sphinx". Then, put the ipynb parser inside of sphinx-jupyter and have it leverage myst. There is nothing inherently jupyter-focused about myst, right? I think the main clash would be that we may not actually want to use sphinx-jupyter to run the notebook cells

As I've mentioned before, I would like to see the jupyter-execute directive split into jupyter-execute and jupyter-output, so that (a) the two concepts are not conflated and (b) you can have greater control over the outputs, even possibly having a jupyter-output inline role.
Going from a notebook to a text document, this is fairly easy; when you reach a code cell, you just write both directives (execute, then output) after each other (with options based on the cell metadata).
Going from a text document to a notebook is a bit trickier (but not that much); when you reach an execute block, you need to check if there is an output block directly below it, then both of these are extracted, and the code cell contents and metadata constructed appropriately.

@chrisjsewell maybe something we can pursue in this repo, and then see if it makes sense to upstream there later on?

maybe something we can pursue in this repo, and then see if it makes sense to upstream there later on

Yeh that was my feeling. Obviously if we just make sure the separate components are as modular/isolated as possible, then it shouldn't be difficult to upstream at a later point.

Ah - this in particular looks useful https://github.com/jupyter/jupyter-sphinx/blob/eee6ecb9ac80002c9ae72b6eb7827f315e6b5b3b/jupyter_sphinx/execute.py#L540

It is, but its also an example of where you can run into trouble; trying to convert your outputs directly to docutils after execution.
If you look here https://github.com/jupyter/jupyter-sphinx/blob/eee6ecb9ac80002c9ae72b6eb7827f315e6b5b3b/jupyter_sphinx/execute.py#L628,
they assume that all text/latex output is math. This works e.g. for HTML output of sympy, but for latex/PDF output, for example with pandas, you want to use the text/latex as raw.

To clarify, you mean "as opposed to figuring out the right output type when you are at the rendering stage"?

Well I'm not sure off hand what the exact solution to this is. But at a minimum you need to try and make sure you are not hard-coding anything that is output specific, maybe something like:
```{jupyter-execute}
from pandas import DataFrame
DataFrame({"a": [1, 2, 3})
```
```{jupyter-output}
---
render: raw_text
---
```

my initial concern with using special directives for execution is I think it seems more natural to just write code blocks rather than needing to remember to add a jupyter-execute block. I think the following is easier to remember:
```{python}
code
```
vs
```{jupyter-execute}
---
language: python
---
code
```

essentially the {python} brackets indicate executability and python would just be highlighted markdown right (as per standard commonmark). I guess the notebook will have a default language for code blocks that have no language specified - so could be convinced otherwise if there are benefits to special code directives for execution.
I also think a more generic name would be better such as code and code-output perhaps.
I think an output style directive for metadata etc. could be really useful.

also just a note that using things like
```{python}
```

is closer in spirit to what rmarkdown does...

Except... jupyter is language agnostic. You then have to have a separate directive for every potential language (python, julia, ...)

and {python} would just be highlighted markdown right

Well standard commonmark syntax highlighters won't handle this. Give it a try:
def func(a=1):
    print("hallo")

For static syntax highlighters though, it would be necessary for the language to be stated. So maybe:
```{execute} python
a = 1
```

they assume that all text/latex output is math.

That's not by preference, see also here. I'd love to generalize that, but sphinx only has a math or raw latex directive. At the same time, it seems that properly treating text/latex in all generality would require a latex parser, which would be absolutely marvelous, but is beyond this project's budget :) Jupyter itself doesn't do a great job treating text/latex:

There are a lot of questions to address here, quite related to https://github.com/ExecutableBookProject/meta/issues/21.
First of all jupyter-sphinx has, as you both saw, rather minimal codebase, largely consisting of sphinx boilerplate. So if any cool feature related to execution is implemented here, it should be easy to take over or vice versa. Of course having one canonical way would be my preference (whether using jupyter-sphinx or other myst parser), but that's where the details become important.

jupyter-sphinx is a sphinx extension. I imagine there's a group of users that would prefer sticking with sphinx all the way, and for whom switching to a tool that wraps sphinx wouldn't be optimal.
I don't consider the set of directives jupyter-sphinx defines optimal or stable. It is a pragmatic choice to have something available.
specifying execution language per directive doesn't map well on the jupyter concept of all code cells having the same language. Instead jupyter-sphinx has explicit kernel control. It's also more typing, and therefore may make the project less appealing to users.
I am unhappy with sphinx caching, see https://github.com/jupyter/jupyter-sphinx/issues/31, https://github.com/jupyter/jupyter-sphinx/issues/99. I'd love to improve on that, but not sure how (I tried reading sphinx docs, but to no avail yet).

Going from a text document to a notebook is a bit trickier (but not that much); when you reach an execute block, you need to check if there is an output block directly below it, then both of these are extracted, and the code cell contents and metadata constructed appropriately.

The AST jupyter-sphinx generates includes outputs as children, not siblings of the execute node, but I don't see strong arguments either way.

Another consideration is how we treat outputs. Any code cell may have multiple of those, and often including all doesn't produce a meaningful document since they are redundant. The immediate follow-up question then is: who decides what outputs are necessary, and on what level this is tuned by the user?

Then, put the ipynb parser inside of sphinx-jupyter and have it leverage myst.

Not sure I understand this: jupyter-sphinx has no parser, most of the codebase is a docutils AST transformer.

@akhmerov firstly jupyter-sphinx is a great start, I'm certainly not rubbishing it lol. Having said that, at present the ExecuteJupyterCells transform conflates quite a lot of logic, which I think can be modularised.
For context, the Sphinx build phases and Sphinx core events can be summarised as:
1. event.config-inited(app,config)
2. event.builder-inited(app)
3. event.env-get-outdated(app, env, added, changed, removed)
4. event.env-before-read-docs(app, env, docnames)

for docname in docnames:
    5.  event.env-purge-doc(app, env, docname)
    if doc changed and not removed:
        6. source-read(app, docname, source)
        7. run parser: text -> docutils.document
        8. apply transforms (by priority): docutils.document -> docutils.document
        9. event.doctree-read(app, doctree)

10. event.env-updated(app, env)
11. event.env-check-consistency(app, env)

for docname in docnames:
    12. apply post-transforms (by priority): docutils.document -> docutils.document
    13. event.doctree-resolved(app, doctree, docname)

14. call builder

15. event.build-finished(app, exception)

At present everything is happening with the  ExecuteJupyterCells transform in (8).
What I think would be better is that; in (7/8) all execution chains are collected (e.g. kernel -> code cell -> code cell -> ...). Then in (10), these execution chains are parsed to an 'execution class/function' which can be specified as an entry_point and a sphinx config value for the name, so that its easy to swap it out with a different function (for example the super fancy parallel process executor @choldgraf is going to write in this project 😆). This function would then run all the code, as it sees fit, and return a 'database/mapping' of code cells ids -> outputs, which is accessible by the app.env. This would mean that any post-transform would have access to it, even ones that are written in separate sphinx extensions. At (12) there would then be a post-transform that injected the outputs into the doctrees, converting them into docutils elements as it sees fit.

Thanks for the explanation! Your proposal sounds like idea, and like what jupyter-sphinx should do.

specifying execution language per directive doesn't map well on the jupyter concept

Agreed, code-cells do not actually have a defined language until they are linked to a kernel. However, as I've mentioned, for syntax highlighting (which can only be based on static regexes  microsoft/language-server-protocol#18) it is necessary to do this. So having an optional argument for the language name (even if the directive doesn't actually do anything with it!) would be necessary.

@chrisjsewell you should contribute that summary to the sphinx docs, I think it is super helpful.

The way I view the overall decision tree is as follows:

Decide if the execution will happen within the sphinx pipeline or outside.
Executing within sphinx is my mild preference since there needs to be at least one package that executes. I am not sure whether this is sufficient for the scope of the executable book project.
If the decision is to execute within sphinx, then I expect that one package for execution is sufficient, can be jupyter-sphinx, can be a different one with jupyter-sphinx deprecated, can be another one with jupyter-sphinx fully rewritten from scratch.

Does this make sense?


Idva5 1185 matomo analytics updates

Removed duplicate urls showing in Matomo
Updated analytics for unincorporated and sole trader journeys
Linting fixes
Added missing Welsh translations for what is your role.

CI: No security warnings found

CI: No security warnings found

CI: No security warnings found


Panning while zooming #116

Ref. issue #116

Seem good, gonna test it and then I will be happy to merge.

After some tests, seems like the issue persists with this tackle.

Since it seems to not resolve the problem, I will close this PR for now. If you think something has not been considered or somehow it has a misunderstanding, feel free to reopen it.


issue trying to use fifo for inputs

I have plenty of data to process and limited disk space.
not sure it is me but when I merge for both paired reads the four lanes first to a single fq.gz each it works fine
but
when I want to save disk by merging the 4 fq.gz lanes to a fifo in background and use the fifo as -i and -I it never starts to output (like the 2 fifo would not be read efficiently!)
Any idea would be very welcome
Here is part of my code
# cleanup if exists
  rm merged_${pfx}_R1.fq.gz merged_${pfx}_R2.fq.gz

  # create named pipes
  mkfifo merged_${pfx}_R1.fq.gz merged_${pfx}_R2.fq.gz

  # merge 4 lanes of read1 and read2 to two fifo
  cat ${pfx}_L00{1..4}_R1_001.fastq.gz > merged_${pfx}_R1.fq.gz &
  cat ${pfx}_L00{1..4}_R2_001.fastq.gz > merged_${pfx}_R2.fq.gz &

  # run fastp
  cmd="fastp \
    -w ${nthr} \
    -i merged_${pfx}_R1.fq.gz \
    -o ../filt_reads/${pfx}_R1.fq.gz \
    -I merged_${pfx}_R2.fq.gz \
    -O ../filt_reads/${pfx}_R2.fq.gz \
    -q 15 \
    -u 40 \
    -R \"${pfx} fastp report\" \
    -h ../filt_reads/${pfx}_fastp_report.html \
    -j ../filt_reads/${pfx}_fastp.json \
    --failed_out ../filt_reads/${pfx}_fastp_failed.fq.gz \
    >> ../filt_reads/${pfx}_fastp_log.txt 2>&1"

  echo "# ${cmd}"

  eval ${cmd} && \
    rm merged_${pfx}_R1.fq.gz merged_${pfx}_R2.fq.gz

note, the echo cmd shows a perfectly nice command

replacing -i merged_${pfx}_R1.fq.gz by -i <(cat merged_${pfx}_R1.fq.gz) (same for -I) does not help either as the fifo is not anymore identified as a proper fastq.gz input (I think!)
so a general comment: how can I use piping in to get the two input files (I could implement the cat directly here without fifo)?