typeahead: Fix bug where typeahead showed momentarily on shift + tab.

Since the keyup event for keys including shift triggers the typeahead, shift tabbing into the topic recipient field would show the typeahead momentarily, which is distracting.
As we need typeahead to trigger on shift for certain use cases in the compose box, but not in the topic recipient field, we now do not trigger typeahead on shift keyup events in the topic recipient field.
Fixes: #24152.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@timabbott All the text inside the topic field being selected on tabbing to it is just default browser behaviour; whenever a text input is focused, all text inside it is selected. So it has nothing to do with the ty[eahead system.
I'm not sure why you cannot proceed to the next field by pressing Tab from the state when the topic field is all selected... It works as expected for me :thinking:

@timabbott On Chrome too, shift-tabbing works as expected for me, without interference from the typeahead.
Also, I don't understand how for you the "as" appears after "test asdf" on hitting Tab the 1st time? I don't see the typeahead menu open, so how did it autocomplete?

OK I tested and cannot reproduce the bug I encountered either. So it probably was some other problem with the typeahead that we've since fixed -- I remember we had some regressions involving search last year.
So merging, thanks for the follow-up on this @N-Shar-ma!


[Fix it Friday] Consistent hash syntax

With the exception of my one comment, LGTM.

should we move this forward?


mRuntime->create_partition_by_image_range documentation

There is no online documentation for
mRuntime->create_partition_by_image_range
Please remember to use simple sentences with one subject/object per sentence.

It's identical to create_partition_by_image except with a range field instead of a point field. I don't think it needs any additional documentation as it should be self-explanatory.

this is what the documentation shows:
emplate<int DIM1, typename COORD_T1 , int DIM2, typename COORD_T2 , int COLOR_DIM, typename COLOR_COORD_T >
IndexPartitionT< DIM2, COORD_T2 > | create_partition_by_image (Context ctx, IndexSpaceT< DIM2, COORD_T2 > handle, LogicalPartitionT< DIM1, COORD_T1 > projection, LogicalRegionT< DIM1, COORD_T1 > parent, FieldID fid, IndexSpaceT< COLOR_DIM, COLOR_COORD_T > color_space, PartitionKind part_kind=COMPUTE_KIND, Color color=AUTO_GENERATE_ID, MapperID id=0, MappingTagID tag=0)

IndexPartition | create_partition_by_image_range (Context ctx, IndexSpace handle, LogicalPartition projection, LogicalRegion parent, FieldID fid, IndexSpace color_space, PartitionKind part_kind=COMPUTE_KIND, Color color=AUTO_GENERATE_ID, MapperID id=0, MappingTagID tag=0)
there is no information whatsoever about how this works or what it does, nor how it is related to create_partition_by_image

Maybe the dependent partitioning operators would be a good candidate to document on the wiki? I feel like a lot of them all we really need are a simple example with a picture to show they work.
I wouldn't mind doing this at some point.


ALSA function 'snd_pcm_open' failed with error 'EHOSTDOWN: Host is down'

The application crashes when I try to raise the notification volume:
thread 'thread_play_sound' panicked at 'called `Result::unwrap()` on an `Err` value:
DefaultStreamConfigError(BackendSpecific { err: BackendSpecificError {
    description: "ALSA function 'snd_pcm_open' failed with error 'EHOSTDOWN: Host is down'"
} })',
src/notifications/types/sound.rs:61:72

To Reproduce

Open the application.
Enter the password for sudo.
Click on the settings button.
Slide the notification volume to the right (for a higher volume).
The application crashes.

Expected behavior
The application should continue running.
Crash log
Here it is: crash.log
Environment

Version: 1.2.0
OS: Debian Linux 12. Linux 6.1.0.

If it helps:

libasound2 version 1.2.8
pipewire version 0.3.65
pulseaudio is not installed
KDE version 5.27.2

It crashes at this line.
It seems it cannot find the default output device for audio.
I can suggest you to verify that libasound2-dev is installed and updated to the latest version.

❯ apt show libasound2-dev
Package: libasound2-dev
Version: 1.2.8-1+b1
Priority: optional
Section: libdevel
Source: alsa-lib (1.2.8-1)
Maintainer: Debian ALSA Maintainers<EMAIL_ADDRESS>Installed-Size: 677 kB
Provides: libasound-dev
Depends: libasound2 (= 1.2.8-1+b1)
Suggests: libasound2-doc
Homepage: https://www.alsa-project.org/
Tag: devel::library, role::devel-lib, works-with::audio
Download-Size: 110 kB
APT-Manual-Installed: yes
APT-Sources: https://deb.debian.org/debian testing/main amd64 Packages
...

I forgot to mention that I built the DEB package on ubuntu-latest, which has already caused some problems of compatibility with Debian in the past.
Did you install Sniffnet from the DEB package?

Did you install Sniffnet from the DEB package?

Yes.

❯ sha256sum Sniffnet_Linux.deb
8c7b93d35f00fea47077688e7642f4c8dac2826e294aa503c500fb7a4b19d369  Sniffnet_Linux.deb

Did you install Sniffnet from the DEB package?

Yes.

I suspect that could be the problem then.
If you have Rust installed, you could try directly building from source with cargo.

If you have Rust installed, you could try directly building from source with cargo.

I have it installed. Would installing using cargo also set up menu items and the like?

Installing from cargo would just build and install the binary to be run from CLI.
Also, you would have to ensure to delete the previous version coming from the DEB package which is in usr/bin to be sure to launch the cargo version when typing sudo sniffnet from terminal.

I don't know if building locally with cargo can solve the issue, but I think it's worth trying

I uninstalled the APT package, then run cargo install sniffnet. Then:
❯ which sniffnet
/home/koutheir/.cargo/bin/sniffnet

Running sniffnet from a terminal without sudo does not reproduce the issue.
Running it with sudo reproduces the issue, but now with a different error:
❯ sudo sniffnet
[sudo] password for koutheir:
...
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused

ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_route.c:877:(find_matching_chmap) Found no matching channel map
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dsnoop.c:540:(snd_pcm_dsnoop_open) The dsnoop plugin supports only capture stream
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:972:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
fish: Job 1, 'sudo sniffnet' terminated by signal SIGFPE (Floating point exception)

Is the problem that sudo removes a lot of environment variables that are required for ALSA to work?

Running the application with su instead of sudo fixes the issue, because the environment variables are kept.

Is there a way to avoid running the application as root?

This fixes the issue:
❯ sudo -E sniffnet

Can you please update the shortcuts in the .deb package to pass the -E option to sudo when running the application?

Ideally, the application should not run as root. If you need some root capabilities, then running a small daemon as root and communicating with that is far more secure.

This fixes the issue:

❯ sudo -E sniffnet

Can you please update the shortcuts in the .deb package to pass the -E option to sudo when running the application?

Thanks very much for having spotted the cause.
Of course I will update it before the next release.
You can also avoid running the app as sudo by giving Sniffnet privileges to inspect network adapter with:
sudo setcap cap_net_raw,cap_net_admin=eip <your/Sniffnet/executable/path>

You can also avoid running the app as sudo by giving Sniffnet privileges to inspect network adapter with:
sudo setcap cap_net_raw,cap_net_admin=eip <your/Sniffnet/executable/path>

Why didn't the .deb package do that to the executable at installation time? Why does the desktop menu shortcut run it with sudo instead?

I didn't dig into a way to do that and I must admit that packages are still in a pretty basic form.
If you know how to do that and would like to help, you can edit the resources/sniffnet.desktop folder and submit a PR.

I never did that before, but I know it is possible because a Debian package can run a shell script as root during installation after files are copied in place. Once that is done, the .desktop file wouldn't need to run the application as root.

How do you generate the .deb packages?

With an automated GitHub workflow (.github/workflows/package.yml)

I never did that before, but I know it is possible because a Debian package can run a shell script as root during installation after files are copied in place.

I can try to better document myself then

I found out that you're using cargo deb to generate the .deb file. As far as I understand, cargo deb supports specifying a postinst script by setting the maintainer-scripts key inside [package.metadata.deb].

This issue has been addressed in my incoming PR. (#228 is also considered)

This issue has been addressed in my incoming PR. (#228 is also considered)

Tyvm ❤

Hey @koutheir
We changed the building strategy and we are looking for feedback/testers to see if we finally solved this issue.
Could you kindly try the new package available below?
Sniffnet_LinuxDEB_amd64.deb.zip
Thanks in advance.

Installing works and the issue is fixed.
Also:
$ getcap /usr/bin/sniffnet
/usr/bin/sniffnet cap_net_admin,cap_net_raw=eip
$ grep '^Exec=' /usr/share/applications/sniffnet.desktop
Exec=/usr/bin/sniffnet

So the executable capabilities are set correctly and sudo is not used.


segfault and errors on @NRST between calendar types

Reported by Andrew Wittenberg on 2 Nov 2004 20:00 UTC
Ran into the following two problems when trying to compare data
on two different calendars (Julian and Gregorian).  I'm attaching
the two files gregorian.nc and julian.nc.
    NOAA/PMEL TMAP
    FERRET v5.70 (gcc3.2)
    Linux(g77) 2.4.18 - 10/08/04
     2-Nov-04 14:51

yes? use gregorian.nc
yes? use julian.nc
*** NOTE: netCDF bounds variable definition error
*** NOTE: Bounds definition "Time_bounds" points to no existing axis
*** NOTE: Ignoring BOUNDS attribute
yes? list/t=1-jan-1997:1-jan-1998 sst_a,sst_a[fault
This first case was a mistake on my part (I'm trying to list two
3d datasets), but Ferret shouldn't have segfaulted.
    NOAA/PMEL TMAP
    FERRET v5.70 (gcc3.2)
    Linux(g77) 2.4.18 - 10/08/04
     2-Nov-04 14:52

yes? use gregorian.nc
yes? use julian.nc
*** NOTE: netCDF bounds variable definition error
*** NOTE: Bounds definition "Time_bounds" points to no existing axis
*** NOTE: Ignoring BOUNDS attribute
yes? list/t=1-jan-1997:1-jan-1998 sst_a[x=140w,y=5n](GT=SST_A[D=1]@NRST]
Segmentation)
VARIABLE : sea surface temperature anomaly (deg_C)
DATA SET : hybrid/sfm1p4_180x96x25/exp24
FILENAME : julian.nc
SUBSET   : 12 points (TIME)
CALENDAR : JULIAN
LONGITUDE: 141W
LATITUDE : 5.2N
Z        : 2
141W
110
16-JAN-1997 12 /  1: -0.6937
15-FEB-1997 00 /  2: -0.8153
16-MAR-1997 12 /  3: -0.5661
16-APR-1997 00 /  4: -0.0087
16-MAY-1997 12 /  5:  0.1055
16-JUN-1997 00 /  6:  0.1303
16-JUL-1997 12 /  7:  0.3496
16-AUG-1997 12 /  8:  0.5014
16-SEP-1997 00 /  9:  0.5949
16-OCT-1997 12 / 10:  0.6704
16-NOV-1997 00 / 11:  0.7099
16-DEC-1997 12 / 12:  0.6154
yes? list/t=1-jan-1997:1-jan-1998 sst_a[x=140w,y=5n,GT=SST_A[D=1]@NRST]
VARIABLE : sea surface temperature anomaly (deg_C)
regrid: on T@NRST
DATA SET : hybrid/sfm1p4_180x96x25/exp24
FILENAME : julian.nc
SUBSET   : 12 points (TIME)
LONGITUDE: 141W
LATITUDE : 5.2N
Z        : 2
141W
110
16-JAN-1997 12 / 217: -0.6937
15-FEB-1997 00 / 218: -0.8153
16-MAR-1997 12 / 219: -0.5661
16-APR-1997 00 / 220: -0.0087
16-MAY-1997 12 / 221:  0.1055
16-JUN-1997 00 / 222:  0.1303
16-JUL-1997 12 / 223:  0.3496
16-AUG-1997 12 / 224:  0.5014
16-SEP-1997 00 / 225:  0.5949
16-OCT-1997 12 / 226:  0.6704
16-NOV-1997 00 / 227:  0.7099
16-DEC-1997 12 / 228:  0.0000
In this second example, the last value differs between the
two cases.  It's almost always zero when I use @NRST (except
once when I instead got a NaN -- difficult to reproduce).
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1049

Comment by<EMAIL_ADDRESS>on 2 Nov 2004 20:29 UTC
I should add that neither of these errors occurred in v5.60:
    NOAA/PMEL TMAP
    FERRET v5.60
    Linux(g77) 2.4.18 - 04/09/04
     2-Nov-04 15:23

yes? use gregorian.nc
yes? use julian.nc
yes? list/t=1-jan-1997:1-jan-1998 sst_a,sst_a[**ERROR: inconsistent sizes of data regions: T axis
Variable 2 is L=217:228
expression is L=01:12
yes? list/t=1-jan-1997:1-jan-1998 sst_ax=140w,y=5n
VARIABLE : sea surface temperature anomaly (deg_C)
DATA SET : hybrid/sfm1p4_180x96x25/exp24
FILENAME : julian.nc
SUBSET   : 12 points (TIME)
CALENDAR : JULIAN
LONGITUDE: 141W
LATITUDE : 5.2N
Z        : 2
141W
110
16-JAN-1997 12 /  1: -0.6937
15-FEB-1997 00 /  2: -0.8153
16-MAR-1997 12 /  3: -0.5661
16-APR-1997 00 /  4: -0.0087
16-MAY-1997 12 /  5:  0.1055
16-JUN-1997 00 /  6:  0.1303
16-JUL-1997 12 /  7:  0.3496
16-AUG-1997 12 /  8:  0.5014
16-SEP-1997 00 /  9:  0.5949
16-OCT-1997 12 / 10:  0.6704
16-NOV-1997 00 / 11:  0.7099
16-DEC-1997 12 / 12:  0.6154
yes? list/t=1-jan-1997:1-jan-1998 sst_a[x=140w,y=5n,GT=SST_A[D=1]@NRST]
VARIABLE : sea surface temperature anomaly (deg_C)
regrid: on T@NRST
DATA SET : hybrid/sfm1p4_180x96x25/exp24
FILENAME : julian.nc
SUBSET   : 12 points (TIME)
LONGITUDE: 141W
LATITUDE : 5.2N
Z        : 2
141W
110
16-JAN-1997 12 / 217: -0.6937
15-FEB-1997 00 / 218: -0.8153
16-MAR-1997 12 / 219: -0.5661
16-APR-1997 00 / 220: -0.0087
16-MAY-1997 12 / 221:  0.1055
16-JUN-1997 00 / 222:  0.1303
16-JUL-1997 12 / 223:  0.3496
16-AUG-1997 12 / 224:  0.5014
16-SEP-1997 00 / 225:  0.5949
16-OCT-1997 12 / 226:  0.6704
16-NOV-1997 00 / 227:  0.7099
16-DEC-1997 12 / 228:  0.6154
yes?
Another possible clue: I tried running with the v5.70 that we had
from before (which was compiled with the old gcc), and I found slightly
different behavior.  In one of my scripts where I get a segfault
with the latest v5.70 (gcc3.2), I instead get NaNs or missing values
in my plot with the old v5.70.

Comment by<EMAIL_ADDRESS>on 4 Nov 2004 20:16 UTC
This bug is due to the bug fix for bug number 562, where we found that there may
be legitimate values of -111 among the indices of the axes in a regridding
operation.  The test for this legitimate -111 was incorrect.  Fix is in routines
in doo/*regrid_1_axis.F

Attachment from<EMAIL_ADDRESS>on 2 Nov 2004 20:01 UTC
gregorian.nc
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_1049_GIT_480/gregorian.nc

Attachment from<EMAIL_ADDRESS>on 2 Nov 2004 20:02 UTC
julian.nc
REPLACE THIS TEXT WITH UPLOADED FILE ./attachments/TRAC_1049_GIT_480/julian.nc


Removed throwing error when there's an extraneous property in ui:order

Reasons for making this change
In current implementation if you use dynamic schema dependencies, you cannot specify dependent fields in 'ui:order' list. It's because if you list such field in 'ui:order' and it is currently not displayed according to it's dependency condition, the error is thrown: 'uiSchema order list does not contain '.
I do not see why we should throw an error instead of just filtering 'ui:order' array to contain fields that are present according to dependency condition. If you cannot order conditional fields along with unconditional, it significantly reduces usefulness of dynamic schema dependency feature.
My solution is to give user the ability to specify all properties in 'ui:order' and just sort them as needed.
Checklist

[ ] I'm updating documentation

[ ] I've checked the rendering of the Markdown text I've added
[ ] If I'm adding a new section, I've updated the Table of Content

[x] I'm adding or updating code

[x] I've added and/or updated tests
[ ] I've updated docs if needed
[x] I've run npm run cs-format on my branch to conform my code to prettier coding style

[ ] I'm adding a new feature

[ ] I've updated the playground with an example use of the feature

When is this getting merged @edi9999 ?

Yes, the warning when you use a property name that doesn't exist can save a lot of aggravation. I understand it isn't really helpful in the case of dynamic schemas with property dependencies, which is why I suggested in #823 that we could maybe loosen the check in only those cases. I'd prefer logic that does the right thing to an option that the user has to know to set. @jaminthorns commented in that issue that retrieveSchema "resolves" dependencies, so we might have to refactor things in order to get this right.

This would be very helpful for me as I'm starting to get into generating dynamic JSON Schemas based on various rules, I would like to not have to worry about also dynamically generating my UI Schema's "ui:order" lists if I don't have to to avoid spitting errors at my users because they don't need certain fields. It should be simple enough to tell the UI Schema "If the JSON Schema has this field, display it here on the form".
Isn't the point of the UI Schema more of a suggestion to how to render a JSON Schema? Most things seem to gracefully degrade functionality if the UI Schema doesn't make your JSON Schema.

Perhaps we could just have a * or some other indicator for "optional" fields in ui:order. For example:
"ui:order": [
    "first_name",
    "last_name",
    "date_of_birth",
    "is_pediatric*",
    "additional_comments*"
]

I would suggest a more regex-y? but it looks like that's common in property names, according to your examples.

Ran into an related issue today which is blocking our project, looking for advise.
We have two "enum" fields in a section that have dependencies, when you select "Other" there is a text entry (this is an extremely common pattern on the web, no?)
I have no way of telling ui:schema where to display these two "Other" sections which need to be directly below the selection.
"ui:order": [
      "description",
      "description_other",
      "frequency",
      "frequency_other",
      "duration",
      "planned_procedures",
      "additional_comments"
    ]

The above results in:
Invalid plan object field configuration:uiSchema order list contains extraneous properties 'description_other', 'frequency_other'.
Am I missing some more practical way of getting this behavior? Certainly this is pretty common, so I'm thinking maybe dependencies aren't the way to do it.
@glasserc


HIVE-27426:Upgrade kryo version in iceberg module

What changes were proposed in this pull request?

Why are the changes needed?

Does this PR introduce any user-facing change?

How was this patch tested?

@devaspatikrishnatri Can you please update the PR description with the relevant details and attach the output of mvn dependency:tree to the PR.

mvn_dependency_tree.txt

mvn_dependency_tree.txt
This is the dependency tree with iceberg module, the previous one was a generic dependency tree.
Here you can see the replacement.

mvn_dependency_tree.txt This is the dependency tree with iceberg module, the previous one was a generic dependency tree. Here you can see the replacement.

@devaspatikrishnatri I see this has 5.2.0 as well


Why Bubble isn't a Widget?

FloatingActionBubble accepts only Bubble as items, but Bubble is not a widget (BubbleMenu is) so one can not assign key to it.
Why not make Bubble a StatelessWidget and get rid of BubbleMenu?
I mean:
/// Creates a bubble item for floating action menu button.
class Bubble extends StatelessWidget {
  const Bubble({
    required IconData icon,
    required Color iconColor,
    required String title,
    required TextStyle titleStyle,
    required Color bubbleColor,
    required this.onPress,
    super.key,
  })  : _icon = icon,
        _iconColor = iconColor,
        _title = title,
        _titleStyle = titleStyle,
        _bubbleColor = bubbleColor;

  final IconData _icon;
  final Color _iconColor;
  final String _title;
  final TextStyle _titleStyle;
  final Color _bubbleColor;
  final void Function() onPress;

  @override
  Widget build(BuildContext context) => MaterialButton(
        shape: const StadiumBorder(),
        padding: const EdgeInsets.only(top: 11, bottom: 13, left: 32, right: 32),
        color: _bubbleColor,
        splashColor: Colors.grey.withOpacity(0.1),
        highlightColor: Colors.grey.withOpacity(0.1),
        elevation: 2,
        highlightElevation: 2,
        disabledColor: _bubbleColor,
        onPressed: onPress,
        child: Row(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            Icon(
              _icon,
              color: _iconColor,
            ),
            const SizedBox(
              width: 10.0,
            ),
            Text(
              _title,
              style: _titleStyle,
            ),
          ],
        ),
      );
}

You just use:
child: items[index],

instead of:
child: BubbleMenu(items[index]),

and it works.
It's simple as that and doesn't break compatibility.

I'm working on a similar project and I need a key too. Do you think we should submit a pull request to the original repository or look for another package that has more active development?

@ingmferrer I was thinking about pull request, but since there was 0 reaction on my Issue, I gave up


Functions in/with _ prefix turnes into endpoints

The CLI should not turn files in/with _ prefix into endpoints. However, it does:
https://github.com/nhost/nhost/issues/848#issuecomment-1192856700
Relevant docs: https://docs.nhost.io/platform/serverless-functions#deploying-serverless-functions

Fixed in latest version.


Unturned: Add sleep settings

Also includes the steamclient.so related changes in https://github.com/CubeCoders/AMPTemplates/pull/72

Tested


major pamutils bug

Hi, I'm writing concerning what I think is a bug in pamutils. This issue is on this line.
The problem is that for some wcs (such as ones that I'm currently working with), hasattr(wcs, 'idcscale') returns True, but the value is None. In this case, the pam can't be generated because _compute_pam_sd crashes due to a TypeError on this line.
Thanks in advance for your help.

The problem is that for some wcs (such as ones that I'm currently working with)

It would be helpful to explain what kind of image has such a feature (i.e., idcscale=None). To the best of my knowledge, idcscale should not be None in valid HST images (CC: @stsci-hack ).
Are you sure you have run updatewcs on those images prior to using this software?

I am working with flc files that I have reduced myself from raws using CALACS.
I didn't realize that updatewcs had to be run on the files first, but that does make sense now, and that seems to have fixed the issue.
Thanks and sorry for the confusion!


Replace no_inline_in_optional_branches with new rule

With SAP/styleguides#302 the styleguide has been changed to better describe the problem.
https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#do-not-use-variables-outside-of-the-statement-block-they-are-declared-in
Now it is described as:

IMHO no_inline_in_optional_branches should be deleted and replaced with new rule.
Solves #2522.

yes 👍

I was just going to report the same issue as #2522, found this one and would like to add my vote for it. A declaration for a looped row used only inside the loop body makes sense.
One exception I'd consider acceptable is a single read immediately afterwards where the last item is relevant, but that's just my opinion.
loop at itab into data(row).
  do_stuff_with( row ).
endloop.
data(last) = row.

I was just going to report an issue, then found #2522

Same here 😄
I turned the no_inline_in_optional_branches on as I was hoping it will somehow work in pair with prefer_inline but I got more issues instead 😞 .
So this guideline posted in the first comment (link) actually, impacts also prefer_inline. As prefer_inline always says "do the inline if you didn't" and this guideline says "ok, if you need to use the variable in some optional blocks, declare it upfront". At least that's how I understand it. Correct me if I'm wrong. If I'm right, then what about prefer_inline rule?

I'll get to it sometime

I'll get to it sometime

Maybe adding pseudo comment & pragma as the workaround for now would do the trick?


Spyder iPython console shows "An error occurred while starting the kernel"

Description of your problem

This problem occurred after I changed the default python interpreter from 3.6 to 3.5.3 under the tensorflow environment.
After using conda to install ipykernel, it showed the following error:

ERROR MESSAGE*********************************************************************
An error ocurred while starting the kernel
Traceback (most recent call last):
File "C:\Users\user\Anaconda3\lib\site‑packages\spyder\utils\ipython\start_kernel.py", line 231, in
main()
File "C:\Users\user\Anaconda3\lib\site‑packages\spyder\utils\ipython\start_kernel.py", line 204, in main
from ipykernel.kernelapp import IPKernelApp
File "C:\Users\user\Anaconda3\lib\site‑packages\ipykernel_init_.py", line 2, in
from .connect import *
File "C:\Users\user\Anaconda3\lib\site‑packages\ipykernel\connect.py", line 18, in
import jupyter_client
File "C:\Users\user\Anaconda3\lib\site‑packages\jupyter_client_init_.py", line 4, in
from .connect import *
File "C:\Users\user\Anaconda3\lib\site‑packages\jupyter_client\connect.py", line 21, in
import zmq
File "C:\Users\user\Anaconda3\lib\site‑packages\zmq_init_.py", line 34, in
from zmq import backend
File "C:\Users\user\Anaconda3\lib\site‑packages\zmq\backend_init_.py", line 40, in
reraise(*exc_info)
File "C:\Users\user\Anaconda3\lib\site‑packages\zmq\utils\sixcerpt.py", line 34, in reraise
raise value
File "C:\Users\user\Anaconda3\lib\site‑packages\zmq\backend_init_.py", line 27, in
ns = select_backend(first)
File "C:\Users\user\Anaconda3\lib\site‑packages\zmq\backend\select.py", line 26, in select_backend
mod = import(name, fromlist=public_api)
File "C:\Users\user\Anaconda3\lib\site‑packages\zmq\backend\cython_init.py", line 6, in
from . import (constants, error, message, context,
ImportError: cannot import name 'constants'

Please provide any additional information below
Versions and main components

Spyder Version: 3.1.4
Python Version: root: 3.6, tensorflow: 3.5.3
Qt Version:
PyQt Version:
Operating system: Windows 10

This problem occurred after my numerous attempts to import tensorflow on Spyder iPython. It works fine on the terminal, but not on Spyder iPython.
Kindly help me with this issue, or better yet, kindly teach me how to set up the appropriate environment to use tensorflow on Spyder iPython.
Thank You!!
Dependencies
Please go to the menu entry Help > Optional Dependencies (or
Help > Dependencies), press the button Copy to clipboard
and paste the contents below:

The error message you're reporting seems to occur in your root environment, not in your tensorflow one. So I'm a bit confused by it.

thank you for your prompt reply!
I actually managed to fix it (luckily) by using conda to install spyder in the tensorflow environment.
thanks again!

Ok, no problem. Glad to hear things are working for you now.

aaronpoh23, how did you fix it? I installed spyder in the tensorflow environment and still get the following error:

I am having the same issue what steps did you take to fix this?

I am having the same issue and installing spyder in either root or the new environment didn't help. what did you do? thanks!

i am facing the same problem when I added a new python path (anaconda version  )

Traceback (most recent call last):
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 231, in
main()
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 204, in main
from ipykernel.kernelapp import IPKernelApp
File "/usr/lib/python3/dist‑packages/ipykernel/init.py", line 2, in
from .connect import *
File "/usr/lib/python3/dist‑packages/ipykernel/connect.py", line 18, in
import jupyter_client
File "/usr/lib/python3/dist‑packages/jupyter_client/init.py", line 4, in
from .connect import *
File "/usr/lib/python3/dist‑packages/jupyter_client/connect.py", line 22, in
import zmq
File "/usr/lib/python3/dist‑packages/zmq/init.py", line 34, in
from zmq import backend
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 40, in
reraise(*exc_info)
File "/usr/lib/python3/dist‑packages/zmq/utils/sixcerpt.py", line 34, in reraise
raise value
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 27, in
_ns = select_backend(first)
File "/usr/lib/python3/dist‑packages/zmq/backend/select.py", line 26, in select_backend
mod = import(name, fromlist=public_api)
File "/usr/lib/python3/dist‑packages/zmq/backend/cython/init.py", line 6, in
from . import (constants, error, message, context,
ImportError: cannot import name 'constants'
Traceback (most recent call last):
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 231, in
main()
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 204, in main
from ipykernel.kernelapp import IPKernelApp
File "/usr/lib/python3/dist‑packages/ipykernel/init.py", line 2, in
from .connect import *
File "/usr/lib/python3/dist‑packages/ipykernel/connect.py", line 18, in
import jupyter_client
File "/usr/lib/python3/dist‑packages/jupyter_client/init.py", line 4, in
from .connect import *
File "/usr/lib/python3/dist‑packages/jupyter_client/connect.py", line 22, in
import zmq
File "/usr/lib/python3/dist‑packages/zmq/init.py", line 34, in
from zmq import backend
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 40, in
reraise(*exc_info)
File "/usr/lib/python3/dist‑packages/zmq/utils/sixcerpt.py", line 34, in reraise
raise value
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 27, in
_ns = select_backend(first)
File "/usr/lib/python3/dist‑packages/zmq/backend/select.py", line 26, in select_backend
mod = import(name, fromlist=public_api)
File "/usr/lib/python3/dist‑packages/zmq/backend/cython/init.py", line 6, in
from . import (constants, error, message, context,
ImportError: cannot import name 'constants'
Traceback (most recent call last):
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 231, in
main()
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 204, in main
from ipykernel.kernelapp import IPKernelApp
File "/usr/lib/python3/dist‑packages/ipykernel/init.py", line 2, in
from .connect import *
File "/usr/lib/python3/dist‑packages/ipykernel/connect.py", line 18, in
import jupyter_client
File "/usr/lib/python3/dist‑packages/jupyter_client/init.py", line 4, in
from .connect import *
File "/usr/lib/python3/dist‑packages/jupyter_client/connect.py", line 22, in
import zmq
File "/usr/lib/python3/dist‑packages/zmq/init.py", line 34, in
from zmq import backend
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 40, in
reraise(*exc_info)
File "/usr/lib/python3/dist‑packages/zmq/utils/sixcerpt.py", line 34, in reraise
raise value
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 27, in
_ns = select_backend(first)
File "/usr/lib/python3/dist‑packages/zmq/backend/select.py", line 26, in select_backend
mod = import(name, fromlist=public_api)
File "/usr/lib/python3/dist‑packages/zmq/backend/cython/init.py", line 6, in
from . import (constants, error, message, context,
ImportError: cannot import name 'constants'
Traceback (most recent call last):
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 231, in
main()
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 204, in main
from ipykernel.kernelapp import IPKernelApp
File "/usr/lib/python3/dist‑packages/ipykernel/init.py", line 2, in
from .connect import *
File "/usr/lib/python3/dist‑packages/ipykernel/connect.py", line 18, in
import jupyter_client
File "/usr/lib/python3/dist‑packages/jupyter_client/init.py", line 4, in
from .connect import *
File "/usr/lib/python3/dist‑packages/jupyter_client/connect.py", line 22, in
import zmq
File "/usr/lib/python3/dist‑packages/zmq/init.py", line 34, in
from zmq import backend
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 40, in
reraise(*exc_info)
File "/usr/lib/python3/dist‑packages/zmq/utils/sixcerpt.py", line 34, in reraise
raise value
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 27, in
_ns = select_backend(first)
File "/usr/lib/python3/dist‑packages/zmq/backend/select.py", line 26, in select_backend
mod = import(name, fromlist=public_api)
File "/usr/lib/python3/dist‑packages/zmq/backend/cython/init.py", line 6, in
from . import (constants, error, message, context,
ImportError: cannot import name 'constants'
Traceback (most recent call last):
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 231, in
main()
File "/usr/lib/python3/dist‑packages/spyder/utils/ipython/start_kernel.py", line 204, in main
from ipykernel.kernelapp import IPKernelApp
File "/usr/lib/python3/dist‑packages/ipykernel/init.py", line 2, in
from .connect import *
File "/usr/lib/python3/dist‑packages/ipykernel/connect.py", line 18, in
import jupyter_client
File "/usr/lib/python3/dist‑packages/jupyter_client/init.py", line 4, in
from .connect import *
File "/usr/lib/python3/dist‑packages/jupyter_client/connect.py", line 22, in
import zmq
File "/usr/lib/python3/dist‑packages/zmq/init.py", line 34, in
from zmq import backend
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 40, in
reraise(*exc_info)
File "/usr/lib/python3/dist‑packages/zmq/utils/sixcerpt.py", line 34, in reraise
raise value
File "/usr/lib/python3/dist‑packages/zmq/backend/init.py", line 27, in
_ns = select_backend(first)
File "/usr/lib/python3/dist‑packages/zmq/backend/select.py", line 26, in select_backend
mod = import(name, fromlist=public_api)
File "/usr/lib/python3/dist‑packages/zmq/backend/cython/init.py", line 6, in
from . import (constants, error, message, context,
ImportError: cannot import name 'constants'

@pawanvirsingh, you can't mix two different Python versions (Anaconda and your System Python) by the adding one to the PYTHONPATH of the other.
That's because they are compiled under different circumstances and so they are binary incompatible.

In the spyder Goto tools, then click on "PYTHONPATH manager" give your Environment's python path Normally stored in C:\User{yourComputerAccountUserName}\Anaconda3\envs\YourEnvironment
and untick other paths if there any in PYTHONPATH manager

Python 3.6.7 |Anaconda, Inc.| (default, Dec 10 2018, 20:35:02) [MSC v.1915 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 7.2.0 -- An enhanced Interactive Python.
NOTE: The following error appeared when setting your Matplotlib backend
Traceback (most recent call last):
File "C:\Users\fghjk\Anaconda3\lib\site-packages\spyder_kernels\console\kernel.py", line 475, in _set_mpl_backend
get_ipython().run_line_magic(magic, backend)
File "C:\Users\fghjk\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2287, in run_line_magic
result = fn(*args,**kwargs)
File "", line 2, in matplotlib
File "C:\Users\fghjk\Anaconda3\lib\site-packages\IPython\core\magic.py", line 187, in
call = lambda f, *a, **k: f(*a, **k)
File "C:\Users\fghjk\Anaconda3\lib\site-packages\IPython\core\magics\pylab.py", line 99, in matplotlib
gui, backend = self.shell.enable_matplotlib(args.gui)
File "C:\Users\fghjk\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3355, in enable_matplotlib
pt.activate_matplotlib(backend)
File "C:\Users\fghjk\Anaconda3\lib\site-packages\IPython\core\pylabtools.py", line 313, in activate_matplotlib
import matplotlib.pyplot
File "C:\Users\fghjk\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 31, in
import matplotlib.colorbar
File "C:\Users\fghjk\Anaconda3\lib\site-packages\matplotlib\colorbar.py", line 32, in
import matplotlib.artist as martist
File "C:\Users\fghjk\Anaconda3\lib\site-packages\matplotlib\artist.py", line 16, in
from .path import Path
File "C:\Users\fghjk\Anaconda3\lib\site-packages\matplotlib\path.py", line 21, in
from . import _path, rcParams
ImportError: cannot import name '_path'
ImportError: cannot import name '_path' is causing problem as shown above before running on a spider run as an anaconda. What should I do?


Hosted Fields hostedFieldsInstance.focus() not bringing up credit card input keyboard (mobile safari / mobile chrome)

General information

SDK version: 3.22.0
Environment:  Sandbox
Browser and OS: Android Chrome (newest) iOS safari (newest)

Issue description
Calling the .focus() method does not automatically bring up the credit card input keyboard for iOS or Android. On Android Chrome, the field shows the cursor as if it's focused, but does not bring up the keyboard, requiring an additional tap on the field.
Here's my code, which produces no errors.
hostedFieldsInstance.focus('number', (err) => {
        err && console.log(err);
      });

For iOS Safari, this is a known behavior. There are known issues showing the iOS Safari keyboard with JavaScript. We'll add some documentation around this.
For Android Chrome, we've been unable to replicate this behavior. Android keyboard behavior varies between devices, so if you could send what phones you've seen this behavior on we can debug further.

Closing this issue as we've been unable to reproduce the buggy Android behavior, but let us know if you have more details and we can re-open the issue!

@lilaconlee

For iOS Safari, this is a known behavior. There are known issues showing the iOS Safari keyboard with JavaScript. We'll add some documentation around this.

Please can you point me to where this documentation is? Thanks

Sorry @andismith, we dropped the ball on updating the docs- they will be updated with the next release.
http://braintree.github.io/braintree-web/current/HostedFields.html#focus-examples will now read:
// In Firefox, the focus method can be suppressed
//   if the element has a tabindex property or the element
//   is an anchor link with an href property.
// In Mobile Safari, the focus method is unable to
//   programatically open the keyboard, as only
//   touch events are allowed to do so.

FYI, we just released some changes in v3.78.2 that addresses the quirks in iOS Safari around focussing programmatically.


Could you please add an open-source license?

Thank you for your project!
But the project has no license so it cannot be user as is.

Thanks for your interest! MIT License added: 6089a0ffbc67c59b976c252e1d0e2626c8bebcae

Very thanks!


Add support for arrays of active event keys to Accordion

I noticed that adding the alwaysOpen prop to the Accordion caused the chevrons to stop rotating when the accordions were opened. This PR resolves that by allowing for arrays of activeKeys as well as single strings.
https://github.com/user-attachments/assets/34974478-7ff2-4b31-a1ba-1db4f4d73de1

I'm also including some new misc styling options here for efficiency (added as props to the AccordionToggle specifically that Nat is requesting for use in the ODT Column Config component I'm working on - an always-there bottom border, and removal of most horizontal padding:
https://github.com/user-attachments/assets/24359957-ecfe-4809-a1d9-827a72a00cfe


Improved initial database creation

Silence warning by using _ instead of a variable name

Thanks Umar,
The reason we silence the warning outside of the // [START ...] and // [END ...] tags is because the code in between those tags gets pulled into our reference documentation. In this case, we want people to reference Firestore using a variable that can be used later instead of discarding the result.
See the docs under the Swift tab.

Yeah makes sense, but can the db variable even be used anywhere outside of the app delegate function? If not why is there a need to declare a name?

The answer is it depends on where the user copy-pastes the code snippet. Just because we declare it in the app delegate, doesn't necessarily mean our users will do so--changing this to let _ guarantees that the variable cannot be referenced in all contexts, where giving it an explicit name means it cannot be referenced in some contexts.


Simple Timestamp function

This is a simple time stamp function to allow easier logging.
Very useful to separate data in files named by day.
Accepts a format parameters and returns a String (kinda) compliant with ISO8601.
Output v parameters
DateTime::TIMESTAMP_FULL:	2015-06-01T14:38:54
DateTime::TIMESTAMP_DATE:	2015-06-01
DateTime::TIMESTAMP_TIME:	14:38:54

An example is included

Nice, I'll find this useful for my implementations.

Dito
Lucas Reddinger<EMAIL_ADDRESS>schrieb am Di., 2. Juni 2015 um
01:47 Uhr:

Nice, I'll find this useful for my implementations.
—
Reply to this email directly or view it on GitHub
https://github.com/adafruit/RTClib/pull/40#issuecomment-107748407.


Update containers

This change updates container on changes, it can also detect changes when a container config is somehow different to terraforn.

I am not sure of the difference between this and using the docker_container resource when the provider is configured with host = "ssh://...".

docker_container works only with the local docker, host doc says:
host - (Optional, block) See Extra Hosts below for details.
host is a block within the configuration that can be repeated to specify the extra host mappings for the container. Each host block supports the following:
host - (Required, string) Hostname to add.
ip - (Required, string) IP address this hostname should resolve to.
This is equivalent to using the --add-host option when using the run command of the Docker CLI.
so has nothing to do with remote dockers, more adding entries in /etc/hosts of the created container.

did the manual testing as part of the development process - works fine for all supported attributes

from: https://www.terraform.io/docs/providers/docker/index.html

Note You can also use the ssh protocol to connect to the docker host on a remote machine. The configuration would look as follows:

provider "docker" {
  host = "ssh://user@remote-host:22"
}

That being said, having the VM IP passed into a provide config instead of the resource is usually a recipe for annoyance.


app init does not cleanup template cruft

Describe the bug
After creating a new app from template, there is still a couple _dot. files even though the proper . files have been created.
To Reproduce
Steps to reproduce the behavior:

aio app init
ls

Expected behavior
There is a .gitignore and a .env file
There is NOT a _dot.gitignore and _dot.env file
Screenshots

System:
OS: macOS 12.3.1
CPU: (10) x64 Apple M1 Max
Memory: 227.74 MB / 32.00 GB
Shell: 5.8 - /bin/zsh
Binaries:
Node: 14.19.1 - ~/.nvm/versions/node/v14.19.1/bin/node
Yarn: 1.22.18 - ~/.nvm/versions/node/v14.19.1/bin/yarn
npm: 6.14.16 - ~/.nvm/versions/node/v14.19.1/bin/npm
Virtualization:
Docker: Not Found
npmGlobalPackages:
@adobe/aio-cli: 8.3.0

Has this been resolved by https://github.com/adobe/generator-aio-app/pull/195?


Extend available NP2 probe types

Added commersial versions of NP2 probes:

2003: single shank - no metal cap
2004: single shank - metal cap
2013: 4 shanks - no metal cap
2014: 4 shanks - metal cap

TODO

[x] Add test files and extend tests

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

Comparison is base (4e5de6f) 88.59% compared to head (543ecdd) 89.07%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #217      +/-   ##
==========================================
+ Coverage   88.59%   89.07%   +0.47%
==========================================
  Files          10       10
  Lines        1710     1711       +1
==========================================
+ Hits         1515     1524       +9
+ Misses        195      187       -8

Files
Coverage Δ

src/probeinterface/io.py
88.00% <100.00%> (+1.13%)
:arrow_up:

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


Use TensorPrimitives for better performance

I replaced the implementation of several functions for double types with TensorPrimitives and benchmarked them.

LU and Cholesky showed almost no change.
QR and SVD became faster for large matrices.

It seems like introducing TensorPrimitives is worth considering, but we need to think about the following:

Optimization for small matrices.
Currently, the procedure to make TensorPrimitives available is too cumbersome 🥺

Is the code branch that you used for testing available?
I was actually trying to do the same but the other way around, but my point was to start with NET9 Tensors/TensorPrimitives namespace for basic operations and use NumFlat "interop" for something that's not covered or less effective/flexible in those namespaces.
Didn't have much time to work on it though in terms of of Tensor/TensorSpan usage with NumFLat.

Here is the branch:
https://github.com/sinshu/matflat/tree/net9
Regarding Span<T> support, to accept Span, the matrix would need to be a ref struct, but since ref struct cannot be placed on the heap, it posed practical usability issues. I also considered creating a type like RefMat<T> in addition to Mat<T>, but I gave up on the idea because it would complicate the API to a level I wouldn't be able to manage.
As a side note, the decision to use Memory<T> for the memory of Mat<T> was made after much deliberation. However, there are times when I wonder if raw arrays or ArraySegment might have been better. Accessing individual elements in Memory<T> is slower, after all...

The matrix would need to be a ref struct
No, the matrix doesn't need to be a ref struct itself, span is just a view of whatever data I have. It should be clients responsibility to allocate data and manage its lifecycle properly in high-performance scenarios, when it's possible.

For example, the library has many (basic!) methods than take System.Collections.IEnumerable<T> as an argument (bang, we're forced to use heap allocated or boxed collection type), but doesn't take Span<T> or ReadOnlySpan<T> instead.


fix import path in README sample

Coverage remained the same at 62.025% when pulling d0a584bbf0fd447a90dcd93633cb3cf94dfa3e73 on campoy:fix into 978b1c3c0f795d09d0710238cb5f82853b99a460 on gorgonia:master.


NullRef Exception

<Panzoom WheelMode="WheelMode.ZoomWithWheel" PanzoomOptions="@(new PanzoomOptions(){Canvas = true})">     <div style="height: 100vh;">         <img<EMAIL_ADDRESS>src="test.bmp" style="width: 100%; height: auto;" />     </div> </Panzoom>
I am using .NET 6 blazor Server project. Why is that happening?

Can you explain more what you were doing when this exception occurred? Like were you switching between tabs? If this is related to PR #12, this issue will be fixed in the next release


CI/CD Python Linter

CI/CD Python Linter

To address https://github.com/open-traffic-generator/openapiart/issues/182


SPARKC-221: Added configurable delay between subsequent query retries

A new configuration parameters has been introduced which can configure
various delays and delay calculation methods. It is possible to configure
a constant delay, linearly increasing delay and exponentially increasing
delay.

Build succeeded

Build failed

retest this please

retest this please

retest this please

Build finished with success

Build finished with success

+1

retest this please

Build finished with failure

retest this please

test this please

Build against Scala 2.10 finished with success

Build against Scala 2.10 finished with success

Build against Scala 2.11 finished with failure

Build against Scala 2.11 finished with success


FNA requires at least opengl 3 i think

yes i updated and recompiled, ill check for opengl 3

actually it might be an error on my end with settings

idk i dont understand because ive never touched code

yeah theres a bug with there being not clientConfig file

working on a fix right now

tysm

ok pushed a fixed, try updating & recompiling now

ok

yooooo

it works

Thank you so much!!!!

thanks for reporting this bug to me

also there is a problem where my resolution is stuck at 1440 x 900

you need to press the go windowed button to properly change resolution i think

idk i tried everything but it didnt change


Update reported issues position

Closes #289
Main change is that our starting column is now 1 (instead of 0). But there were differences between rules and some reported it already starting from 1, and some from 0 - this PR standardize this. Also LSP diagnostic (used by LSP plugin for Visual Studio and PyCharm) starts their column from 0 - I have modified related code.
There were also rule with non precise messages, ie reporting on 0 or 1 when the invalid code was at 20 char - now it should point to it correctly.
I skipped error checker since they will be refactored with different PR.

Codecov Report

Merging #471 (258b8fc) into master (acfceb0) will decrease coverage by 0.80%.
The diff coverage is 92.30%.

@@            Coverage Diff             @@
##           master     #471      +/-   ##
==========================================
- Coverage   98.00%   97.19%   -0.81%
==========================================
  Files          22       22
  Lines        2351     2350       -1
==========================================
- Hits         2304     2284      -20
- Misses         47       66      +19

Impacted Files
Coverage Δ

robocop/checkers/__init__.py
91.01% <ø> (-0.30%)
:arrow_down:

robocop/utils/misc.py
97.92% <ø> (-1.04%)
:arrow_down:

robocop/checkers/comments.py
96.26% <83.33%> (-1.55%)
:arrow_down:

robocop/checkers/documentation.py
96.00% <100.00%> (-4.00%)
:arrow_down:

robocop/checkers/misc.py
95.00% <100.00%> (-4.28%)
:arrow_down:

robocop/checkers/naming.py
98.29% <100.00%> (-1.29%)
:arrow_down:

robocop/checkers/spacing.py
98.95% <100.00%> (-0.70%)
:arrow_down:

robocop/rules.py
100.00% <100.00%> (ø)

... and 7 more

Continue to review full report at Codecov.

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


Geographic focus field entries lost in Land Library (GLTN resource)

I don't know when this happened, but when adding the OAs and Themes to the GLTN resources (the metadata of which Natalia and I enriched one by one), the geographic focus got lost for most of the resources. I am manually adding them again, but this is really not something that we want to have happen. I hope it's not the case for other resources as well, because that would be horrible.
For now, I can't find out a pattern (not only for 'global' or a specific country), but seems pretty random.
Any idea what happened??

fixed


v1.12 backport: Policy deny override redirect

[ ] #26344 (@jrajahalme)

Once this PR is merged, you can update the PR labels via:
for pr in 26344; do contrib/backporting/set-labels.py $pr done 1.12; done

or with
make add-labels BRANCH=v1.12 ISSUES=26344

/test-backport-1.12


Partial fix for #19

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Fixed issues
#19

needs tests

needs tests

Thank you!

Thank you!


Fix reference to NodePort service docs

The reference should have been to the Kubernetes docs instead of to our own docs.
Fixes #3791.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/cherrypick release-0.12

/approve


Workaround to use without any filter?

Why would you want to? The whole point of this program is to generate vanity onion addresses. There are other, better tools you can use if you just want to generate an ed25519 key pair (ex. OpenSSH). Heck, I'm pretty sure Tor can generate them for you automatically.
If you really needed to you could build the program with regex and do a search string like ., or even just use the normal search with a filter file contain an entry for every base32 character. But this will start writing keys to your disk as fast as possible until you stop the program or you run out of space. This program is capable of generating millions of keys per second.

I don't want to run it for vanity. I want it to save all the domains generated as it does after filtering, I want it to save each and every domain generated without checking for a specific string.

I don't want to run it for vanity.

Then this isn't the right program for you.
Anyway I have already provided you with multiple suggested workarounds. Is there anything more you need for this issue to be resolved?

it's possible to do but it's not really worth doing as writing to file system or stdout will be significantly slower than key generation itself on anything viable for this to run


FTP upload transforms special characters

Hi!
I have small issue with FTP upload:
Html file content in artifacts looks like this:
"Ładowanie"
after FTP upload send this file to server it's changed to:
"Å�adowanie"
Any ideas why it happens ? In my build configuration i have only one step (FTP Deploy)

Bitbucket: https://bitbucket.org/nskvortsov/deployer/issue/41
Originally reported by: Maciej Gibas
Originally created at: 2014-09-10T06:07:19.197

Related to
https://bitbucket.org/nskvortsov/deployer/issue/14/utf-8-encoded-files-are-written-as-utf-8

Original comment by: Maciej Gibas


[WIP] Bump inventory_refresh gem for rails 6.1

Bump inventory_refresh gem version to allow for rails 6.1 changes

@miq-bot cross-repo-tests /providers, https://github.com/ManageIQ/inventory_refresh/pull/101

NOTE this version is just to match what is in the current master branch of inventory_refresh so it'll pull in the PR, once released that will be v1.0.0

@miq-bot cross-repo-tests ManageIQ/inventory_refresh@master

@miq-bot cross-repo-tests ManageIQ/inventory_refresh@master, /providers


Error with latest update 10/29 MST

After updating to the latest version, I recieved this error message.  If you need more info just let me know.
Factorio SA version 2.0.12
BN Lite version 1.3.1

Same here. :(

Same here
BottleneckLite/data-final-fixes.lua:115: attempt to index field 'graphics_set' (a nil value)
stack traceback:
BottleneckLite/data-final-fixes.lua:115: in main chunk


Stacked Line Chart

This would be a great chart variation to add to the lineup

+1

+1

This is already available now at https://github.com/tannerlinsley/Chart.StackedArea.js. But will be native in 2.0


Formatting problem for lists

commit: a87f8199
Rendering of some lists on RTD is not properly done:

https://ivadomed.org/en/latest/configuration_file.html#default-model-mandatory
https://ivadomed.org/en/latest/configuration_file.html#uncertainty

Started working on it (branch lr/doc_list_format). What do you think about https://ivadomed.org/en/latest/configuration_file.html#scheduler ?
Is this better?

@lrouhier Yep Züper! Thanks heaps


Synchronise test run results in Test Explorer

Product and Version: Visual Studio
OS Version: Windows
Live Share Extension Version: 0.3.371.21991
Target Platform or Language: C#
Steps to Reproduce / Scenario:
When developing an application, especially when following a TDD approach, it is common to have a test suite associated with your work. When working on a test that is failing, or a set of tests that are failing, there is no way for those in the collaboration session to see a list of failed tests or to execute tests.
Can we support the sharing and synchronisation of the Test Explorer window for enhanced collaboration in Visual Studio.

@tomntech Thanks for reaching out! We’re tracking this request via #33, so if you could upvote that issue, that would be greatly appreciated 👍 In the meantime, I’m going to close this as a duplicate. Thanks!


Boost.js module with highstock

Anyone has an example of how to use the boost.js module with this?
So far I tried
import ReactHighcharts from "react-highcharts/ReactHighstock"; require('highcharts-boost')(ReactHighcharts);
and
import ReactHighcharts from "react-highcharts/ReactHighstock"; require('highcharts-boost')(ReactHighcharts.ReactHighstock);
but either they don't do anything or produce an error in the console about win not being defined.
Thank you.

What you're doing seems about right, if this is still relevant, can you try and reproduce it in jsbin, or at least be a bit more specific about win error, where is it caused?

feel free to reopen.

This was resolved a while ago. I'll put my solution in case someone else comes across it:
import ReactHighcharts from "react-highcharts/ReactHighstock";
import Boost from "highcharts-boost";
Boost(ReactHighcharts.Highcharts);

Remember, Boost module won't actually do anything unless the number of points in a series is above a threshold (which i believe the default is 5000, but i could be wrong). Even if the sum of all the series points are above the default value, it still will not work unless individual series points are above the threshold. In order to get around this, you will have to add boostThreshold to the series setting and set it to whatever value you'd like. You'll have to do this for each series since there is no global setting.


[Feature Request] Pterodactyl Module

https://github.com/boxbilling/boxbilling/issues/1309

We need this! I have also been looking for a billing system with pterodactyl support.

Really need this integration

I also really need this

We currently have no plans to introduce official support for Pterodactyl.
If the community wants to build and maintain one that's great, however for now no official support will be given for it.

rip the 1 module that would make sense ._.

I recently posted this in the Pterodactyl discord, figured I'd throw it here as well...
As a small incentive for anyone who is already considering to tackle this, I'd personally be willing to contribute $200/USD towards the development of a free & open source Pterodactyl module for FOSSBilling.  This would be dependent on the completion of the module including validation of functionality but not dependent on any sort of long term upkeep/maintenance/support. Feel free to tag me if you'd like to connect and work out details.


memory leak/crash

hi,
every now and then npm run dev crashes or takes ages to build.
🧩 Extension.js ►►► testext (v1.0) (webpack 5.92.1) compiled successfully in 64661 ms
🧩 Extension.js ►►► testext (v1.0) (webpack 5.92.1) compiled successfully in 2473 ms

<--- Last few GCs --->

[89876:00000246DB880080] 52607804 ms: Mark-Compact 4048.8 (4136.8) -> 4037.3 (4140.8) MB, 3553.52 / 0.00 ms  (average mu = 0.457, current mu = 0.025) allocation failure; scavenge might not succeed
[89876:00000246DB880080] 52613244 ms: Mark-Compact 4053.4 (4141.0) -> 4041.7 (4145.3) MB, 5335.93 / 0.00 ms  (average mu = 0.242, current mu = 0.019) allocation failure; scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 00007FF7039672EB node::SetCppgcReference+18123
 2: 00007FF7038D8F04 DSA_meth_get_flags+90724
 3: 00007FF704350701 v8::Isolate::ReportExternalAllocationLimitReached+65
 4: 00007FF704339E58 v8::Function::Experimental_IsNopFunction+1336
 5: 00007FF70419B8A0 v8::Platform::SystemClockTimeMillis+659328
 6: 00007FF704198928 v8::Platform::SystemClockTimeMillis+647176
 7: 00007FF7041ADC3A v8::Platform::SystemClockTimeMillis+733978
 8: 00007FF7041AE4B7 v8::Platform::SystemClockTimeMillis+736151
 9: 00007FF7041BCDAF v8::Platform::SystemClockTimeMillis+795791
10: 00007FF703E7CD05 v8::CodeEvent::GetFunctionName+116773
11: 00007FF70440208E v8::PropertyDescriptor::writable+678094
12: 00007FF7044027E3 v8::PropertyDescriptor::writable+679971
13: 00007FF6848ACEC5

hi @bugficks thanks for reporting!
Are you able to reproduce it consistently? or maybe some code/steps I can run locally so I can reproduce as well

yes, if I let it run over night I will be greeted by this in the morning.
I haven't noticed any pattern for the long build time issued, randomly happens through out the day.

That helps a lot, thanks. I'll keep it running overnight and try to catch it

Yesterday it got that bad that it crashed or hung within less than 10 saves.
I have tried disabling 'reload service' and 'extension manager' just to see if it makes any difference, it didn't.
So I added launch.json to vscode using exactly same command line parameters, except those 2 extensions.
Running npm run dev worked without issues so far.
Now the kicker, this morning I have tried to reproduce the problem having visual studio attached but problem seems to be gone.
Same vscode instance, same terminal instance, same shell instance, same node version, same chrome version 🤔
I did do npm update but diff only shows electron-to-chromium 1.4.825->1.4.827
Now I am puzzled to say the least

that's a tricky one. are you using the public/ folder? aside from webpack the only processes that persist during development are the browser instance and a listener to public/. I'm not able to reproduce

btw thanks for all the bug reports, really helpful

I have only one file in public, a small config.json.

I have added '--node-memory-debug --inspect --max_old_space_size=1024' to extension.cmd and waited for it to crash:

maybe this helps, to me it looks like "file change detection" might be the root cause of this.

hey @bugficks! thanks again. I'm rewriting the whole develop package, hopefully the bug will vanish along with it or provide us a better view of what's going on. I'm pretty sure it's related to watching the public/ folder via custom watcher
btw added you as a collaborator to the project so you can help me reviewing the upcoming update. feel free to report other issues as you find them or triage existing. the ultimate goal is to make it very easy to develop extensions.

Thanks for invitation but I wont have the time required for it. I will continue to report bugs as I encounter them while working with this.

I removed public folder, copied my config into dist dir manually and it still crashes.
Anyways I've started to use webpack directly as I easy needed access to build steps and couldn't stand the wait/crashes anymore.
While porting I've encountered this:

great catch! that's a dependency of glob which we use. Will cut off that bad boy

@bugficks took me a while but finally fixed this one. might giving it another try?

sure, if here an easy way to test it.
tried installing from github but that didn't work:

It seems you are downloading v1.8.0. Please try with current latest, pnpm add<EMAIL_ADDRESS>

Looks like it is fixed. No more crashes over night and builds are way faster too now.

I'm happy to know that! Going to close this one as fixed then. If you see soomething else wrong, let me know!


Fix token sql insert statements

This PR updates the token insert statements to match schema located in data/oauth2.php

This PR fixes #8


embed input values into tx file for offline signing

Should fix #7 for offline transactions.

not sure this works. im on irc


Support ORC 2.0+

#12841
Solve the incompatibility between ORC 1.5.9 to 2.0.0

notable changes:
https://orc.apache.org/releases/

I will look into it. Thanks

orc version 2.0.0 drops support for java 8/11.
For reference -
https://github.com/apache/orc/releases/tag/v2.0.0,
ORC-1512: Drop Java 8/11 and make Java 17 by default


Expose found versions and location for crc binary

This will make things slightly easier to understand when the role is
wanting to install a new CRC binary/bundle.
It also change a task title to reflect the new behavior, and changes an
import_tasks to include_tasks since there's a when condition, to make
it slightly faster/better.
As a pull request owner and reviewers, I checked that:

[x] Appropriate testing is done and actually running

2024-07-25 06:40:30.430504 | controller | TASK [rhol_crc : Output found binary location and versions] ********************
2024-07-25 06:40:30.495202 | controller | ok: [instance] =>
2024-07-25 06:40:31.133473 | controller |   msg: 'Found crc at /usr/local/bin/crc, with version 2.39.0 (wants: 2.39.0) and serving OpenShift version 4.16.0.'

Looks nice!

/approve

/lgtm

/approve


Revisit job resizing based on the unified logic

Impact of the new feature
WMAgent (and Unified)
Is your feature request related to a problem? Please describe.
We would like to move the job resizing logic to a single place, and leave only one action to Unified, which is to enable job resize once jobs are sitting pending in Condor.
Describe the solution you'd like
Here is where the job resizing is implemented in Unified:
https://github.com/CMSCompOps/WmAgentScripts/blob/master/Unified/equalizor.py#L455-L492
in plain english, something like:

min cores is usually 3 (unless the job is configured to < 3 cores)
max cores cannot be > 15
extra memory is usually 60% of the original memory per core (quantized and with a few protections)

While the logic in WMAgent is here:
https://github.com/dmwm/WMCore/blob/master/src/python/WMCore/BossAir/Plugins/SimpleCondorPlugin.py#L558-L570
in plain english, something like:

min cores is half of the original cores
max cores is actually the original cores requested in the job (we never resize jobs up in WMA)
extra memory is defined at agent level, hard-wired to 500MB at the moment.

So, we need to come up with:

the best logic behind minimum and maximum number of cores a job is allowed to request (as a condor expression)
and a reasonable default value for the extra memory (until - a day in the future - where we will use grafana to figure this out).

Once that is live in WMAgent, Unified needs to be modified to simply enable the job resizing, without modifying anything else in the job classads.
Describe alternatives you've considered
Do not change anything and keep things as they are.
Additional context
This has been quickly discussed in the CompOps meeting today.
FYI @sharad1126 @haozturk @todor-ivanov @khurtado @aperezca

Given that we will be getting more resources with whole node pilots (mostly HPC, but they are also used at some CMS sites), we should definitely allow jobs to resize up. Not sure about the maximum though. A fixed value is certainly easier to implement, but if you think about it the maximum you want really is workflow type / CMSSW dependent.

I think it would be good to clarify use cases. Unless we implement efficiency checks, we can easily get into making it all look nice from a resource utilization point of view while having worse throughput in terms of produced events. This is especially critical for StepChain requests that may have acceptable efficiency running with 4-cores or less for example and certainly not with 15-cores.

I don't see how the WM system could automatically figure out what range of cores produces acceptable efficiency on any reasonable time frame (i.e. implementable this year).  Therefore, I think this range would have to be input with the request by PPD/PdmV.

a bit late, but I agree with @klannon . These efficiencies are measured by pdmv through the process they call "multivalidation". If the list of (nr. cores, cpu efficiency) pairs is compiled by them ad added to the request description, could this be of help?

a bit late, but I agree with @klannon . These efficiencies are measured by pdmv through the process they call "multivalidation". If the list of (nr. cores, cpu efficiency) pairs is compiled by them ad added to the request description, could this be of help?

@dpiparo this is actually in a big interest of ours, to have some more information about how the actual efficiency of the payload jobs (CMSRun processes) are measured. We are trying to prepare some metrics on our side - when it comes to the workflow management system, but at the end we need to know also how it is estimated for the actual consumer of the resources itself.

@dpiparo this is actually in a big interest of ours, to have some more information about how the actual efficiency of the payload jobs (CMSRun processes) are measured. We are trying to prepare some metrics on our side - when it comes to the workflow management system, but at the end we need to know also how it is estimated for the actual consumer of the resources itself.

I cannot add him to this exchange, but the reference person would be Jordan Martins. PdmV and SI are collaborating to be able to improve the "multivalidation" (aka figure out the dependency of the efficiency on the number of cores) to allow it to be treated as a regular production job (right now it's made of regular batch jobs @ cern)

I cannot add him to this exchange, but the reference person would be Jordan Martins. PdmV and SI are collaborating to be able to improve the "multivalidation" (aka figure out the dependency of the efficiency on the number of cores) to allow it to be treated as a regular production job (right now it's made of regular batch jobs @ cern)

Let me add @jordan-martins in the loop

Let me add @jordan-martins in the loop

Hi guys,
concerning what we do over multivalidation job, you may check [1]. Let me try to summarize or tell the story:

we do a cmsRun like this cmsRun -e -j XXX-RunIISummer20UL16GEN-00001_report.xml XXX-RunIISummer20UL16GEN-00001_1_cfg.py -> the idea while doing this is that we use the xml to store several monitoring variables available from the CMSSW framework.
as a first step, we deploy 1 validation job intended to estimate the CPU eff of 1 core and 2GB memory (this memory is actually just what we request at the queue). From [1], you may see what are the exactly variables we use to measure the CPU eff.
If the CPU eff is > 70 %, we deploy 3 more validation jobs, 1 for 2 cores (4GB requested to the job), 1 for 4 cores (8GB requested to the job) and 1 for 8 cores (4GB requested to the job). We change the cores by re-running the Driver and choosing the cores in a one-by-one relation to the cfg.py file - like XXX_2_cfg.py, XXX_4_cfg.py and XXX_8_cfg.py. Then, we take highest number of cores with CPU efficiency >= 70%.
While sending the dict thru the reqmgr, we send the actual memory size corrected by a rule table to avoid request less memory than what it will need during the 8hr condor job.

This is also in the best interest of PdmV since, roughly speaking, we kind of estimate that the whole MC production has ~50% overall eff in terms of the requested memory. With multivalidation procedure, we try to cover the first "step" (the root ones). But then once the GEN step is finished the others get the resized parameters from Unified once it has it set to true in the campaigns configuration.
Please, let us know if there are more that we can grasp regarding this.
Thanks, Jordan
[1] https://github.com/cms-PdmV/cmsPdmV/blob/master/mcm/automatic_scripts/validation/validation_control.py#L761-L836

Hi guys,
concerning what we do over multivalidation job, you may check [1]. Let me try to summarize or tell the story:

we do a cmsRun like this cmsRun -e -j XXX-RunIISummer20UL16GEN-00001_report.xml XXX-RunIISummer20UL16GEN-00001_1_cfg.py -> the idea while doing this is that we use the xml to store several monitoring variables available from the CMSSW framework.
as a first step, we deploy 1 validation job intended to estimate the CPU eff of 1 core and 2GB memory (this memory is actually just what we request at the queue). From [1], you may see what are the exactly variables we use to measure the CPU eff.
If the CPU eff is > 70 %, we deploy 3 more validation jobs, 1 for 2 cores (4GB requested to the job), 1 for 4 cores (8GB requested to the job) and 1 for 8 cores (4GB requested to the job). We change the cores by re-running the Driver and choosing the cores in a one-by-one relation to the cfg.py file - like XXX_2_cfg.py, XXX_4_cfg.py and XXX_8_cfg.py. Then, we take highest number of cores with CPU efficiency >= 70%.
While sending the dict thru the reqmgr, we send the actual memory size corrected by a rule table to avoid request less memory than what it will need during the 8hr condor job.

This is also in the best interest of PdmV since, roughly speaking, we kind of estimate that the whole MC production has ~50% overall eff in terms of the requested memory. With multivalidation procedure, we try to cover the first "step" (the root ones). But then once the GEN step is finished the others get the resized parameters from Unified once it has it set to true in the campaigns configuration.
Please, let us know if there are more that we can grasp regarding this.
Thanks, Jordan
[1] https://github.com/cms-PdmV/cmsPdmV/blob/master/mcm/automatic_scripts/validation/validation_control.py#L761-L836

Hi @jordan-martins. That is actually quite useful. Thanks a lot. Few more things I need to understand:

While sending the dict thru the reqmgr, we send the actual memory size corrected by a rule table to avoid request less memory than what it will need during the 8hr condor job.

First, what is this table? On what basis is this one estimated? What I understand is these are statically fixed correction factors which you apply on top of what ever you have already established by the process explained above.
Second, you mention the 8hr condor job, but you did not mention how/if you are trying to target that wall time exactly. I know  the basic job splitting is meant to happen inside WMCore, but on your side, are you doing anything in particular to measure an eventual CMSRun run time in advance?

But then once the GEN step is finished the others get the resized parameters from Unified once it has it set to true in the campaigns configuration.

Are you telling me that if we want to measure the efficiency of this multivariate algorithm perse (which to me seems quite well established) we should aggregate only over GEN jobs, because for the rest of the steps, the values prescribed are already obfuscated by the Unified algorithm for re-calculate them?

Hi @jordan-martins. That is actually quite useful. Thanks a lot. Few more things I need to understand:

While sending the dict thru the reqmgr, we send the actual memory size corrected by a rule table to avoid request less memory than what it will need during the 8hr condor job.

First, what is this table? On what basis is this one estimated? What I understand is these are statically fixed correction factors which you apply on top of what ever you have already established by the process explained above.
Second, you mention the 8hr condor job, but you did not mention how/if you are trying to target that wall time exactly. I know  the basic job splitting is meant to happen inside WMCore, but on your side, are you doing anything in particular to measure an eventual CMSRun run time in advance?

But then once the GEN step is finished the others get the resized parameters from Unified once it has it set to true in the campaigns configuration.

Are you telling me that if we want to measure the efficiency of this multivariate algorithm perse (which to me seems quite well established) we should aggregate only over GEN jobs, because for the rest of the steps, the values prescribed are already obfuscated by the Unified algorithm for re-calculate them?

Hi @todor-ivanov ,
you may find our currently table expressed in [1] (take notice that the factorization is not the same. It differs from one memory region to another. Check excel equations). Basically, while doing the validation jobs, we allow a time/evt window of opportunity to the users - namely the MC contacts - (a +- 25% mismatch of the time/evt - mainly because there are differences while running in lxplus and so on). There is a game that happens in the validation job that one must be alert... if we can do only a 8hr condor job, the main players are: time/event and filter efficiency. Filter efficiency is what we measure once we request some kind of monte carlo generation and within the fragment itself we set what we call phase of space. Then, if the event generated is within that space, it counts as a good event. If not, we discard and start another event generation. This is the reason why we have the table [1]. Namely, this 25% gap makes us not be able to give a more precise value of memory because when we do an estimation of the amount of events that would fit the 8hr, this will be an approximation number (more like an expected value from the input variables). And, as far as I am aware, the memory usage of an 8 hr condor job is a function of the amount of events generated, e.g. more events therefore more memory. We understand that this may yet be better assessed, but this has being working quite well now.
About the wall time... if for some reason the user makes a bad estimation of the time/evt, then it would lead McM to expect a certain number of events that would not hold in the 8hr condor job. Then, the user gets a mesage saying that his job was terminated but it was not completed and, therfore, a better time/evt needs to be provide (this happens more or less the same if the filter eff is bad inputed in McM).
Our number of events (more or less what you mean about the spliting) is in [2].
About the last comment... my point is that we control only the GEN part, the very first step. When the wf goes in, it will start the GEN taking the parameters we measure from multivalidation. Let me give you a regular example of what happens in UL campaigns. We have the following steps that are connected thru flows and are brought to life via chains: GEN > SIM > DIGIPREMIX > HLT > RECO > MINIAOD > NANOAOD. PdmV only controls memory and core from the GEN step. The others, if defined in campaign to have resize as true - which is the most of the cases, will do whatever is defined as listed in the description of this JIRA. I guess that the main question lies on how to Unified can improve the management of the memory. I read a 60% number. This seems to high. Remeber that once the GEN step is done, there is no more filter eff. Whatever the amount of events passed from there will remain as a constant thru the chain.
I think (?) there are some parameters that you guys take from us that define more or less how you do the split after the GEN step. From our side, they are defined in the flows. e.g we probably send to you both the time/evt and the size/evt that Unified takes into account to do the split. If those parameters are defined wrongly, then it leads to unmerge problems.
The above brings me to....
Naively, thinking out loud - not sure if this holds, one could think that each CMSSW release doing a particular step would not vary so much in terms of the memory while looking at a normalized number. I mean the following... if one takes the 10_6_20, for example, then try to check the average of the memory increment by each event for a given step (SIM or DIGIPREMIX or ...), this would be this normalization number that you would need to better estimate the needed memory with rely on any raw estimation. Of course, that 11_2_X could bring different numbers and so on... but instead of asking for resize, one could set a new variable that could translate the array [release,step] to this normalized number.
Not sure if I made it more confusing... :s
Best, Jordan
[1] https://docs.google.com/spreadsheets/d/1ej_q7a-Mv2a9BZN8dQzvw5qHKEqftHJKfZXgFwL1J9M/edit#gid=940118300
[2] https://github.com/cms-PdmV/cmsPdmV/blob/master/mcm/json_layer/request.py#L2530-L2578

Hi @todor-ivanov ,
you may find our currently table expressed in [1] (take notice that the factorization is not the same. It differs from one memory region to another. Check excel equations). Basically, while doing the validation jobs, we allow a time/evt window of opportunity to the users - namely the MC contacts - (a +- 25% mismatch of the time/evt - mainly because there are differences while running in lxplus and so on). There is a game that happens in the validation job that one must be alert... if we can do only a 8hr condor job, the main players are: time/event and filter efficiency. Filter efficiency is what we measure once we request some kind of monte carlo generation and within the fragment itself we set what we call phase of space. Then, if the event generated is within that space, it counts as a good event. If not, we discard and start another event generation. This is the reason why we have the table [1]. Namely, this 25% gap makes us not be able to give a more precise value of memory because when we do an estimation of the amount of events that would fit the 8hr, this will be an approximation number (more like an expected value from the input variables). And, as far as I am aware, the memory usage of an 8 hr condor job is a function of the amount of events generated, e.g. more events therefore more memory. We understand that this may yet be better assessed, but this has being working quite well now.
About the wall time... if for some reason the user makes a bad estimation of the time/evt, then it would lead McM to expect a certain number of events that would not hold in the 8hr condor job. Then, the user gets a mesage saying that his job was terminated but it was not completed and, therfore, a better time/evt needs to be provide (this happens more or less the same if the filter eff is bad inputed in McM).
Our number of events (more or less what you mean about the spliting) is in [2].
About the last comment... my point is that we control only the GEN part, the very first step. When the wf goes in, it will start the GEN taking the parameters we measure from multivalidation. Let me give you a regular example of what happens in UL campaigns. We have the following steps that are connected thru flows and are brought to life via chains: GEN > SIM > DIGIPREMIX > HLT > RECO > MINIAOD > NANOAOD. PdmV only controls memory and core from the GEN step. The others, if defined in campaign to have resize as true - which is the most of the cases, will do whatever is defined as listed in the description of this JIRA. I guess that the main question lies on how to Unified can improve the management of the memory. I read a 60% number. This seems to high. Remeber that once the GEN step is done, there is no more filter eff. Whatever the amount of events passed from there will remain as a constant thru the chain.
I think (?) there are some parameters that you guys take from us that define more or less how you do the split after the GEN step. From our side, they are defined in the flows. e.g we probably send to you both the time/evt and the size/evt that Unified takes into account to do the split. If those parameters are defined wrongly, then it leads to unmerge problems.
The above brings me to....
Naively, thinking out loud - not sure if this holds, one could think that each CMSSW release doing a particular step would not vary so much in terms of the memory while looking at a normalized number. I mean the following... if one takes the 10_6_20, for example, then try to check the average of the memory increment by each event for a given step (SIM or DIGIPREMIX or ...), this would be this normalization number that you would need to better estimate the needed memory with rely on any raw estimation. Of course, that 11_2_X could bring different numbers and so on... but instead of asking for resize, one could set a new variable that could translate the array [release,step] to this normalized number.
Not sure if I made it more confusing... :s
Best, Jordan
[1] https://docs.google.com/spreadsheets/d/1ej_q7a-Mv2a9BZN8dQzvw5qHKEqftHJKfZXgFwL1J9M/edit#gid=940118300
[2] https://github.com/cms-PdmV/cmsPdmV/blob/master/mcm/json_layer/request.py#L2530-L2578

I'm worried this discussion is getting too convoluted.  I think the minimum piece of information that needs to be communicated from PdmV is just the minimum and maximum number of cores that a request can run with and still obtain an acceptable CPU efficiency.  If I follow correctly, the efficiency over a range of cores is checked in multivalidation, so all that remains is just to decide what the threshold for "acceptable" efficiency is and the pass the minimum and maximum number of cores in as part of the request so that the WM system can make use of it.
Regarding "extra memory" is that just some padding that gets provided to try to provide a safety margin for the job?  I'm confused about what we're actually trying to accomplish with that.

I'm worried this discussion is getting too convoluted.  I think the minimum piece of information that needs to be communicated from PdmV is just the minimum and maximum number of cores that a request can run with and still obtain an acceptable CPU efficiency.  If I follow correctly, the efficiency over a range of cores is checked in multivalidation, so all that remains is just to decide what the threshold for "acceptable" efficiency is and the pass the minimum and maximum number of cores in as part of the request so that the WM system can make use of it.
Regarding "extra memory" is that just some padding that gets provided to try to provide a safety margin for the job?  I'm confused about what we're actually trying to accomplish with that.

There were questions regarding this topic in today's CompOps meeting and I think we should try to converge on the WMCore + Unified implementation and add it to WMAgent, such that we can start using this feature again in the system, even if it's not in an optimal state yet.
Then in the future, we can do some R&D and add some intelligence and feedback loop to this resizeable job feature (in a different GH issue).
Please let me know what your thoughts are.

Defined as a low-medium priority, according to Hasan's input on the Q3 planning


Outbound memo support from librustzcash

Refactor outbound memos to utilize information from the chain instead of just storing it locally.

@Kevin, this is working now, right?


Is it possible to disable the new additional notification sounds frequency?

I don't see a setting for this, but however it worked prior to this change was awesome. I feel like the new sound happens more often than the number of alerts I have for a given event. Am I imagining that?
It's nice if you can configure it, but all calendar services already handle this functionality by adding extra alerts per event. I typically set an alert 1hr prior and then 5min prior.
So with the new sounds I have 2 notification sounds already, then it seems like another extra 3 or so right as the event is about to start which can be quite distracting (not good) or becomes background noise if it's happening so often (dangerous, because you don't want to miss calendar alerts).
The visual flashing is nice, I guess. I don't remember that before but I don't have a strong opinion one way or the other.

The alerts are not synchronized with the system, they always happen 5min + 1min before the event, and a different one when the event starts.
I'm gonna add a setting to disable the sounds.
The red flashing happens in the last 5 minutes. Every minute it flashes 5x until the event start.


test(e2e): prevent failures in the corruption test

rm -fr fails when a file is created meanwhile the target directory is removed.
This patch replaces it with find that is not prone to that error.
Release notes
NONE

E2e: https://github.com/EnterpriseDB/cloudnative-pg/actions/runs/10178293086