Shelling out to collect environment variables is creating runaway 100% CPU processes on Linux

Prerequisites

[x] Can you reproduce the problem in safe mode?
[x] Are you running the latest version of Atom?
[x] Did you check the debugging guide?
[x] Did you check the FAQs on Discuss?
[x] Are you reporting to the correct repository?
[x] Did you perform a cursory search to see if your bug or enhancement is already reported?

Description
I'm fairly sure this will end up being an Electron issue, but here goes ...
When I start atom-beta (1.12.0b4, though was present with b3 at least), it spawns a shell ('env') subprocess which burns 100% CPU, attempting to read stdin forever:
systemd,1,1 --system --deserialize 126
  ├─atom,15392,10213
  │   ├─atom,15403,10213
  │   │   └─atom,15466,10213
  │   │       ├─zsh,15497,10213 -ilc command env

strace on the shell shows this looping forever:
rt_sigprocmask(SIG_SETMASK, [], [TSTP TTIN TTOU], 8) = 0
read(0, NULL, 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [TSTP TTIN TTOU], [], 8) = 0
getpgrp()                               = 10213
ioctl(15, TIOCGPGRP, [11445])           = 0
getpgrp()                               = 10213
ioctl(15, TIOCGPGRP, [11445])           = 0
rt_sigprocmask(SIG_SETMASK, [], [TSTP TTIN TTOU], 8) = 0
read(0, NULL, 0)                        = 0
rt_sigprocmask(SIG_BLOCK, [TSTP TTIN TTOU], [], 8) = 0

Sometimes this process blocks Atom startup, and you have to kill the shell for Atom's window to show. Sometimes Atom works just fine despite this, and you only realise later when you wonder why your system is slow, and kill the extraneous process. Sometimes closing Atom takes the rogue shell process with it, and sometimes it outlives Atom. Sometimes everything works fine and I can't reproduce it at all.
 Timecop shows 'window load time' taking an ungodly amount of time, but with no insight into why.
Happy to supply more details or attempt debugging as needed, with the caveat that I have no idea what I'm doing in JavaScript.
Steps to Reproduce

Have my system
Run Atom beta

Expected behavior: 'What a nice normal text-editing experience this is'
Actual behavior: WOOOOOOOOSSHHHH goes the laptop fan
Versions
Atom 1.12.0b4 (also occurred with b3)
Fedora 25 (kernel 4.8-rc8+, glibc 2.24, etc)

This originates in our process environment patching. I'm guessing something is preventing zsh from exiting.
Would you mind running the follow in a terminal, and reporting back what the output is?
$ zsh -ilc command env

Oddly enough, just a screen-clear character, then exits immediately:
% zsh -ilc command env >foo 2>&1
% xxd foo
00000000: 1b5b 334a 1b5b 481b 5b32 4a              .[3J.[H.[2J

Thanks for the prompt response!

Ah, following the quoting for "command env" rather than as separate arguments, it dumps my entire environment and then exits immediately. I can share a redacted version with you, if the actual content is of interest, but it does simply print and exit.

I have this problem as well. My atom won't even open until I kill -9 the zsh -ilc process.
Versions:
$ atom --version
Atom    : 1.13.0-dev-630f146
Electron: 1.3.6
Chrome  : 52.0.2743.82
Node    : 6.3.0

$ apm --version
apm  1.14.0
npm  3.10.5
node 4.4.5
python 3.5.2
git 2.10.1

I appear to have this issue as well.
When I launch atom-beta from a terminal instance, it runs without issues, regardless of whether it's launched in foreground mode or not, and whether I run the shell script in /usr/bin or the actual binary in /usr/share/atom-beta.
When I launch it through a provided desktop file, then the issue described in the bug report manifests. Running the exact same command used in the desktop file (minus the %F of course) does not reproduce this issue, and editing the desktop file to launch Atom using a simple /usr/bin/atom-beta does not fix it. Atom is the only application I have that causes this issue, including other Electron-based programs.
% atom-beta --version
Atom    : 1.12.0-beta3
Electron: 1.3.6
Chrome  : 52.0.2743.82
Node    : 6.3.0

% zsh --version
zsh 5.2 (x86_64-unknown-linux-gnu)

% cat /usr/share/applications/atom-beta.desktop
[Desktop Entry]
Name=Atom Beta
Comment=A hackable text editor for the 21st Century.
GenericName=Text Editor
Exec=env PYTHON=python2 XMODIFIERS= /usr/share/atom-beta/atom %F
Icon=atom-beta
Type=Application
StartupNotify=true
StartupWMClass=Atom
Categories=GNOME;GTK;Utility;TextEditor;Development;
MimeType=text/plain;

@joefitzgerald

Same issue here: "/bin/bash -ilc command env" keeps CPU in full load, and atom never starts.
Run on ubuntu 16.04
Atom version 1.12.0+1-1~webupd8~0

I'm experiencing the same symptoms with atom 1.12.0 and bash 4.3.42 under linux mint.

I'm experiencing the same.
I invoke $ atom project/folder/, but Atom only starts once I kill the /bin/zsh -ilc command env process. Otherwise Atom doesn't start and said process burns the CPU at 100% in all the cores.
Once the command is killed, Atom starts normally. For example:
$ atom project/folder/
# atom doesn't open
$ kill 12341
# burning process is killed and Atom opens its window

This is my installation, thorugh the webupd8 channel.
$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.1 LTS
Release:	16.04
Codename:	xenial

$ zsh --version
zsh --version
zsh 5.1.1 (x86_64-ubuntu-linux-gnu)

$ atom --version
Atom: 1.12.0
Electron: 1.3.6
Chrome: 52.0.2743.82
Node: 6.3.0

$ apm --version
apm  1.12.9
npm  3.10.5
node 4.4.5
python 2.7.12
git 2.7.4

For anyone reporting they are experiencing this issue, please run the relevant command:

/bin/bash -ilc "command env"
/bin/bash -ilc "command env"
<path-to-your-shell-here> -ilc "command env"

You can find out what shell is being used by determining what the SHELL env variable is set to.
It sounds like we should at a minimum establish a timeout for the invocation of this command so that it will be killed if it takes too long.

The "command env" commands (for both /bin/bash and /bin/zsh) both print a long list of environment variables without significant delay and exit normally. If there are any particular environment variables you wish to know the contents of, please let me know.
% which -a env
/usr/bin/env

% echo $SHELL
/bin/zsh

% getent passwd $LOGNAME | cut -d: -f7
/bin/zsh

The command run on Atom invoke is /bin/zsh -ilc command env and behaves differently from /bin/zsh -ilc "command env". The command Atom uses, outputs nothing, and the other one outputs all the environment variables. For example:
$ /bin/zsh -ilc "command env"
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg
SESSION=ubuntu
LANG=es_CL.UTF-8
DISPLAY=:0
SHLVL=1
LOGNAME=<user>
XDG_VTNR=7
MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
GNOME_KEYRING_PID=
UPSTART_INSTANCE=
COMPIZ_CONFIG_PROFILE=ubuntu
XAUTHORITY=/home/<user>/.Xauthority
QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
QT_QPA_PLATFORMTHEME=appmenu-qt5
GTK_IM_MODULE=ibus
LANGUAGE=es_CL:es
XDG_SESSION_ID=c2
GTK2_MODULES=overlay-scrollbar
DESKTOP_SESSION=ubuntu
IM_CONFIG_PHASE=1
XDG_SESSION_DESKTOP=ubuntu
GDMSESSION=ubuntu
GNOME_KEYRING_CONTROL=
DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
UPSTART_EVENTS=xsession started
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user>
VTE_VERSION=4205
COMPIZ_BIN_PATH=/usr/bin/
PWD=/home/<user>
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-P4IHCFTUWp
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
CLUTTER_IM_MODULE=xim
XDG_DATA_DIRS=/usr/share/ubuntu:/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
SESSIONTYPE=gnome-session
QT4_IM_MODULE=xim
JOB=unity-settings-daemon
UPSTART_JOB=unity7
QT_ACCESSIBILITY=1
GDM_LANG=es_ES
QT_IM_MODULE=ibus
XDG_SESSION_TYPE=x11
SHELL=/bin/zsh
UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1719
TERM=xterm-256color
GTK_MODULES=gail:atk-bridge:unity-gtk-module
WINDOWID=56623114
XDG_CURRENT_DESKTOP=Unity
PATH=/home/<user>/bin:/home/<user>/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/<user>/.config/composer/vendor/bin:/home/<user>/.config/composer/vendor/bin
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
XDG_SEAT=seat0
HOME=/home/<user>
XMODIFIERS=@im=ibus
USER=<user>
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
GPG_AGENT_INFO=/home/<user>/.gnupg/S.gpg-agent:0:1
XDG_RUNTIME_DIR=/run/user/1000
INSTANCE=
OLDPWD=/home/<user>
ZSH=/home/<user>/.oh-my-zsh
PAGER=less
LESS=-R
LSCOLORS=Gxfxcxdxbxegedabagacad
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
_=/usr/bin/env
LC_CTYPE=es_CL.UTF-8

$ /bin/zsh -ilc command env
# empty output

$ which -a env
/usr/bin/env

$ echo $SHELL
/bin/zsh

$ getent passwd $LOGNAME | cut -d: -f7
/bin/zsh

Maybe it's something related to Atom expecting data?

Same as above. Atom 1.12.1 from the webupd8 PPA.
ahencz@ahencz-desktop:~$ atom --version
Atom    : 1.12.1
Electron: 1.3.6
Chrome  : 52.0.2743.82
Node    : 6.3.0

ahencz@ahencz-desktop:~$ which -a env
/usr/bin/env

ahencz@ahencz-desktop:~$ echo $SHELL
/bin/bash

ahencz@ahencz-desktop:~$ /bin/bash -ilc command env
# returns immediately, no output

ahencz@ahencz-desktop:~$ /bin/bash -ilc "command env"
# prints my environment variables with no delay

@drewmnoel Sorry, I missed your question earlier. Yes, starting with -f does seem to dodge the problem here, at least in a pretty limited sample size.
@XzAeRo I think Atom is doing the right thing; note that in ['-ilc', 'command env'] it passes -ilc as one argument and command env as the next argument (combined), which is exactly the same thing as -ilc "command env" from within a shell.

I appear to be having the same issue (same versions and output as @ak0ska) but running with -f does not get around the issue for me. Running atom -f returns:
[30057:1111/090754:ERROR:browser_main_loop.cc(231)] Running without the SUID sandbox! See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the sandbox on.

I am having this #13192 issue which could be the same (not sure). I am running Ubuntu 16.10
atom -f returns:
[10254:1111/091653:ERROR:browser_main_loop.cc(231)] Running without the SUID sandbox! See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the sandbox on.
If I start atom normally atom . It never runs. I opened my system monitor and found atom actually is running I'm just not seeing anything. If I close the terminal then atom starts fine. I can then open a new terminal and everything is working as it should.
Running /bin/bash -ilc "command env" returns:
CLUTTER_IM_MODULE=xim XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/greg GPG_AGENT_INFO=/home/greg/.gnupg/S.gpg-agent:0:1 ANDROID_HOME=/home/greg/android-sdk-linux SHELL=/bin/bash VTE_VERSION=4402 TERM=xterm-256color SSH_AGENT_LAUNCHER=gnome-keyring DERBY_HOME=/usr/lib/jvm/java-8-oracle/db GRADLE_HOME=/home/greg/.sdkman/candidates/gradle/current QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 WINDOWID=54525958 UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1650 SDKMAN_PLATFORM=Linux GTK_MODULES=gail:atk-bridge SDKMAN_CURRENT_API=https://api.sdkman.io/2 USER=greg QT_ACCESSIBILITY=1 LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: SDKMAN_LEGACY_API=https://api.sdkman.io/1 XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0 XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0 SSH_AUTH_SOCK=/run/user/1000/keyring/ssh DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/usr/share/upstart/systemd-session:/usr/share/upstart/xdg:/etc/xdg PATH=/home/greg/bin:/home/greg/.local/bin:/home/greg/code/pebble-dev/arm-cs-tools/bin:/home/greg/code/pebble-dev/arm-cs-tools/bin:/home/greg/.sdkman/candidates/groovy/current/bin:/home/greg/.sdkman/candidates/gradle/current/bin:/home/greg/bin:/home/greg/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/local/go/bin:/home/greg/code/go/bin:/usr/lib/jvm/java-8-oracle:/home/greg/android-sdk-linux/tools:/home/greg/android-sdk-linux/platform-tools:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/local/go/bin:/home/greg/code/go/bin:/usr/lib/jvm/java-8-oracle:/home/greg/android-sdk-linux/tools:/home/greg/android-sdk-linux/platform-tools DESKTOP_SESSION=ubuntu QT_QPA_PLATFORMTHEME=appmenu-qt5 QT_IM_MODULE=ibus PWD=/home/greg/code/go/src/github.com/cagnosolutions/cns XDG_SESSION_TYPE=x11 JAVA_HOME=/usr/lib/jvm/java-8-oracle XMODIFIERS=@im=ibus LANG=en_US.UTF-8 MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path SDKMAN_VERSION=5.1.4+78 GDM_LANG=en_US IM_CONFIG_PHASE=1 COMPIZ_CONFIG_PROFILE=ubuntu GDMSESSION=ubuntu GTK2_MODULES=overlay-scrollbar HOME=/home/greg SHLVL=3 LANGUAGE=en_US GOROOT=/usr/local/go GNOME_DESKTOP_SESSION_ID=this-is-deprecated LOGNAME=greg XDG_SESSION_DESKTOP=ubuntu GROOVY_HOME=/home/greg/.sdkman/candidates/groovy/current SDKMAN_DIR=/home/greg/.sdkman QT4_IM_MODULE=xim XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop J2SDKDIR=/usr/lib/jvm/java-8-oracle DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus GOPATH=/home/greg/code/go MANAGERPID=1548 JOURNAL_STREAM=8:31774 SDKMAN_CANDIDATES_DIR=/home/greg/.sdkman/candidates DISPLAY=:0 XDG_RUNTIME_DIR=/run/user/1000 XDG_CURRENT_DESKTOP=Unity J2REDIR=/usr/lib/jvm/java-8-oracle/jre GTK_IM_MODULE=ibus COLORTERM=truecolor XAUTHORITY=/home/greg/.Xauthority _=/usr/bin/env

Interestingly, I tried the latest version but the shell process starts and exits well before the new timeout. Indeed, if I increase the timeout to 5 minutes it still starts normally. Rolling back to the version that was around when this issue was reported and the problem reappears (confirming not a node/zsh/whatever problem). I'll try completely reverting the commit to see if the problem somehow got solved elsewhere in the atom codebase. Very odd.

willy@minerva:~$ atom -v
Atom    : 1.12.1
Electron: 1.3.6
Chrome  : 52.0.2743.82
Node    : 6.3.0
willy@minerva:~$ atom .
willy@minerva:~$ ps axcf | grep atom
 6026 pts/0    Rl     0:01  \_ atom
 6028 pts/0    R      0:00      \_ atom
 6060 pts/0    Sl     0:00      |   \_ atom
 6050 pts/0    Rl     0:00      \_ atom

shell vars:

willy@minerva:~$ /bin/bash -ilc "command env"
XDG_VTNR=2
LC_PAPER=it_IT.UTF-8
XDG_SESSION_ID=1
SSH_AGENT_PID=1495
LC_ADDRESS=it_IT.UTF-8
LC_MONETARY=it_IT.UTF-8
CLUTTER_IM_MODULE=xim
GPG_AGENT_INFO=/home/willy/.gnupg/S.gpg-agent:0:1
VTE_VERSION=4205
XDG_MENU_PREFIX=gnome-
SHELL=/bin/bash
TERM=xterm-256color
QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
GJS_DEBUG_OUTPUT=stderr
LC_NUMERIC=it_IT.UTF-8
WINDOWID=52428806
GJS_DEBUG_TOPICS=JS ERROR;JS LOG
GTK_MODULES=gail:atk-bridge
USER=willy
LC_TELEPHONE=it_IT.UTF-8
QT_ACCESSIBILITY=1
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
DEFAULTS_PATH=/usr/share/gconf/gnome.default.path
USERNAME=willy
SESSION_MANAGER=local/minerva:@/tmp/.ICE-unix/1424,unix/minerva:/tmp/.ICE-unix/1424
XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg
DESKTOP_SESSION=gnome
PATH=/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
QT_IM_MODULE=ibus
LC_IDENTIFICATION=it_IT.UTF-8
PWD=/home/willy
XDG_SESSION_TYPE=x11
XMODIFIERS=@im=ibus
LANG=en_US.UTF-8
MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path
LC_MEASUREMENT=it_IT.UTF-8
GDMSESSION=gnome
SHLVL=2
HOME=/home/willy
XDG_SEAT=seat0
GNOME_DESKTOP_SESSION_ID=this-is-deprecated
LOGNAME=willy
XDG_SESSION_DESKTOP=gnome
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-RbHyxO2Ysn,guid=95ab28b54891454d8c95fc7658256daa
QT4_IM_MODULE=xim
XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
LESSOPEN=| /usr/bin/lesspipe %s
WINDOWPATH=2
DISPLAY=:1
XDG_RUNTIME_DIR=/run/user/1000
GTK_IM_MODULE=ibus
XDG_CURRENT_DESKTOP=GNOME
LC_TIME=it_IT.UTF-8
LESSCLOSE=/usr/bin/lesspipe %s %s
LC_NAME=it_IT.UTF-8
XAUTHORITY=/run/user/1000/gdm/Xauthority
_=/usr/bin/env

We are very interested in pairing / screen sharing with someone who is experiencing this issue with a hang on startup. There is a short term workaround to suppress the behavior introduced in https://github.com/atom/atom/pull/12562: set the ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT environment variable to true.

Is there anyone experiencing this issue who is not running linux?

It would also be helpful if someone could paste here the contents of .bash_profile (and .bashrc) or the equivalent for zsh. Basically, sharing any code that runs when shelling out to get the environment could help us track down the issue. Thanks! 🙇

This should be fixed in 1.12.2 by making shelling out for the environment asynchronous and giving it a 5 second timeout.

Using
$(atom .) &

makes it startup without having to close the terminal.
Note: atom won't work on any of my machines (running 16.04 & 16.10).

@IronPeak So the changes in 1.12.2 didn't help at all?

Can you try ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT atom .?

@nathansobo Sorry Nathan I forgot to mention I'm using ppa:webupd8team/atom,
just thought I would mention the work around I'm using while I wait for them to update.
Again sorry for the inconvenience.

Unfortunately I can not confirm that this bug is fixed in 1.12.2.
I've compiled it from source using NodeJS version 6.9.1 (7.x.x fails early) and got the same 100% CPU burn.
OS: Arch Linux (GNOME 3.22)
Kernel: 4.8.7-1
Atom: 1.12.1
Electron: 1.3.6
Chrome: 52.0.2743.82
Node: 6.3.0
Got the same results in--safe mode. Furthermore there is no difference if it gets started via Launcher Icon (Plank or GNOME Dash Dock) or via terminal.
I was able to reproduce this with the following method:

Start Atom via the launcher icon or from the terminal with atom . or atom --new-window
Open the command palette and use *Window: Releaod" to reload the window
Sometimes the window just stays completly white and unuseable, sometimes it reloads successfully
Close the window and see your CPU go ham
Try to open Atom via the launcher icon does nothing anymore

I have to kill my zsh process (/bin/zsh -ilc command env) to cool down my CPU again.
Also there is some curious behaviour if you follow these steps:

Do step 1 - 5 described above
After step 5 fire the atom --new-window command from your terminal (nothing will show up)
Kill the CPU-eating process
The moment the process gets killed Atom pops up (caused by the previously firedatom --new-window command)

@arcticicestudio Your version is 1.12.1. Are you sure you compiled the right revision?

@nathansobo I'm sorry I was too tired and added the wrong patch number to the PKGBUILD file (1 inseatd of 2 :sleepy: ).
I compiled version 1.12.2 for real now and can start Atom via the launcher icon without problems, but the 100% CPU bug still aperars if you reload the running Atom window. The process stays even if you close the Atom window.

Darn. I was really hoping the 5s timeout we added would kill the process if it went rogue. I'm going to rename this issue to describe the current state of affairs.

If the shell process has not yet hit the 5 second timeout and you reload the window, it spawns a second shell process. The second one is killed after the 5 second timeout as expected. The first one is not killed and persists. By spamming the reload key shortcut, it is therefor possible to create more and more shell processes (just reload every 4 seconds). @arcticicestudio, is this the behavior you have as well?

I confirm the problem is only partially fixed in 1.13.0.beta2.

Since beta2, Atom's main window appears, I see the child zsh -ilc command env process topping one of my cores and being killed after 5s.
Everything @drewmnoel said about Window Reload behavior.
Running ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true atom-beta , no child zsh process is spawned, and nothing bad happens if I exit Atom before 5s.

Arch Linux, Linux 4.8.7, zsh 5.2, Atom 1.13.0.beta2 via the AUR package, Electron 1.3.6, Node 6.9.1

It seems like almost everyone still affected by this issue is running arch Linux. The changes we made allow Atom to start, but do not address the root cause: running "command env" should not hang indefinitely, and we need to observe this on a system that is actually affected.
If you were originally affected or continue to be affected, please go to http://atom-slack.herokuapp.com, sign into the atomio Slack team, and direct message @nathansobo or I with your details and your preferred mechanism for screen sharing.
Regarding the orphan process when a window is reloaded (this should be a fairly rare occupancy, for what it's worth), this can be fixed by calling ChildProcess.kill after subscribing to process.on('kill', ...).

@drewchandler Yes, thats exactly the same behavior. The ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true atom command seems to work for version 1.12.2 too.

@arcticicestudio are you an arch linux user also?

@joefitzgerald Yes, you can scroll up this site to see my system setup :smile:
I would also like to help you with a screen share, but unfortunately my current location seem to be connected via bamboo internet lines which even makes google to load 10s+  :disappointed:

There's a few Ubuntu users in here actually.
I'm at a complete loss. Converting the execFile call into the respective exec fixes the problem for me. That is, changing update-process-env.js:
-    childProcess.execFile(env.SHELL, ['-ilc', 'command env'], {encoding: 'utf8', timeout: 5000}, (error, stdout) => {
+    childProcess.exec('command env', {encoding: 'utf8', timeout: 5000}, (error, stdout) => {

If I change env.SHELL to be any typical command, it returns fine as an execFile call. If I change env.SHELL to be any shell (tried bash, zsh, sh), it hangs.

Sanity question: why are we spawning the shell in interactive mode (i.e. -i)? Wouldn't that cause the shell to hang, waiting for input from stdin? This is exactly the behavior @fooishbar described in the original post.

We're trying to ensure the shell's environment is the result of running the same init scripts as the shell would run when a user launches an interactive shell.

Isn't that why we're passing -l for a login shell? Passing -i informs it to read from stdin. In the strace, we see the shell repeatedly attempting to read from stdin. Removing this option dumps the same env that I expect.

Good point, next to this I can't see that there even is a -l flag for zsh.
The -l flag is bash-only to

Make bash act as if it had been invoked as a login shell

@arcticicestudio, actually zsh has support for -l as well since at least 2002.

Can someone hack the different flag into Atom and see if it addresses the issue?

The changes have been applied in https://github.com/atom/atom/pull/13213. Try testing from that branch...

That should do it. Works the same as my commit did, and also should take care of any stragglers in the event something goes wrong.

Hopefully this article describes why we use the interactive flag: https://coderwall.com/p/u003pa/bash-startup-scripts-on-linux-and-mac-os-x
On OS X and on Linux, this causes .bashrc (and similar) scripts to be run by the shell.
I'm wondering if your .zshrc is including your .zshprofile and doing vice versa? This would cause an infinite loop of inclusion, which would replicate this behavior?

Interactive shells are shells that assume interaction. Login shells are shells that source the relevant files. From the link you posted, we should just require that the shell is a login shell (-l):

Here's the standard behavior: login shells always look for the bash configuration files with "profile" in the name, in this order: /etc/profile, ~/.bash_profile, then ~/.bash_login and lastly ~/.profile. When login shells exit, they read ~/.bash_logout.

I don't have any sourcing loops, or running the command manually would cause the same issue.

This behavior was introduced for two reasons:

On OS X, launching atom from Dock / Finder / Spotlight results in an anemic environment for which no shell initialization scripts have been run
On Linux, launching atom from Unity Launcher (or similar) results in the environment that one would expect from a login shell, but not the environment one would expect from an interactive login shell

Let's put OS X aside now, because it is orthogonal (but we must retain the -i flag for it).
On Linux, many users don't fully understand the way lifecycle for their shell initialization scripts. They launch atom from Unity Launcher on Ubuntu and wonder "why is my environment different to the environment in my terminal??". And then they blame Atom. Those who understand the full lifecycle immediately jump to the rc / profile scripts to fix the dichotomy.
Our goal is to ensure both rc and profile scripts are run for users on Linux and OS X, regardless of where they launch atom. We have modified https://github.com/atom/atom/blob/master/atom.sh#L18 to disable shelling out for the environment because implicitly, launching atom from atom.sh means you're in an interactive [login] shell.
I have observed on arch linux via the non-official distribution of Atom, this script is not correct and the env variable is not being set. This is the source of part of the issue. The other part of the issue is that in some circumstances using the -i flag does work on linux. It most certainly works on OS X and has been for a long time. It's not clear to me why it is not working on linux some of the time. I can only surmise that it is occurring when Atom has already been launched from a terminal.

As an immediate remedy which is not fixing the problem, I have resorted to starting atom via a small shell script killing all such bash processes after three seconds, which is a reliable workaround and will likely do for a while.
#! /bin/bash

ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true /usr/bin/atom "$@" &

## wait a few secs, then kill all env collecting processes
sleep 3
PIDS=`ps aux | grep 'bash -ilc command env' | awk '{print $2}'`

for i in $PIDS
do
	kill -9 $i
	echo "killed: $i"
done

echo "killed all processes"

We will release a hotfix on stable and beta later today which should address this. Thanks everyone for the feedback!

Hey everyone; I think this is fixed in v1.12.3 and v1.13.0-beta3, thanks to @joefitzgerald.

I would caveat that there is an outstanding issue with the arch Linux unofficial AUR package; this uses an atom.sh that is missing the export of a key environment variable.

I would caveat that there is an outstanding issue with the arch Linux unofficial AUR package; this uses an atom.sh that is missing the export of a key environment variable.

Thanks for the work, everyone. I just notified the AUR package maintainer about beta3 and asked to add this export and why we don't use upstream's script rather than a forked version.

Good job everyone. Maybe a official PKGBUILD would prevent feature problems like this?
It could be a template which gets populated with the correct values by the build script. This could also be added to the list of attachments for each release so the AUR maintainer can simply grab it.
I'm used to create my own PKGBUILD files anyway, but as a Arch Linux :heart:  I'd like to enhance the update process for Atom.
I can create a new issue if you think this idea should be added to the backlog :smile:

It would have to come via a pull request that also explains what a PKGBUILD is and ensures it doesn't rot by making it part of the build in some way.

Maybe a official PKGBUILD would prevent future problems like this?

Not sure this is a good idea:

That would introduce friction to the packager's job.
That would deviate from regular in-archlinux.org Git versioning of PKGBUILDs.

The initial problem was that atom-editor-beta did fork/replicate the atom.sh script. And after mention to the current maintainer he removed it minutes ago, reverting to the upstream version :) . I haven't tested the new PKGBUILD yet, but it looks all good to me.

Ok I know this issue has been marked closed but I still seem to have this problem AFTER upgrading to 1.12.3. If I launch atom from the terminal atom . the atom window opens but no files are loaded. I then run htop in a separate terminal and 2 of my cores are pegged at 100%. If I close the terminal then the cores go down to normal atom loads the files. Thoughts? Is it just me?

I can confirm that problem is still here.
Running Ubuntu 16.04.1 LTS
Atom    : 1.12.3
Electron: 1.3.6
Chrome  : 52.0.2743.82
Node    : 6.3.0
from ppa webupd8team/atom

@gregpechiro are you also using an unofficial distribution of atom (e.g. ppa webupd8team/atom)?

Yes I am

as described by @gregpechiro
opened using atom .
and resolve when i close terminal used to open atom

+1 to @gregpechiro. Also, using webupd8team/atom. Installed version is 1.12.3-1~webupd8~0.

The webupd8 distribution of Atom is broken. They are shipping an outdated version of atom.sh...

Please uninstall Atom if you're using the webupd8 PPA and reinstall it from https://atom.io.
For more information see https://github.com/atom/design-decisions/blob/master/unofficial-atom-distributions.md.

Thanks for the help. I uninstalled atom and removed the repo. Then downloaded the .deb from atom,io and installed. It is now working fine. Sorry I didn't realize webupd8team/atom was not the mainstream version. I guess I didn't look into it well enough and assumed it was just a repository for the atom master branch maintained by a third party.

I just updated to the latest webupd8 version (atom 1.12.3-1~webupd8~0) , and it's working properly by the way.

i have contacted webupd8 to report that issue.
They have just  updated the package with latest atom.sh

Hi everyone, I still have the same problem.
Running Ubuntu 16.04.1 LTS
Atom : 1.12.3  (just uninstall and install it again)
Chrome : 54.0.2840.100
Node : 5.11.1
My CPU load due to this command

xxxx  10445 99.6  0.0  17556  1236 tty2     R    14:57   0:27 /usr/bin/zsh -ilc command env

This command works well

/bin/zsh  -ilc "command env"

I need to start my atom with this command :

OM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true atom

@dw-thomast are you using the webupd8team PPA? Also, what version of zsh are you using?

Before I read this thread, I was using the PPA version. Now I'm using the official version. I purge my previous version before install the new one. But I keep mon config files
Terminator: 0.98-1
Zsh: 5.1.1-1ubuntu2
Oh-my-version: up to date (3477ff25274fa75bd9e6110f391f6ad98ca2af72)

Could you update zsh to v5.2 or greater?

https://github.com/zsh-users/zsh-autosuggestions/issues/24
Also make sure you are not using zsh-autosuggestions.

Thks for your advices.
I will try to update my zsh asap

apt-cache policy zsh
zsh:
Installé : 5.1.1-1ubuntu2
Candidat : 5.1.1-1ubuntu2
Table de version :
*** 5.1.1-1ubuntu2 500
500 http://fr.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
100 /var/lib/dpkg/status

Note that I'm still having this issue:
Arch Linux
zsh 5.2
atom 1.12.4
It occurs with either the package from arch's official community repo (https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/atom) or from the atom-editor-bin package (https://aur.archlinux.org/packages/atom-editor-bin/ / https://aur.archlinux.org/cgit/aur.git/tree/?h=atom-editor-bin).
Note that it only happens when I launch atom from the menu in gnome. If I launch it from a terminal line, it works perfectly fine (with the aur -bin package, i haven't tested with the community package).
Look at the .desktop file for how atom is launched from the menu. Should the menu launcher also launch from the atom.sh script?

Minimal reproduction case: https://gist.github.com/forivall/99bd9b913ab774ced025be2483a59879
Usage: xdg-launch.py ./spawn-ilc.desktop. You'll need to modify the path in the .desktop file
Now to figure out if this is a gnome or node issue. Changing it from zsh to bash causes the same issue.

Just to confirm, @forivall, you're not using an official distribution of atom from https://atom.io?
https://github.com/atom/design-decisions/blob/master/unofficial-atom-distributions.md

@joefitzgerald the aur package atom-editor-bin downloads the official distribution, makes minimal tweaks for arch, and then installs it globally, just as if it were installed on ubuntu or fedora.
If someone else has the time to try out my reproduction case on ubuntu, that would be great.
the following gist makes it work, by using a pty for stdin:
https://gist.github.com/forivall/825f4a94eaf30b96dec522d40bb47887

@forivall I appreciate your effort in trying to identify root cause. It does seem like something very specific to arch linux at this point, and it seems like you are on the right track to look at the method of invocation for non-terminal launched atom on arch.
Very interested to hear the outcome of your investigation!

I started up an ubuntu 16.10 vm: with the minimal reproduction, the same issue occurs, and the same fix works. :tada:

Hello, I'm having the same issue with the zsh process taking 100% of the CPU. I tested it in Arch Linux, using the official community repo package, downloading the tar.gz from atom release page for the stable and the beta versions.
All of these versions share the same problem, and weirdly enough it only happens when launching atom from a .desktop file (via gnome shell in my case) and doesn't when I launch atom from the command line.
After reading @arcticicestudio comment in #13279 I came up with a sort of workaround, I simply made a .desktop file with the following line: Exec=sh -c "ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true atom" and it seems to work fine.
I hope this can be of help to find a long term solution to this problem, which is getting really annoying and prevents many people from using such a great editor as atom.

@joefitzgerald should we reopen this issue? Seems like we're still getting reports but it's really hard to tell what's real with all these different custom packaging solutions.

@nathansobo We should at least attempt to reproduce the reported problems using only official distributions of Atom.
This means we'll need to check Arch Linux at least, possibly with both GNOME and KDE. On the Ubuntu side of things, it might be enough to check Ubuntu GNOME 16.04. The only reported problems I've seen on Ubuntu 16.04 is in relation to webupd8.

I debugged this a bit and can reproduce it with the following test script (extracted from src/update-process-env.js):
const childProcess = require('child_process')
const cmd = 'command env'
const shell = process.env.SHELL  // zsh or bash doesn't matter, behavior is the same
// const shell = '/bin/bash'

const child = childProcess.spawn(shell, ['-ilc', cmd], {
   encoding: 'utf8',
  //  detached: true,
  stdio: ['ignore', 'pipe', process.stderr]
})
child.on('error', (e) => {
  console.log('error', e)
})
child.stdout.on('data', (data) => {
  console.log(data.toString('utf8'))
})
child.on('close', (code, signal) => {
  console.log('close', code, signal)
})

Launching this directly from a shell works, even if I set an empty environment like so:
env -i SHELL=/bin/bash node spawn.js

Launching the same from a desktop file in Gnome 3.22 leads to the shell task endlessly consuming 100% of CPU. I used the following desktop file:
[Desktop Entry]
Name=Spawn Node Test
Exec=env SHELL=/bin/bash node /home/phw/devel/spawn.js
Icon=atom
Type=Application

Two things help to solve this issue:
a) Enable detached: true when spawning the child process
b) Remove the -i flag from the shell call
I think b) would actually be correct anyway, since this is in no way an interactive shell.

@maxbrunsfeld guess we want to add detached back in.
@phw thank you for the detailed analysis. We do actually want the -i flag as the intent of this behavior is to ensure the shell initializatoon scripts that get run for an interactive shell are run. This ensures that atom has the same environment that it would have when invoked from a terminal.

Can this issue be reopened then until a fix is merged? I think this was accidentally closed by https://github.com/atom/atom/pull/13283

No, it wasn't closed by that. We should open a new issue with your findings @phw. I will commit to getting this in today.


feat: added pagination in Notification centre

Fixes #3329
Describe the changes you have made in this PR -
If there are more than 10 notifications, then we have now pagination enabled.
Screenshots of the changes (If any) -

Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

@vedant-jain03 can you please review this PR again?


500 internal server error

when i go to https://draculatheme.com/darkReader i get a 500 internal server error

Same

same

looks like they dropped Dark Reader project, since it became 404 and it's not searchable.
Setting up Dracula manually is easy enough though,

Open developer tools of Dark Reader
Click on Preview new design
Open Dark Reader again, click on "See all options", select Colors drop down and you can choose Dracula under Color Scheme
Greets!

Sorry about that guys.
I've made this project some years ago, and I planed to move this repo to the official Dracula theme organization, but, unfortunately, they already had similar project. After that I forgot to update the project.
Also, the link never worked, it was just a pattern that they require for new theme implementations.
Thank you guys for helping me. Now you can see the updated version made by @jakub1812 in this repo :)


[New game]: Guess that Pokemon

🎮 Game Request
Game logic and basic description
A black outline of the pokemon will be displayed on the screen and the player has to guess which pokemon it is.
There will be options for guess, quit and hint.
Point down the features
Game points

If the player guesses the pokemon without using a hint they are rewarded 100 points.
If the player guesses the pokemon after taking a hint they are rewarded 50 points.
If the player incorrectly guesses the pokemon they get 0 points.
If the player quits they get 0 points.

Select program in which you are contributing
GSSoC24
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @aRUsh-codes !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

Hey @aRUsh-codes ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


Support for Symfony 3

Composer.json update in order to be able to use your Bundle in a Symfony 3 application.

@Claudiadpn ci is failing, have you tested it works on a Symfony 3 app?

@shouze Yes we use it in our application (not in prod yet) but API calls are ok.

@Claudiadpn ok great, so we have to make the ci green prior to merge anyway, I will probably take some time at the end of the week.

Superseded by https://github.com/rezzza/PaymentBe2billBundle/pull/34 that will also fix some edge cases & deprecate some old php versions, so closing this one, thx for your contribution 😉


Add configure option to build non-static executable only statically linked with librhash.a

Now --enable-static option results in a fully static executable, i.e. with libc.a and libcrypto.a parts inside and of enormous size (>1 Mb). Linking without -static option but still with librhash/librhash.a would include only librhash objects while keeping libc and libcrypto dynamic.
So this issue is about adding a new option to configure script to do exactly that.

The option --enable-static=librhash has been supported by commits: 851d459dbf530b7e1f64d4140d3c314ad054c70a, 3f5dfd7af8e181bc4792f8db0afde799f4c8a2e4.

Implemented in RHash v1.4.4.


Cannot Run Model with multiple inputs nodes

Hi,
I am running a model with multiple input nodes. So I tried:
Ort::Value batch_input_tensors[3];
batch_input_tensors[0] = input_ids_tensor;
batch_input_tensors[1] = attention_mask_tensor;
batch_input_tensors[2] = token_type_ids_tensor;

auto output_tensors = session.Run(Ort::RunOptions{nullptr}, input_node_names.data(), batch_input_tensors, 3, output_node_names.data(), 2);

However, I got the following error at compilation time:
src/bert_runner.cpp: In function 'int main(int, char**)':
src/bert_runner.cpp:187:35: error: no matching function for call to 'Ort::Value::Value()'
  187 |   Ort::Value batch_input_tensors[3];
      |                                   ^
In file included from src/bert_runner.cpp:9:
../..//include/onnxruntime/core/session/onnxruntime_cxx_api.h:276:3: note: candidate: 'Ort::Value::Value(Ort::Value&&)'
  276 |   Value(Value&&) = default;
      |   ^~~~~
../..//include/onnxruntime/core/session/onnxruntime_cxx_api.h:276:3: note:   candidate expects 1 argument, 0 provided
../..//include/onnxruntime/core/session/onnxruntime_cxx_api.h:275:12: note: candidate: 'Ort::Value::Value(OrtValue*)'
  275 |   explicit Value(OrtValue* p) : Base<OrtValue>{p} {}
      |            ^~~~~
../..//include/onnxruntime/core/session/onnxruntime_cxx_api.h:275:12: note:   candidate expects 1 argument, 0 provided
../..//include/onnxruntime/core/session/onnxruntime_cxx_api.h:274:12: note: candidate: 'Ort::Value::Value(std::nullptr_t)'
  274 |   explicit Value(std::nullptr_t) {}
      |            ^~~~~
../..//include/onnxruntime/core/session/onnxruntime_cxx_api.h:274:12: note:   candidate expects 1 argument, 0 provided
src/bert_runner.cpp:188:28: error: use of deleted function 'Ort::Value& Ort::Value::operator=(const Ort::Value&)'
  188 |   batch_input_tensors[0] = input_ids_tensor;
      |                            ^~~~~~~~~~~~~~~~
In file included from src/bert_runner.cpp:9:
../..//include/onnxruntime/core/session/onnxruntime_cxx_api.h:256:8: note: 'Ort::Value& Ort::Value::operator=(const Ort::Value&)' is implicitly declared as deleted because 'Ort::Value' declares a move constructor or move assignment operator
  256 | struct Value : Base<OrtValue> {
      |        ^~~~~
src/bert_runner.cpp:189:28: error: use of deleted function 'Ort::Value& Ort::Value::operator=(const Ort::Value&)'
  189 |   batch_input_tensors[1] = attention_mask_tensor;
      |                            ^~~~~~~~~~~~~~~~~~~~~
src/bert_runner.cpp:190:28: error: use of deleted function 'Ort::Value& Ort::Value::operator=(const Ort::Value&)'
  190 |   batch_input_tensors[2] = token_type_ids_tensor;
      |                            ^~~~~~~~~~~~~~~~~~~~~

So, what is the correct way to run a model with multiple input nodes?
Thank you!

Try something like

  std::vector<Ort::Value> ort_inputs;
  ort_inputs.push_back(std::move(input_ids_tensor));
  ort_inputs.push_back(std::move(attention_mask_tensor));
  ort_inputs.push_back(std::move(token_type_ids_tensor));

auto output_tensors = session.Run(Ort::RunOptions{nullptr}, input_node_names.data(), ort_inputs.data(), ort_inputs.size(), output_node_names.data(), 2);

I think the error you are running into is that Ort::Value has no default constructor, so Ort::Value batch_input_tensors[3]; is invalid. You could alternatively try using an initializer list like Ort::Value batch_input_tensors[3] = {input_ids_tensor, attention_mask_tensor, token_type_ids_tensor}

Try something like

  std::vector<Ort::Value> ort_inputs;
  ort_inputs.push_back(std::move(input_ids_tensor));
  ort_inputs.push_back(std::move(attention_mask_tensor));
  ort_inputs.push_back(std::move(token_type_ids_tensor));

auto output_tensors = session.Run(Ort::RunOptions{nullptr}, input_node_names.data(), ort_inputs.data(), ort_inputs.size(), output_node_names.data(), 2);

I think the error you are running into is that Ort::Value has no default constructor, so Ort::Value batch_input_tensors[3]; is invalid. You could alternatively try using an initializer list like Ort::Value batch_input_tensors[3] = {input_ids_tensor, attention_mask_tensor, token_type_ids_tensor}

Thanks for your solution.
However, I encountered an seg fault during runtime.
z<PHONE_NUMBER>000000 ra<PHONE_NUMBER>999278 sp 000000007f7e65d0 gp<PHONE_NUMBER>0bde78
tp<PHONE_NUMBER>0cbfa0 t0<PHONE_NUMBER>000001 t1<PHONE_NUMBER>6d6000 t2<PHONE_NUMBER>0003ff
s0 000000007f7e6430 s1<PHONE_NUMBER>033120 a0<PHONE_NUMBER>816000 a1 000000007f807000
a2<PHONE_NUMBER>000003 a3<PHONE_NUMBER>000022 a4 000000007f807001 a5 000000007fbf6748
a6<PHONE_NUMBER>000000 a7<PHONE_NUMBER>0000de s2<PHONE_NUMBER>66b8b0 s3<PHONE_NUMBER>06a750
s4<PHONE_NUMBER>000000 s5 fffffffffffff000 s6<PHONE_NUMBER>034120 s7<PHONE_NUMBER>000fff
s8<PHONE_NUMBER>816000 s9 000000007f7e6450 sA<PHONE_NUMBER>033120 sB<PHONE_NUMBER>01d000
t3<PHONE_NUMBER>00000f t4 000000007f7e641f t5<PHONE_NUMBER>000001 t6<PHONE_NUMBER>000000
pc<PHONE_NUMBER>999194 va<PHONE_NUMBER>816008 insn       ffffffff sr<PHONE_NUMBER>05e020
User store segfault @ 0x0000000080816008

Do you have any idea what might be the cause?

Hm can you run with  -d 0? That will print out verbose log messages.
Also are you running a floating point model or a quantized model?

Hm can you run with  -d 0? That will print out verbose log messages.
Also are you running a floating point model or a quantized model?

-d 0 gives me the same result.
My model uses int64_t as a datatype. I use the following code to initialize tensors:
#define BATCH 1
#define SEQUENCE 64

  size_t input_ids_size = BATCH * SEQUENCE;
  size_t attention_mask_size = BATCH * SEQUENCE;
  size_t token_type_ids_size = BATCH * SEQUENCE;

  int64_t *input_ids_val = new int64_t[input_ids_size];
  int64_t *attention_mask_val = new int64_t[attention_mask_size];
  int64_t *token_type_ids_val = new int64_t[token_type_ids_size];

  input_node_dims[0][0] = BATCH;
  input_node_dims[0][1] = SEQUENCE;
  input_node_dims[1][0] = BATCH;
  input_node_dims[1][1] = SEQUENCE;
  input_node_dims[2][0] = BATCH;
  input_node_dims[2][1] = SEQUENCE;

  auto memory_info = Ort::MemoryInfo::CreateCpu(OrtArenaAllocator, OrtMemTypeDefault);
  Ort::Value input_ids_tensor = Ort::Value::CreateTensor<int64_t>(memory_info, input_ids_val, input_ids_size, input_node_dims[0].data(), input_node_dims[0].size());

  Ort::Value attention_mask_tensor = Ort::Value::CreateTensor<int64_t>(memory_info, attention_mask_val, attention_mask_size, input_node_dims[1].data(), input_node_dims[1].size());

  Ort::Value token_type_ids_tensor = Ort::Value::CreateTensor<int64_t>(memory_info, token_type_ids_val, token_type_ids_size, input_node_dims[2].data(), input_node_dims[2].size());

The BATCH and SEQUENCE is the sizes of my inputs, do I need to multiply the size by 2 or 4 because I am using int64_t?
Thank you!

The BATCH and SEQUENCE is the sizes of my inputs, do I need to multiply the size by 2 or 4 because I am using int64_t?

The dimensions seem fine to me. If -d 0 gives the same result then it seems like the segfault is happening even before inference starts.
It's annoying to debug these kinds of things since gdb is not available (well technically you can include it in the buildroot image and run under qemu). So we'll have to resort to using printf debugging (be sure to write to stderr to avoid buffering issues). Can you add some fprintf(stderr, "message") log statements to try to narrow down whether the segfault is happening during  Ort::Value::CreateTensor or during session.Run?
Another thing you can do is compile onnxruntime in debug mode (--release=Debug) and then use objdump and look up the pc where the segfault occurs to find the corresponding function.

The BATCH and SEQUENCE is the sizes of my inputs, do I need to multiply the size by 2 or 4 because I am using int64_t?

The dimensions seem fine to me. If -d 0 gives the same result then it seems like the segfault is happening even before inference starts.
It's annoying to debug these kinds of things since gdb is not available (well technically you can include it in the buildroot image and run under qemu, but that's annoying to get working). So we'll have to resort to using printf debugging (be sure to write to stderr to avoid buffering issues). Can you add some fprintf(stderr, "message") log statements to try to narrow down whether the segfault is happening during  Ort::Value::CreateTensor or during session.Run?
Another thing you can do is compile onnxruntime in debug mode (--release=Debug) and then use objdump and look up the pc where the segfault occurs to find the corresponding function.

Okay! Thanks for your reply, I will try to see if I can find something.

The BATCH and SEQUENCE is the sizes of my inputs, do I need to multiply the size by 2 or 4 because I am using int64_t?

The dimensions seem fine to me. If -d 0 gives the same result then it seems like the segfault is happening even before inference starts.
It's annoying to debug these kinds of things since gdb is not available (well technically you can include it in the buildroot image and run under qemu, but that's annoying to get working). So we'll have to resort to using printf debugging (be sure to write to stderr to avoid buffering issues). Can you add some fprintf(stderr, "message") log statements to try to narrow down whether the segfault is happening during  Ort::Value::CreateTensor or during session.Run?
Another thing you can do is compile onnxruntime in debug mode (--release=Debug) and then use objdump and look up the pc where the segfault occurs to find the corresponding function.

After some debugging, although I haven't got it resolved, I want to share the following observation with you to see if you have some ideas about it.
Basically, I did the following tests:

Run my own program using -d 0, which gives me an seg fault and I can trace it to be located at Ort::Session session(env, model_path, session_options);
Run my own program using default -d 3, which gives me an seg fault at auto output_tensors = session.Run (They are at different location!).
Run the provided ort_test with -d 0, which also gives me a seg fault at Ort::Session session(env, model_path, session_options); like 1.
Run my own program with -d 5. This time, it does not seg fault. But the following error message is printed:

terminate called after throwing an instance of 'Ort::Exception'
  what():  Non-zero status code returned while running Gather node. Name:'Gather_13' Status Message: indices element out of data bounds, idx=71822640 must be within the inclusive range [-30522,30521]
bad syscall #131!

I added some prints inside primitive gemmini functions, so I should have got something if the actual inference starts. Now, it seems to me that the program got everything needed for the inference, however something incorrect happens at the beginning of the inference.
Do you have any comments on that? Thanks!

Hm thank you for sharing.

Run the provided ort_test

By this do you mean that you ran the binary in the imagenet_runner with an imagenet model (e.g. Googlenet/Resnet) and saw that segfault? That shouldn't happen (I just tested with my setup), so if this is the case then it seems the issue lies somewhere with your particular environment, which unfortunately makes it even harder to debug. Please let me know if this is the case.

Run my own program with -d 5

I actually don't think -d 5 is valid (seems I made a mistake when writing the command line arguments), since the enum for OrtLoggingLevel only goes 0-4
But either way it seems very strange that changing the logging level affects program execution. For a given logging level (e.g. -d 0) the segfault happens deterministically at the same spot right?

I added some prints inside primitive gemmini functions

You can actually do better and add some print statements in the main dispatch loop itself (the piece of onnxruntime that goes through and invokes each operator).
I've attached a patch for sequential_executor.cc which will both dump the execution plan as well as print when each operator is invoked. This will also you to determine if it even begins the inference phase.
diff --git a/onnxruntime/core/framework/sequential_executor.cc b/onnxruntime/core/framework/sequential_executor.cc
index af79e8c7..95bd59c4 100644
--- a/onnxruntime/core/framework/sequential_executor.cc
+++ b/onnxruntime/core/framework/sequential_executor.cc
@@ -24,7 +24,7 @@
 #include "core/profile/context.h"
 #endif

-// #define TRACE_EXECUTION
+#define TRACE_EXECUTION

 // Define this symbol to create Concurrency Visualizer markers.
 // See https://docs.microsoft.com/en-us/visualstudio/profiling/concurrency-visualizer-sdk
@@ -163,8 +163,12 @@ Status SequentialExecutor::Execute(const SessionState& session_state, const std:
   std::cout << std::make_pair(&seq_exec_plan, &session_state) << std::endl;
 #endif

+  fprintf(stderr, "Finished dumping execution plan\n");
+
   const auto& graph_viewer = session_state.GetGraphViewer();

+   fprintf(stderr, "Got graph viewer\n");
+
 #ifdef CONCURRENCY_VISUALIZER
   // need unique name for the series. number of nodes should be good enough for a subgraph
   char series_name[MaxSeriesNameLengthInChars] = "MainGraph";
@@ -200,7 +204,9 @@ Status SequentialExecutor::Execute(const SessionState& session_state, const std:
       continue;
     }

+     fprintf(stderr, "Line 207\n");
     const auto& node = *graph_viewer.GetNode(node_exec_plan.node_index);
+     fprintf(stderr, "Line 209\n");

 #ifdef CONCURRENCY_VISUALIZER
     series.write_flag(node.Name().c_str());
@@ -279,6 +285,8 @@ Status SequentialExecutor::Execute(const SessionState& session_state, const std:
       return node.Name().empty() ? MakeString(node.OpType(), "_", node_index) : node.Name();
     }();

+   fprintf(stderr, "Computing kernel %s %s\n", node.OpType().c_str(), (node.Name().empty() ? MakeString(node.OpType(), "_", node_index) : node.Name()).c_str());
+
     if (is_profiler_enabled) {
       session_state.Profiler().EndTimeAndRecordEvent(profiling::NODE_EVENT,
                                                      node_name_for_profiling + "_fence_before",

@@ -323,6 +331,8 @@ Status SequentialExecutor::Execute(const SessionState& session_state, const std:
     if (is_profiler_enabled) {
       // Calculate total output sizes for this operation.
       CalculateTotalOutputSizes(&op_kernel_context, total_output_sizes, node_name_for_profiling);
+
+      fprintf(stderr, "Executed op kernel node %s\n", node.OpType().c_str());

 #if defined(TRACE_EXECUTION)
       // Trace execution step.

Going back to the -d 0 where it segfaults at Ort::Session session(env, model_path, session_options);, can you compile onnxruntime in debug mode ./build.sh --config=Debug --parallel and then recompile your runner binary (same command ./build.sh --config=Debug) and then do riscv64-unknown-linux-gnu-objdump -C -l -d ort_test > dumped.txt. This might be a large file, but you grep through it to find the pc corresponding to the segfault and narrow down the line number.

By this do you mean that you ran the binary in the imagenet_runner with an imagenet model (e.g. Googlenet/Resnet) and saw that segfault? That shouldn't happen (I just tested with my setup), so if this is the case then it seems the issue lies somewhere with your particular environment, which unfortunately makes it even harder to debug. Please let me know if this is the case.

Yes, I ran google net with the following code: spike --extension=gemmini pk ort_test -m ./googlenet_quantized.onnx  -i images/cat.jpg -d 0 -p caffe2 -x 1 -O 0. This one should be reproducible.
Actually, I have fixed my program. It seems that I did not initialized part of the inputs so that there is some overflow and out of bound issues.
For me, the -d seems problematic too. It seems -d 5 is displaying more rich details.

Going back to the -d 0 where it segfaults at Ort::Session session(env, model_path, session_options);, can you compile onnxruntime in debug mode ./build.sh --config=Debug --parallel and then recompile your runner binary (same command ./build.sh --config=Debug). Now when it segfaults you can do riscv64-unknown-linux-gnu-objdump -C -l -d ort_test > dumped.txt and grep through the file to find the pc corresponding to the segfault and narrow down the line number.

I will try that and let you know.
Thank you!

Yes, I ran google net with the following code

Ok that's a more serious issue then since I just tested it and I cannot reproduce it. Some thoughts: can you try using -x 0 to use CPU-only instead of using Gemmini? Can you also try running it under qemu (you can clone and build qemu with ./configure --disable-system --target-list=riscv64-linux-user --prefix=$RISCV and then use qemu-riscv64).

It seems -d 5 is displaying more rich details

Does -d 5 display richer information than -d 4? As mentioned the enums indices only go 0 to 4 so I'm not sure why that would happen.

Ok that's a more serious issue then since I just tested it and I cannot reproduce it. Some thoughts: can you try using -x 0 to use CPU-only instead of using Gemmini? Can you also try running it under qemu (you can clone and build qemu with ./configure --disable-system --target-list=riscv64-linux-user --prefix=$RISCV and then use qemu-riscv64). Also just to eliminate variables can you try using the floating point googlenet model (you can download it from the onnx model zoo) instead of the quantized one?

umm, that is wired. Actually I have reproduced it from building a whole new environment even from a different computer. I will try to do a fresh install of Linux and a fresh build of the toolchain to see if I can still reproduce it. I will let you know the result after I finished so you don't have to waste time on it.
It might be something completely wrong on my toolchain or the environment that causes these series of issues.  Since I don't quite have any experience with qemu-riscv64, I will let you know the result I obtained from firesim.

Does -d 5 display richer information than -d 4? As mentioned the enums indices only go 0 to 4 so I'm not sure why that would happen.

So after I fixed the out of range problem, the program will run normally under -d 3. -d 4 seems to give me the same result as -d 5.
Thank you so much for helping me!

Actually I have reproduced it from building a whole new environment even from a different computer.
after I finished so you don't have to waste time on it.

Thanks, let me know how it goes. While I don't think it would be a compiler issue, I strongly suspect it could be a riscv pk issue. When you test on firesim please be sure to also try -x 0 since I'm fairly certain the instruction encoding of gemmini has changed recently and I haven't updated the libraries to use the new instruction encoding.

Since I don't quite have any experience with qemu-riscv64

It's very easy to use for userspace emulation: just clone https://github.com/qemu/qemu, configure as mentioned previously then make && make install. You can then just invoke it like qemu-riscv64 ort_test -m ./googlenet_quantized.onnx -i images/cat.jpg -d 0 -p caffe2 -x 0 -O 0. I recommend this since it's quicker and easier to iterate than having to launch firesim each time.


Qt6 Gwenview does not open webp files

Describe the bug
Looks like Gwenview (or some dependency?) is not compiled with webp support since the Qt 6 update.
Steps To Reproduce
Steps to reproduce the behavior:

Open a webp image in Gwenview (kdePackages.gwenview)

Expected behavior
It displays the image, as it did with Qt 5.
Screenshots

Notify maintainers

@ilya-fedin @K900 @LunNova @mjm @NickCao @SuperSandro2000 @ttuegel
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.21, NixOS, 24.05 (Uakari), 24.05.20240315.4acc213`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - nixpkgs: `/etc/nix/inputs/nixpkgs`

Add a :+1: reaction to issues you find important.

https://github.com/NixOS/nixpkgs/pull/296647


fix: add global-agent

support behind a proxy for backstage-cli commands like versions:bump
Signed-off-by: David Weber<EMAIL_ADDRESS>Hey, I just made a Pull Request!
Support behind a proxy for backstage-cli commands like versions:bump.
As far as I could see, release-manifests is only used in nodejs context in the @backstage/cli https://github.com/backstage/backstage/search?q="%40backstage%2Frelease-manifests"
Fixes https://github.com/backstage/backstage/issues/10955
:heavy_check_mark: Checklist

[X] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[X] All your commits have a Signed-off-by line in the message. (more info)

Thank you!


Sorting by network is wrong

Server 1

Server 2

What are you expecting to see? Both examples appear properly sorted by aggregate network traffic.

@bcicen shouldn't the highest number be up top?

@demyxco the highest number is on top -- Received Traffic (RX) + Transmitted Traffic (`TX) = Total Traffic, by which the containers are sorted

closing; feel free to reopen if you still have questions


Wrong package name

https://github.com/junaruga/rpm-py-installer/blob/master/setup.py#L65
Change to rpm-py-installer as soon as possible.

I changed setup.py's name by https://github.com/junaruga/rpm-py-installer/pull/25 .
Last time the project name was rpm_py_installer in old PyPI [1].
I uploaded new version with new package name rpm-py-installer to the old PyPI.
But the project name was not changed.
So, I deleted the project page from old PyPI.
Then [1] is "page not found".
And when I ran below upload command, I got an error.
Maybe the project data is still alive internally.
(venv) $ python3 setup.py sdist upload
...
Submitting dist/rpm-py-installer-0.1.2.tar.gz to https://upload.pypi.org/legacy/
Upload failed (400): This filename has previously been used, you should use a different version.
error: Upload failed (400): This filename has previously been used, you should use a different version.

On new PyPI [2], there is still the project data with old name rpm_py_installer.
[1] https://pypi.python.org/pypi/rpm_py_installer
[2] https://pypi.org/project/rpm_py_installer/

There is a proposal to rename the project name from Web UI.
https://github.com/pypa/warehouse/issues/1919

Similar issue: https://github.com/pypa/pypi-legacy/issues/631

https://www.python.org/dev/peps/pep-0008/#package-and-module-names

Modules should have short, all-lowercase names. Underscores can be used in the module name if it improves readability. Python packages should also have short, all-lowercase names, although the use of underscores is discouraged.

I released new version v0.1.3. And the project name is changed.
https://pypi.python.org/pypi/rpm-py-installer
https://pypi.org/project/rpm-py-installer
So, summarizing this situation, one of the available way to change project name is

Delete project completely from PyPI.
Update setup.py name on local.
Bump version and release the new version.

By the way, I did set rpm-py-installer as project name (setup.py setup.name), and rpm_py_installer as a directory name, referring flake8-* modulle or pytest-cov.
PS. Below is official way.
http://legacy.python.org/dev/peps/pep-0423/#how-to-rename-a-project


GMS and RCE restarting/exiting frequently

Rancher Version:
1.1.3
Docker Version:
1.10.3
OS and where are the hosts located? (cloud, bare metal, etc):
AWS, ELB, ROS 0.4.5
Setup Details: (single node rancher vs. HA rancher, internal DB vs. external DB)
HA
GMS restarting regularly , one instance of RCE was in a stopped state. @cjellick @alena1108  sent logs

Can we not call rancher-compose-executor RCE please :smile:

Marking as a duplicate of https://github.com/rancher/rancher/issues/6092. @chrisurwin


Unable to call onWindowFocusChanged and dispatchKeyEvent Override methods.

Hi,
I am unable to call dispatchKeyEvent and onWindowFocusChanged method when on the Login screen and after successful login, it works... why?

Hi ils-aashishj,
Sorry for the delay in response, could you please elaborate a bit more on what you would like to achieve here and what would be the use case?
Many thanks


Minimal working examples for xtensor-r

Dear xtensor maintainers,
I recently discovered your xtensor library, and it looks great. I have been trying to get started with it either in C++ or with the associated R package, but unfortunately have not had any success in getting minimal examples to work. I was wondering if you could suggest where I might be missing a step, or if you could provide some minimal working examples.
I have some experience using Rcpp and RcppArmadillo, and my first goal was to use xtensor with R.
However, after installing the 'xtensor' R package, the example on your GitHub page
library('xtensor')
xtensor::rcpp_hello_xtensor(4:12)

failed to work and resulted in the error:
Error: 'rcpp_hello_xtensor' is not an exported object from 'namespace:xtensor'
I looked at your xtensor_r_example() in the documentation for version 0.6.1-0 on CRAN, but could not get that to work without knowing how to define the tensor.
I then tried the sum_of_sines example on your page (within a package framework):
http://xtensor-r.readthedocs.io/en/latest/basic_usage.html
but this resulted in the errors:
clang++ -std=gnu++14 -I"/usr/local/Cellar/r/3.5.0_1/lib/R/include" -DNDEBUG  -I"/Users/dean/build/rpackages/Rcpp/include" -I/usr/local/opt/gettext/include -I/usr/local/opt/readline/include -I/usr/local/include   -fPIC  -g -O2 -c RcppExports.cpp -o RcppExports.o
RcppExports.cpp:9:21: error: use of undeclared identifier 'xt'
double sum_of_sines(xt::rarray<double>& m);
                    ^
RcppExports.cpp:9:38: error: expected '(' for function-style cast or type construction
double sum_of_sines(xt::rarray<double>& m);
                               ~~~~~~^
RcppExports.cpp:9:41: error: use of undeclared identifier 'm'
double sum_of_sines(xt::rarray<double>& m);
                                        ^
RcppExports.cpp:14:36: error: use of undeclared identifier 'xt'
    Rcpp::traits::input_parameter< xt::rarray<double>& >::type m(mSEXP);
                                   ^
RcppExports.cpp:14:53: error: expected '(' for function-style cast or type construction
    Rcpp::traits::input_parameter< xt::rarray<double>& >::type m(mSEXP);
                                              ~~~~~~^
RcppExports.cpp:14:56: error: expected unqualified-id
    Rcpp::traits::input_parameter< xt::rarray<double>& >::type m(mSEXP);
                                                       ^
RcppExports.cpp:15:47: error: use of undeclared identifier 'm'
    rcpp_result_gen = Rcpp::wrap(sum_of_sines(m));
                                              ^
7 errors generated.
make: *** [RcppExports.o] Error 1
ERROR: compilation failed for package ‘tryxtensor’
* removing ‘/private/var/folders/5z/g039vypd3d78dm1hr5bwmsk00000gn/T/RtmpGnd8U7/devtools_install_12e97786f506d/tryxtensor’
Error: Command failed (1)

Before I had tried including the line
SystemRequirements: C++14

in the description file, but this did not change the error messages. The above output is after creating a Makevars file containing
CXX1XSTD = -std=gnu++14
I am using Rcpp v0.12.7 (latest release).
After this, I tried to simply get a pure C++ example to work (no R). I am using OSX, and then tried installing xtensor with 'conda', as suggested on your page. I then tried the first example (after enclosing in a main) on
http://xtensor.readthedocs.io/en/latest/basic_usage.html
however, this resulted in numerous error messages. I tried compiling with the standard gcc/g++ compilers on OSX, as well as with the gcc-4.9/g++-4.9 compilers.
After the conda version of xtensor was installed, I tried the xtensor-r examples again, but still received the same error messages.
I apologise for the long post, but I wanted to detail the steps I tried. It seems that R/gcc is not finding the xtensor header files. Any suggestions for fixing this issue, or any minimal working examples for R, would be greatly appreciated.

Hi!
Sorry for the super-late reply. This is a pretty helpful gist:
https://gist.github.com/DavisVaughan/6597eac027303443bd69809b74646372
We're going to improve the docs at some point in the future but for now we're quite swamped with work.


fix github actor for pushing to protected branches

Changes

Issues

PR Checklist
(~Strikethrough~ any points that are not applicable.)

[ ] This comment contains a description of changes with justifications, with any relevant issues linked.
[ ] Write unit tests for any new features, bug fixes, or other code changes.
[ ] Update docs if there are any API changes.
[ ] Update CHANGELOG.md with a short description of any user-facing changes and reference the PR number. Guidelines: https://keepachangelog.com/en/1.1.0/

closing in favor of #33


Reordering Canvas and Grid children caused functional change.

Like https://github.com/NicoVermeir/XamlStyler/issues/60, I think this is issue.
This caused functional change to my application and I can't find who change this order for a while.
The order of children has functional meanings.
In my case,change of order bring some control to front and it hooked some event that should be handled by other control. That control was top most before reorder.

that's an option that reorders grid and canvas children according to their relative positions. it's on by default but can be disabled


draw label along line for DD Add-In

The distance and direction widget renders labels along the line (at the centerpoint of the line drawn). Lets do this for the add-in as well. I think that this makes more sense than what we are currently doing, which is placing the labels above the origin point of the line.
If we want to maintain labeling at the start of the line, I have this enhancement idea as well, although it would be much easier to just draw the labels along the line:
An enhancement that would greatly improve the legibility of distance and direction labels for lines would be to try and have the labels dynamically render in the position that is the opposite of the direction of the line. That way, cases of overlapping lines and labels would go down significantly. Currently, the position of the label is at the center top of the origin line. This is what is currently happening, and in any case of a line that moves slightly north from the origin point, you'll see conflict with the line and labels:

@Dbarnes1 fixed pr: https://github.com/Esri/distance-direction-addin-dotnet/pull/356

@pHill5136 verified fixed, closing.


Create spelling-grammar.rst

this PR creates a new spelling and grammar style guide based on work done internally by marketing
feedback and criticism is very welcome

Thanks for this!

Good work!

Thank you @mechanomi !


networking - cnci-agent - Add support for recovery on reboot

Add support in the CNCI Agent to store state that can be recovered if the CNCI VM hosting the CNCI Agent reboots. Currently the CNCI Agent can recover state if the Agent itself crashes. But it cannot recover its state without persisting it in a data base.
Ideally the data base should be stored outside of the context of the VM in a network attached storage volume or KV store.

@markdryan this was fixed by https://github.com/01org/ciao/commit/fc92642928aa94808ffed69b57383fbc6dffc0ca and verified by the unit tested by https://github.com/01org/ciao/commit/3ebdce81ba4ea5300e4730a99a21cba0463dba0f
There are no BAT tests for this though.


Fix failing spec so that test suite passes again

Checking for the HTML of an element seems to be environmentally dependent. toString failing on testling, outerHTML failing during coverage checks.

@Matt-Esch @Raynos :tada:


Hotfix lm_eval.caching module

fixes #2028
hotfix for now, should better organize this module later?

cc @lintangsutawika can be merged once tests pass


fix issue JENKINS-25841

See,
https://social.msdn.microsoft.com/Forums/vstudio/en-US/cf5cf81d-d613-458e-bb48-4a92ca68edc1/how-to-escape-space-in-property-in-msbuild-while-executing-thorugh-cmd-prompt?forum=msbuild

Thank you for this pull request! Please check this document for how the Jenkins project handles pull requests.

Any idea when this will be merged? @gboissinot

Well, this merge-request is more of a prototype than anything. We should escape other characters as well and msbuild-cli is pretty weird on this issue- for example, escaping quote with double quote, escaping space with html space, etc.

@franknarf8  Is there still a need for this to be merged ?


Issues with DETR3D Model Registration

KeyError: 'Detr3D is not in the mmdet3d::model registry. Please check whether the value of Detr3D is correct or it was registered as expected. More details can be found at https://mmengine.readthedocs.io/en/latest/advanced_tutorials/config.html#import-the-custom-module'
@nickeubank we're facing issues with DETR3D model registration and we've tried to debug it, but our solutions don't seem to work.

@afraa-n almost there, but this isn't a valid pip install command:
pip install -v -e

Anything more you can offer on that?
(Note i split setup into two files: downloads and installs)

Part of the issue may be that the repo for DETR3d has a pinned commit of mmdetection3d in it.

@afraa-n almost there, but this isn't a valid pip install command:
pip install -v -e

Anything more you can offer on that?
(Note i split setup into two files: downloads and installs)

oh i think i made a mistake, it should be:
pip install -v -e .

ah, maybe not. I see that folder's empty when you clone the repo.

Do you have a simple script that should run -- not a notebook with installs and stuff -- if install works?

Did you register it?
https://mmengine.readthedocs.io/zh-cn/latest/api/generated/mmengine.registry.Registry.html

Did you register it?
https://mmengine.readthedocs.io/zh-cn/latest/api/generated/mmengine.registry.Registry.html

Yes, after changing the code to register the model, the error reverts back to mmcv incompatibility:


Add editors to project

Editors can be added on the approval page as discussed on our last meeting.

[x] Editors should also be saved when the project is submitted
[x] Missing: editors should be notified when they are appointed; this can only happen after notification branch is merged

I think this is ready for a review

This is probably our fault for not communicating clearly, but is there not a way to add editors before a project is submitted for approval?  Seems a bit weird since we shouldn't be editing a project after it's submitted right?  Or is that something we're allowing

This looks clean to me otherwise

You can now change editors with "create project" and "edit project" dialogs (project overview page). I am not entirely happy with the backend code, but it's good enough for now for the MVP.

I'll leave it to Laura to merge this, since she's testing these changes against our SLAC resources and may want to complete testing one feature at a time


Cannot use JSON/CSS/HTML language without workers

monaco-editor version: 0.11.1
Browser: chrome latest
OS: win 10 64bit
Steps or JS usage snippet reproducing the issue:
Run browser-esm-webpack-small sample with following changes:
in index.js:

editor language "json"
enable (uncomment) " import 'monaco-editor/esm/vs/language/json/monaco.contribution';"

I also changed mode to delelopment in webpack config.
Result:
Error: self.require is not a function
    at eval (editorSimpleWorker.js:395)
    at new Promise_ctor (winjs.base.js:1660)
    at EditorSimpleWorkerImpl.BaseEditorSimpleWorker.loadForeignModule (editorSimpleWorker.js:393)
    at SimpleWorkerServer._handleMessage (simpleWorker.js:259)
    at Object.handleMessage (simpleWorker.js:245)
    at SimpleWorkerProtocol._handleMessage (simpleWorker.js:117)
    at SimpleWorkerProtocol.handleMessage (simpleWorker.js:89)
    at SimpleWorkerServer.onmessage (simpleWorker.js:249)
    at self.onmessage (editor.worker.js:23)

Why do i get this error?
It seems like the json worker is needed. But why? JSON syntax highlighting works perfectly without it. I don't want the this json worker :)
BTW, I am not running from "file://", i am using "npm run simpleserver". The standard language "python" (from that sample) works without issue.
This issue looks a bit like #759 but that issue requires a worker to fail due to some reason before it throws "self.require is not a function". This is not the case in this issue.

Did you set globalobject: self in your webpack config like here?
The webworkers are responsible for enhanced suggestions and syntax errors etcs. With setting the editor language to JSON everything is going to be loaded, not only the colors.
However you can customize the imports and decide yourself what should be loaded and what not. Example

I believe this now works.


As a team I want to have a code of conduct so that we can follow best practice.

Acceptance Criteria

Create Code Of Conduct
Review Document
Test if it aligns with policy
Pull Request


Move to IPFS organization?

We should probably move this over to the IPFS organization while you can still retain ownership over it. This will make maintenance and organization easier.

Yeah, I agree that it should be moved. As I have been working alone on this and making some disrupting changes (force pushes and such), I thought it was better to keep it under chriscool for now.
By the way I am not sure if I should try to preserve the history of the test scripts. I just did a cp -a for now, but I would understand if people preferred that I keep as much as possible the history.
And if I try to keep the history of the test scripts this could be a disruptive change to the repo.

Done!

Please archive this repo, and maybe add a note to the description that it was moved to go-ipfs/test/sharness. Google returns this first when searching for ipfs sharness.

It's on the list to be archived very soon.


App.axaml replacement

Currently you can't define styles or resources in app using the DSL which isn't that big of a deal since it is pretty easy to add manually.
However it is more annoying when I want to have a TrayIcon.
<TrayIcon.Icons>
	<TrayIcons>
		<TrayIcon Icon="Assets/icon.ico">
			<TrayIcon.Menu>
				<NativeMenu>
					<NativeMenuItem Header="Settings"/>
					<NativeMenuItem Header="Start"/>
					<NativeMenuItem Header="Stop"/>
					<NativeMenuItem Header="Import"/>
					<NativeMenuItem Header="Exit"/>
				</NativeMenu>
			</TrayIcon.Menu>
		</TrayIcon>
	</TrayIcons>
</TrayIcon.Icons>

It is pretty easy to use axaml when needed but I think it would be cool.

Are there no bindings for TrayIcon yet?
If not we should add them. Are you willing to contribute the bindings?

I would be willing to try.
We would also need to add bindings for NativeMenu as well.
https://github.com/fsprojects/Avalonia.FuncUI/blob/master/docs/controls/nativemenu.md
I'm not sure how one would go about registering it on the window or application since the DSL creates IView which wouldn't work with NativeMenu.SetMenu

If I understand correctly the Component type is a real Avalonia component that renders out the IViews.
However neither NativeMenu or TrayIcon are actual Avalonia components.

@CoolCoderSuper should still work as the base type is Avalonia Object.
IView is probably not the best name as all types inheriting from Avalonia Object are supported.

I'm not sure how one would go about registering it on the window or application since the DSL creates IView which wouldn't work with NativeMenu.SetMenu or TrayIcon.SetIcon

If it works in XAML it should also work in the DSL without explicitly calling those methods.

OK that makes sense.
The xaml compiler generates calls to those methods for it to work.

Hah, ok. We could add 'register' calls that internally use init functions...
But thats kind of a workaround. If the XAML compiler does special things we.. also would have to.

	static void !XamlIlPopulate(IServiceProvider P_0, App P_1)
	{
		CompiledAvaloniaXaml.XamlIlContext.Context<App> context = new CompiledAvaloniaXaml.XamlIlContext.Context<App>(P_0, new object[1] { !AvaloniaResources.NamespaceInfo:/App.axaml.Singleton }, "avares://LantekQuoting/App.axaml");
		context.RootObject = P_1;
		context.IntermediateRoot = P_1;
		App app;
		App app2 = (app = P_1);
		context.PushParent(app);
		app.RequestedThemeVariant = ThemeVariant.Dark;
		app.Styles.Add(new FluentTheme(context));
		TrayIcons trayIcons;
		TrayIcons trayIcons2 = (trayIcons = new TrayIcons());
		context.PushParent(trayIcons);
		TrayIcon trayIcon;
		TrayIcon item = (trayIcon = new TrayIcon());
		context.PushParent(trayIcon);
		trayIcon.Icon = (WindowIcon)new IconTypeConverter().ConvertFrom(context, CultureInfo.InvariantCulture, "Assets/icon.ico");
		trayIcon.Clicked += context.RootObject.settings_OnClick;
		trayIcon.ToolTipText = "Lantek Quoting";
		NativeMenu nativeMenu = new NativeMenu();
		IList<NativeMenuItemBase> items = nativeMenu.Items;
		NativeMenuItem nativeMenuItem = new NativeMenuItem();
		nativeMenuItem.Header = "Settings";
		nativeMenuItem.Click += context.RootObject.settings_OnClick;
		items.Add(nativeMenuItem);
		IList<NativeMenuItemBase> items2 = nativeMenu.Items;
		NativeMenuItem nativeMenuItem2 = new NativeMenuItem();
		nativeMenuItem2.Header = "Start";
		nativeMenuItem2.Click += context.RootObject.start_OnClick;
		items2.Add(nativeMenuItem2);
		IList<NativeMenuItemBase> items3 = nativeMenu.Items;
		NativeMenuItem nativeMenuItem3 = new NativeMenuItem();
		nativeMenuItem3.Header = "Stop";
		nativeMenuItem3.Click += context.RootObject.stop_OnClick;
		items3.Add(nativeMenuItem3);
		IList<NativeMenuItemBase> items4 = nativeMenu.Items;
		NativeMenuItem nativeMenuItem4 = new NativeMenuItem();
		nativeMenuItem4.Header = "Import";
		nativeMenuItem4.Click += context.RootObject.import_OnClick;
		items4.Add(nativeMenuItem4);
		IList<NativeMenuItemBase> items5 = nativeMenu.Items;
		NativeMenuItem nativeMenuItem5 = new NativeMenuItem();
		nativeMenuItem5.Header = "Exit";
		nativeMenuItem5.Click += context.RootObject.exit_OnClick;
		items5.Add(nativeMenuItem5);
		trayIcon.Menu = nativeMenu;
		context.PopParent();
		trayIcons.Add(item);
		context.PopParent();
		TrayIcon.SetIcons(app, trayIcons2);
		context.PopParent();
		if (app2 is StyledElement styled)
		{
			NameScope.SetNameScope(styled, context.AvaloniaNameScope);
		}
		context.AvaloniaNameScope.Complete();
	}

This is the compiled result of the supplied xaml if it is at all helpful.

@CoolCoderSuper did you try writing bindings for TrayIcon, ... ?

I did try and this now works:
    let menu = NativeMenu.create [
        NativeMenu.items [
            NativeMenuItem.create [
                NativeMenuItem.header "File"
                NativeMenuItem.isChecked true
                NativeMenuItem.isEnabled false
            ]
        ]
    ]

But I'm not sure what the next steps to register it on the window are I will fork and push my changes to GitHub later today.

https://github.com/CoolCoderSuper/Avalonia.FuncUI/tree/native_menu
Here are my changes


[MRESOLVER-162] Restore binary compatibility

And make demos work again.

I'd like to settle this. How did you notice that demos don't work?

Try to run them... if you look at demo snippets, they are built but not run by maven build, those are "demo" code that all have static void main, so I just ran them from my IDE, and they all failed with CNFEx (as they pull maven-resolver-provider from maven) for ServiceLocator in "old" place, but failing to find it.

Btw, when you try to compile Maven with Resolver master it does not work either.


Improve type checking error for sum-type constructors and eliminators

Currently, the constraint system etc. doesn't let us produce very friendly or informative error messages: it's all in terms of unification failures of rows. We need a way to guide or decorate the constraint checker with error messages on constraint failures.

Maybe check out this paper which was published at OOPSLA '23:

Getting into the Flow: Towards Better Type Error Messages for Constraint-Based Type Inference
https://dl.acm.org/doi/10.1145/3622812 (PDF)

I don't know if the technique described there is directly applicable to the Quint type checker but perhaps it's yield some inspiration towards a solution.

Thanks for the pointer, @romac !


log_apex_items raises ORA-06502 when Apex item is > 4000 chars

If an Apex item is longer than 4000 characters, it's stored in wwv_flow_data.item_value_clob, not item_value_vc2. Calling log_apex_items when such an item exists raises ORA-06502, PL/SQL: numeric or value error: character string buffer too small.
I think this is because the V function can return a PL/SQL VARCHAR2 of up to 32767 characters, but the SQL engine can't take any more than 4000. The snapshot_apex_items does a SQL insert.
I'm using Apex 4.2, still. Not sure if the behavior has changed in 5.x.

This happens in 11g. In 12c with max_string_size set to EXTENDED, I couldn't replicate the issue. I don't have a 12c instance with max_string_size of STANDARD to test with.


WIP - xbull integration

@esteblock This should be ready for merge. The backward compatibility with soroswap has been tested. And I found and fixed some packages issues.
I published<EMAIL_ADDRESS>on npm.
And if you think this is correct, I stamped new versions of @soroban-react/core and @soroban-react/contracts to 9.0.0 and I still need to publish on npm.


chore(main): release 1.1.0

:robot: I have created a release beep boop
1.1.0 (2024-01-28)
Features

syntax highlighting for Jinja2 files (#9) (c42a9d0)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/jwbennet/project-base/releases/tag/v1.1.0 :sunflower:


Add b and t shortcuts for build and test

There should be a crate to put all the commands in a trie to allow arbitrary abbreviation, to pick the first non-ambiguous command.  That's how I'd consider doing it.


Add namespace std

Removed unnecessary clutter in the code by adding namespace std
Description of Change

Checklist

[x] Added description of change
[x] I acknowledge that all my contributions will be made under the project's license.

Notes:

Sorry, but these changes do not meet our standards. Thank you for contributing.


Code Error in TestNoneequilibrium3.m

First of all, I'm glad to be able to use your MATLAB code. Unfortunately, when I run TestNonequilibrium3.m, I get an error on line 133 in the code Tracefit=sfit(j).ss(:,lo);. The error message is ss is an unrecognized field. I would like to know how I can fix this part.

Thanks for using our code.  This error is most likely caused by selecting a folder with the wrong format when using TestNonequilibrium3.m.  You can see "User guide" section in "README.md" for more detail, and follow the steps in "Test TestNonequilibrium3 with simulated data" section to learn how to use our code (Note that when generating simulated data, the state system selected using parameter "mode" in line 18 of MakeNonequilibriumHMMPoissonData.m needs to correspond to that selected using a similar parameter "mode" in line 31 of the evaluation program NonequilibriumCompare.m). The annotation on lines 21-38 in TestNonequilibrium3.m also specify the format of the selected folder.
We provide a test folder in GitHub named by "test". Trajectories in this folder were generated by MakeNonequilibriumHMMPoissonData.m with "mode=1;" in line 18(non-overlapping 7-state system [A-1]). You can download this folder and delete the BNESTAnanysis.mat and BestHMMParameters2.mat in it, analyze the data with TestNonequilibrium3.m, and then evaluate the analysis results with NonequilibriumCompare.m ("mode=1;" in line 31). You can also enable commented out codes in line 561-649 of NonequilibriumCompare.m, which enable figure plotting for each FRET trajectory.
Technically, in TestNonequilibrium3.m, the structure "sfit(j).ss(:,lo)" used in line 133 is defined by "[sfit,MDLN]=MDLMulti(S);" in line 116, while the structure "S" records all FRET efficiency trajectories in selected folder ("S" is defined by "Load data" part in line 77-104).  Thus, if no specific format files are included in the selected folder, or some files are abnormal, "sfit(j).ss(:,lo)" will become an  unrecognized field.

Thanks for using our code. This error is most likely caused by selecting a folder with the wrong format when using TestNonequilibrium3.m. You can see "User guide" section in "README.md" for more detail, and follow the steps in "Test TestNonequilibrium3 with simulated data" section to learn how to use our code (Note that when generating simulated data, the state system selected using parameter "mode" in line 18 of MakeNonequilibriumHMMPoissonData.m needs to correspond to that selected using a similar parameter "mode" in line 31 of the evaluation program NonequilibriumCompare.m). The annotation on lines 21-38 in TestNonequilibrium3.m also specify the format of the selected folder.
We provide a test folder in GitHub named by "test". Trajectories in this folder were generated by MakeNonequilibriumHMMPoissonData.m with "mode=1;" in line 18(non-overlapping 7-state system [A-1]). You can download this folder and delete the BNESTAnanysis.mat and BestHMMParameters2.mat in it, analyze the data with TestNonequilibrium3.m, and then evaluate the analysis results with NonequilibriumCompare.m ("mode=1;" in line 31). You can also enable commented out codes in line 561-649 of NonequilibriumCompare.m, which enable figure plotting for each FRET trajectory.
Technically, in TestNonequilibrium3.m, the structure "sfit(j).ss(:,lo)" used in line 133 is defined by "[sfit,MDLN]=MDLMulti(S);" in line 116, while the structure "S" records all FRET efficiency trajectories in selected folder ("S" is defined by "Load data" part in line 77-104). Thus, if no specific format files are included in the selected folder, or some files are abnormal, "sfit(j).ss(:,lo)" will become an unrecognized field.

Thanks a lot! I fixed this issue accoriding to your comments.


centralize spring version in root pom file

According to #25, this PR will centralize spring version in the root pom file

Codecov Report

Merging #28 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #28   +/-   ##
=========================================
  Coverage     79.31%   79.31%
  Complexity      228      228
=========================================
  Files            51       51
  Lines           585      585
  Branches         12       12
=========================================
  Hits            464      464
  Misses          119      119
  Partials          2        2

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 2060d05...dbe1cb9. Read the comment docs.


Open wire check for cell voltage taps

Summary

Open wire check was not finished in time for competition. While there is an existing PR up (https://github.com/UBCFormulaElectric/Consolidated-Firmware/pull/906) it should probably be rethought now that we're not in a time crunch.

Closed: Moved to Jira.


⚠ ClamAV has degraded performance

In 9d1ac79, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 98 ms

Resolved: ClamAV performance has improved in a087a68 after 18 minutes.


find insurance feature

Codecov Report

Merging #72 (a2e7969) into master (7ed701c) will decrease coverage by 0.39%.
The diff coverage is 7.40%.

@@             Coverage Diff              @@
##             master      #72      +/-   ##
============================================
- Coverage     42.22%   41.83%   -0.40%
  Complexity      474      474
============================================
  Files           142      145       +3
  Lines          2681     2706      +25
  Branches        295      298       +3
============================================
  Hits           1132     1132
- Misses         1498     1523      +25
  Partials         51       51

Impacted Files
Coverage Δ

...main/java/seedu/address/commons/core/Messages.java
0.00% <ø> (ø)

...u/address/logic/commands/FindInsuranceCommand.java
0.00% <0.00%> (ø)

.../seedu/address/logic/parser/AddressBookParser.java
46.42% <0.00%> (-0.85%)
:arrow_down:

...dress/logic/parser/FindInsuranceCommandParser.java
0.00% <0.00%> (ø)

...odel/insurance/TitleContainsKeywordsPredicate.java
0.00% <0.00%> (ø)

...eedu/address/logic/commands/FindPersonCommand.java
100.00% <100.00%> (ø)

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 7ed701c...a2e7969. Read the comment docs.