Aerospace not registering key presses on letter keys

Describe the bug
Aerospace works great for a majority of the time. It suddenly stops tracking keyboard letter and number keys but chorded keys with modifiers will still work. It seems to have been caused by connecting to a monitor. I don't have a repo steps, but when it happens, it happens and it's not clear how to fix it.
Known solution
I stopped using Aerospace for now because it's not reliable enough at the moment. I wish I could help in anyway to improve it's reliability.
Steps to Reproduce
Use my config for a while and use an external monitor it'll eventually happen (maybe):
# Place a copy of this config to ~/.aerospace.toml
# After that, you can edit ~/.aerospace.toml to your liking

# It's not necessary to copy all keys to your config.
# If the key is missing in your config, "default-config.toml" will serve as a fallback

# You can use it to add commands that run after login to macOS user session.
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
after-login-command = []

# You can use it to add commands that run after AeroSpace startup.
# 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = []

# Start AeroSpace at login
start-at-login = false

# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true

# Possible values: tiles|accordion
default-root-container-layout = 'tiles'

# Possible values: horizontal|vertical|auto
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
#               tall monitor (anything higher than wide) gets vertical orientation
default-root-container-orientation = 'auto'

# Possible values: (qwerty|dvorak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
key-mapping.preset = 'qwerty'

# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
# The 'accordion-padding' specifies the size of accordion padding
# You can set 0 to disable the padding feature
accordion-padding = 8

# Mouse follows focus when focused monitor changes
# Drop it from your config, if you don't like this behavior
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
# on-focused-monitor-changed = ['move-mouse window-lazy-center']
# on-focus-changed = ['move-mouse window-force-center']

# Gaps between windows (inner-*) and between monitor edges (outer-*).
# Possible values:
# - Constant:     gaps.outer.top = 8
# - Per monitor:  gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
#                 In this example, 24 is a default value when there is no match.
#                 Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
#                 See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
[gaps]
inner.horizontal = 0
inner.vertical =   0
outer.left =       0
outer.bottom =     0
outer.top =        0
outer.right =      0

#
# Bindings
#

# All possible keys:
# - Letters.        a, b, c, ..., z
# - Numbers.        0, 1, 2, ..., 9
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
# - F-keys.         f1, f2, ..., f20
# - Special keys.   minus, equal, period, comma, slash, backslash, quote, semicolon, backtick,
#                   leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
#                   keypadMinus, keypadMultiply, keypadPlus
# - Arrows.         left, down, up, right

# All possible modifiers: cmd, alt, ctrl, shift

# All possible commands: https://nikitabobko.github.io/AeroSpace/commands

# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always presented
[mode.main.binding]
ctrl-alt-cmd-shift-space = ['mode alt']

# ctrl-alt-cmd-shift-h = ['focus --boundaries-action stop left', 'move-mouse window-force-center']
# ctrl-alt-cmd-shift-j = ['focus --boundaries-action stop down', 'move-mouse window-force-center']
# ctrl-alt-cmd-shift-k = ['focus --boundaries-action stop up', 'move-mouse window-force-center']
# ctrl-alt-cmd-shift-l = ['focus --boundaries-action stop right', 'move-mouse window-force-center']
# ctrl-alt-cmd-shift-u = 'workspace prev'
# ctrl-alt-cmd-shift-i = 'workspace next'
# ctrl-alt-cmd-shift-p = ['focus-monitor prev', 'move-mouse window-force-center']
# ctrl-alt-cmd-shift-n = ['focus-monitor next', 'move-mouse window-force-center']

[mode.alt.binding]
# ctrl-alt-cmd-shift-space = ['mode main']
space = ['mode main']
esc = ['mode main']
backtick = ['reload-config', 'mode main']

# You can uncomment this line to open up terminal with alt + enter shortcut
# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
# alt-enter = 'exec-and-forget open -n /System/Applications/Utilities/Terminal.app'

# See: https://nikitabobko.github.io/AeroSpace/commands#layout
slash = 'layout horizontal vertical'
# Stack or unstack windows
s = 'layout tiles accordion'

#
# Navigation
#

# See: https://nikitabobko.github.io/AeroSpace/commands#focus
h = ['focus --boundaries-action stop left', 'move-mouse window-force-center']
j = ['focus --boundaries-action stop down', 'move-mouse window-force-center']
k = ['focus --boundaries-action stop up', 'move-mouse window-force-center']
l = ['focus --boundaries-action stop right', 'move-mouse window-force-center']
u = 'workspace prev'
i = 'workspace next'
p = ['focus-monitor prev', 'move-mouse monitor-force-center']
n = ['focus-monitor next', 'move-mouse monitor-force-center']

ctrl-alt-cmd-shift-h = ['workspace prev']
ctrl-alt-cmd-shift-l = ['workspace next']
ctrl-alt-cmd-shift-k = ['focus-monitor prev', 'move-mouse window-force-center']
ctrl-alt-cmd-shift-j = ['focus-monitor next', 'move-mouse window-force-center']

c = ['move-mouse window-force-center']

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
1 = 'workspace 1'
2 = 'workspace 2'
3 = 'workspace 3'
4 = 'workspace 4'
5 = 'workspace 5'
6 = 'workspace 6'
7 = 'workspace 7'
8 = 'workspace 8'
9 = 'workspace 9'

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
tab = 'workspace-back-and-forth'

#
# Moving
#

# See: https://nikitabobko.github.io/AeroSpace/commands#move
shift-h = 'move left'
shift-j = 'move down'
shift-k = 'move up'
shift-l = 'move right'
shift-u = 'move-node-to-workspace prev'
shift-i = 'move-node-to-workspace next'
shift-p = 'move-workspace-to-monitor prev'
shift-n = 'move-workspace-to-monitor next'

# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
shift-1 = 'move-node-to-workspace 1'
shift-2 = 'move-node-to-workspace 2'
shift-3 = 'move-node-to-workspace 3'
shift-4 = 'move-node-to-workspace 4'
shift-5 = 'move-node-to-workspace 5'
shift-6 = 'move-node-to-workspace 6'
shift-7 = 'move-node-to-workspace 7'
shift-8 = 'move-node-to-workspace 8'
shift-9 = 'move-node-to-workspace 9'

# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
shift-tab = 'move-workspace-to-monitor --wrap-around next'

#
# Resizing
#

# See: https://nikitabobko.github.io/AeroSpace/commands#resize
minus = 'resize smart -64'
equal = 'resize smart +64'
shift-minus = 'resize smart -128'
shift-equal = 'resize smart +128'

#
# Other
#

shift-r = ['flatten-workspace-tree', 'mode alt'] # reset layout
#s = ['layout sticky tiling', 'mode alt'] # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
# Toggle fullscreen window
f = ['fullscreen']
# Float window (above)
a = ['layout floating']
# Tile window
t = ['layout tiling']

#
# Modes
#

# See: https://nikitabobko.github.io/AeroSpace/commands#mode
m = 'mode merge'
r =  'mode resize'
w = 'mode workspace'
y = 'mode yank'

[mode.merge.binding]
space = 'mode main'
esc = 'mode alt'
h = ['join-with left', 'mode alt']
j = ['join-with down', 'mode alt']
k = ['join-with up', 'mode alt']
l = ['join-with right', 'mode alt']

[mode.resize.binding]
space = 'mode main'
esc = 'mode alt'
r = 'mode alt'
h = ['resize width -64']
j = ['resize height -64']
k = ['resize height +64']
l = ['resize width +64']
shift-h = ['resize width -8']
shift-j = ['resize height -8']
shift-k = ['resize height +8']
shift-l = ['resize width +8']

[mode.workspace.binding]
space = 'mode main'
esc = 'mode alt'
w = 'mode alt'
h = ['workspace prev', 'move-mouse window-force-center']
l = ['workspace next', 'move-mouse window-force-center']
j = ['focus-monitor next', 'move-mouse window-force-center']
k = ['focus-monitor prev', 'move-mouse window-force-center']
y = 'mode yank-workspace'
shift-h = ['move-node-to-workspace prev']
shift-l = ['move-node-to-workspace next']
shift-k = ['move-node-to-monitor prev']
shift-j = ['move-node-to-monitor next']

[mode.yank.binding]
space = 'mode main'
esc = 'mode alt'
h = ['move-node-to-workspace prev', 'mode alt', 'move-mouse window-force-center']
l = ['move-node-to-workspace next', 'mode alt', 'move-mouse window-force-center']
p = ['move-node-to-monitor prev', 'focus-monitor prev', 'mode alt', 'move-mouse monitor-force-center']
n = ['move-node-to-monitor next', 'focus-monitor next', 'mode alt', 'move-mouse monitor-force-center']

[mode.yank-workspace.binding]
space = 'mode main'
esc = 'mode workspace'
h = ['move-node-to-workspace prev', 'mode workspace', 'move-mouse window-force-center']
l = ['move-node-to-workspace next', 'mode workspace', 'move-mouse window-force-center']
j = ['move-node-to-monitor next', 'mode workspace', 'move-mouse window-force-center']
k = ['move-node-to-monitor prev', 'mode workspace', 'move-mouse window-force-center']
p = ['move-workspace-to-monitor prev', 'focus-monitor prev', 'mode workspace', 'move-mouse monitor-force-center']
n = ['move-workspace-to-monitor next', 'focus-monitor next', 'mode workspace', 'move-mouse monitor-force-center']

#
# Application-specific configurations
#

# [[on-window-detected]]
# run = 'layout floating'

[[on-window-detected]]
if.app-name-regex-substring = 'Code - Insiders|Cursor|Simulator|Warp|Xcode'
run = ['layout tiling', 'move-node-to-workspace 2']

[[on-window-detected]]
if.app-name-regex-substring = 'Sublime Merge'
run = ['layout tiling', 'move-node-to-workspace 3']

[[on-window-detected]]
if.app-name-regex-substring = 'Slack|Mailspring|Calendar|zoom.us'
run = ['layout tiling', 'move-node-to-workspace 4']

[[on-window-detected]]
if.app-name-regex-substring = 'Signal|Discord|Messages'
ru

I'm not sure of the trigger but I think I'm running into the same (or a similar) bug. My alt based Aerospace keybinds with letters weren't working on my newly migrated to M4, so I just spent a bunch of time trying to force the Mac to let through alt/option keys and not use them for special characters. I switched to ctrl as a super key to test though, and it's the same there. All my chorded number hotkeys still work, but anything with a letter isn't working.

my aerospace.toml
```
# Reference: https://github.com/i3/i3/blob/next/etc/config
i3 doesn't have "normalizations" feature that why we disable them here.
But the feature is very helpful.
Normalizations eliminate all sorts of weird tree configurations that don't make sense.
Give normalizations a chance and enable them back.
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true
running this in terminal allows dragging windows by holding ctrl + cmd
defaults write -g NSWindowShouldDragOnGesture -bool true
running this in terminal disables window opening animations
defaults write -g NSAutomaticWindowAnimationsEnabled -bool false
run sketchybar when aerospace starts
after-startup-command = ['exec-and-forget sketchybar']
notify sketchybar about workspace changes
exec-on-workspace-change = ['/bin/bash', '-c',
'sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE'
]
Mouse follows focus when focused monitor changes
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']
[mode.main.binding]
See: https://nikitabobko.github.io/AeroSpace/goodness#open-a-new-window-with-applescript
alt-enter = 'exec-and-forget open -na alacritty'
alt-left = 'focus left'
alt-down = 'focus down'
alt-up = 'focus up'
alt-right = 'focus right'
alt-shift-left = 'move left'
alt-shift-down = 'move down'
alt-shift-up = 'move up'
alt-shift-right = 'move right'
Consider using 'join-with' command as a 'split' replacement if you want to enable normalizations
alt-h = 'join-with down'
alt-v = 'join-with right'
alt-f = 'fullscreen'
alt-s = 'layout v_accordion' # 'layout stacking' in i3
alt-w = 'layout h_accordion' # 'layout tabbed' in i3
alt-e = 'layout tiles horizontal vertical' # 'layout toggle split' in i3
alt-q = 'close --quit-if-last-window'
alt-shift-space = 'layout floating tiling' # 'floating toggle' in i3
Not supported, because this command is redundant in AeroSpace mental model.
See: https://nikitabobko.github.io/AeroSpace/guide#floating-windows
#alt-space = 'focus toggle_tiling_floating'
focus parent/focus child are not yet supported, and it's not clear whether they
should be supported at all https://github.com/nikitabobko/AeroSpace/issues/5
alt-a = 'focus parent'
alt-1 = 'workspace 1'
alt-2 = 'workspace 2'
alt-3 = 'workspace 3'
alt-4 = 'workspace 4'
alt-5 = 'workspace 5'
alt-6 = 'workspace 6'
alt-7 = 'workspace 7'
alt-8 = 'workspace 8'
alt-9 = 'workspace 9'
alt-0 = 'workspace 10'
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
alt-shift-3 = 'move-node-to-workspace 3'
alt-shift-4 = 'move-node-to-workspace 4'
alt-shift-5 = 'move-node-to-workspace 5'
alt-shift-6 = 'move-node-to-workspace 6'
alt-shift-7 = 'move-node-to-workspace 7'
alt-shift-8 = 'move-node-to-workspace 8'
alt-shift-9 = 'move-node-to-workspace 9'
alt-shift-0 = 'move-node-to-workspace 10'
alt-shift-x = 'move-workspace-to-monitor --wrap-around next'
alt-shift-c = 'reload-config'
alt-r = 'mode resize'
[mode.resize.binding]
h = 'resize width -50'
j = 'resize height +50'
k = 'resize height -50'
l = 'resize width +50'
enter = 'mode main'
esc = 'mode main'
disable if you need to sight read key combos while in qwerty layout
[key-mapping]
preset = 'dvorak'
</details>

I'm on `AeroSpace v0.15.2-Beta b6cf8277` and `Sequoia 15.1 (24B2082)`.

I started seeing the same issue after adding colemak-dh remapping. for some reason none of the alt-[char] binding are working. I tried using different modifiers like alt-ctrl-, cmd-ctrl-, alt-shift- and other, none of them are working now.

I just stumbled across this, and have found another peculiarity:
If I add
alt-z = 'fullscreen'

at the very end of my aerospace.toml, AeroSpace does not register the keypress.
But if I move the binding up, just below all the
alt-1 = 'workspace 1'
...
# alt-z = 'workspace Z'

binds, the keypress registers.

Something related for me as well, e.g. alt+f = 'fullscreen' suddenly not working anymore (and a lot of other combinations stopped working -- mainly letter-based combinations, e.g. alt+h, alt+j, alt+k, alt+l is not working at all), but alt+z = 'fullscreen' does indeed work (added on about the same line as alf+f`-binding (see config below).
Issue detected in 0.16.0, 0.16.1 and now 0.16.2. Also updated macOS to 15.1.1 (could be related, but sadly I've already upgraded all my macOS instances, so I can't verify if this was the case).
aerospace CLI client version: 0.16.2-Beta 21336ad382539b35fdc94b4fbd55408e10b101f8
AeroSpace.app server version: 0.16.2-Beta 21336ad382539b35fdc94b4fbd55408e10b101f8

└$ sw_vers
ProductName:            macOS
ProductVersion:         15.1.1
BuildVersion:           24B91

# Place a copy of this config to ~/.aerospace.toml
# After that, you can edit ~/.aerospace.toml to your liking

# You can use it to add commands that run after login to macOS user session.
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
after-login-command = []

# You can use it to add commands that run after AeroSpace startup.
# 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = []

# Start AeroSpace at login
start-at-login = false

# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true
enable-normalization-opposite-orientation-for-nested-containers = true

# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
# The 'accordion-padding' specifies the size of accordion padding
# You can set 0 to disable the padding feature
accordion-padding = 30

# Possible values: tiles|accordion
default-root-container-layout = 'tiles'

# Possible values: horizontal|vertical|auto
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
#               tall monitor (anything higher than wide) gets vertical orientation
default-root-container-orientation = 'auto'

# Mouse follows focus when focused monitor changes
# Drop it from your config, if you don't like this behavior
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
# Fallback value (if you omit the key): on-focused-monitor-changed = []
on-focused-monitor-changed = ['move-mouse monitor-lazy-center']

# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag
# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key
# Also see: https://nikitabobko.github.io/AeroSpace/goodness#disable-hide-app
automatically-unhide-macos-hidden-apps = false

# Possible values: (qwerty|dvorak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
[key-mapping]
preset = 'qwerty'

# Gaps between windows (inner-*) and between monitor edges (outer-*).
# Possible values:
# - Constant:     gaps.outer.top = 8
# - Per monitor:  gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
#                 In this example, 24 is a default value when there is no match.
#                 Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
#                 See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
[gaps]
inner.horizontal = 0
inner.vertical =   0
outer.left =       0
outer.bottom =     0
outer.top =        0
outer.right =      0

# 'main' binding mode declaration
# See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes
# 'main' binding mode must be always presented
# Fallback value (if you omit the key): mode.main.binding = {}
[mode.main.binding]

# All possible keys:
# - Letters.        a, b, c, ..., z
# - Numbers.        0, 1, 2, ..., 9
# - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9
# - F-keys.         f1, f2, ..., f20
# - Special keys.   minus, equal, period, comma, slash, backslash, quote, semicolon, backtick,
#                   leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab
# - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual,
#                   keypadMinus, keypadMultiply, keypadPlus
# - Arrows.         left, down, up, right

# All possible modifiers: cmd, alt, ctrl, shift

# All possible commands: https://nikitabobko.github.io/AeroSpace/commands

# See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget
# You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3)
# alt-enter = '''exec-and-forget osascript -e '
# tell application "Terminal"
#     do script
#     activate
# end tell'
# '''

# See: https://nikitabobko.github.io/AeroSpace/commands#layout
alt-slash = 'layout tiles horizontal vertical'
ctrl-comma = 'layout tiles horizontal vertical'
alt-comma = 'layout accordion horizontal vertical'

# See: https://nikitabobko.github.io/AeroSpace/commands#focus
alt-h = 'focus left'
alt-j = 'focus down'
alt-k = 'focus up'
alt-l = 'focus right'

# See: https://nikitabobko.github.io/AeroSpace/commands#move
alt-shift-h = 'move left'
alt-shift-j = 'move down'
alt-shift-k = 'move up'
alt-shift-l = 'move right'

# See: https://nikitabobko.github.io/AeroSpace/commands#resize
alt-shift-minus = 'resize smart -50'
alt-shift-equal = 'resize smart +50'

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
alt-1 = 'workspace 1'
alt-2 = 'workspace 2'
alt-3 = 'workspace 3'
alt-4 = 'workspace 4'
alt-5 = 'workspace 5'
alt-6 = 'workspace 6'
# alt-7 = 'workspace 7'
# alt-8 = 'workspace 8'
# alt-9 = 'workspace 9'
alt-a = 'workspace A' # In your config, you can drop workspace bindings that you don't need
alt-b = 'workspace B'
alt-c = 'workspace C'
alt-d = 'workspace D'
alt-e = 'workspace E'
# alt-f = 'workspace F'
alt-g = 'workspace G'
alt-i = 'workspace I'
alt-m = 'workspace M'
alt-n = 'workspace N'
alt-o = 'workspace O'
alt-p = 'workspace P'
alt-q = 'workspace Q'
alt-r = 'workspace R'
alt-s = 'workspace S'
alt-t = 'workspace T'
alt-u = 'workspace U'
alt-v = 'workspace V'
alt-w = 'workspace W'
alt-x = 'workspace X'
alt-y = 'workspace Y'
# alt-z = 'workspace Z'

# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
alt-shift-1 = 'move-node-to-workspace 1'
alt-shift-2 = 'move-node-to-workspace 2'
alt-shift-3 = 'move-node-to-workspace 3'
alt-shift-4 = 'move-node-to-workspace 4'
alt-shift-5 = 'move-node-to-workspace 5'
alt-shift-6 = 'move-node-to-workspace 6'
# alt-shift-7 = 'move-node-to-workspace 7'
# alt-shift-8 = 'move-node-to-workspace 8'
# alt-shift-9 = 'move-node-to-workspace 9'
alt-shift-a = 'move-node-to-workspace A'
alt-shift-b = 'move-node-to-workspace B'
alt-shift-c = 'move-node-to-workspace C'
alt-shift-d = 'move-node-to-workspace D'
alt-shift-e = 'move-node-to-workspace E'
# alt-shift-f = 'move-node-to-workspace F'
alt-shift-g = 'move-node-to-workspace G'
alt-shift-i = 'move-node-to-workspace I'
alt-shift-m = 'move-node-to-workspace M'
alt-shift-n = 'move-node-to-workspace N'
alt-shift-o = 'move-node-to-workspace O'
alt-shift-p = 'move-node-to-workspace P'
alt-shift-q = 'move-node-to-workspace Q'
alt-shift-r = 'move-node-to-workspace R'
alt-shift-s = 'move-node-to-workspace S'
alt-shift-t = 'move-node-to-workspace T'
alt-shift-u = 'move-node-to-workspace U'
alt-shift-v = 'move-node-to-workspace V'
alt-shift-w = 'move-node-to-workspace W'
alt-shift-x = 'move-node-to-workspace X'
alt-shift-y = 'move-node-to-workspace Y'
# alt-shift-z = 'move-node-to-workspace Z'

# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
alt-tab = 'workspace-back-and-forth'
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
alt-shift-tab = 'move-workspace-to-monitor --wrap-around next'

# esod
# ---

ctrl-alt-cmd-space = 'layout floating tiling'
ctrl-shift-space = 'layout horizontal vertical'

# See: https://nikitabobko.github.io/AeroSpace/commands#resize
ctrl-shift-l = 'move-node-to-monitor right --focus-follows-window'
ctrl-shift-h = 'move-node-to-monitor left --focus-follows-window'

# See: https://nikitabobko.github.io/AeroSpace/commands#balance-sizes
ctrl-alt-space = 'balance-sizes'
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
ctrl-alt-k = 'resize smart +50'
ctrl-alt-j = 'resize smart -50'
# same, but more size
ctrl-alt-h = 'resize smart -350'
ctrl-alt-l = 'resize smart +350'
# fullscreen
alt-f = 'fullscreen'
alt-z = 'fullscreen'

alt-shift-esc = 'mode service'

# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = 'mode service'

# 'service' binding mode declaration.
 Fresh install on Saturday and non of the alt-* commands are working

I am experiencing this intermittently, but once it happens, it requires a reboot to be fixed.  Could this be something within macOS?  I have attempted to look through fs_usage logs, as well as utilize tools such as Shortcut Detector to determine if anything was getting caught in between, but with no luck.  At some point, the alt combinations just fail to be caught by aerospace, even after a config reload, and complete stop and start of the application.  At that point, alt keys work regularly, in any application they are used in, providing the correct shortcuts for that particular application.  I have no other applications that claim the use of that key at a global level.

What I realized is that the modes (like service mode or any custom mode we add) are not being cleared. The app stays on service mode or app mode or any mode after we run a command, even if we run it by adding mode main as the last command.
You can see that by looking at the menubar and noticing the [s] added to the numbers. So the hotkeys become the ones for that command, hence why the main one does not work.
And by restart, you are effectively forcing it back to main mode

Restarting doesn't fix the issue I reported. Something is persistent with the issue where it wont register letter keys anymore (though keys pressed with a modifier key are captured) if I remember correctly.

You can see that by looking at the menubar and noticing the [s] added to the numbers. So the hotkeys become the ones for that command, hence why the main mode bindings don't work.

This is unfortunately not what I am experiencing.  If that were the case, a restart of the application itself should fix it, but it doesn't.  I need to reboot my system entirely for it to work properly again.  The mode seems to be in normal mode when this happens.  The alt combinations just don't work (except for alt tab, which does work switching to the previous workspace).

I had
alt-space = 'fullscreen'
alt-f = 'fullscreen'

in my aerospace config, the alt-space never used to work, but now it works, but alt-f is not working anymore, also not if i comment the alt-space. Alt+ number also does not work anymore.

I had skhd running as well, but killing the process did not fix it. I know uninstalled skhd. Will report back in some time on if this fixes it for me.
Can also confirm that rebooting the computer fixes the shortcut issues for some time.

FWIW, I have the same problem. I was working along configuring Aerospace things earlier this morning, and just when I sat down to start doing some real work I found that shortcuts from the docs config like alt-, and alt-/ don't work anymore. Others with alt work fine -- it seems quite random.
One thing I can add to everybody else's descriptions. I have a setup for multi-monitor that uses modes. Like this:
ctrl-alt-f1 = 'mode wa'
ctrl-alt-f2 = 'mode wb'
ctrl-alt-f3 = 'mode wc'

ctrl-shift-f1 = 'mode towa'
ctrl-shift-f2 = 'mode towb'
ctrl-shift-f3 = 'mode towc'

[mode.wa.binding]
f1 = ['workspace a1', 'mode main']
f2 = ['workspace a2', 'mode main']
f3 = ['workspace a3', 'mode main']
f4 = ['workspace a4', 'mode main']
f5 = ['workspace a5', 'mode main']
f6 = ['workspace a6', 'mode main']
f7 = ['workspace a7', 'mode main']
f8 = ['workspace a8', 'mode main']
f9 = ['workspace a9', 'mode main']
esc = 'mode main'

...

Now, before the problem occurred today I had the keys in the [mode.wa.binding] using just numeric 1, 2, 3, ... and it worked great. Now the problem with the alt bindings has started, the number keys were not working in the mode anymore and I changed them to F keys which works correctly at the moment.
I'm on Sequoia 15.2, but I was also there this morning when all was good. I double checked for things like Hammerspoon and skhd since I had them installed before, but I didn't find anything.
I guess Aerospace could use a "debug keyboard shortcuts" mode where it outputs on the console what keyboard shortcuts it can "see" -- that would make it a bit easier to try around with various running apps and see if any specific one interrupts the correct recognition of keyboard shortcuts.

Could this potentially have something to do with the number of workspaces available to use?
Upon initially installing, I left the default config as-is with all of the pre-defined workspaces, 0-9 and a-z.  I noticed after switching back and forth between workspaces quickly, the switch would start to slow down, and at some point, it would be so behind that I could not even open the menu in the top bar for aerospace until I gave it time to catch up.  At this time, I could not use any key bindings, however whatever key binds I pushed would seemingly get added to the queue and be performed in sequence whenever aerospace caught up.
Thinking about this, I removed most of the workspaces keybindings from the config and left only those which I actually use (about 5).  After doing this, workspace switches are much faster.  To me this seems like an un-optomized process lurking in the workspace switching logic.  Can't say if it is the cause of the original issue here, but something to consider

I found something pretty interesting today: the Alt/Option key is used by the Mac for something called the Accessibility Inspector, if and when that feature has been enabled. I never consciously enabled this and I was surprised to find that it was active. I noticed this first because when I pressed and held the Alt key, I noticed that there was a cross-shaped mouse cursor being used over certain UI elements. So I went into the system settings at accessibility/shortcuts and then I saw that the feature was active.
The screenshot shows all those checkboxes disabled, but when I first got into this dialog, they were all enabled.

I wonder if I accidentally pressed the keyboard shortcut at some point that's mentioned in the dialog -- I checked keyboard shortcuts in System Settings as well, and it was disabled so I'm not sure that can be the reason.
Hope this helps someone -- I haven't done all possible tests yet, but this is clearly a feature that could interfere with keyboard shortcuts, so I guess it can't hurt to mention it here.

I am having this issue as well. I can reliably break all shortcuts by locking the computer withCMD CTRL Q, AeroSpace will not work until I log out or restart, despite a full application restart and config reload.

This is pretty interesting. I think the issue might involve an app that never actually gets focus, but still sits there waiting for a password input. Generally speaking, on macOS, if password input is focused, global shortcuts don't work, this is a known behavior.
How to reproduce:

Log out, then log back in with Bitwarden set to run at login and waiting for a password.
Lock the session.
Unlock the session.
Shortcuts are now broken.
It seems like at step 4, there’s some hidden password input that “has focus,” causing the OS to disable shortcuts. If you ever bring that app to the foreground, click on somewhere else to defocus password input or kill it, shortcuts start working again, even after another lock/unlock cycle. Removing Bitwarden from the login items also fixes this.

I’m guessing this isn’t limited to Bitwarden. Any app that starts up focused on a password input could cause the same kind of shortcut lockout.

Can confirm! Had NordPass open a window somewhere in the background prompting me for password after logging in. After I made that window go away (logged in), aerospace works again 🎉

I tried to verify this but I can't. This morning my Alt-combos work correctly, and the existence of various login entries fields in other windows does nothing to deter them.

Yep, even with the Touch ID dialog hanging around on one screen, I can still use alt-/ and alt-, to change layouts on another screen.

I can consistently reproduce with NordPass. When you open NordPass the login window gets put in background automatically, so you usually don't notice. But as long as that window is open somewhere alt-<letter> is not functioning. As soon as that window is closed, it all works again

Can confirm! Had NordPass open a window somewhere in the background prompting me for password after logging in. After I made that window go away (logged in), aerospace works again 🎉

Thanks for this, I experienced the same problem. After closing the NordPass window, switching between workspaces worked again 🥇

i can confirm the same behaviour with bitwarden. There are also other people 'complaining' about this issue with is probably not aerospace related.
https://developer.apple.com/forums//thread/763878?src=push&answerId=804374022#804374022


build system: rename WORKSPACE.bazel -> WORKSPACE for bazelisk

.bazelversion isn't being respected
This might be resolved in a newer version of bazelisk since I wasn't able to reproduce https://github.com/skypjack/entt/actions/runs/7189044405/job/19590505377?pr=1097 locally.
(WIP)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (f2c4174) 100.00% compared to head (4f5633c) 100.00%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##            master     #1098   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          150       150
  Lines        25457     25457
=========================================
  Hits         25457     25457

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

Thank you very much!!! ❤


Add Schema constraint to to revs table for docid rev id pair.

Add constraint to schema for revs table which restricts docID and revID pair to be unique. This will prevent insertion of duplicate revisions into the revs table.
To do this migration in the SQLite, the revs table will need to be dropped and recreated. There is previously a migration to one of the other tables. The general sequence is

Rename Current table
Create a new table with constraint
Drop temp table.

We should probably also constrain the attachments table to unique sequence+filename.

Merged as part of #338


Proposed Parsing Updates

Since I've been going through these in such detail I've noticed a few cases where the output doesn't look like what I would expect but I want to clear them with you @jakelever before I make the appropriate changes. I've listed them in a table below

Input XML
Proposed Output
Current Output

incubator containing 5% CO2
incubator containing 5% CO2
incubator containing 5% CO 2

104
10^4
10 4

especially in <italic>CBL</italic>-W802* cells
especially in CBL-W802* cells
especially in CBL -W802* cells

influenced by the presence of allelic variants—GSTP1 Ile105Val (rs1695) and <italic>GSTP1</italic> Ala114Val (rs1138272), with homozygote
influenced by the presence of allelic variants--GSTP1 Ile105Val (rs1695) and GSTP1 Ala114Val (rs1138272), with homozygote
influenced by the presence of allelic variants—GSTP1 Ile 105 Val (rs1695) and GSTP1 Ala 114 Val (rs1138272), with homozygote

breast cancer, clear cell renal carcinoma, and colon cancer<xref ref-type="bibr" rid="b6">6</xref><xref ref-type="bibr" rid="b7">7</xref> <xref ref-type="bibr" rid="b8">8</xref> <xref ref-type="bibr" rid="b9">9</xref> <xref ref-type="bibr" rid="b10">10</xref> have successfully identified
breast cancer, clear cell renal carcinoma, and colon cancer have successfully identified
breast cancer, clear cell renal carcinoma, and colon cancerhave successfully identified

, and in the transgenic\nGATA-1,\nlow mouse
, and in the transgenic GATA-1, low mouse
, and in the transgenicGATA-1, low mouse

we selected an allele (designated <italic>cic</italic><italic>4</italic>) that removes
we selected an allele (designated cic^4) that removes
we selected an allele (designated cic 4) that removes

regulation of the Wnt-β-catenin pathway
regulation of the Wnt-beta-catenin pathway
regulation of the Wnt-β-catenin pathway

the specific HPV+ gene expression
the specific HPV+ gene expression
the specific HPV + gene expression

known to be resistant to 1st and 2nd generation EGFR-TKIS, osimertinib
known to be resistant to 1st and 2nd generation EGFR-TKIS, osimertinib
known to be resistant to 1 st and 2 nd generation EGFR-TKIS, osimertinib

at 37°C in a humidified 5% CO2 incubator
at 37 deg C in a humidified 5% CO2 incubator
at 37°C in a humidified 5% CO 2 incubator

seeded at concentrations below 1 × 106/ml, selected
seeded at concentrations below 1 x 10^6/ml, selected
seeded at concentrations below 1 × 10 6 /ml, selected

9 patients with a <italic>BRAF</italic>-mutant tumour
9 patients with a BRAF-mutant tumour
9 patients with a BRAF -mutant tumour

patients with <italic>BRAF</italic>WT tumours
patients with BRAF-WT tumours
patients with BRAF WT tumours

MSIhi tumours
MSI-hi tumours
MSI hi tumours

upper limit of normal, creatinine clearance ⩾30 ml min−1,
upper limit of normal, creatinine clearance ⩾30 ml min^-1,
upper limit of normal, creatinine clearance ⩾30 ml min −1,

the oncometabolite R(–)-2-hydroxyglutarate at the
the oncometabolite R(-)-2-hydroxyglutarate at the
the oncometabolite R-2-hydroxyglutarate at the

[3H]-Thymidine
[3H]-Thymidine
[ 3 H]-Thymidine

These all look good to me

Another weird case I am not sure what to do with
<sec><title>Title of a thing</title>
paragraph content
</sec>
becomes
<passage>Title of a thing</passage><passage>paragraph content</passage>
which makes less sense when it gets concatenated together tho as
Title of a thingparagraph content
We need whitespace between the two. Should we be adding a trailing single space or new line to the first passage when we parse the XML?

Another weird special case on the superscripts to add to the tests
Compared with <italic>KRAS</italic> wild type and empty vector controls, <italic>KRAS</italic> 10G11 and 11GA12 significantly enhanced in vivo tumor growth
should be
Compared with KRAS wild type and empty vector controls, KRAS 10G11 and 11GA12 significantly enhanced in vivo tumor growth

Input XML
Proposed Output
Current Output

The 2-year invasive disease-free survival rate was 93·9%
The 2-year invasive disease-free survival rate was 93.9%
The 2-year invasive disease-free survival rate was 93*9%


Add the ability to add configs or secrets from files.

@itowlson @bnookala @testforstephen

Like this. Love to merge when we can, and stash an issue to work on stomping.

Comments addressed, please re-check.
Thanks!


Put fonts in namespace

https://github.com/softlayer/sl-ember-components/blob/develop/index.js#L52-L73
Shouldn't have to be putting them in their own root level /fonts directory that then has to be merged into the trees
should be in /sl-ember-components folder like with images, etc

https://github.com/softlayer/sl-ember-components/blob/develop/index.js#L52-L73
Shouldn't have to be putting them in their own root level /fonts directory that then has to be merged into the trees
should be in /sl-ember-components folder like with images, etc


[HUDI-8200] Adding support to configure view storage type with HoodieMetadataTableValidator

Change Logs

Adding support to configure view storage type with HoodieMetadataTableValidator. We are adding two new config params, named "view-storage-type-fs-listing" and "view-storage-type-mdt" to configure different view storage types for FileSystem listing and MDT based listing. Possible values are "MEMORY" and "SPILLABLE_DISK".

Impact
Adding support to configure view storage type with HoodieMetadataTableValidator. We are adding two new config params, named "view-storage-type-fs-listing" and "view-storage-type-mdt" to configure different view storage types for FileSystem listing and MDT based listing. Possible values are "MEMORY" and "SPILLABLE_DISK".
Risk level (write none, low medium or high below)
low
Documentation Update
Describe any necessary documentation update if there is any new feature, config, or user-facing change. If not, put "none".

The config description must be updated if new configs are added or the default value of the configs are changed
Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the
ticket number here and follow the instruction to make
changes to the website.

Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

@yihua : all feedback addressed, and have responded to one of your comment.

@yihua : fixed

@hudi-bot run azure


The ability to see what is inside payload.bin

Can you make it so that you can see what's inside the payload.bin via a separate parameter

Done! This will be available in the next release.

Thx!


Ingest Folder

Hello,
I would very much like to ingest all my local text files (pdf, docx and txt). Therefore I replaced the loader with the DirectoryLoader, as shown below. This basically works, but only the last document is ingested (I have 4 pdfs for testing).
local_path = "../data"
Local PDF file uploads
if local_path:
loader = DirectoryLoader(local_path, glob='**/[!.]*', use_multithreading=True, show_progress=True)
data = loader.load()
data[0]
Output:
100%|██████████| 4/4 [00:31<00:00,  7.93s/it]
Add to vector database
vector_db = Chroma.from_documents(
documents=chunks,
embedding=OllamaEmbeddings(model="nomic-embed-text",show_progress=True),
#embedding=OllamaEmbeddings(model="nomic-embed-text",show_progress=True),
collection_name="local-rag"
)
Output OllamaEmbedings:
OllamaEmbeddings: 100%|██████████| 143/143 [00:11<00:00, 12.73it/s]
Should be a much higher number of chunks
It would be great if my local office documents could be ingested.

@pdchristian, thanks for the question. I would like to know how you're chunking all the documents you're loading. You would need to chunk them and iteratively pass them to the embedding model to create vector embeddings and load to vector storage.

@tonykipkemboi,
thanks for your response.
I think the code I updated to load the documents seems to be buggy. Only loading the first document takes time. For the other 3 ones, the progress bar jumps quickly form 1 to 4.
https://github.com/user-attachments/assets/5535b1cc-7360-4974-93f7-3f2f6d0cd3cb
Is there a problem with the DirectoryLoader, how I am trying to use it?

@pdchristian, thanks for the video. I'll recreate the issue and report back to you.


chore(github): Add manual trigger for building docs

Description
Problem*
Further to https://github.com/noir-lang/noir/pull/3349, part of our docs are now automatically generated instead of manually written.
At times we might want the flexibility to trigger a doc build manually to e.g. gather such generated docs (in addition to building docs along Noir pre-releases), but we currently don't have the option.
Summary*
This PR adds the ability to manually run the "Build docs" action.
Additional Context
Reference: Manually running a workflow | GitHub Docs
Demo: https://github.com/noir-lang-test/noir/actions/workflows/build-docs.yml
The demo workflow failed as actions are not properly set up in the test repo, but with this PR merged we will get the same "Run workflow" button.

Documentation*
Check one:

[x] No documentation needed.
[ ] Documentation included in this PR.
[ ] [Exceptional Case] Documentation to be submitted in a separate PR.

PR Checklist*

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt on default settings.

Oh hmm didn't realize the action does PR-specific checks, so manually triggering it doesn't really work without further modifications on the workflow 😅

Stupid me, Publish Docs rather than Build docs should actually be used for manually publishing new docs.
Creating a PR to revert this PR.


Adding the Java 8 Compatibility badge to TestNG

Amended the README file to apply the Java 8 Compatibility duke to it.
See TestNG included among other opensource projects: https://java.net/projects/adoptopenjdk/pages/TestingJava8#Java_8_and_Open_Source

@neomatrix369 As Travis doesn't provide Java9 or any EA one, could you create a job on Jenkins with Java9 for us? I didn't find how to ask it on the wiki.

Sure I will do that asap.
On Wed, Jul 1, 2015 at 10:06 AM, Julien Herr<EMAIL_ADDRESS>wrote:

@neomatrix369 https://github.com/neomatrix369 As Travis doesn't provide
Java9 or any EA one, could you create a job on Jenkins
https://adopt-openjdk.ci.cloudbees.com/ with Java9 for us? I didn't
find how to ask it on the wiki
https://java.net/projects/adoptopenjdk/pages/TestingJava8#Java_8_and_Open_Source
.
—
Reply to this email directly or view it on GitHub
https://github.com/cbeust/testng/pull/408#issuecomment-117553491.

--
@theNeomatrix369 http://twitter.com/theNeomatrix369*  |  Blog
http://neomatrix369.wordpress.com  |  *LJC Associate & LJC Advocate
(@adoptopenjdk & @adoptajsr programs)
*Meet-a-Project - MutabilityDetector
https://github.com/MutabilityDetector  |  *Bitbucket
https://bitbucket.org/neomatrix369 * |  *Github
https://github.com/neomatrix369 * |  *LinkedIn
http://uk.linkedin.com/pub/mani-sarkar/71/a77/39b
Come to Devoxx UK 2016: http://www.devoxx.co.uk/
Don't chase success, rather aim for "Excellence", and success will come
chasing after you!

Email address exists at the bottom of the wiki, also you can always write
to<EMAIL_ADDRESS>

Just created a job and its running as we speak -  https://adopt-openjdk.ci.cloudbees.com/job/testng/18/console, lets check this in sometime to see how far it has gone.
I wasn't able to run the gradle build as gradle does not recognise the jdk1.9-ea string that java --version returns.

Build is successful but it can't find pom-test.xml, see
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 07:20 min
[INFO] Finished at: 2015-07-04T06:58:41-04:00
[INFO] Final Memory: 41M/99M
[INFO] ------------------------------------------------------------------------
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project  (/scratch/jenkins/workspace/testng/pom-test.xml) has 1 error
[ERROR]     Non-readable POM /scratch/jenkins/workspace/testng/pom-test.xml: /scratch/jenkins/workspace/testng/pom-test.xml (No such file or directory)
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
To run the tests: mvn -f pom-test.xml test
To deploy to the snapshot repository: mvn deploy
To deploy to the release directory: mvn release:clean release:prepare release:perform
Nexus UI:  https://oss.sonatype.org/index.html
Wiki: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
Finished: SUCCESS

Now the pom-test.xml fails, see
https://adopt-openjdk.ci.cloudbees.com/view/OpenJDK/job/testng/21/console
See,
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.14.1:test (default-test) on project testng-test: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.14.1:test failed: There was an error in the forked process
[ERROR] org.apache.maven.surefire.testset.TestSetFailedException: Suite file /scratch/jenkins/workspace/testng/maven/src/test/resources/testng.xml is not a valid file

Maven build is deprecated now, but it should still work.
Previously, we needed run these 3 commands:

mvn install -Dgpg.skip=true -DskipTests=true -Dmaven.javadoc.skip=true -B -V
export TESTNG_VERSION=$(mvn -q -Dexec.executable="echo" -Dexec.args='${project.version}' --non-recursive org.codehaus.mojo:exec-maven-plugin:1.4.0:exec)
mvn -f maven/pom-test.xml test -B

Thanks, I have a solution for your travis build - can you do this ?
downloadJDK9EA()
{
  echo "Downloading JDK9 EA b59"
  JDK_JAR_FILE="jdk-9-ea-bin-b70-linux-x64-24_jun_2015.tar.gz"
  rm -fr $BUILD_DIR/${JDK_FOLDER_NAME}

  if [ ! -f "$JDK_JAR_FILE" ]; then
     wget --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" http://www.java.net/download/jdk9/archive/b70/binaries/$JDK_JAR_FILE
  fi

  if [ ! -d "$BUILD_DIR/$JDK_FOLDER_NAME" ]; then
     tar -xzvf $BUILD_DIR/$JDK_JAR_FILE
  fi

  export JAVA_HOME=${BUILD_DIR}/${JDK_FOLDER_NAME}
  echo "JAVA_HOME=$JAVA_HOME"
}

export BUILD_DIR=`pwd`
export JDK_FOLDER_NAME=jdk1.9.0

If this works for you, you can build TestNG via Java9 EA version. GRADLE will need to be notified that you are using Java 9 but setting JAVA_HOME does it (check if you need to set anything else as well)

We have a successful build at https://adopt-openjdk.ci.cloudbees.com/view/Quality Outreach/job/TestNG/21/, with a few build artefacts.

We have a better one for you, see this - https://github.com/znurgl/java-badge/blob/master/java9_comp_tested.svg, this is more relevant in our context. ;)

In fact, I prefer something like ![Java9 EA Build Status](https://img.shields.io/jenkins/s/https/adopt-openjdk.ci.cloudbees.com/TestNG.svg?label="Java9 EA build"). What do you think about it?
I will have look to your solution to have Java 9 EA with Travis but I'd like to find a way to keep the matrix feature and not downloading Java in every runner.

That's a good idea, because unlike the logo, you are always passing or failing sometimes - which is more dynamic than the logo. You don't have to download the JDK9 EA version at each build, you can use the existing one, and only download when a new one is available I;ll soon provide you with a script.

For my information, what is the trigger of the job? Manual? SCM pooling? Something else?

A commit to your project will trigger the job to run - SCM pooling H 1 * * *

Ok, perfect. Thank you for your help :)

Thank you both!

No worries its a pleasure, just wanted to share this link with you and recommend joining the respective mailing lists: quality-discuss and adoption-discuss.

JDK 9  build is failing, see https://adopt-openjdk.ci.cloudbees.com/view/Quality Outreach/job/TestNG/57/console (JDK Binary: https://jdk9.java.net/download/)

I have also started another Job which builds it with JDK9 Jigsaw, see https://adopt-openjdk.ci.cloudbees.com/view/Quality Outreach/job/TestNG-Jigsaw/ (JDK9 Jigsaw binary: https://jdk9.java.net/jigsaw/)

Jdk9 build seems to have the same root cause for every falling tests: https://adopt-openjdk.ci.cloudbees.com/view/Quality Outreach/job/TestNG/ws/build/reports/tests/index.html
We will have to go deeper to find what changed.
About jigsaw build, gradle seems to not support it. Maybe we should upgrade its version. Do you know which gradle version is working with jigsaw?

About Gradle for Jigsaw build I did read last there was an issue with Gradle and Groovy but switching to the latest build 2.8 or 2.10-SNAPSHOT has no effect, see https://adopt-openjdk.ci.cloudbees.com/view/Quality Outreach/job/TestNG-Jigsaw/5/console. Let me check the jigsaw mailing list and get back to you, I'll report it to Gradle as well, you can also do that.

I reproduce the same issues on my computer too.
In fact, travis has the same problems but the build doesn't fail.
ping @cbeust

Not sure I want to spend too much time investigating JDK 9 errors just yet
since a lot of them can be caused by temporary bugs in the JDK 9 itself...
What do you guys think?
--
Cédric
On Sat, Oct 31, 2015 at 7:36 AM, Julien Herr<EMAIL_ADDRESS>wrote:

I reproduce the same issues on my computer too.
In fact, travis has the same problems but the build doesn't fail.
ping @cbeust https://github.com/cbeust
—
Reply to this email directly or view it on GitHub
https://github.com/cbeust/testng/pull/408#issuecomment-152740121.

+1 in general case but here the problems are currently on master too (I'm working on it) :(

Will see if the issue with Java9 will be fixed with #843

@juherr @cbeust I have seen one of the builds recover, but TestNG Jigsaw is still failing due to Gradle. As per your query, if TestNG isn't building in general, we have three reasons:

TestNG needs a change in  technical change (design change)
JDK9/Jigsaw needs a change in  technical change (design change)
Both need a change in  technical change (design change)

And if we act on this earlier its best for both TestNG and the Java ecosystem because with time things become harder to change, at the moment the OpenJDK team are open to suggestions or will be able to see why something needs change or wrong in design or steer developers and tool makers to the right direction. Later such changes can become very expensive or even impossible as more design and technical changes set in.
Thanks to both for making these work for us - +1. Should I disable the TestNG Jigsaw build ? Maybe if you post a gentle nudge on Gradle's mailing list they might get onto fixing it.

@neomatrix369 We are agree but we already have enough work with issues to fix before taking too much time with java pre-version.
But I think it is important to keep an eye on it and it is awesome to have a dedicated job.
As Gradle doesn't work for the moment with jigsaw, and if maven is working, you can use the pom.xml which is still here.
BTW, as @cbeust is making its own build tool kobalt and as I suppose it will be the official testng build too a dayl, you can try it too if you want.

For what it's worth, Kobalt builds everything in TestNG but it's missing just one thing before I can completely switch over: an OSGi plug-in.

So, I suppose we can use for a testng jigsaw preview (if kobalt can work with jigsaw :p)

Sorry for the delay, I have changed the TestNG-Jigsaw job to build using maven - works perfect, please take a look at the console logs to see if all that you need is running (I see tests are run as well - are they all the tests you expect to run) ? If this is good, could you please add this badge  as well to your github Readme page ?

@neomatrix369
Done: #858
Do you think it would be possible to add/configure the testng-plugin on Jenkins?

Provide me with details I could have both JDK9 and Jigsaw builds jobs on Jenkins for you - in addition have a look at this - https://wiki.openjdk.java.net/display/quality/Quality+Outreach, would you like your projects added to the list so status can be tracked ?


How can I implement a background.js script?

How can I include a background script to be parsed? and moved to the dist folder?
Thanks, great plugin so far

Sorry for the late reply @notflip
What I did so far is to add in another file in src called background/index.ts in vue.config.js
// push background script
pagesObj.background = {
  entry: `src/background/index.ts`,
};

This project was done over the weekend,  but I didn't have time to maintain on this.

No worries at all! Thanks for having made this.

I'll leave this issue open since it's not yet implemented

@superoo7 what about Content Scripts?


[examples] Add deadzone handling to core_input_gamepad example

Ref: https://github.com/raysan5/raylib/pull/4420#issuecomment-2430475332, https://github.com/raysan5/raylib/pull/4420#issuecomment-2430479617.
Kept the handling plain and simple to make it very easy to grasp. Also used the previous default value of 0.1f so it feels exactly like before.

@asdqwe Thanks! This is a nice improvement! 👍🙂


Get all XSS patterns get from property file

Please create a Carbon JIRA for the fix and get it reviewed by team lead

Carbon JIRA for the fix https://wso2.org/jira/browse/CARBON-15613

Reviewed. Can merge.


Display Subscription Interval on Product Detail Page

Would you support adding a display of the subscription interval on the detail page of a subscription product? I already implemented this manually myself, and i could open a PR for this. If yes, should this display be controllable in the extension settings just like the option to display whether or not a product is a subscription product? I think adding this feature to the product page would benefit everyone using this extension.

Will you add the ability for the user to change the subscription interval himself in the storefront ? I suppose that would mean some bigger changes but do you have that in mind possibly in the future?

Let me know if you support 1. and if i should open a PR for it or if you have already planned something similar :)

Hi @LouisEiermann
thank you

mhm,...the PDP should already show the interval.
see the screenshot...doesnt it work on your side, or do you have other expectations?

atthe moment the subscription intervals are bound to the variant. so if you have different variants, then the user can already change it before purchasing it. we are also thinking about a way to keep the original product and add options to select available intervals for the purchase.
or do you mean to change an interval on a running subscription that is already purchased?

thank you :)


Cursor for CursorAdapter?

Is there a way to get a cursor from queries such as the following ones?
Select
    .from(TestRecord.class)
    .where(Condition.prop("test").eq("satya"), Condition.prop("prop").eq(2))
    .list()

Book.listAll(Book.class)

I don't want to get a list of all matching items since I expect to have quite a lot of them. I want a cursor instead to use in a CursorAdapter to fill a ListView.
What's the way to go here?

Are there any updates on this?

This has been requested a few times. I'll get it into 1.4.0! If someone can put up a pull request I'd be happy to merge it in

@whoshuu see PR 312


add new tickle process

fixes https://github.com/mapzen/mapzen-docs-generator/issues/243
and adds the new documentation CircleCI build

LGTM


Have m.redraw() schedule a second successive redraw when called during an existing redraw

This would entail a boolean rendering global and boolean again global within the renderer to handle this scenario. It's already come up on Gitter, and there are legitimate use cases for this.
Here's how it'd work, in terms of the existing API:
var redraw = m.redraw
var rendering = false
var again = false
m.redraw = function () {
    if (rendering) {
        again = true
    } else {
        do {
            again = false
            rendering = true
            redraw()
            rendering = false
        } while (again)
    }
}

Apparently, the current behavior has been tripping up people on Gitter.

Problem Clarification
Following should redraw when calling m.redraw()
oncreate = (vnode) ->
    #This replaces the 'editor' div with an Ace editor
    ace.edit('#editor')
    # This redraw doesn't seem to have any effect
    m.redraw()

view = (vnode) ->
        m "#editor"

Current workaround for this is:
function asap(){
  return new Promise(function(resolve){
   setTimeout(resolve)
 })
}

// later

function oncreate(){
  asap.then(m.redraw)
}

Small typo, the asap function should be called:
function oncreate(){
  asap().then(m.redraw)
}

Although I'm not sure how the asap actually works. Why does this work?

I think without asap(), mithril is still inside one redraw, not firing wished-for-redraw. With asap(), it should(?) fire after current redraw is finished. Why with oncreate hook, render not complete yet is the issue.

@salamynder My proposal would fix your issue with zero change from your part, BTW (although IMHO it should actually schedule something instead).
The issue you're running into is that Mithril throttles its calls, but it doesn't actually schedule anything to be run after the throttle timer ends, thus your issue.

@salamynder why do you want to redraw at that point? The initialization/redering of the editor should be independent of Mithril's redraws... Are you passing extra information to the editor on redraw? Couldn't it be passed after the ace.edit('#editor') call in oncreate instead?
If you don't mind using either the micro-task (native Promises) or the macro-task scheduler (Mithril Promise polyfill), asap becomes
function asap(){ return Promise.resolve() }

@cyberco asap is mostly equivalent to setTimeout(m.redraw) (which is equivalent to setTimeout(m.redraw, 0)), but with then chainability.
@isiahmeadows I've suggested something similar in #1592 for redraw.sync(), but with a granularity at the render level... You'd like this to work at the redraw level? How would it mesh with sync/async redraws?

@cyberco
I made some tests with mithril 0.2.5 ( http://jsfiddle.net/t1z7xcf3/10/ ) and the newest mithril from unkpg.com ( http://jsfiddle.net/t1z7xcf3/22/ ). Both fiddles demonstrate the integration of Pika-calendar into input fields. Using in mithril-new the oncreate-attribute in m-helper seems to behave equally to the config-attribute of mithril-old. So from this perspective there is no problem.
@pygy
Only now, I understand that there is an oncreate-attribute. I was thinking all the shiny new lifecycle methods of components would somehow invalidate the config(+oncreate)-m-helper-hook. When you spoke of "oncreate-hook", what first sprang to my mind was component-lifecycle-oncreate-function.
@isiahmeadows
Ok, so throttling and not rescheduling is the issue. But I wonder what might be the use-case for (1) if it solves the same problem as (2): only to have oncreate packaged in a component?
Bottom-line (for me right now, just trying envisage switch to mithril-new): documentation?
However, I still don't get why there is a difference between the (1) oncreate-component-function and the (2) oncreate-m-helper-attribute, also with regard to the fact that they share the same name. This should maybe be better documented on the website, section "Resources / Integrating Third Party Stuff"? (In the vein of: http://mithril.js.org/archive/v0.2.5/integration.html ?)

@salamynder You can define hooks, both on the component and in attributes. The latter are mostly useful for defining hooks on non-component vnodes (e.g. set the focus on a given form field in oncreate or onpudate), but you can also add hooks to component with attrs.on$something()
You didn't address my previous questions, I still don't understand what you're trying to achieve and what doesn't work... Could you provide a JSBin/JSFiddle/CodePen/...?

@pygy The goal for @cyberco (OP) was, I think, to render the ace editor using attrs.oncreate, but this didn't work until the asap-function was employed. Maybe @cyberco  can provide a fiddle? I was spectating @cyberco 's remarks in the channel and when this ticket was opened, I tried to provide (inconclusive) context.

@salamynder my bad, I missed the original discussion on Gitter and tought you were the OP... Thanks for providing context.

@cyberco based on our conversation on Gitter, can you confirm that ACE editor initialises fine without calling an extra redraw, and that the original requirement for that redraw is redundant since ACE editor is designed to operate independently of Mithril?

@pygy @cyberco @barneycarroll
To be fair, I already hijacked this issue... :) (Mainly because I didn't investigate mithril 1, yet and interest was roused by possible difference in behaviour between config/oncreate.)
So, I can as well try to bring the ticket forward a bit. This fiddle ( http://jsfiddle.net/t1z7xcf3/24/ ) is again my example of the pika-calendar, but now using Pika-component with oncreate-hook, result being that now redraw seems needed...

@pygy To clarify, I'm thinking of scheduling a redraw after the throttle ends.

@isiahmeadows IIRC that's +/- what happens in #1592, with caveat when there are multiple mount points.
m.redraw() called from hooks will only re-schedule the mount points that have already been redrawn in the current cycle or the one that is being redrawn. For mount points that are yet to be redrawn, throttling kicks in (since there's still a redraw pending for them).

@pygy So should that be considered another reason to make m.redraw async, if it's still causing people grief?
(Or at least async when called during an existing render)

Closing in favor of #1847.


HFENCE.GVMA when changing HGATP and reclaiming VMID

The description for satp includes this text:

If the new address space’s page tables have been modified, or if an ASID is reused, it may be necessary to execute an SFENCE.VMA instruction (see Section 4.2.1) after writing satp.

The description for hgatp includes this text:

If the new virtual machine’s guest physical page tables have been modified, it may be necessary to execute an HFENCE.GVMA instruction (see Section 5.3.2) before or after writing hgatp.

Differences bolded between the two.  Can we please make these additions to the spec?

"If the new virtual machine’s guest physical page tables have been modified, or if a VMID is reused,"
"it may be necessary to execute an SFENCE.VMA instruction before or after writing satp."

Note that all of this text is effectively non-normative because of the intentionally vague verb "may".  So, while I haven't thought through the software implications of the proposed changes yet, they will also end up being effectively non-normative.

@gfavor and I were trying to decide whether the right fix was to make both say "before or after" or make both simply say "after".  For posterity, I'm jotting down my justification for writing "before or after" for both.
There is a case where the SFENCE.VMA must precede the satp write: when the mapping for the supervisor code page where the PC points has been modified.  This happens during the Linux boot process, for example: https://github.com/torvalds/linux/blob/a9b9669d98229c1f6d228697af99a9b01b7b69ac/arch/riscv/kernel/head.S#L121
And of course there's a case where the satp write must precede the SFENCE.VMA: on implementations without ASIDs, for example, the TLB must be flushed on a context switch after the new process' page table has been loaded.  https://github.com/torvalds/linux/blob/a9b9669d98229c1f6d228697af99a9b01b7b69ac/arch/riscv/mm/context.c#L201
So, "before or after" is accurate for satp.
For hgatp, "before or after" is also correct, but for different a reason.  Since hgatp and vsatp cannot be active when hgatp is being written, and TLB fills can't occur for inactive atp registers, it doesn't matter whether the HFENCE.GVMA precedes the hgatp write or vice-versa.

Thanks, the revised text completely closes this.
For posterity, further justification for writing "before or after" for both:

Since hgatp and vsatp cannot be active when hgatp is being written

They may be activated from HS or HU mode by a HLS instruction, potentially speculatively.

To be more precise (for the record), there is no HU mode or HLS instruction.  The correct statement would be:
They may be activated by an HLV/HLVX/HSV instruction, or even normal load/store instructions when executed with MPRV=1 and MPV/MPP indicating VS or VU mode.
A question for Andrew:  Do these targeted load/store actions (that do just one specific load/store operation "as if" in a different execution mode) open the door to unlimited walking of the page tables and caching of address translations during that "moment"?  Currently I believe the answer is yes.  But these are distinctive cases of doing a VS/VU-mode access - and temporarily activating VS/VU-mode translation - while executing outside of VS/VU modes and instead in M/HS/U mode.
I'm not suggesting need for a change; just raising the question to make sure we would all agree on that allowed arch behavior.

That wasn't what @daniellustig and I intended in writing "the address-translation algorithm may be executed speculatively for any guest virtual address when such an instruction is executed": we meant that, if HLV/HSV is non-speculatively executed, then additional translations may also occur.  ("when such an instruction is executed" implicitly means "non-speculatively".)
If misspeculated HLV/HSV are allowed to perform table walks, then we've got to call a spade a spade: hgatp and vsatp would then be active 100% of the time the processor is in HS-mode.  But this would contradict the previous couple sentences, which indicate that hgatp and vsatp are only active in VS-/VU-mode and when executing HLV/HSV.
It's pretty clear to me the intent of the spec was to forbid speculative execution of HLV/HSV instigating table walks.  This is certainly deserving of a non-normative note.  Or, if we decide we don't like this definition and want to permit misspeculated HLV/HSV to perform table walks, then we need to make a normative change to the spec, and say that hgatp and vsatp are active in HS-mode, too.
(It's probably obvious, but for completeness I'll note that nothing forbids speculative execution of HLV/HSV when they hit in the TLB.  In that case, any side effect of speculation is a side effect that could have occurred for some other reason.)

We'd also need to accept that HS-mode/M-mode speculation could fill VS-stage TLB entries, and could cause the A bit in VS-stage PTEs to become set (a side channel that's architecturally visible to VS-mode!).)

I hadn't thought of this before.  My initial reaction is that this may also affect other established ISA(s).


Small Documentation Suggestion

First of all -- big thanks for this project.  It was exactly what I was looking for!!
I just wanted to make a suggestion.   Please consider placing the various localization variables on the main "API & Options" tab at http://hayageek.com/docs/jquery-upload-file.php#doc     The reason I suggest this is because I was actually just looking for a way to customize these strings and just as I was about to come here and ask how it was done, I remembered the localization example, and there it was!
Anyway, having these variables all listed on the "API & Options" page would be useful I think:   dragDropStr, cancelStr, doneStr, multiDragErrorStr, extErrorStr, sizeErrorStr, uploadErrorStr, uploadStr.

Hello,
Thank you for contacting Folksy Support. We aim to respond to
queries within one working day but we will get back to you as
soon as possible.
Our standard Support hours are 9am GMT/BST to 5pm GMT/BST
Monday-Friday.
Please note that we offer limited support at the weekends and on
UK Bank Holidays:
https://www.gov.uk/bank-holidays ( https://www.gov.uk/bank-holidays )
While you are waiting, please take a look at our Knowledge Base
for answers to our most frequently asked questions:
http://folksy.uservoice.com/knowledgebase ( http://folksy.uservoice.com/knowledgebase )
If your enquiry relates to a service-critical issue out of office
hours (e.g. your shop has been restricted and you are unable to
process orders), please email us at<EMAIL_ADDRESS>(
<EMAIL_ADDRESS>)
Thank you,
Folksy Support

Email<EMAIL_ADDRESS><EMAIL_ADDRESS>)
Helpdesk (buyer and seller FAQs): http://folksy.uservoice.com/ ( http://folksy.uservoice.com/ )
Blog (including seller tips): http://blog.folksy.com ( http://blog.folksy.com )
Forums (talk to our community): http://talk.folksy.com ( http://talk.folksy.com )
On September 06, 2015 at 10:20 AM hayageek/jquery-upload-file
wrote:
First of all -- big thanks for this project. It was exactly
what I was looking for!!
I just wanted to make a suggestion. Please consider placing the
various localization variables on the main "API & Options" tab at
http://hayageek.com/docs/jquery-upload-file.php#doc ( http://hayageek.com/docs/jquery-upload-file.php#doc ) The
reason I suggest this is because I was actually just looking for
a way to customize these strings and just as I was about to come
here and ask how it was done, I remembered the localization
example, and there it was!
Anyway, having these variables all listed on the "API & Options"
page would be useful I think: dragDropStr, cancelStr, doneStr,
multiDragErrorStr, extErrorStr, sizeErrorStr, uploadErrorStr,
uploadStr.

Reply to this email directly or view it on GitHub:
https://github.com/hayageek/jquery-upload-file/issues/63 ( https://github.com/hayageek/jquery-upload-file/issues/63 )
Powered by UserVoice. ( http://www.uservoice.com/powered-by?utm_campaign=poweredby&utm_medium=email&utm_source=ticket&uv_company=Folksy&uv_contact_url=folksy.uservoice.com&uv_experience=email )

I will do that.
On 6 September 2015 at 17:19, Amadeus<EMAIL_ADDRESS>wrote:

First of all -- big thanks for this project. It was exactly what I was
looking for!!
I just wanted to make a suggestion. Please consider placing the various
localization variables on the main "API & Options" tab at
http://hayageek.com/docs/jquery-upload-file.php#doc The reason I suggest
this is because I was actually just looking for a way to customize these
strings and just as I was about to come here and ask how it was done, I
remembered the localization example, and there it was!
Anyway, having these variables all listed on the "API & Options" page
would be useful I think: dragDropStr, cancelStr, doneStr,
multiDragErrorStr, extErrorStr, sizeErrorStr, uploadErrorStr, uploadStr.
—
Reply to this email directly or view it on GitHub
https://github.com/hayageek/jquery-upload-file/issues/63.

updated documentation.


A Geospatial Approach to Cybersecurity - post PPT & video for Ops Server release

Tagging myself, Darren doesn't seem to have an account.

@BobBooth this wasn't presented at UC. We can probably just close this one and remove it from our list.

@conklinbd - OK, thanks for the info, will close.
@jrweakland


Can't get express session to work behind the proxy

Hi !
The proxy work great but I cant really get express session to work, the client didn't get any cookie. However Websocket work as expected.
Is there a way to get express session to work behind redbird in https ?
// My Proxy
var proxy = require('redbird')({
    port: 80,
    xfwd: true,
    letsencrypt: {
        path: '/letscerts',
        port: 3100

    },
    ssl: {
        port: 443,
    }
});

// Express session
app.set('trust proxy', true);
var sessionMiddleware = session({
    proxy: true,
    cookie: {
        secure: true,
        maxAge: 15 * 24 * 60 * 60 * 1000
    },
    secret: 'foo',
    saveUninitialized: false,
    resave: false,
    rolling: true,
    store: new MongoStore({
        url: DBHOST
    })
});

The problem was with my code, everything seems to work now 👍.


HUP: rename to balenahup

Connects-to: https://github.com/balena-os/balenahup/issues/266
Depends-on: https://github.com/balena-os/balenahup/pull/267
Change-type: patch
Signed-off-by: Matthew McGinn<EMAIL_ADDRESS>

@balena-ci retest


Jackknife plus ab

Implementing the following methods:

Jackknife plus after bootstrapping
Jackknife plus minmax
Ensemble batch prediction interval

In order to run it, Ditributions and StatsBase packages must be added to ConformalPrediction package.

Codecov Report

Merging #56 (0357100) into main (9ad8bdd) will decrease coverage by 3.09%.
The diff coverage is 85.03%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main      #56      +/-   ##
==========================================
- Coverage   98.60%   95.52%   -3.09%
==========================================
  Files          12       11       -1
  Lines         502      648     +146
==========================================
+ Hits          495      619     +124
- Misses          7       29      +22

Impacted Files
Coverage Δ

src/conformal_models/conformal_models.jl
92.30% <ø> (ø)

src/conformal_models/transductive_regression.jl
93.35% <85.03%> (-6.65%)
:arrow_down:

src/ConformalPrediction.jl

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

hey Pat,
you are right, it is not needed. I removed it.

More comments from our meeting:

[ ] Remove the replace argument
[ ] Add an argument for bootstrap size $B$, default $n/2$
[ ] Revisit EnbPI (and comment out for now)

hey Pat,
I have adjusted the code as we discussed. it seems in MAPIE, they use the default value of 30 for nsampling.
please check all is ok

Ok, awesome, I think this all looks good! Will merge in a few moments and then push a new release to General.
So to summarise, this PR contributes:

Jackknife plus after bootstrapping
Jackknife plus minmax after bootstrapping

As discussed, we'll revisit EnbPI in #57
Thanks again!


php-cs-fixer fails to "de-indent"

So I have installed atom-beautify along with php-cs-fixer.phar which I have correctly referenced in the settings. CTRL-ALT-B starts the beautification and it does its thing...
One thing I cannot get it to do though, is to "de-indent" lines that are indented too much. Say I declare a variable (in an empty file, "<?php" and all that jazz) and gives it an indentation. Beautifying the file now does not scootch the file back to zero indentation, but leaves it alone...

@superDuperCyberTechno would you mind providing a gist of a code sample and steps to reproduce?

Please follow contribution guidelines for creating Issues: https://github.com/Glavin001/atom-beautify/blob/master/CONTRIBUTING.md#new-issues-bugs-questions-etc
Thank you.


Bump version of gopkg.in/yaml.v3

Update to the latest version of gopkg.in/yaml.v3 ✨
And run go mod tidy.

Codecov Report

Merging #221 (72b4981) into master (e4c2b2a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #221   +/-   ##
=======================================
  Coverage   57.07%   57.07%
=======================================
  Files          37       37
  Lines        4007     4007
=======================================
  Hits         2287     2287
  Misses       1596     1596
  Partials      124      124

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 e4c2b2a...72b4981. Read the comment docs.


Bump cf for fixing #879

cf 0.1.3 fixes the issue mentioned in #879 and marks all xterm* terminals as colour capable.

This would be the changelog: https://github.com/project-fifo/cf/commit/3e7a95d8aff4e68212aa7a4c6adce4935e5cbc5c


Lazy part parameters.

  Replacing a handful of like components to tweak a parameter on a reused module. These are all tasks that a program can do for us with less errors.  I have had to get boards respun because a copied schematic page had too small of components and we missed changing a few of them, or a copy paste error made all the resistors 10K when we only wanted to change the size.  This is largely an issue with graphical schematics, and can be clearly worked around, but some lower level support here could ease this task.
Let's start with the documentations resistor divider example, clearly contrived in this case as it's only two components!
@SubCircuit
def vdiv(inp, outp):
    """Divide inp voltage by 3 and place it on outp net."""
    rup = Part('device', 'R', value='1K', footprint='Resistors_SMD:R_0805')
    rlo = Part('device', 'R', value='500', footprint='Resistors_SMD:R_0805')
    rup[1,2] += inp, outp
    rlo[1,2] += outp, gnd

This implements two simple components but sets the footprint, so this sub circuit is not completely reusable across projects. If I go to use this subcircuit in a different design that is using R_0402 footprints then I have to go edit this module or monkey patch the the resistors parameters later.  It also is missing information like the tolerance, temperature coefficient, power dissipation, and many more that might be required for a successful implementation.
There are many ways to address this, like passing in a footprint to the function.  I want to make decisions when it is the proper time to make these decisions.
This issue is to propose a processing step that builds up the components that lack required attributes until they are fully defined for the BOM.
This step would:

Process lazily bound or unset attributes.
Compute optimal sizes
Highlight conflicting requirements.
Optionally choose from components that you commonly use and have on hand.

Your nearly full reel of 10KΩ 1% 0603 resistors, but switching all new purchases to 0402.

Let's take that resistor divider and add some of these concepts.

from skidl.footprints import R_0402, R_0805
# Assuming we have footprint classes that have additional information.
`R_0402 < R_0805` would evaluate to `True`

@SubCircuit
def vdiv(inp, outp):
    """Divide inp voltage by 3 and place it on outp net.
         Make it easy to change out the lower resistor for tuning"""
    rup = Part('device', 'R', value='1K', tol='1%, temp_co='<=150 ppm')
    rlo = Part('device', 'R', value='500', tol='1%', hand_solderable=True)
    rup[1,2] += inp, outp
    rlo[1,2] += outp, gnd
# Snip

resolve_schematic(min_footprint=R_0402, hand_solderable=R_0805, ...)  # Like the linker step in compiling.
generate_netlist(tool='kicad', ...)
generate_bom(...)

Here we have the parts with additional parameters I care about, nothing more.  The resolve step then sets things that matter when the design is going on to the next step, and we care about it.
Actions needed to implement this concept.

[ ] Add a rule to the ERC that requires a valid footprint.
[ ] Add a step to resolve lazy bound parameters.

Add _resolve function to Part class and run through a list of resolvable actions.
Call all functions with prefix _resolve_*

[ ] Add a step to output BOM related parameters (tolerance, temp co, footprint, value, and etc...).

Propose: JSON list of dictionaries

[ ] Determine better way to specify preferred lazy parameters.

Minimum pin pitch
Minimum square area
Would like to avoid explicit ordered lists.

[ ] Resolve issue #7 on normalizing footprint names based on tools.

Example _resolve_footprint function.
def _resolve_footprint(self, **cfg):
    if self.footprint is not None:
        return
    if self.hand_solderable:
        if 'hand_solderable' in cfg:
            self.footprint = cfg['hand_solderable']
        else:
            self.footprint global_default_cfg['hand_solderable']
    else:
        self.footprint = max(global_default_cfg['min_footprint'], cfg['min_footprint'])

I've started working on a similar project, the details not fully worked out yet. For now describing circuits and simulating them works using gnucap as a simulation backend.
Can we turn skidl into a library? I'm not sure if I'm going to map Circuit->Part or Circuit->Footprint yet.
def EmitterAmplifier(**kwargs):
    vcc, gnd, vin, vout = 4 * Pin()
    q, [rc, re, r1, r2] = Transistor(), 4 * Passive()

    vcc + rc[0] + r1[0]
    rc[1] + q['c'] + vout
    vin + r1[1] + q['b'] + r2[0]
    q['e'] + re[0]
    re[1] + gnd + r2[1]

    return Circuit(locals(), **kwargs)

def EmitterAmplifierTestbench():
    amp = EmitterAmplifier(q=BC549(), rc=R(2.2e3), re=R(1e3)//C(10e-6),
                           r1=R(5e3), r2=R(1e3))
    amp['q']  = NPN(bf=200) #BC549()

    vcc, vin, gnd = 1 * V(5), 1 * V('generator'), Pin()
    vcc['+'] + amp['vcc']
    gnd + vcc['-'] + amp['gnd'] + vin['-']
    vin['+'] + amp['vin']

    return Circuit(locals())

    gnucap = GnucapSession()

    dut = EmitterAmplifierTestbench()
    gnucap.build(dut)

    vin = v(dut['amp']['vin'])
    vout = v(dut['amp']['vout'])
    ve = v(dut['amp']['q']['e'])
    ic = i(dut['amp']['rc'])

    dataset = gnucap.simulate('op', Sweep(-5, 50, 5), ic)
    plot(dataset, ic,
         title='Operating point',
         xlabel='Temperature [°C]',
         ylabel='Quiescent current [A]')

    dataset = gnucap.simulate('dc', Sweep(0, 5, 0.1), vin, vout, ve)
    plot(dataset, vin, vout, ve,
         title='Transfer function',
         xlabel='Vin [V]',
         ylabel='Voltage [V]')

    dataset = gnucap.simulate('ac', Sweep(20, 20e3, 2, log=True), vout)
    plot(dataset, vout,
         title='Frequency response',
         xlabel='Frequency [Hz]',
         xscale='log',
         ylabel='Voltage [V]')

    gnucap.exit()

Hi, dvc94ch. You asked if SKiDL could be a library. I was under the impression that it already is a library. So I need some further explanation of what you would like from SKiDL in order to further your project.

I'm not quite sure yet... Looking for good ideas to steal :)
My initial thought was that footprints could be generated automatically from a csg model of the package using something like pycsg. But looking at a version of IPC-SM-782 from 1999 I can not find an equation that relates the pad size to the pin geometry, so the footprint and the package model would still need to be described separately.
[0] https://pypi.python.org/pypi/pycsg


support --region for login command

Is your feature request related to a problem? Please describe.
N/a
Describe the solution you'd like
Add support --region for the login command.
Describe alternatives you've considered
N/a
Additional context
N/a

Good one. Default to US, and additional option is EU. But maybe there are other ways to do this? What if the API URL was an env variable with a default value of the US URL? This may give more flexibility to be able to target local/dev/and other environments too.

@adamaltman it is like that right now. We have an env variable 😀
The cli flag would add alternative more user friendly approach.

I like this option. Some users won't even know their region, so... this may be the easiest for them.


always format into pythonic class name

Open to more suggestions to always format into proper class name format

I like the idea. However, not sure whether this works for subclasses. Can you add a test where this is done for a subclass? I would say changing the class name in the registry itself breaks the typing reference in the parent. e.g., below Hello_World example:
class HelloWorld(BaseModel):
    a: int

class A (BaseModel):
    a: Hello_World

If it breaks, then the formatting needs to happen before class is registered.


Fix Graticule use of incorrect min/maxLon values

Appears to have just been a typeo, using the minLon_, maxLon_ member variables which represent the world extent rather than the function parameters provided which are the viewport extent.
This was creating very wide lines of parallel which were sometimes very slow in Chrome.
Fixes #7020

Thanks for the quick merge and thanks to all the committers for the great project.


Quote escape

Challenge Escaping Literal Quotes in Strings has an issue.
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:

var myStr; // Change this line

var myStr = "I am a \"double quoted \"string inside \"double quotes\".";

@pamela113 Thank you for reporting this issue. You're almost there. Watch your spacing to match exactly what is asked in the challenge.
This is a standard message notifying you that this issue seems to be a request for help. Instead of asking for help here, please click the "help" button on the challenge on Free Code Camp, which will take you to the help chatroom for that specific challenge. You can also view our full list of official chatrooms.
If you think I'm wrong in closing this issue, please reopen it and add further clarification. Thank you, and happy coding!

I am having the same issue that Pamela mentioned in Issue # 13373. My code is:
var myStr = "I am a "doubled quoted" string inside "double quotes".";
The console.log() window prints:
myStr = I am a "double quoted" string inside "double quotes."
So it looks it's marking me wrong is because "myStr" is being printed, but that's not an error on my part. I've done a hard refresh and cleared browser history yet I'm still having the same issue.
Thank you!

@mbabaian
Please use the HelpJavaScript chat room for getting challenge related help.
Happy Coding.

@texas2010 This particular challenge does hang even when the correct code is entered. Took multiple browser refreshes in order for it to accept my answer.
Code/solution for reference:
var myStr = "I am a \"double quoted\" string inside \"double quotes\"."; // Change this line
Test hangs on:
You should use two double quotes (") and four escaped double quotes (").
Even though test passes on:
Variable myStr should contain the string: I am a "double quoted" string inside "double quotes".

Thanks John!
Sent from my iPhone

On Feb 24, 2017, at 10:32 PM, John Garcia<EMAIL_ADDRESS>wrote:
@texas2010 This particular challenge does hang even when the correct code is entered. Took multiple browser refreshes in order for it to accept my answer.
Code/solution for reference:
var myStr = "I am a "double quoted" string inside "double quotes"."; // Change this line
Test hangs on:
You should use two double quotes (") and four escaped double quotes (").
Even though test passes on:
Variable myStr should contain the string: I am a "double quoted" string inside "double quotes".
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@johngarcia9110, this challenge dont have an issue.  she almost got it.
Please do not post your solution on here. You could help people at FreeCodeCamp Chat Room or Forum. GitHub Issues are for reporting bugs on the website only.
Happy Coding!

There was definitely something wrong with this challenge, I am just breezing through these lessons as a quick refresher and I submitted the same answer several times before it was finally accepted. Very frustrating.


Make a controller function to get a single project by project id

I can work on this.

Interested to work on this


Fix perf regression in mark-all-read with remote APIs

516392755439d84e3cf9531b44220b03eefa5759 (PR #1558) changed
mark-all-read to mark each item individually. That made mark-all-read
aware of the filters, but also made it slower. This was especially
noticeable with remote APIs, where mark-read latency is high.
We can't speed it up in the general case, but when there is no filter,
we can fall back onto the faster mark_all_read() method which marks the
entire feed in one go. I tested that this new code is indeed faster and
doesn't re-introduce #1364.
Reported by Oneiric on IRC.
Reviews are welcome! I'll merge this in three days.

Coverage decreased (-0.008%) to 58.865% when pulling f3d3fa72351fe5cbcf124e5784488d34185fd85c on bugfix/mark-all-read-remotely into c0ee18a17526c6c5f35b11fd48a49ff55bd0f72e on master.

Thanks for the review! Yeah, this will have to be kept in sync with other parts; luckily it's all in one class, makes it slightly easier.


jr:choice-name to implemented in XPath?

Once the whole model is passed to the evaluator this should be possible.

No it isn't. Now I remember why this function is so awful.


feat: enhance date formatting

Added: timezone configuration option. For timestamps without time zones (e.g., 2004-06-16 00:00:00), the configuration can generate timestamps with time zones
Fixed: Resolved the issue where the browser needed to be refreshed when switching locale
Removed: formatTimestamp, and users are advised to create their own utility classes

When users utilize the formatDate function, it should be kept simple to avoid build failures caused by errors within formatDate. We should not restrict users' freedom in writing dates to increase migration costs. The related issues have been fixed, and the FAQ for this feature has been removed from the documentation.
If timezone is not set, the client's time zone will be used by default, which will not affect the current behavior.
The toDate function in date-fns-tz already implements new Date, so there is no need to create a new Date instance in vueRouter again.

I am concerned that using fromZonedTime will silently break users' expectations as it cannot parse dates that new Date() happily accepts, and a client-side error doesn't help as much as build-time warning / errors as they couldn't easily catch users' attention until the very page is visited. Also, usages of new Date in fuse and rss aren't updated to use the new logic.

Using fromZonedTime may silently break users' expectations as it cannot parse dates that new Date() happily accepts, and a client-side error doesn't help as much as build-time warning / errors as they couldn't easily catch users' attention until the very page is visited.
Usages of new Date in fuse and rss aren't updated to use the new logic.
I suggest that we keep the note of derivation from YAML spec.
It will be good to have unit/E2E tests for different timezones

I'm sorry, but I can't understand why you say that new Date() cannot be parsed. As I mentioned before, toDate already includes new Date(), and even if the user passes in new Date(), no exceptions will occur. In the details of toDate, at this line of code:
if (
  argument instanceof Date ||
  (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')
) {

The date object is already handled. It's advisable to conduct your tests before making any comments. Regarding the fuse and rss, you raised valid points, but I believe these are considerations for the future. Currently, I haven't found any blogging frameworks that include these features. As for unit testing, since this is a simple and standalone feature, there's no need for me to create additional unit tests for date-fns-tz, as this would lead to unnecessary functionality. If you wish to test extensions of this feature, that would be a different matter altogether.

toDate already includes new Date(), and even if the user passes in new Date(), no exceptions will occur
The date object is already handled. It's advisable to conduct your tests before making any comments.

Sorry for misconception, I was trying to mention the difference between fromZonedTime(string) and new Date(string), as toDate cannot correctly handle this date 2021-12-03 1:07:23

FWIW it silently breaks user expectations as date processing is completely handled at the client side, making the problem harder to be found.

toDate already includes new Date(), and even if the user passes in new Date(), no exceptions will occur
The date object is already handled. It's advisable to conduct your tests before making any comments.

Sorry for misconception, I was trying to mention the difference between fromZonedTime(string) and new Date(string), as toDate cannot correctly handle this date 2021-12-03 1:07:23

Case from https://github.com/Big-Cake-jpg/big-cake-jpg.github.io/blob/038c38296720590ae3c9403df9856af990fb2423/pages/posts/a-little-teacher.md?plain=1#L3

FWIW it silently breaks user expectations as date processing is completely handled at the client side, instead of crashing the build process, it's just making the problem harder to be found IMO.
Also FYI,
describe('frontmatter parse', async () => {
  it('page:time+8', () => {
    process.env.TZ = 'Asia/Shanghai'
    const utcDate = fromZonedTime('2023-07-19 10:55:53Z', cnTimezone)
    expect(formatInTimeZone(utcDate, cnTimezone, 'yyyy-MM-dd HH:mm:ss')).toEqual('2023-07-19 18:55:53')
  })

  it('page:time+0', () => {
    process.env.TZ = 'UTC'
    const utcDate = fromZonedTime('2023-07-19 10:55:53Z', cnTimezone)
    expect(formatInTimeZone(utcDate, cnTimezone, 'yyyy-MM-dd HH:mm:ss')).toEqual('2023-07-19 18:55:53')
  })
})

In the test case on page:time+0, although process.env.TZ is set to UTC, from a semantic perspective, the input cnTimezone in fromZonedTime('2023-07-19 10:55:53Z', cnTimezone) is the China timezone, which is inconsistent with the test objective. In your "2023-07-19 10:55:53Z" it is already a UTC date, as I mentioned before. Setting the timezone with an already passed UTC format is invalid. The second parameter of fromZonedTime might be used to define the initial timezone of the input time, not the target timezone. I suggest understanding the usage before making a submission. Additionally, the issue causing formatting failures due to passing special strings has been resolved, which is unrelated to whether strings are passed or not.

Setting the timezone with an already passed UTC format is invalid.

This is exactly what I'm trying to convey. formatDate yields incorrect result for dates that are already has timezone-awareness.
For example, formatDate('2021-12-07T11:00:00Z', 'yyyy-MM-dd HH:mm:ss', 'Asia/Shanghai)) with TZ='UTC' incorrectly yields '2021-12-07 03:00:00' instead of '2021-12-07 11:00:00', as fromZonedTime called toDate on it and applied Asia/Shanghai TZ on it forcibly - not within expectation. toDate(date, { timeZone }), by contrast, only applies timezone passed in when timezone is not present for the time string.

If you're ready, please let me know.

The code logic has been simplified. The handleTimeWithZone method performs the following operations. First, it converts a date object to a string because the luxon library's DateTime.fromISO method only accepts strings as input. If an object like new Date is passed in, new Date will internally generate a UTC timestamp. Calling DateTime.fromISO(date, { setZone: true }) will not affect dates that already have a timezone. For dates not parsed by DateTime.fromISO, if they are considered non-ISO 8601 format, they will be assumed to lack a timezone, and the system will add a default timezone based on the parameters provided by the user. Such operations can only be accomplished by luxon's DateTime. However, luxon cannot handle certain special date formats, such as 2021-12-03 1:07:23. Therefore, the format method from date-fns is used to manually format the date to 'yyyy-MM-dd\'T\'HH:mm:ss'.

All test cases have passed. If there are no issues upon review, the merge can proceed.

https://github.com/YunYouJun/valaxy/issues/486


Deleting video from calendar doesn't work

If you delete a video from your calendar and then immediately replace it with another video it works. But if you don't have one to replace it with it reappears when you change to a different day and then back to the original day. So I have a video at the start of my movie that I can't delete now that was saved in error.
Edit: for some reason when I came back the next day I was able to delete the unwanted video. But I have had this same issue before as well, so I wonder if it only has issues deleting it when the video clip has just been saved?

I made some changes to video deletion and MediaStore, should be fixed in next version (it always gets deleted correctly now from my tests). Please re-open if the issue persists. Thanks!


Add parent::__construct to addConstructorOpen when BaseClass is defined

When i have a BaseClass in my  node in schema.xml the $outputDir/Base/$name.php has the right extends Expression.
/**
 * Initializes internal state of $pathToModel object.
 */
 public function __construct()
 {
 }

But why not then there is no parent::__construct() after? Would be nice if the BaseClass is valid and added to the class defination.
/**
 * Initializes internal state of $pathToModel object.
 */
 public function __construct()
 {
   parent::__construct();
 }

Is someone able to make a PR here with suggested changes?