Make configuration specs an asset

Motivation
The Agent erroneously tries to load them and they aren't the full, rendered spec anyway

@nmuesch b/c we modifying asset assumptions

Thanks! A bit more background on this issue, for future reference: if the conf_spec.yaml file (typically as added in https://github.com/DataDog/integrations-core/pull/5239) is shipped in data/ (as a conf file) included in the integration wheel, then the integration command of the Agent will copy that conf_spec.yaml file to <agent_conf_dir>/conf.d/<integration_name>.d/conf_spec.yaml when installing the integration wheel.
This will make the Agent try to load that file as a config file, and it'll then display a config error because conf_spec.yaml has neither the instances or logs keys defined.
So the fix is to not ship the conf_spec.yaml in the integration wheel for now. It's incomplete (doesn't have options common to all integrations) anyway.


Ability to see the effective envoy configuration

EnvoyConfig does some processing on the logic and merges multiple parts to create one cohesive configuration, which is then served to the envoy. However, as a user, when I am debugging an issue with a config, it would be a great addition if I could see the effective configuration, which I could use in a non-marin3r deployment or verify in pure envoy (e.g. to report a bug, to get help on official channels etc.).

/kind feature

related to this, might be worth taking a look at https://github.com/lidizheng/proposal/blob/csds/A40-csds-support.md

I'm late to this discussion, but if I want to see the Envoy config I usually dump the contents of the current envoyconfigrevision.marin3r.3scale.net CR.


[Maps] Replace the generated lro methods with the createHttpPoller

Packages impacted by this PR

@azure/maps-search
@azure/maps-common

Issues associated with this PR

NA

Describe the problem that is addressed by this PR
As @deyaaeldeen suggests, we should use the createHttpPoller like the one in ai-language-text instead of using the generated one for several reasons:

maps-search's lro doesn't support cancelation, the generated lro contains cancel operation which has no function in our case. But createHttpPoller will return SimplePollerLike which doesn't have a cancel method.
We can leverage the processResult parameter to map the API result. Using this can help us remove the BatchPollerProxy

What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?

NA

Are there test cases added in this PR? (If not, why?)

NA

Provide a list of related PRs (if any)

NA

Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[x] Added impacted package name to the issue description
[x] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[ ] Added a changelog (if necessary)

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-maps-search

The change looks good! Do you plan on adding distributed tracing?

@deyaaeldeen Thanks for the review! What do you mean by distributed tracing ?


besu help displays with too narrow wrap

even when my command window is full screen, the besu -h output is only 100ish characters wide
surely there is some PicoCLI options to optimize this

apologies @FaybianB I did not see your message! Yes if you want to submit a PR that would be super! shout out if you get stuck

just found this which I think has a good example https://github.com/remkop/picocli/discussions/1753


Docker image build fails because of no matching distribution for pycolmap

Hello,
I followed the instructions to clone the repository and build the docker image, however, upon running
docker build -t hloc:latest .
the installation fails with the following error:
#12 154.9 ERROR: Could not find a version that satisfies the requirement pycolmap (from versions: none)
#12 154.9 ERROR: No matching distribution found for pycolmap
------
executor failed running [/bin/sh -c pip3 install -r requirements.txt]: exit code: 1

Not sure how to fix this, as running pip install pycolmap==0.1.0 on my machine (or python venv) always resolves.
Also the following Dockerfile works:
FROM python:3.8-slim-buster
RUN pip3 install pycolmap==0.1.0

I am running WSL2 + Docker Desktop.
I saw the other closed issues regarding pycolmap installation, however, those posters were using Windows.

Thanks for reporting this issue. Can you please try out PR https://github.com/cvg/Hierarchical-Localization/pull/157?


Integrate AAD for the workload to be  be updated with Azure AD Workload Identity

Integrate Azure Active Directory for the workload section should be updated as Pod Identity V1 will not GA, should be updated with Azure AD Workload Identity which is the new name for Pod Identity V2

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 46723a24-75ac-f6e2-c172-d3827ca0b7d6
Version Independent ID: c975744e-e594-5667-14b3-c38824bbe24c
Content: Baseline architecture for an AKS cluster - Azure Architecture Center
Content Source: docs/reference-architectures/containers/aks/secure-baseline-aks.yml
Service: architecture-center
Sub-service: reference-architecture
GitHub Login: @PageWriter-MSFT
Microsoft Alias: pnp

Thank you for your detailed feedback.  We are looking into the issue, and we will respond when we have more information.

This is reflected in the latest version of the article.


Configurable Breakpoints

Hello friends,
I want to talk about the breakpoints.
For now we have:
xs	<768px Responsive columns or column props object	number/object (i.e： {span: 4, offset: 4})	—	—
sm	≥768px Responsive columns or column props object	number/object (i.e： {span: 4, offset: 4})	—	—
md	≥992 Responsive columns or column props object	number/object (i.e： {span: 4, offset: 4})	—	—
lg	≥1200 Responsive columns or column props object	number/object (i.e： {span: 4, offset: 4})	—	—

I'd like to config the breakpoints as it's possible in bootstrap.
https://v4-alpha.getbootstrap.com/layout/overview/
// Small devices (landscape phones, 576px and up)
@media (min-width: 576px) { ... }

// Medium devices (tablets, 768px and up)
@media (min-width: 768px) { ... }

// Large devices (desktops, 992px and up)
@media (min-width: 992px) { ... }

// Extra large devices (large desktops, 1200px and up)
@media (min-width: 1200px) { ... }

In bootstrap the "xs" is everything up to 576px, which is better if you want to design also for smart devices.
Right now the smalles breakpoint is 768px, so we are quite limited in designing.
Is there any plan to implement this?

so you just want to change it to the following
xs <576px
sm >=576px
md >=768px
lg >= 992px
xl >= 1200px
or do you mean by configure, defining the breakpoints yourself? you can still use media queries such as in bootstrap, but they won't affect the predefined xs, md etc breakpoints

I'm sorry to say that element is not made for mobile devices.

I'm sorry to say that element is not made for mobile devices.

🚪🚶

@rtheunissen

You can change the breakpoints via the variables. Works like charm!

For anyone else that comes across this issue: https://github.com/ElemeFE/element/blob/dev/packages/theme-chalk/src/common/var.scss#L865-L892


Spotube no tray icon

No tray icon whether spotube is start first or gbar

Can I get a log for this? Also please follow the issue template.

Sry I d originally thought I shouldnt fill this cuz it wasnt a crash, having gone through I see it was my bad!
Please fill out this form and delete the defaults(everything not in bold font), so I can help you better
What doesn't work? Please be as precise as possible.
Spotube tray icon doesnt show up
What did you do, that triggered the issue?

launch gbar - gBar bar 0
launch spotube
or
launch spotube
launch gbar - gBar bar 0

What do you expect should happen?
Spotube tray icon should appear like it does in other bars i.e. waybar

Please include as much information about the crash/bug as possible.

If it is a visual glitch, please include a screenshot/video as well as any modifications to the css (if any).
Literally using just copy pasted defaults from /usr/share/gBar/ no modifications

-Logs - I notice:
SNI: gtk_icon_theme_load_icon failed: Icon '/usr/share/spotube-bin/data/flutter_assets/assets/spotube-logo.png' not present in theme Adwaita SNI: Cannot create item due to missing icon!
Set value for ForceCSS: false Set value for WidgetsLeft: [Workspaces] Set value for WidgetsCenter: [Time] Set value for WidgetsRight: [Tray, Packages, Audio, Bluetooth, Network, Disk, VRAM, GPU, RAM, CPU, Battery, Power] Set value for CPUThermalZone: /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon2/temp1_input Set value for DrmAmdCard: card0 Set value for AmdGPUThermalZone: /device/hwmon/hwmon1/temp1_input Set value for SuspendCommand: ~/.config/scripts/sys.sh suspend Set value for LockCommand: ~/.config/scripts/sys.sh lock Set value for ExitCommand: killall Hyprland Set value for BatteryFolder: /sys/class/power_supply/BAT1 Set value for BatteryWarnThreshold: 20 Set value for DiskPartition: / Set value for DefaultWorkspaceSymbol:  Set value for ShutdownIcon: \s Set value for RebootIcon: 󰑐 Set value for SleepIcon: 󰏤 Set value for LockIcon:  Set value for ExitIcon: 󰗼 Set value for BTOffIcon: 󰂲 Set value for BTOnIcon: 󰂯 Set value for BTConnectedIcon: 󰂱 Set value for DevKeyboardIcon: 󰌌\s Set value for DevMouseIcon: 󰍽\s Set value for DevHeadsetIcon: 󰋋\s Set value for DevControllerIcon: 󰖺\s Set value for DevUnknownIcon: \s Set value for SpeakerMutedIcon: 󰝟 Set value for SpeakerHighIcon: 󰕾 Set value for MicMutedIcon: 󰍭 Set value for MicHighIcon: 󰍬 Set value for PackageOutOfDateIcon: 󰏔\s Set value for WorkspaceScrollOnMonitor: true Set value for WorkspaceScrollInvert: false Set value for NumWorkspaces: 9 Set value for UseHyprlandIPC: true Set value for Location: T Set value for IconsAlwaysUp: false Set value for CenterWidgets: true Set value for CenterSpace: 300 Set value for DateTimeStyle: %a %D - %H:%M:%S %Z Set value for MaxTitleLength: 30 Set value for AudioInput: false Set value for AudioRevealer: false Set value for AudioScrollSpeed: 5 Set value for AudioNumbers: false Set value for CheckPackagesCommand: p="$(checkupdates)"; e=$?; if [ $e -eq 127 ] ; then exit 127; fi; if [ $e -eq 2 ] ; then echo "0" && exit 0; fi; echo "$p" | wc -l Set value for CheckUpdateInterval: 300 Set value for NetworkAdapter: eno1 Set value for NetworkWidget: true Set value for SensorTooltips: false Set value for SensorSize: 24 Set value for NetworkIconSize: 24 Set value for EnableSNI: true Set value for MinDownloadBytes: 0 Set value for MaxDownloadBytes: 10485760 Set value for MinUploadBytes: 0 Set value for MaxUploadBytes: 5242880 Wayland: Register <pending> at ID 0 Wayland: Monitor at ID 0 got name LVDS-2 NVML not found, disabling Nvidia GPU AMD GPU not found, disabling AMD GPU Can't connect to BlueZ d-bus! Disabling Bluetooth! GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.bluez': activation request failed: unknown unit PulseAudio: Context is ready! PulseAudio: Update info Warning: Couldn't open /home/crimson/.config/gBar/style.scss Warning: Failed loading SCSS, falling back to CSS! Info: Loading /home/crimson/.config/gBar/style.css CSS found and loaded successfully! Window: Create on monitor LVDS-2 Couldn't open battery charge files! Disabling battery widget. SNI: Registered Item :1.629 /org/ayatana/NotificationItem/deluge SNI: Registered Item :1.68 /org/ayatana/NotificationItem/alarm_clock_applet SNI: Registered Item :1.1390 /org/ayatana/NotificationItem/31d13a60_0684_11ef_a634_97206047bb3f SNI: Registered Item :1.1307 /StatusNotifierItem SNI: Registered Item :1.1302 /StatusNotifierItem SNI: Registered Item :1.30 /StatusNotifierItem SNI: Creating Item :1.30 /StatusNotifierItem SNI: Creating Item :1.1307 /StatusNotifierItem SNI: Creating Item :1.1302 /StatusNotifierItem SNI: Creating Item :1.1390 /org/ayatana/NotificationItem/31d13a60_0684_11ef_a634_97206047bb3f SNI: Creating Item :1.68 /org/ayatana/NotificationItem/alarm_clock_applet SNI: Creating Item :1.629 /org/ayatana/NotificationItem/deluge SNI: Menu object path: /org/ayatana/NotificationItem/alarm_clock_applet/Menu SNI: Creating icon from "alarm-clock" SNI: Allocating static name buffer for :1.68 SNI: Add :1.68 to widget SNI: Menu object path: /org/ayatana/NotificationItem/31d13a60_0684_11ef_a634_97206047bb3f/Menu SNI: gtk_icon_theme_load_icon failed: Icon '/usr/share/spotube-bin/data/flutter_assets/assets/spotube-logo.png' not present in theme Adwaita SNI: Cannot create item due to missing icon! SNI: Menu object path: /org/ayatana/NotificationItem/deluge/Menu SNI: Creating icon from "deluge-panel" SNI: Allocating static name buffer for :1.629 SNI: Add :1.629 to widget SNI: Title:  SNI: Menu object path: /MenuBar SNI: Width: 22 SNI: Height: 22 SNI: Creating icon from pixmap SNI: Allocating static name buffer for :1.1307 SNI: Add :1.1307 to widget SNI: Title: plsandthanku - KeePassXC SNI: Menu object path: /MenuBar SNI: Creating icon from "keepassxc-monochrome-light" SNI: Allocating static name buffer for :1.30 SNI: Add :1.30 to widget SNI: Title: Flameshot SNI: Menu object path: /MenuBar SNI: Creating icon from "flameshot" SNI: Allocating static name buffer for :1.1302 SNI: Add :1.1302 to widget SNI: Reloading :1.68 /org/ayatana/NotificationItem/alarm_clock_applet (Sender: :1.68) SNI: Reloading :1.1307 /StatusNotifierItem (Sender: :1.1307) SNI: Title:  SNI: Menu object path: /MenuBar

The config (~/.config/gBar/config) used is always valuable to diagnose an issue, so please include it.
Literally using just copy pasted defaults from /usr/share/gBar/
Here copy pasted from my .config/gBar/config
`# Example configuration.

Everything after '#' is ignored
Format of the variables:
[variable]: [value]
Whitespaces are ignored in the following locations:
- Before the variable
- After the ':'
- After the value

String variables can be escaped ([Notation in config] -> "Result"):
- foo\bar -> "foobar"
- foo\nbar -> "foobar"
- foo\sbar -> "foo bar"
If true, gBar ignores *.scss files and only tries to load *.css files.
This is useful, if you don't want to SCSS, or if you want to use newer SCSS features,
that libsass (the backend gBar uses) doesn't support.
ForceCSS: false
The following three options control the ordering of the widgets.
Reordering can cause slight margin inconsistencies,
so it is recommend to only make minor adjustments to the default layout.
Adding the same widget multiple times to the layout is not supported and will cause issues.
Widgets to show on the left side
WidgetsLeft: [Workspaces]
Widgets to center
WidgetsCenter: [Time]
Widgets to display on the right side
WidgetsRight: [Tray, Packages, Audio, Bluetooth, Network, Disk, VRAM, GPU, RAM, CPU, Battery, Power]
The CPU sensor to use
CPUThermalZone: /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon2/temp1_input
The card to poll when using AMDGPU. If you don't have an AMD card, you can skip this config.
Possible values can be found by querying /sys/class/drm
DrmAmdCard: card0
Relative path to AMD gpu thermal sensor, appended after /sys/class/drm/
AmdGPUThermalZone: /device/hwmon/hwmon1/temp1_input
The command to execute on suspend
SuspendCommand: ~/.config/scripts/sys.sh suspend
The command to execute on lock
LockCommand: ~/.config/scripts/sys.sh lock
The command to execute on exit
ExitCommand: killall Hyprland
The folder, where the battery sensors reside
BatteryFolder: /sys/class/power_supply/BAT1
Threshold, when the battery is considered low and a different color (as specified by the 'battery-warning' CSS property) is applied
BatteryWarnThreshold: 20
The partition to monitor with disk sensor
DiskPartition: /
Overrides the icon of the nth (in this case the first) workspace.
Please note the missing space between "," and the symbol. Adding a space here adds it to the bar too!
#WorkspaceSymbol: 1,
The default symbol for the workspaces
DefaultWorkspaceSymbol: 
All of the icons that can be modified.
Please note that some icons require a space ("\s") (e.g. default ShutdownIcon)
ShutdownIcon: \s
RebootIcon: 󰑐
SleepIcon: 󰏤
LockIcon: 
ExitIcon: 󰗼
BTOffIcon: 󰂲
BTOnIcon: 󰂯
BTConnectedIcon: 󰂱
DevKeyboardIcon: 󰌌\s
DevMouseIcon: 󰍽\s
DevHeadsetIcon: 󰋋\s
DevControllerIcon: 󰖺\s
DevUnknownIcon: \s
SpeakerMutedIcon: 󰝟
SpeakerHighIcon: 󰕾
MicMutedIcon: 󰍭
MicHighIcon: 󰍬
PackageOutOfDateIcon: 󰏔\s
Scroll through the workspaces of the current monitor instead of all workspaces
WorkspaceScrollOnMonitor: true
When true: Scroll up -> Next workspace instead of previous workspace. Analogous with scroll down
WorkspaceScrollInvert: false
Number of workspaces to display. Displayed workspace IDs are 1-n (Default: 1-9)
NumWorkspaces: 9
Use Hyprland IPC instead of the ext_workspace protocol for workspace polling.
Hyprland IPC is slightly less performant (+0.1% one core), but way less bug prone,
since the protocol is not as feature complete as Hyprland IPC.
NOTE: Hyprland no longer supports ext-workspace-unstable-v1 as of commit bb09334.
Hyprland IPC is thus required for workspace support under Hyprland >=v0.30.0!
UseHyprlandIPC: true
The location of the bar
Needs to be capitalized!!
Values are: L (Left), R (Right), T (Top), B (bottom)
Location: T
When the location is set to side, this option forces everything (even text) to be right-side up.
Always make sure to enable SensorTooltips when enabling this option. Failure to do so will cause graphical issues.
IconsAlwaysUp: false
Forces the widgets in the center to be centered.
This can cause the right widget to clip outside, if there is not enough space on screen (e.g. when opening the text)
Setting this to false will definitely fix this issue, but it won't look very good, since the widgets will be off-center.
So try to decrease "CenterSpace" first, before setting this configuration to false.
Legacy name: CenterTime
CenterWidgets: true
How much space should be reserved for the center widgets. Setting this too high can cause the right widgets to clip outside.
Therefore try to set it as low as possible if you experience clipping.
Although keep in mind, that a value that is too low can cause the widget to be be off-center,
which can also cause clipping.
If you can't find an optimal value, consider setting 'CenterWidgets' to false
Legacy name: TimeSpace
CenterSpace: 300
Set datetime style
DateTimeStyle: %a %D - %H:%M:%S %Z
Set datetime locale (defaults to system locale if not set or set to empty string)
#DateTimeLocale: de_DE.utf8
How many characters of the title can be displayed. Note that higher values will cause styling issues, especially when it is in the center.
If you have the title in the center, consider also increasing "CenterSpace"
MaxTitleLength: 30
Adds a audio input(aka. microphone) widget
AudioInput: false
Sets the audio slider to be on reveal (Just like the sensors) when true. Only affects the bar.
AudioRevealer: false
Sets the rate of change of the slider on each scroll. In Percent
AudioScrollSpeed: 5
Display numbers instead of a slider for the two audio widgets. Doesn't affect the audio flyin
AudioNumbers: false
Command that is run to check if there are out-of-date packages.
The script should return ONLY a number. If it doesn't output a number, updates are no longer checked.
Default value is applicable for Arch Linux. (See data/update.sh for a human-readable version)
CheckPackagesCommand: p="$(checkupdates)"; e=$?; if [ $e -eq 127 ] ; then exit 127; fi; if [ $e -eq 2 ] ; then echo "0" && exit 0; fi; echo "$p" | wc -l
How often to check for updates. In seconds
CheckUpdateInterval: 300
Limits the range of the audio slider. Only works for audio output.
Slider "empty" is AudioMinVolume, Slider "full" is AudioMaxVolume
AudioMinVolume: 30 # Audio can't get below 30%
AudioMaxVolume: 120 # Audio can't get above 120%
The network adapter to use. You can query /sys/class/net for all possible values
NetworkAdapter: eno1
Disables the network widget when set to false
NetworkWidget: true
Use tooltips instead of sliders for the sensors
SensorTooltips: false
The size of the of the circular sensors
SensorSize: 24
The size of the network icon
NetworkIconSize: 24
Enables tray icons
EnableSNI: true
SNIIconSize sets the icon size for a SNI icon.
SNIPaddingTop Can be used to push the Icon down. Negative values are allowed
SNIIconName overrides what icon from an icon theme to display.
SNIDisabled prevents an icon from being registered.
For all SNI properties: The first parameter is a filter of the tooltip(The text that pops up, when the icon is hovered) of the icon.
The wildcard filter '*' does not work for SNIIconName and SNIDisabled
Scale everything down to 25 pixels ('*' as filter means everything)
#SNIIconSize: *, 25
Explicitly make OBS a bit smaller than default
#SNIIconSize: OBS, 23
Nudges the Discord icon a bit down
#SNIPaddingTop: Discord, 5
Override the default icon given to gBar by discord to an icon theme supplied one (Example is from papirus theme)
#SNIIconName: Discord, discord-tray
Prevents steam from displaying. Note: Steam doesn't have a tooltip, which means the object path is filtered instead.
#SNIDisabled: steam, true
These set the range for the network widget. The widget changes colors at six intervals:
- Below Min...Bytes ("under")
- Between ]0%;25%]. 0% = Min...Bytes; 100% = Max...Bytes ("low")
- Between ]25%;50%]. 0% = Min...Bytes; 100% = Max...Bytes ("mid-low")
- Between ]50%;75%]. 0% = Min...Bytes; 100% = Max...Bytes ("mid-high")
- Between ]75%;100%]. 0% = Min...Bytes; 100% = Max...Bytes ("high")
- Above Max...Bytes ("over")
MinDownloadBytes: 0
MaxDownloadBytes: 10485760 # 10 * 1024 * 1024 = 10 MiB
MinUploadBytes:   0
MaxUploadBytes:   5242880    # 5 * 1024 * 1024 = 5 MiB
`

OS: [Arch]
Desktop environment [Hyprland]
commit sha256 if possible [037a995f4b0b40e86ef476ba32b67120282f32ff] - I believe this is the one? I m using the aur gbar-git package, so took it  from https://aur.archlinux.org/cgit/aur.git/commit/?h=gbar-git&id=037a995f4b0b40e86ef476ba32b67120282f32ff

can probably be resolved with #63 If I can set custom icon i.e. /usr/share/icons/spotube/spotube-logo.png
which i guess is what waybar doing for such icons example?
Because spotube doesnt appear to be in breeze or papirus yet for example. I ll update if I can resolve this, it s probably somthing easy to do on my part -Unless gbar was supposed to look for that custom on its own and I missunderstood

yeah kalarm for eample works fine but I cant get spotube icon to work
Maybe I missunderstood smthing? I tried setting full path, copy pasting spotube-logo in both /usr/share/icons/ and .local/share/icons
and
SNIIconName: KAlarm, kalarm
SNIIconName: Spotube, spotube-logo #didnt work
SNIIconName: Spotube, /usr/share/icons/spotube/spotube-logo.png #didnt work
even tried some other generic ones i searched inside the themes i used i.e. anydesk still nothing showed up

The icon didn't load, because spotube only gives an absolute path, which is as far is I can tell against the specification. Anyways, I added a fix for this, so it should work out of the box now.

#SNIIconName: Spotube, spotube-logo #didnt work

This was a bug on my side, since for the selector I only considered the tooltip (not set by spotube) and object path (a random string for spotube). gBar now also considers the title, so SNIIconName: spotube, ... should work.

SNIIconName: Spotube, /usr/share/icons/spotube/spotube-logo.png #didnt work

Should also work now, when replacing "Spotube" with "spotube".


validation discrepancy in training.py and validate.py

Hi Ross,
As always thanks for the great codebase. I am trying to reproduce the efficientDet-D1. I have a question regarding the reported Average Precision during training vs the mAP reported in validate.py.
For D1, this is a snapshot of the training log:
Test (EMA): [   0/9]  Time: 14.371 (14.371)  Loss:  0.5902 (0.5902)
Test (EMA): [   9/9]  Time: 7.463 (2.456)  Loss:  0.6043 (0.5914)
Loading and preparing results...
DONE (t=0.20s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type *bbox*
DONE (t=0.85s).
Accumulating evaluation results...
DONE (t=0.41s).
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.470
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.655
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.520
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.256
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.519
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.677
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.395
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.537
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.550
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.308
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.604
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.718

which seems to reach a 47 mAP. However if i use the validate.py (with ema) then the reported mAP is 37.4 instead. I am still going through the code but can't identify what i have done wrong. Have you encountered this problem before?

@rwightman  Just did another run and still seeing the same behavior, training log attached below. This is for efficientDet-D1
Train: 211 [   0/230 (  0%)]  Loss:  0.441065 (0.4411)  Time: 81.003s,    6.32/s  (81.003s,    6.32/s)  LR: 3.231e-02  Data: 79.056 (79.056)
Train: 211 [  50/230 ( 22%)]  Loss:  0.459807 (0.4504)  Time: 1.980s,  258.57/s  (3.779s,  135.49/s)  LR: 3.231e-02  Data: 0.008 (1.557)
Train: 211 [ 100/230 ( 44%)]  Loss:  0.462480 (0.4545)  Time: 1.975s,  259.19/s  (2.910s,  175.95/s)  LR: 3.231e-02  Data: 0.008 (0.790)
Train: 211 [ 150/230 ( 66%)]  Loss:  0.456612 (0.4550)  Time: 1.984s,  258.12/s  (2.606s,  196.49/s)  LR: 3.231e-02  Data: 0.008 (0.531)
Train: 211 [ 200/230 ( 87%)]  Loss:  0.437057 (0.4514)  Time: 2.010s,  254.73/s  (2.473s,  207.05/s)  LR: 3.231e-02  Data: 0.008 (0.401)
Train: 211 [ 229/230 (100%)]  Loss:  0.505001 (0.4527)  Time: 21.828s,    2.93/s  (2.518s,   25.42/s)  LR: 3.231e-02  Data: 16.691 (0.424)
Train epoch time: 579.22s
Test (EMA): [   0/9]  Time: 15.274 (15.274)  Loss:  0.6618 (0.6618)
Test (EMA): [   9/9]  Time: 7.209 (2.540)  Loss:  0.6870 (0.6653)
Loading and preparing results...
DONE (t=0.19s)
creating index...
index created!
Running per image evaluation...
Evaluate annotation type *bbox*
DONE (t=0.96s).
Accumulating evaluation results...
DONE (t=0.46s).
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.455
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = 0.633
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = 0.517
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.226
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.516
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.660
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = 0.397
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = 0.531
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.542
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.281
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.594
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.704

you probably aren't validating with the EMA weights, I think validate defaults to not using them EMA copy for training weights files (which have both).

Oh, NM, that's probably not the issue because there is no way you should/could get .450-.470 for a D1...  so something is up with the validation during training, maybe a bug in the distributed evaluator as it looks like you're using more GPUs than I do. Did you modify the code?

Had to modify the training pipeline to fit in our distribution system, so this is likely why. For the validation.py run I am running locally so no code modification. Thanks, it does seen that in your runs you get the same validation (mAP) in both training and validation code.

I'm going to close this, I've tested the eval with 2 and 4 GPU running nccl distributed on one machine, if you are using more exotic setups and non-default process groups the code likely needs some additions, PR welcome if it can be easily updated to support multiple use cases

@rwightman Figured out the problem, accidentally uncomment the 'distributed=args.distributed' during the loader_eval creation, though this seems to make the validation much longer


Make human data public?

Can we make the OpenNeuro repositories public @evaalonsoortiz @Kyota-exe ?
This is a requirement for someone external (eg reviewer) to be able to test the analysis pipeline.

I don't think this is a good idea, as there are still some issues to be dealt with first (e.g., #37) and because we should probably deface the scans before making them public. I am looking into this this weekend.

Is there any update on this @evaalonsoortiz ? I just realized that ds005025 is still not public on OpenNeuro, hence our results are currently not replicable (see https://github.com/spinal-cord-7t/coil-qc-code/issues/123#issuecomment-2440037749).

Ah! Looks like the phantom data is still not public either:

Surely we can make this one public at least-- I'll do it now so I can continue working on https://github.com/spinal-cord-7t/coil-qc-code/issues/123#issuecomment-2440037749

ok, the phantom data is now public: https://openneuro.org/datasets/ds005090/versions/1.1.0

Human data are now public, closing


[5.0] Return collection from query builder

This is a really nice feature. The collection class is one of the best things in Laravel! It is also a boon for consistency.
This one does not touch the getModels method, or anything that has to do with relations or eager loading. In fact, it doesn't touch anything Eloquent related, so it's much safer.
We also now have the integration tests, which really helps.

:+1:

This needs to go to 5.1.

Done in #7419.


Tensor Size Mismatch in attention.py

Getting the following runtime error when running train_videogpt.py on a custom dataset. As for the training args, I trained the vqvae with a batch size of 16, and doing so the same for videogpt. Attached is the traceback. New to pytorch, so any pointers as to where I could go to fix this? Currently only using 1 GPU as I was getting DDP errors from lightning using two, but will be going back later once I can make sure the training can run properly. Any idea what this tensor has in dim3?
The dataset I'm using is simply a train/test set of mp4s.
Used this command with basic arguments.
python3 scripts/train_videogpt.py --data_path <custom_data_path> --gpus 1 --batch_size 16 --vqvae <custom_data_path/epoch=0-step=11702.ckpt> --max_steps 200000
Traceback (most recent call last):
File "scripts/train_videogpt.py", line 43, in
main()
File "scripts/train_videogpt.py", line 39, in main
trainer.fit(model, data)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 458, in fit
self._run(model)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 756, in _run
self.dispatch()
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 797, in dispatch
self.accelerator.start_training(self)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/accelerators/accelerator.py", line 96, in start_training
self.training_type_plugin.start_training(trainer)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py", line 144, in start_training
self._results = trainer.run_stage()
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 807, in run_stage
return self.run_train()
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 842, in run_train
self.run_sanity_check(self.lightning_module)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 1107, in run_sanity_check
self.run_evaluation()
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 962, in run_evaluation
output = self.evaluation_loop.evaluation_step(batch, batch_idx, dataloader_idx)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/trainer/evaluation_loop.py", line 174, in evaluation_step
output = self.trainer.accelerator.validation_step(args)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/accelerators/accelerator.py", line 226, in validation_step
return self.training_type_plugin.validation_step(*args)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/pytorch_lightning/plugins/training_type/training_type_plugin.py", line 161, in validation_step
return self.lightning_module.validation_step(*args, **kwargs)
File "/home/humdaan/Documents/school/AME494/videoGPT/VideoGPT/videogpt/gpt.py", line 158, in validation_step
loss = self.training_step(batch, batch_idx)
File "/home/humdaan/Documents/school/AME494/videoGPT/VideoGPT/videogpt/gpt.py", line 154, in training_step
loss, _ = self(x, targets, cond)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/humdaan/Documents/school/AME494/videoGPT/VideoGPT/videogpt/gpt.py", line 131, in forward
h = self.attn_stack(h, cond, decode_step, decode_idx)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/humdaan/Documents/school/AME494/videoGPT/VideoGPT/videogpt/attention.py", line 55, in forward
x = self.pos_embd(x, decode_step, decode_idx)
File "/home/humdaan/miniconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/humdaan/Documents/school/AME494/videoGPT/VideoGPT/videogpt/attention.py", line 493, in forward
return x + embs
RuntimeError: The size of tensor a (32) must match the size of tensor b (16) at non-singleton dimension 3

I believe the shape for x and embs should both be B x T x H x W x D, where B is batch size, THW is the shape of the encoded video, and D is the hidden dimension. So dim 3 should be W. You can try to print it out to confirm.

That clears it up a bit, thank you!
Didn't change any settings or code asides from the batch size so not sure why the height and width don't match up, will have to dig deeper into it.
torch.Size([16, 4, 32, 32, 576]) torch.Size([1, 4, 16, 16, 576])

The shape of the position embeddings comes from vqvae.latent_shape, so that's somehow not matching the actual shape of the output of the vqvae. Maybe the video resolution is different when you trained the vqvae vs the gpt model?


[v2] CLID-136: Skip deletion of operator catalog image in delete feature

Description
This issue addresses the skip deletion of operator catalog image in delete feature when executing the delete functionality using the --generate flag in version v2 of oc-mirror.
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Tested locally using the following flow
Use this ImageSetConfig to execute a mirrorToDisk workflow
apiVersion: mirror.openshift.io/v2alpha1
kind: ImageSetConfiguration
mirror:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
       packages:
      - name: windows-machine-config-operator

Execute the standard mirrorToDisk execution
Execute the standard diskToMirror using the resulting working-dir artifacts
Create a delete imagesetconfig yaml file
apiVersion: mirror.openshift.io/v2alpha1
kind: DeleteImageSetConfiguration
delete:
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.15
      packages:
      - name: windows-machine-config-operator

Execute the delete sub command with the --generate flag
bin/oc-mirror delete --config delete-simple.yaml --workspace file://clid-136 docker://localhost:5000/clid-136 --v2 --generate --dest-tls-verify=false --src-tls-verify=false

Expected Outcome
Examine the file clid-136/working-dir/delete/delete-images.yaml, there should be no entries found for  registry.redhat.io/redhat/redhat-operator-index:v4.15

Thanks for this change @lmzuccarelli,
I followed the steps and the operator catalog image was skipped as you can see here:
[aguidi@fedora oc-mirror]$ curl http://localhost:6000/v2/openshift4-wincw/windows-machine-config-operator-bundle/tags/list | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    79  100    79    0     0  47504      0 --:--:-- --:--:-- --:--:-- 79000
{
  "name": "openshift4-wincw/windows-machine-config-operator-bundle",
  "tags": null
}
[aguidi@fedora oc-mirror]$ curl http://localhost:6000/v2/openshift4-wincw/windows-machine-config-rhel9-operator/tags/list | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    78  100    78    0     0  46622      0 --:--:-- --:--:-- --:--:-- 78000
{
  "name": "openshift4-wincw/windows-machine-config-rhel9-operator",
  "tags": null
}
[aguidi@fedora oc-mirror]$ curl http://localhost:6000/v2/redhat/redhat-operator-index/tags/list | jq
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    57  100    57    0     0  24956      0 --:--:-- --:--:-- --:--:-- 28500
{
  "name": "redhat/redhat-operator-index",
  "tags": [
    "v4.15"
  ]
}

From my side looks good.

/lgtm


Implement autocorrect for "unreachable code"

Problem
When Sorbet detects "unreachable code", it does not offer an autocorrect option, which would be very nice.
Proposed solution
This is not a trivial problem to solve, and it might uncover other issues.
The place where this would go is probably here:
https://github.com/sorbet/sorbet/blob/bd766c5397a3ed079ff76e2b365ed49285091953/infer/inference.cc#L149-L151
An initial attempt I've made is:
if (auto e = ctx.beginError(expr.loc, core::errors::Infer::DeadBranchInferencer)) {
    e.setHeader("This code is unreachable");
    auto replacementLoc = core::Loc{ctx.file, expr.loc.beginPos(), expr.loc.endPos()};
    e.replaceWith("Delete code", replacementLoc, "");
}

This doesn't work right now because of some issues in how the location is detected (see https://github.com/sorbet/sorbet/issues/3281), though. Once that's fixed, we might want to be able to continue exploring something like this.

I don't think the thing you wanted was to have an autocorrect for unreachable code. The autocorrect for unreachable code is to delete the code.
What you wanted for #3281 which you linked is not to fix locs, but to show a better error message.
With that in mind, what you actually want here is an autocorrect for redundant conditional send, not something specific to dead code.

I don't know how feasible it is... but what I'd like is an autocorrect for unreachable code (that deletes the unreachable code)
e.g.
a = 1 || 2 # I'd like this to be corrected to 1
a = "hello"&.to_s # I'd like this to be corrected to "hello"

The first case is probably really hard to implement... the second one is what I understand you are referring as "redundant conditional send", and that's probably not THAT hard.


Hub

Are you plan to go to https://hub.docker.com/ ?

Yes is this going to Docker hub? As I like to have this on my Unraid server


feat: Add InstallBuilder submitter installer XML.

What was the problem/requirement? (What/Why)
For installing Cinema 4D submitter, customers needed to follow the manual instructions on Github.
What was the solution? (How)
This adds the XML file for providing installation for submitter through DeadlineCloudSubmitter installer.
What is the impact of this change?
Easier for customers to use Cinema 4D when they can use installer instead of manually setting the variables and copying files.
How was this change tested?

Created a fresh instance.
Installed Cinema 4D 2025 on it.
Installed the submitter through a locally built installer.
Confirmed that the plugins directory was created and C4DPYTHONPATH311 environment variable was set.
Unfortunately as we cannot package the PySide modules due to licensing/distribution issues, Cinema 4D initially will throw an error. I fixed it by running the commands below. ('ll be updating the instructions in upcoming PRs soon for easier installation)

"C:\Program Files\Maxon Cinema 4D 2025\resource\modules\python\libs\win64\python.exe" -m ensurepip
"C:\Program Files\Maxon Cinema 4D 2025\resource\modules\python\libs\win64\python.exe" -m pip install PySide6

Was this change documented?
No
Is this a breaking change?
No
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Do the ensurepip commands need to be manually run? If so, I don't think we should add this to the installer until we figure out a better fix. The main benefit for adding the submitter to the installer is to avoid command line steps like this.

Do the ensurepip commands need to be manually run? If so, I don't think we should add this to the installer until we figure out a better fix. The main benefit for adding the submitter to the installer is to avoid command line steps like this.

So as I understand when we install the submitter using the DeadlineCloudSubmitter we also bundle its dependencies such that it should work out of the box once the installation is complete. I believe it uses https://github.com/aws-deadline/deadline-cloud-for-cinema-4d/blob/mainline/depsBundle.py script to bundle those dependencies.


alternative visual indicator for if a hint is included or excluded

right now, the only indicator of if you've excluded or included a hint (before you save) is by the colour of that hint- which is usually fine, but can cause issues if you're colourblind, or you use a greyscale monitor.  having the option for an alternative visual indicator would be nice, like for example adding a tick or a cross to the hint, or giving an excluded hint a dotted outline or something.
Example of how hints look in greyscale:

Makes sense. I will try and see what works best.


"break-after: region" not working

The CSS property "break-after: region" doesn't seem to work properly.
Minimal example that fails: (tested on Chrome 71.0.3578.98 - 64-bit)
<!DOCTYPE html>

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="break-test.css">

    <title>Document</title>

first paragraph

second paragraph

third paragraph

#source {
    flow-into: content-flow contents;
}

.output {
    flow-from: content-flow;
    border: 2px solid blue;
}

p {
    break-after: region;
}

On my browser, all paragraphs are inside the same first region instead of being in separate regions.
I have minimal experience with CSS regions, but this seems wrong.
Can someone help with my problem ?
Thanks in advance,
Vincent Fabro

Just out of curiosity I checked this (nearly two years later) and I can not reproduce this. Everything seems to work just fine.
I tested this with the latest version of Chrome (on Mac OS 11): Version 87.0.4280.88 (Official Build) (x86_64)


Adds auto-mapping for cluster console port and a wrapper for use

This PR adds auto-mapping of a random port to the ocm backplane console port used inside the container, allowing ocm backplane console to behave the same way inside ocm-container as outside.
Launching ocm-contianer with no other options is required, and running ocm backplane console inside the container will detect and use the random port and print the link to copy/paste or click to open outside the container:
$ ocm-container <CLUSTERNAME>
Logging into OCM
Logging into cluster REDACTED
starting sshuttle for REDACTED
REDACTED password:
[~ {production} (REDACTED:default)]$ ocm backplane console
/root/.local/bin/cluster-console
Starting console for cluster REDACTED
== Console is available at http://<IP_ADDRESS>:36497 ==

This also includes a way to disable the automatic port mapping if desired, by passing the -dp or --disable-console-port option to ocm-container at runtime.
Signed-off-by: Chris Collins<EMAIL_ADDRESS>

I can't wait until we can get something similar working in docker or Podman starts getting mac home volume mounts working XD

I have been playing around with a similar idea.
I managed to set it up a port accessible on the host by adding an extra flag to ocm-container to set a port, export that as an env var, and then use that to set a port to expose when the container starts.
I can then use the usual command with that port to get a console.
I like the idea of setting up a command override in the cluster for setting up the console.
I wonder if we can make the port in your change configurable to get the best of both options.

Thanks Chris!!
/lgtm
Again XD


Unable to build on Mac M1 when openssl is installed with Brew

Commands Used
1073  sudo ./configure
1074  sudo make all

Linking libcups3.3.dylib...
ld: warning: ignoring file<EMAIL_ADDRESS>building for macOS-x86_64 but attempting to link with file built for macOS-arm64
ld: warning: ignoring file<EMAIL_ADDRESS>building for macOS-x86_64 but attempting to link with file built for macOS-arm64

The default on macOS is to build Universal Binaries. There are two ways to change this:

Use the --enable-debug option
Add -arch arm64 to the CFLAGS and LDFLAGS environment variables or the OPTIM environment variable.


add .zprofile to the list of startup files

zim does not use/modify .zprofile in it's templates.
for completeness/performance the .zprofile should be compiled/cleaned if present.
ref: zsh startup files

Can you please also run make and include a short description of the change under Unreleased in CHANGELOG.md?
I still need to create  CONTRIBUTING doc with this info.

Merged into develop with the extra changes.

thank you @ericbn (sorry didn't find time to make requested changes)
p.s.
it's a bit more chore to commit to this new structure of zimfw src.
maybe introduce a ci bot for building master branch and tagging releases (in this case zimfw can be downloaded from releases and repository can remain clean without build artifacts)

Yeah, I agree there's room for automation here. It's just not totally clear to me what the process would look like yet. Also, I worry about automating when we don't have any unit tests.
The install script is already downloading the latest release asset instead of the raw file from the master branch. Maybe we should have the same in zimfw upgrade. Let's see how that goes.

I just tried gitpod.io/#https://github.com/zimfw/zimfw and it works like a charm!


[TS migration] Migrate 'ReportActionItemDraft.js' component to TypeScript

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/31930
PROPOSAL:
Tests

[x] Open any report and edit comment, verify that everything is as expected
[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

[x] Open any report and edit comment, verify that everything is as expected
[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
android-native-converted.webm

Android: mWeb Chrome
android-web-converted.webm

iOS: Native
https://github.com/Expensify/App/assets/23215729/950c4c1e-a14d-4c46-b76f-2909e63437ac

iOS: mWeb Safari
https://github.com/Expensify/App/assets/23215729/3a347daa-0618-4b57-996a-5e5f977c54e5

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/23215729/a2e890cd-b04f-441d-bdd4-ab88f3266881

MacOS: Desktop
https://github.com/Expensify/App/assets/23215729/9751ee3b-eb57-49de-a41a-dde74ae40641

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/johnmlee101 in version: 1.4.9-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/johnmlee101 in version: 1.4.9-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.4.9-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


dbeaver enterprise 3.7.7: connect redis failed.

new -->redis--->type the correct ip and port ----> test connection
the connection error occurs !! but command in the linux shells "redis-cli -h <IP_ADDRESS> -p 6379"connect right!
the error information like below:
Could not get a resource from the pool
redis.clients.jedis.exceptions.JedisDataException: ERR Syntax error, try CLIENT (LIST | KILL ip:port)

Please post error stacktrace (you can get it in Error Log view).

where is it? in the dbeaver folder?

Thanks. Looks like your Redis server is quite old. Do you know the version number?
Connection fails when Jedis tries to execute command CLIENT SETNAME (which was added in 2.6.9).

thank you very much! the question is resolved!

Ok


ssc() function does not work properly

i.e. adj = False does nothing

Actually, it does work properly. Added unit tests with v0.3.8.


Use Travis CI to run tests on all pull requests

Travis Continuous Integration can run automated testing using python run_basics.py and flake8.  The Travis CI is free for all open source projects like this one and to turn it on, visit https://travis-ci.org/profile  This config file will have Travis CI run flake8 tests on all pull requests before they are reviewed.

Thank you very much for your contributions! It's very cool!

You need to configure https://travis-ci.com/YadiraF or https://travis-ci.org/YadiraF for this automated testing to work.  They are shifting from .org to .com so it is probably better to start on .com.


Aligning web site tooling to work for metronome and marathon

Summary:
Aligning web site tooling to work for metronome and marathon. Part of the release process work for marathon and metronome.
JIRA issues: MARATHON_EE-1751

@zen-dog There is no effect on existing links... this is just the tooling we use to run the website locally for testing.

@timcharper The build is the same in metronome and marathon..  but building in one project will work for the other project.   I did think about pushing it as a tool as well.   we would want to change to mesosphere/jekyll.


postman: 9.1.4 -> 9.2.0

Motivation for this change
Bleeding edge!
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Please run the file through nixpkgs-fmt.

Done in e44b3dfbcc61cdf8b1a7297a6d1a81f4a30677e8

Change meta.homepage to https://www.postman.com/, as the current is only a referrer.

Done in 4e84d0b23bece94be8f517de278915fea489f2d2

Add the pre- and post-hooks to installPhase.

Done in 59162499fc2058e827ce64c433abba185be3f91f.
Why was it important/suggested to do 3.?

Otherwise users of the package are unable to augment it with overrideAttrs ... { preInstall = ... } and are forced to copy the installPhase. pre and post hooks are no longer implicit when defining a phase as *Phase = "..."; but must be supplied explicitly.

Please, squash the fixes into a single commit!

Please, squash the fixes into a single commit!

Done in 9608b99aa4e4d78013da5fcfd45d67c6fee8e6b7 . My commit message is multi-line to reflect the changes to installPhase and meta.homepage. Please let me know if that needs to be stripped out.

Good to merge, from my side!

#149518 supersedes this .


PriceCheck error on startup and hover delay not working

I get a pop up saying PriceCheck ran into an error, it continues to work but the hover delay has stopped working.
I've got it set to 2 and when I hover over an item it does wait 2 seconds, but then it instantly starts processing any other items I hover over. Was fine until last update to PriceCheck.

What is the error? Do you keep getting it or just once after installing the update?

I don't see an error code just a pop up saying an error has happened and to report it.
https://i.imgur.com/LQC6jht.png

https://www.youtube.com/watch?v=YnKqdoHWa1Q
Other than the mouse not showing properly hopefully the video shows a bit more of what I mean by hover delay not working, it's set as 2 seconds hover delay. You can see the hover effect anyway so should be able to see I am quickly hovering and it's still processing.

Closing since think this all sorted. Let me know if still any issues.


[skip ci] rhcs: default to containerized deployment

Starting RHCS 5, only containerized deployment is available.
Signed-off-by: Dimitri Savineau<EMAIL_ADDRESS>

I guess this will maybe break the RHCS upgrade workflow
@guits WDYT ?


Use relative path instead of absolute for path

I found this problem when trying the example and thought that maybe it should be done this way.

Codecov Report

Merging #244 into develop will not change coverage.
The diff coverage is n/a.

@@             Coverage Diff             @@
##            develop       #244   +/-   ##
===========================================
  Coverage   100.000%   100.000%
===========================================
  Files            34         34
  Lines          2630       2630
===========================================
  Hits           2630       2630


Added option to redirect ONIX output

The user can now provide the burn routine with a prefix - relative to the current working directory - that the ONIX output is redirected to. The structure of the output itself remains unchanged. Note that ONIX still works and temporarily creates and reads files in the current directory, and as such running several instances of ONIX at the same time from the same directory will still cause issues, regardless of their final output directories being different. I still think it is a nice QOL addition.

Looks like a good idea to me, but we need to test it before merging.

Fixed two small bugs and tested - now everything is working as intended

I added the explanation for prefix to the existing docstrings, will now merge


feat(AccessOffer): added renewalTimestamp

This is required to pull the renewal time of the offer.

@ipainchaud we should not be using the renewalTimestamp. AFAIK that's a deprecated feature.


Set-SPOSite - Need CSOM Reference

Hi folks....I'm able to stop page comments using CommentsOnSitePagesDisabled property in Set-SPOSite powershell command.
Please help me point to the same property (CommentsOnSitePagesDisabled ) in CSOM.
Anyhelp would be highly appreciated.

Hi @narulasrinivas. Is this close to what you are looking for?
Powershell in SharePoint: Disable comments on modern pages in entire site using CSOM


recognizer.on result never gets called.

I used the react code, and it never calls this piece of code.  Is there a parameter to set to enable collecting result?
recognizer.on("result", (message: any) => {
      const { result } = message;
      setUtterances((utt: VoskResult[]) => [...utt, result]);
    });

Are you sure the model is being loaded and audio is being sent? Please share more logs as results should be sent as long as enough audio is being sent to the worker.

@tab-zero Can you share a reproduction script?

Feel free to reopen if you can share a reproduction script.


Add ignoreTables flag

I have a scenario where I want to generate a mermaid diagram for the entire schema but exclude a couple of specific tables.
In order to achieve this, I've added a ignoreTables flag consisting of a slice of strings. The exact name of the tables can be given or you can pass a regex pattern.

@KarnerTh could you have a look at this please 🙏

Thank you very much! Will try to review it this weekend.
Would fix #56

Great work @jamieaitken 🙌🏼
Just added some minor changes

Changes are available in version 0.11.0


Add dataset: early_printed_books_font_detection

A URL for this dataset
https://zenodo.org/record/3366686
Dataset description

This dataset is composed of photos of various resolution of 35'623 pages of printed books dating from the 15th to the 18th century. Each page has been attributed by experts from one to five labels corresponding to the font groups used in the text, with two extra-classes for non-textual content and fonts not present in the following list:  Antiqua, Bastarda, Fraktur, Gotico Antiqua, Greek, Hebrew, Italic, Rotunda, Schwabacher, and Textura.

This dataset offers an image classification dataset that has potential implications for other downstream tasks such as OCR recognition.
A related paper Dataset of Pages from Early Printed Books with Multiple Font Groups
Dataset modality
Image
Dataset licence
Creative Commons Attribution Non Commercial Share Alike 4.0 International
Other licence
No response
How can you access this data
As a download from a repository/website
Confirm the dataset has an open licence

[X] To the best of my knowledge, this dataset is accessible via an open licence

Contact details for data custodian
No response

Whilst this dataset should be fairly easy to add to the datasets hub, it is quite large, so you should be aware of this.


Add Claude tool use

@imaurer for your review :)

It looks like the table formatting got changed a bit. Not sure if your markdown editor didn't like the line breaks.


UpdateDatabaseRequest missing property

Hi @seratch, thank you for a nice JVM Notion client.
I found out that UpdateDatabaseRequest doesn't have the description property, but description update is allowed according to the API documentation

Hi @kascoder, thanks for taking the time to report this. It seems that they added the parameter recently. This SDK can support it in the next release.


packit 0.7.0: I have to set upstream_project_url in my upstream project

which is nuts...
$ packit srpm
Packit 0.7.0 is being used.
Input is a directory: /home/tt/g/TomasTomecek/sen
WARNING  We cannot determine, if the input is upstream or downstream. Using upstream as a default.
ERROR    Please, set 'upstream_project_url' in your config file.

this can break packit-service, let me fix that right away

this can break packit-service, let me fix that right away

@TomasTomecek How do you want to "fix" that? (In the service/tool?)
(btw I asked about that multiple times)


[1.20.1] Item's won't go into drawer?

Functional Storage Version: functionalstorage-1.20.1-1.2.8
Titanium Version: titanium-1.20.1-3.8.25
Crashlog If Applicable (Upload to pastebin/gist): N/A - not causing a crash
My items aren't going into drawers (via pipes or manually do it). Even if I manually do it, I need to take the item out first before right-click deposits what was already in my inventory. https://imgur.com/a/VdkncN7
I am getting mixed results, i am playing atm9, and made a post on their github too, here's the information there:
Issue: The issue is that something is adding the NBT Tag "{Picked:1b}" to a lot of items, making them not stack with the vanilla unmodified item. For example, if I have ender pearls, from the base game, and put them into the storage, and then something in the pack applies the data to the enderpearl, it will not stack with the vanilla ones in my drawer. I am using Spawners and Cursed Earth dirt to spawn mobs in.
It's not just Ender Pearls, it's a variety of items. I have items coming in from a fortune clearing quarry, and the mob farm mentioned above.
Pack Version: 0.2.40
Media:
The NBT Data on the Enderpearl is shown with the clip.
https://imgur.com/a/JX52bAh
https://imgur.com/a/Wglu3Wk
I just don't understand... I just had two different slime pearl items, same lore, same name, no nbt data, but they refused to stack, and then when I manually took the item out of the drawer, and put them back in, they stacked. However, my slime balls, same deal, no nbt data, but refused to go into my drawer of slime balls (with a available space).
I made this post with this exact issue in discord:
`Has anyone ever had issues with function storage? My items are not going into my drawers while im piping them into the controller, or when I right-click it to manually store it, it wont go in until I take the item out to add it to the stack in my inventory and then I can right-click again for it to deposit?
https://imgur.com/a/d0p1YVR
Here's the clip --- and I just realized, i think its the same issue i posted about before... items are getting a weird nbt data which makes them not stack, despite being the exact same item. If I put two of the same items (that don't stack) inside a pipz filter, one of them has no data, one has the data "{Picked:1b}". https://imgur.com/a/JX52bAh the clip of linked drawers and the nbt data picture`

Some mod is adding NBT to the empty stack, nothing I can do about it


YodaStyleFixer - Add always_move_variable option

Closes #3153. Should be merged after #3674.

Rebased.

Please add a code sample showing how the new options work.

Please add a code sample showing how the new options work.

Done.
I also removed the always_move_constant option I introduced, I noticed it actually has no effect: constants are moved even without the option. Not sure why I introduced it. Maybe something fixed in upstream branches.

Thank you @julienfalque.


CurrentAverageValue isn't an integer & CurrentValue is 0

The issue we are experiencing is that CW adapter is able to read from Cloudwatch(it appears, no auth errors anywhere) but we are getting currentValue of 0 and a currentAverageValue way too large and alphanumeric like 18856m.
It is using IAM service accounts for EKS.
HPA live annotations:
autoscaling.alpha.kubernetes.io/current-metrics: >-[{"type":"External","external":{"metricName":"REPLACE-queue-length","currentValue":"0","currentAverageValue":"18556m"}}]
autoscaling.alpha.kubernetes.io/metrics: >-[{"type":"External","external":{"metricName":"REPLACE-queue-length","targetAverageValue":"40"}}]

Here are my yaml definitions:
---
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: REPLACE
  labels:
    version: REPLACE
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: REPLACE
  minReplicas: 2
  maxReplicas: 1024
  metrics:
  - type: External
    external:
      metricName: REPLACE-queue-length
      targetAverageValue: 40
---
apiVersion: metrics.aws/v1alpha1
kind: ExternalMetric
metadata:
  name: REPLACE-queue-length
spec:
  name: REPLACE-queue-length
  resource:
    resource: "deployment"
  queries:
  - id: sqs_REPLACE_files
    metricStat:
      metric:
        namespace: "AWS/SQS"
        metricName: "ApproximateNumberOfMessagesVisible"
        dimensions:
          - name: QueueName
            value: REPLACE
      period: 60
      stat: Average
      unit: Count
    returnData: true

Here is cloudwatch adapter manifest:
---
apiVersion: v1
kind: Namespace
metadata:
  name: custom-metrics
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: k8s-cloudwatch-adapter:system:auth-delegator
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:auth-delegator
subjects:
- kind: ServiceAccount
  name: k8s-cloudwatch-adapter
  namespace: custom-metrics
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: k8s-cloudwatch-adapter-auth-reader
  namespace: kube-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: extension-apiserver-authentication-reader
subjects:
- kind: ServiceAccount
  name: k8s-cloudwatch-adapter
  namespace: custom-metrics
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: k8s-cloudwatch-adapter
  name: k8s-cloudwatch-adapter
  namespace: custom-metrics
spec:
  replicas: 1
  selector:
    matchLabels:
      app: k8s-cloudwatch-adapter
  template:
    metadata:
      labels:
        app: k8s-cloudwatch-adapter
      name: k8s-cloudwatch-adapter
    spec:
      securityContext:
        fsGroup: 65534
      serviceAccountName: k8s-cloudwatch-adapter
      containers:
      - name: k8s-cloudwatch-adapter
        env:
        - name: AWS_DEFAULT_REGION
          value: REPLACE
        image: chankh/k8s-cloudwatch-adapter:v0.8.0
        imagePullPolicy: "Always"
        args:
        - /adapter
        - --cert-dir=/tmp
        - --secure-port=6443
        - --logtostderr=true
        - --v=10
        ports:
        - containerPort: 6443
          name: https
        - containerPort: 8080
          name: http
        volumeMounts:
        - mountPath: /tmp
          name: temp-vol
      volumes:
      - name: temp-vol
        emptyDir: {}
      - name: token-vol
        projected:
          sources:
          - serviceAccountToken:
              path: token
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: k8s-cloudwatch-adapter-resource-reader
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: k8s-cloudwatch-adapter-resource-reader
subjects:
- kind: ServiceAccount
  name: k8s-cloudwatch-adapter
  namespace: custom-metrics
---
kind: ServiceAccount
apiVersion: v1
metadata:
  name: k8s-cloudwatch-adapter
  namespace: custom-metrics
---
apiVersion: v1
kind: Service
metadata:
  name: k8s-cloudwatch-adapter
  namespace: custom-metrics
spec:
  ports:
  - name: https
    port: 443
    targetPort: 6443
  - name: http
    port: 80
    targetPort: 8080
  selector:
    app: k8s-cloudwatch-adapter
---
apiVersion: apiregistration.k8s.io/v1beta1
kind: APIService
metadata:
  name: v1beta1.external.metrics.k8s.io
spec:
  service:
    name: k8s-cloudwatch-adapter
    namespace: custom-metrics
  group: external.metrics.k8s.io
  version: v1beta1
  insecureSkipTLSVerify: true
  groupPriorityMinimum: 100
  versionPriority: 100
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: k8s-cloudwatch-adapter:external-metrics-reader
rules:
- apiGroups:
  - external.metrics.k8s.io
  resources: ["*"]
  verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: k8s-cloudwatch-adapter-resource-reader
rules:
- apiGroups:
  - ""
  resources:
  - namespaces
  - pods
  - services
  verbs:
  - get
  - list
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: k8s-cloudwatch-adapter:external-metrics-reader
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: k8s-cloudwatch-adapter:external-metrics-reader
subjects:
- kind: ServiceAccount
  name: horizontal-pod-autoscaler
  namespace: kube-system
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: externalmetrics.metrics.aws
spec:
  group: metrics.aws
  version: v1alpha1
  names:
    kind: ExternalMetric
    plural: externalmetrics
    singular: externalmetric
  scope: Namespaced
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: k8s-cloudwatch-adapter:crd-metrics-reader
  labels:
    app: k8s-cloudwatch-adapter
rules:
- apiGroups:
  - metrics.aws
  resources:
  - "externalmetrics"
  verbs:
  - list
  - get
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: k8s-cloudwatch-adapter:crd-metrics-reader
  labels:
    app: k8s-cloudwatch-adapter
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: k8s-cloudwatch-adapter:crd-metrics-reader
subjects:
  - name: k8s-cloudwatch-adapter
    namespace: "custom-metrics"
    kind: ServiceAccount

I would like to add that the HPA is scheduling more replicas and is scaling up, but it stops scaling and actually scales down - even when pods are processing queue items and those items are in flight. This ends up causing cluster auto scaler to scale-in, ungracefully terminating the pods - leaving items in flight.

You can refer to the HPA docs for details about how scaling work. It looks like you have a lot of messages in your SQS queue and that's why HPA is scheduling more replicas.
Your application need to be able to handle SIGTERM signal so you can use PreStop hook to perform action before your application pod being terminated, i.e. stop consuming messages, handle in-flight messages, etc. For more information, please check out container lifecycle


adding .ca static

This commit adds the ability to set just the CA list,
so we don't have to worry about the agent.

@calvinfo do we still want this?

It is useful, but killed the performance by eating through the CPU. I'm thinking we would eventually support it for custom integrations (where eventually one day people end up uploading a cert chain) but it shouldn't be passed a big array of certs to parse on every request. I'll close this for now just given that we don't want people using it except in very exact scenarios.


MQTT Output: Parameters for retain and last will

Hi!
We just started using Benthos and we love it. :+1: Thank you for this great project!
When using MQTT output, we would like to enable a few more options:

Make retain flag for publish configurable: https://github.com/Jeffail/benthos/blob/68879ed28636b19bb3d4f15d486ac5fd470d19f6/lib/output/writer/mqtt.go#L166
Make Will-settings configurable: https://github.com/eclipse/paho.mqtt.golang/blob/21ffd9190b7f3916a82abe907d5820feaff1ff46/options.go#L115-L119

Is this something you would think is OK? If you do, we'd love to provide a PR for review with the changes.

Hey @simongottschlag, sure these sound like reasonable additional fields, let me know if you need any help/guidance.


Build tests and add version config for manifests

Add unit and integration tests for charm
Add config option (which is adjustable with juju CLI) for setting versions for the upstream Intel device plugins operator and cert-manager. This will be useful in the future when new versions are released upstream that we want to easily test and integrate.
Remove -sample suffix from device plugin name, e.g. gpudeviceplugin-sample -> gpudeviceplugin. I did this in code rather than directly in the YAML so we can copy sample files from upstream without directly modifying them.
Add CI jobs for checking inclusive naming, linting, and unit testing

@addyess @spmcmillan I pushed a commit to update some of the naming in charmcraft.yaml after reviewing charm naming guidelines.


OAuth Facebook and Google login system

Investigate how I can log in with OAuth to Facebook and Google and email with a .NET application

### Links
Perhaps these will help
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/facebook-logins?view=aspnetcore-3.1
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/?view=aspnetcore-3.1&tabs=visual-studio


[bug] lock Access_Control-Lock_state not updated upon lock change

Version
Build/Run method

[x] Docker
[ ] PKG
[ ] Manually built (git clone - npm install - npm run build )

zwavejs2mqtt version: 1.2.3
zwavejs version: 6.4.0
Describe the bug
Using ID Lock 150: https://products.z-wavealliance.org/products/3450?selectedFrequencyId=1
The locks' accesscontrol attributes are not updated on MQTT:
This shows a complete mqtt flow of a unlock, open door, wait ~ 10 seconds, close door, wait for autolock:
https://gist.githubusercontent.com/roflmao/9a6c11b036576ef16ff437d83f6c5f08/raw/043bd0c3a3df572cca7991b5998668dee621af0c/gistfile1.txt
The attributes for the lock has not been updated since zwavejs2mqtt startup:
$ mosquitto_sub -h <IP_ADDRESS> -t "z2m/nodeID_40/113/#" -v
z2m/nodeID_40/113/0/alarmType {"id":"40-113-0-alarmType","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"alarmType","propertyName":"alarmType","type":"number","readable":true,"writeable":false,"label":"Alarm Type","stateless":false,"min":0,"max":255,"list":false,"lastUpdate":1614034764805,"nodeName":"","nodeLocation":""}
z2m/nodeID_40/113/0/Home_Security/Cover_status {"id":"40-113-0-Home Security-Cover status","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"Home Security","propertyName":"Home Security","propertyKey":"Cover status","propertyKeyName":"Cover status","type":"number","readable":true,"writeable":false,"label":"Cover status","stateless":false,"ccSpecific":{"notificationType":7},"min":0,"max":255,"list":true,"states":[{"text":"idle","value":0},{"text":"Tampering, product cover removed","value":3}],"value":0,"lastUpdate":1614034764809,"nodeName":"","nodeLocation":""}
z2m/nodeID_40/113/0/alarmLevel {"id":"40-113-0-alarmLevel","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"alarmLevel","propertyName":"alarmLevel","type":"number","readable":true,"writeable":false,"label":"Alarm Level","stateless":false,"min":0,"max":255,"list":false,"lastUpdate":1614034764807,"nodeName":"","nodeLocation":""}
z2m/nodeID_40/113/0/Access_Control/Lock_state {"id":"40-113-0-Access Control-Lock state","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"Access Control","propertyName":"Access Control","propertyKey":"Lock state","propertyKeyName":"Lock state","type":"number","readable":true,"writeable":false,"label":"Lock state","stateless":false,"ccSpecific":{"notificationType":6},"min":0,"max":255,"list":true,"states":[{"text":"idle","value":0},{"text":"Lock jammed","value":11}],"value":0,"lastUpdate":1614034764808,"nodeName":"","nodeLocation":""}

In OZW 1.6 i have the following data through mqtt on the same type of lock with same FW:
OpenZWave/1/node/47/instance/1/commandclass/113/value/1688850654838804/:
{
    "Label": "Access Control",
    "Value": {
        "List": [
            {
                "Value": 0,
                "Label": "Clear"
            },
            {
                "Value": 1,
                "Label": "Manual Lock Operation"
            },
            {
                "Value": 2,
                "Label": "Manual Unlock Operation"
            },
            {
                "Value": 3,
                "Label": "Wireless Lock Operation"
            },
            {
                "Value": 4,
                "Label": "Wireless Unlock Operation"
            },
            {
                "Value": 5,
                "Label": "Keypad Lock Operation"
            },
            {
                "Value": 6,
                "Label": "Keypad Unlock Operation"
            },
            {
                "Value": 9,
                "Label": "Auto Lock"
            },
            {
                "Value": 11,
                "Label": "Lock Jammed"
            },
            {
                "Value": 12,
                "Label": "All User Codes Deleted"
            },
            {
                "Value": 13,
                "Label": "Single User Code Deleted"
            },
            {
                "Value": 14,
                "Label": "New User Code Added"
            },
            {
                "Value": 15,
                "Label": "Duplicate User Code Not Added"
            },
            {
                "Value": 20,
                "Label": "Wireless Unlock Invalid UserCode Entered"
            },
            {
                "Value": 21,
                "Label": "Wireless Lock Invalid UserCode Entered"
            }
        ],
        "Selected": "Auto Lock",
        "Selected_id": 9
    },
    "Units": "",
    "ValueSet": true,
    "ValuePolled": false,
    "ChangeVerified": false,
    "Min": 0,
    "Max": 0,
    "Type": "List",
    "Instance": 1,
    "CommandClass": "COMMAND_CLASS_NOTIFICATION",
    "Index": 6,
    "Node": 47,
    "Genre": "User",
    "Help": "Access Control Alerts",
    "ValueIDKey":<PHONE_NUMBER>838804,
    "ReadOnly": true,
    "WriteOnly": false,
    "Event": "valueChanged",
    "TimeStamp":<PHONE_NUMBER>
}

Expected behavior
Access control notifications to be exposed.
Additional context
Add any other context about the problem here.

There are some awkward notification under this namespace which looks relevant, but not in the same format as the rest of the command classes:
$ mosquitto_sub -h <IP_ADDRESS> -t "z2m/nodeID_40/notification/#" -v
z2m/nodeID_40/notification/Keypad_lock_operation_userId {"time":1613981036628,"value":null}
z2m/nodeID_40/notification/Unlock_by_RF_with_invalid_user_code {"time":1614084876324,"value":"01422420"}
z2m/nodeID_40/notification/Keypad_unlock_operation_userId {"time":1614084883016,"value":"1"}
z2m/nodeID_40/notification/Auto_lock_locked_operation {"time":1614084902782,"value":"00"}

zwavejs log:
https://gist.githubusercontent.com/roflmao/5210e0be58825cd3e13f714729af5ca8/raw/816a56f4dadf8bafef898ab47050ddc44d77ef9c/gistfile1.txt

@AlCalzone I remember an old issue like that where notifications where not sent on notification CC but as node notifications. Could be this something like that?

I'll need to look at the attached logs later, but I'm seeing both V1 (alarmType/Level) and V2+ values (Access Control/...) for the same node. Something seems fishy.

Although that might be our fallback attempt where we treat V1 alarms that could be a V2 notification as such. That does not seem to be correct for this log. You'd need https://github.com/zwave-js/node-zwave-js/issues/1713

The notification values (userId) come from the notification event's event parameters. Seems you're putting them under the incorrect topic @robertsLando

Seems you're putting them under the incorrect topic @robertsLando

That events are from zwaveNode.on('notification' and I have reserved a special topic for this

Yup, but the other values should come from the same notification.

Also needs https://github.com/zwave-js/node-zwave-js/issues/1869 ?

Depends on what command version the device actually sends

So it looks like we are receiving V2+ commands, but I have no clue where Lock_state comes from

@roflmao did you remove some lines? I'm missing the SERIAL data for security encapsulated NotificationCCReports

node40.lock.log
Sorry, my grep foo failed again

@roflmao Is this fixed?

@robertsLando Same on 2.1.2, will test 2.3.0 tonight

If it persists, please make logs with the new version and keep track which notification events do not update the status.

@roflmao Any time to also give a try to #864 ?

@robertsLando Will have to build it first.
First off zwavejs2mqtt 2.3.0/zwave-js 6.6.2:
First off; MQTT on unlock (with autolock after 5 secs)
Nothing on z2m/nodeID_40/113/#"
This on "z2m/nodeID_40/notification/#":
z2m/nodeID_40/notification/Auto_lock_locked_operation {"time":1615843304716,"value":"00"}

zwave-js log:
node40.lock.log

zwavejs2mqtt  2.3.0+5a726f9.5a726f9  / zwave-js  7.0.0-beta.0-d5cf49b :
z2m/nodeID_40/113/0/Access_Control/Lock_state {"id":"40-113-0-Access Control-Lock state","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"Access Control","propertyName":"Access Control","propertyKey":"Lock state","propertyKeyName":"Lock state","type":"number","readable":true,"writeable":false,"label":"Lock state","stateless":false,"ccSpecific":{"notificationType":6},"min":0,"max":255,"list":true,"states":[{"text":"idle","value":0},{"text":"Lock jammed","value":11}],"value":0,"lastUpdate":1615846098376,"nodeName":"","nodeLocation":""}
z2m/nodeID_40/113/0/Home_Security/Cover_status {"id":"40-113-0-Home Security-Cover status","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"Home Security","propertyName":"Home Security","propertyKey":"Cover status","propertyKeyName":"Cover status","type":"number","readable":true,"writeable":false,"label":"Cover status","stateless":false,"ccSpecific":{"notificationType":7},"min":0,"max":255,"list":true,"states":[{"text":"idle","value":0},{"text":"Tampering, product cover removed","value":3}],"value":0,"lastUpdate":1615846098377,"nodeName":"","nodeLocation":""}
z2m/nodeID_40/113/0/Access_Control/Lock_state {"id":"40-113-0-Access Control-Lock state","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"Access Control","propertyName":"Access Control","propertyKey":"Lock state","propertyKeyName":"Lock state","type":"number","readable":true,"writeable":false,"label":"Lock state","stateless":false,"ccSpecific":{"notificationType":6},"min":0,"max":255,"list":true,"states":[{"text":"idle","value":0},{"text":"Lock jammed","value":11}],"value":0,"lastUpdate":1615846132779,"nodeName":"","nodeLocation":""}
z2m/nodeID_40/113/0/Home_Security/Cover_status {"id":"40-113-0-Home Security-Cover status","nodeId":40,"commandClass":113,"commandClassName":"Notification","endpoint":0,"property":"Home Security","propertyName":"Home Security","propertyKey":"Cover status","propertyKeyName":"Cover status","type":"number","readable":true,"writeable":false,"label":"Cover status","stateless":false,"ccSpecific":{"notificationType":7},"min":0,"max":255,"list":true,"states":[{"text":"idle","value":0},{"text":"Tampering, product cover removed","value":3}],"value":0,"lastUpdate":1615846132779,"nodeName":"","nodeLocation":""}

Nothing for z2m/nodeID_40/notification/#
zwavejs2mqtt crashed:
 2021-03-15 23:08:01.907 INFO ZWAVE: Node 40: value updated: 98-0-currentMode 255 => 255
 2021-03-15 23:08:01.911 INFO ZWAVE: Node 40: value updated: 98-0-outsideHandlesCanOpenDoor false,false,false,false => false,false,false,false
 2021-03-15 23:08:01.914 INFO ZWAVE: Node 40: value updated: 98-0-insideHandlesCanOpenDoor false,false,false,false => false,false,false,false
 2021-03-15 23:08:01.917 INFO ZWAVE: Node 40: value updated: 98-0-latchStatus open => open
 2021-03-15 23:08:01.919 INFO ZWAVE: Node 40: value updated: 98-0-boltStatus locked => locked
 2021-03-15 23:08:01.921 INFO ZWAVE: Node 40: value updated: 98-0-doorStatus closed => closed
 2021-03-15 23:08:02.042 INFO ZWAVE: Node 49: metadata updated: 49-2-Air temperature
 2021-03-15 23:08:02.045 INFO ZWAVE: Node 49: value updated: 49-2-Air temperature 25 => 25
 2021-03-15 23:08:02.592 INFO ZWAVE: Node 49: metadata updated: 49-4-Air temperature
 2021-03-15 23:08:02.597 INFO ZWAVE: Node 49: value updated: 49-4-Air temperature 27.1 => 26.9
 2021-03-15 23:08:04.377 INFO ZWAVE: Node 42: value updated: 38-1-currentValue 99 => 99
 2021-03-15 23:08:04.999 INFO ZWAVE: Node 42: metadata updated: 49-1-Power
 2021-03-15 23:08:05.002 INFO ZWAVE: Node 42: value updated: 49-1-Power 0.2 => 16.2
 2021-03-15 23:08:05.415 INFO ZWAVE: Node 40: value updated: 98-0-currentMode 255 => 0
 This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
 TypeError: Right-hand side of 'instanceof' is not an object
     at ZwaveClient.onNodeNotification (/usr/src/app/lib/ZwaveClient.js:682:12)
     at ZWaveNode.emit (events.js:326:22)
     at ZWaveNode.EventEmitter.emit (domain.js:483:12)
     at ZWaveNode.handleNotificationReport (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:2391:10)
     at ZWaveNode.handleCommand (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:1821:16)
     at Driver.handleRequest (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:1922:16)
     at Driver.handleUnsolicitedMessage (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:1698:16)
     at Object.notifyUnsolicited (/usr/src/app/node_modules/zwave-js/src/lib/driver/Driver.ts:503:16)
     at notifyUnsolicited (/usr/src/app/node_modules/zwave-js/src/lib/driver/SendThreadMachine.ts:568:19)
     at Interpreter.exec (/usr/src/app/node_modules/xstate/lib/interpreter.js:657:24)

zwavejs log:
node40.lock.log

@AlCalzone It's happening here:
https://github.com/zwave-js/zwavejs2mqtt/pull/864/files#diff-517f45dc25a0d4f803722882eff496478dbc7e2e775fe485d049b5dec1185641R682
Could it be that args are undefined?

The notification event is only used in two locations within zwave-js, both times with a value for args.
This is line 2391 which causes the error above:

🤷🏻♂

So what why that error? I cannot explain...

@roflmao Fixed, please try to rebuild and test :)

Version 2.3.0+c5f0c92.c5f0c92 / zwavejs 7.0.0-beta.0-8a504ba
crashes even worse on every start:
 2021-03-16 22:19:34.434 INFO ZWAVE: Controller status: Scan completed
 2021-03-16 22:19:34.434 INFO ZWAVE: Network scan complete. Found: 19 nodes
 2021-03-16 22:19:39.140 INFO ZWAVE: Node 11: value updated: 50-0-value-66049 0 => 0
 2021-03-16 22:19:52.786 INFO ZWAVE: Node 47: value updated: 50-1-value-65537 1055.4 => 1055.4
 This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
 TypeError: Cannot read property 'type' of undefined
     at Object.dumpMetadata (/usr/src/app/node_modules/@zwave-js/server/dist/lib/state.js:42:24)
     at /usr/src/app/node_modules/@zwave-js/server/dist/lib/forward.js:91:58
     at Array.forEach (<anonymous>)
     at notifyNodeOnValueOrMetadataUpdates (/usr/src/app/node_modules/@zwave-js/server/dist/lib/forward.js:86:34)
     at ZWaveNode.<anonymous> (/usr/src/app/node_modules/@zwave-js/server/dist/lib/forward.js:147:21)
     at ZWaveNode.emit (events.js:326:22)
     at ZWaveNode.EventEmitter.emit (domain.js:483:12)
     at ZWaveNode.translateValueEvent (/usr/src/app/node_modules/zwave-js/src/lib/node/Node.ts:349:8)
     at ValueDB.emit (events.js:314:20)
     at ValueDB.EventEmitter.emit (domain.js:483:12)

node40.lock.log

That's a bug in zwave-js-server 1.2.0. Not sure what they did there.

Ok, will test again when its sorted out then :+1:

1.2.1 is out

Also available in zjs2mqtt 2.4.0

node40.log
Lock is suddenly unknown manufacter, product etc.

Argg.. :confounded: @AlCalzone ?

2021-03-21T20:18:24.189Z DRIVER » [Node 040] [REQ] [SendData]
                                  │ transmit options: 0x25
                                  │ callback id:      31
                                  └─[SecurityCCCommandEncapsulation]
                                    │ nonce id: 241
                                    └─[SecurityCCCommandsSupportedGet]
2021-03-21T20:18:24.192Z SERIAL « [ACK]                                                                   (0x06)
2021-03-21T20:18:24.199Z SERIAL « 0x0104011301e8                                                       (6 bytes)
2021-03-21T20:18:24.200Z SERIAL » [ACK]                                                                   (0x06)
2021-03-21T20:18:24.200Z DRIVER « [RES] [SendData]
                                    was sent: true
2021-03-21T20:18:24.319Z SERIAL « 0x010700131f00000df9                                                 (9 bytes)
2021-03-21T20:18:24.320Z SERIAL » [ACK]                                                                   (0x06)
2021-03-21T20:18:24.321Z DRIVER « [REQ] [SendData]
                                    callback id:     31
                                    transmit status: OK
2021-03-21T20:18:34.334Z CNTRLR   [Node 040] Timed out while waiting for a response from the node
2021-03-21T20:18:34.334Z CNTRLR   [Node 040] The node is not included securely. Continuing interview non-securel
                                  y.

No response when zwave-js requests the list of secure commands. As a result, zwave-js assumes the device is insecure, when it is not. ==> No responses to anything.
@roflmao did you change the network key or something?

Nothing changed im afraid, only 6.x to 7.x zwavejs and zwavev7 branch for zwavejs2mqtt

It worked fine on first beta IIRC

Then it might just be a temporary RF problem. IMO zwave-js is doing the correct thing here, given the information it has. The only situations where the response to SecurityCCCommandsSupportedGet can be expected to time out is when the device isn't actually secure (we use the command to test for secure inclusion) or when the response gets lost due to bad connectivity or bad routes.

Fun story; the battery was drained so it was without power. The lock had 45% before upgrading so something fishy happened, also the lock prints as alive and does respond for so very strange.

I only get these through MQTT on CC 113:
mars 29 16:35:12 z2m/nodeID_40/113/0/Access_Control/Keypad_unlock_operation {"time":1617028512815,"value":{"userId":109}}
mars 29 16:35:32 z2m/nodeID_40/113/0/Access_Control/Auto_lock_locked_operation {"time":1617028532741,"value":"00"}
mars 29 16:52:32 z2m/nodeID_40/113/0/Access_Control/Keypad_unlock_operation {"time":1617029552699,"value":{"userId":109}}
mars 29 16:52:52 z2m/nodeID_40/113/0/Access_Control/Auto_lock_locked_operation {"time":1617029572684,"value":"00"}
mars 29 17:23:38 z2m/nodeID_40/113/0/Access_Control/Keypad_unlock_operation {"time":1617031418206,"value":{"userId":1}}
mars 29 17:24:01 z2m/nodeID_40/113/0/Access_Control/Auto_lock_locked_operation {"time":1617031441146,"value":"00"}
mars 29 17:27:07 z2m/nodeID_40/113/0/Access_Control/Keypad_unlock_operation {"time":1617031627210,"value":{"userId":1}}
mars 29 17:27:15 z2m/nodeID_40/113/0/Access_Control/Keypad_lock_operation {"time":1617031635654,"value":{"userId":0}}
mars 29 17:27:21 z2m/nodeID_40/113/0/Access_Control/Keypad_unlock_operation {"time":1617031641339,"value":{"userId":1}}
mars 29 17:27:25 z2m/nodeID_40/113/0/Access_Control/Auto_lock_locked_operation {"time":1617031645988,"value":"00"}
mars 29 19:03:35 z2m/nodeID_40/113/0/Access_Control/Keypad_unlock_operation {"time":1617037415803,"value":{"userId":109}}
mars 29 19:03:59 z2m/nodeID_40/113/0/Access_Control/Auto_lock_locked_operation {"time":1617037439248,"value":"00"}

node40.log

Long story short - we're not acting on these events yet. Will add that.

Correction - keypad (un)lock should be doing something already. And I do see it change the currentMode property for the Door Lock CC:
2021-03-29T14:35:12.807Z DRIVER « [Node 040] [REQ] [ApplicationCommand]
                                  └─[SecurityCCCommandEncapsulation]
                                    │ sequenced: false
                                    └─[NotificationCCReport]
                                        notification type:   Access Control
                                        notification status: 255
                                        notification event:  Keypad unlock operation
                                        event parameters:    [object Object]
2021-03-29T14:35:12.809Z CNTRLR   [Node 040] [~] [Door Lock] currentMode: 255 => 0                  [Endpoint 0]

I've raised https://github.com/zwave-js/node-zwave-js/pull/2192 for the Auto lock event.
Lock_state (jammed/idle) is not yet updated by this, because we need to be a bit smarter => https://github.com/zwave-js/node-zwave-js/issues/1543

This should be fixed now


GORM2 Migration question - Partial Updates with ignored fields

Your Question
Dear gorm team,
We encountered a behaviour change while migrating to gorm2 regarding partial updates.
type Test struct {
ID    int  json:"id"
Value string json:"value" gorm:"-"
}
func Test_PartialUpdate(t *testing.T) {
test :=Test{ID: 1, Value: "value"}

bytes, _ := json.Marshal(test)

var rawObject map[string]interface{}
json.Unmarshal(bytes, &rawObject)

assert.Nil(t, db.Model(test).Updates(rawObject).Error)

}
With GORM1, the field "Value" is correctly discarded
[0m  UPDATE "tests" SET "id" = 1  WHERE "tests"."id" = 1
[0 rows affected or returned ]
[0m {SELECT * FROM "tests"  WHERE "tests"."id" = ? [1]}
Gorm2 does not ignore the field and throws an error
[ERROR: column "value" of relation "tests" does not exist (SQLSTATE 42703)
[0m UPDATE "tests" SET "id"=1.000000,"value"='value' WHERE "id" = 1

I don't know if it's a bug or just a behaviour change. If the latter, what would you suggest to do?
Thanks a lot!

Hi @cgcote
You might want to use select fields w/o marshal to a map https://gorm.io/docs/update.html#Update-Selected-Fields
db.Model(&test).Select("*").Update(test)

If you want to use map, you could disable the field's update permission like https://gorm.io/docs/models.html#Field-Level-Permission

Hi @cgcote
You might want to use select fields w/o marshal to a map https://gorm.io/docs/update.html#Update-Selected-Fields
db.Model(&test).Select("*").Update(test)

If you want to use map, you could disable the field's update permission like https://gorm.io/docs/models.html#Field-Level-Permission