text:
installShellFiles: init

This is a new package that provides a shell hook to make it easy to declare manpages and shell completions in a manner that doesn't require remembering where to actually install them. This is intended for packages that don't have a make install that does this already. Usage looks like
{ stdenv, installShellFiles, ... }:
stdenv.mkDerivation {
  # ...
  nativeBuildInputs = [ installShellFiles ];
  postInstall = ''
    installManPage doc/foobar.1
    installShellCompletion share/completions/foobar.{bash,fish}
    installShellCompletion --zsh share/completions/_foobar
  '';
  # ...
}

There's detailed documentation in the header comments of the shell functions.
Motivation for this change
I got tired of having to look up the shell completion paths for the various shells when writing derivations. It's also a centralized location to teach about other shells if anyone cares about adding completions (e.g. ffsend has .elv and .ps1 completions in its source tree but I have no idea where those get installed).
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

I tested this by writing a dummy derivation whose source contained manpages and shell completions and then invoked this shell hook.

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/proposal-make-it-easier-to-define-manpages-shell-completions/3491/6

I haven't updated any packages to use this yet as that will require the package to be rebuilt. I wasn't sure if it was worth it when there's no functional difference. If this gets merged I'll try to start adopting it any time I update a package that has manpages or shell completions.

I just tested what happens with a multi-output derivation, and it appears to work just fine, because it seems that share/man gets moved into the man output (if it exists) in a default preFixup hook, meaning my hook doesn't need to care about the possibility of a man output.
That said, I'm thinking I should probably just go ahead and use ${!outputMan} and ${!outputDevman} after all instead of relying on that preFixup hook.

I've updated it to use ${!outputMan} and ${!outputDevman} explicitly. I also went with ${!outputBin} for the shell completions, but I'm not sold on that one, maybe I should just keep that in $prefix.

The usage of installShellFiles as a function is because attrsets can't serialize to the environment normally, so it converts the structured attrs into a format the shell hook can consume.

FYI, since Nix 2.0 you can set __structuredAttrs to get what you want. It's only used two places in nixpkgs, but since nixpkgs requires nix 2.0 now anyways, I don't see why it shouldn't be used more.

AIUI __structuredAttrs is set on the whole derivation, not on individual nested attrsets, and its use completely breaks the default builder as the default builder. Even if the default builder worked with it, requiring it to be set on the derivation would be a significant hurdle to using this on arbitrary packages. And of course Bash doesn't have any built-in tools for dealing with JSON so I'd have to add a dependency on something like jq and write a complicated jq script to transform it into something usable by Bash.

Updated again so the installShellFiles function adds a __toString attribute instead of immediately serializing it to a string. This way you can still query the structured shell completions in Nix code.

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review-may-2019/3032/32

Updated again because I screwed up the handling of escaped characters in shell completion paths.

Added support for renaming shell completions, including automatically renaming zsh completions because apparently zsh requires the convention _foo and packages might not necessarily have it that way in the source.
As an example I updated the nixpkgs.exa derivation to use this, including manual renaming support. The diff looks like
diff --git a/pkgs/tools/misc/exa/default.nix b/pkgs/tools/misc/exa/default.nix
index 7c43638ea56..f51fe9e2982 100644
--- a/pkgs/tools/misc/exa/default.nix
+++ b/pkgs/tools/misc/exa/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, rustPlatform, cmake, perl, pkgconfig, zlib
-, darwin, libiconv
+, darwin, libiconv, installShellFiles
 }:

 with rustPlatform;
@@ -17,25 +17,18 @@ buildRustPackage rec {
     sha256 = "14qlm9zb9v22hxbbi833xaq2b7qsxnmh15s317200vz5f1305hhw";
   };

-  nativeBuildInputs = [ cmake pkgconfig perl ];
+  nativeBuildInputs = [ cmake pkgconfig perl installShellFiles ];
   buildInputs = [ zlib ]
   ++ stdenv.lib.optionals stdenv.isDarwin [
     libiconv darwin.apple_sdk.frameworks.Security ]
   ;

-  postInstall = ''
-    mkdir -p $out/share/man/man1
-    cp contrib/man/exa.1 $out/share/man/man1/
-
-    mkdir -p $out/share/bash-completion/completions
-    cp contrib/completions.bash $out/share/bash-completion/completions/exa
-
-    mkdir -p $out/share/fish/vendor_completions.d
-    cp contrib/completions.fish $out/share/fish/vendor_completions.d/exa.fish
-
-    mkdir -p $out/share/zsh/site-functions
-    cp contrib/completions.zsh $out/share/zsh/site-functions/_exa
-  '';
+  manpages = [ "contrib/man/exa.1" ];
+  shellCompletions = installShellFiles {
+    bash = { name = "exa"; path = "contrib/completions.bash"; };
+    fish = { name = "exa.fish"; path = "contrib/completions.fish"; };
+    zsh  = { name = "_exa"; path = "contrib/completions.zsh"; };
+  };

   # Some tests fail, but Travis ensures a proper build
   doCheck = false;

I'm not committing this change because it requires rebuilding exa even though the resulting file tree doesn't change.

An alternative solution would be to have the hook introduce shell functions such that the postInstall becomes something like:
installManPage contrib/man/exa.1
installShellCompletion --bash --name exa contrib/completions.bash
installShellCompletion --fish --name exa.fish contrib/completions.fish
installShellCompletion --zsh --name _exa contrib/completions.zsh

I.e., without needing to introduce new attributes in the derivation.

I rewrote this setup hook to vend installManPage and installShellCompletion functions instead, as suggested. I pushed it as a separate commit to the PR so we can see both versions, but if this PR is accepted I'll squash them together.

With this new version the patch to exa looks like
diff --git a/pkgs/tools/misc/exa/default.nix b/pkgs/tools/misc/exa/default.nix
index 7c43638ea56..d3f27b9814e 100644
--- a/pkgs/tools/misc/exa/default.nix
+++ b/pkgs/tools/misc/exa/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, rustPlatform, cmake, perl, pkgconfig, zlib
-, darwin, libiconv
+, darwin, libiconv, installShellFiles
 }:

 with rustPlatform;
@@ -17,24 +17,17 @@ buildRustPackage rec {
     sha256 = "14qlm9zb9v22hxbbi833xaq2b7qsxnmh15s317200vz5f1305hhw";
   };

-  nativeBuildInputs = [ cmake pkgconfig perl ];
+  nativeBuildInputs = [ cmake pkgconfig perl installShellFiles ];
   buildInputs = [ zlib ]
   ++ stdenv.lib.optionals stdenv.isDarwin [
     libiconv darwin.apple_sdk.frameworks.Security ]
   ;

   postInstall = ''
-    mkdir -p $out/share/man/man1
-    cp contrib/man/exa.1 $out/share/man/man1/
-
-    mkdir -p $out/share/bash-completion/completions
-    cp contrib/completions.bash $out/share/bash-completion/completions/exa
-
-    mkdir -p $out/share/fish/vendor_completions.d
-    cp contrib/completions.fish $out/share/fish/vendor_completions.d/exa.fish
-
-    mkdir -p $out/share/zsh/site-functions
-    cp contrib/completions.zsh $out/share/zsh/site-functions/_exa
+    installManPage contrib/man/exa.1
+    installShellCompletion --name exa contrib/completions.bash
+    installShellCompletion --name exa.fish contrib/completions.fish
+    installShellCompletion --name _exa contrib/completions.zsh
   '';

   # Some tests fail, but Travis ensures a proper build

I went ahead and squashed the commits together and force-pushed. No file changes, just git history.

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review-may-2019/3032/38

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review-may-2019/3032/45

the previous structured versions allowed to load completion while in nix-shell (which was great). The new one will work only after postInstall :(

@teto What's your actual use-case here? You're running buildPhase and then, what, manually instructing your shell to load the completions so you can use them when invoking the tool from the build folder? Is there a reason not to just run installPhase too at this point?

yes that's my usecase.
Running installPhase tends to fail as it won't be able to write to $out unless you change it (and let's not mention multioutput scenarios). Running installPhase can take some time too. And  the installPhase is written so that it works after running a buildPhase but when in a nix-shell, most of the time you don't necessarily run buildPhase. For instance python enters develop mode.

@teto Is your goal to use this generically with arbitrary packages? Because if you're working on a specific package, surely you can just source the completion files from wherever you know they are.
Also if you're not running buildPhase then the structured approach wouldn't necessarily work for you anyway, because some packages may generate their completion files while building. Though admittedly that's pretty rare.
In any case, I liked the fact that the structured approach let you find the shell completions outside of the install process, but I have to admit the approach this PR currently takes is probably simpler to get people to use, more of a drop-in replacement for existing solutions, and also supports something the structured approach didn't, which is shell globbing.

If you have any ideas on how to regain the ability to source shell completions from within nix-shell, I'm all ears. Maybe we could do something like encourage people to define a phase like
installShellFilesPhase = ''
installManPage doc/foobar.1
'';

and we could configure this automatically to run after installPhase, and then you could do something special with nix-shell that redefines those shell functions such that you can just invoke installShellFilesPhase and it would source the completions.
One downside to this approach is anyone who doesn't use the separate installShellFilesPhase wouldn't be compatible with the automatic sourcing for nix-shell.

Something along these lines.
What matters is to make available the zsh/bash paths to the shell script. __structuredAttrs looked nice but apparenlty it's not good enough. I am thinking of bash arrays/parsable string. Sthg like makeFlags that could be named zshCompletionFiles for instances.

The problem is anything complex, people aren't going to use. With the current approach, it works pretty much the way people normally expect, except instead of having to remember where exactly the files get installed, they just use this shell function to install it (but it's otherwise done at the same time, in installPhase).
I liked the structured approach because it preserved structured data in a way you could take advantage of e.g. with what you're proposing, but it was definitely more complicated and harder for people to understand exactly what it's doing.
I'm not really sure how to get the best of both worlds. Like I said, we might possibly convince people to do something like write their shell script installations in a separate var installShellFilesPhase, but I'm not all that optimistic about it when the "obvious" solution is to just stick the shell functions into installPhase.

I just had a look at __structuredAttrs, what a shame it breaks builders (but the future is bright).
What's hard about defining :
 zshCompletionFiles = [ "_exa=contrib/completions.zsh" ];
(btw do we really need the _exa ? this could be deduced from pname ?)
Then the installPhase could natively install the completion (rather than a setupHook).
It would allow myself or another to add some code later on for the nix-shell case.

(btw do we really need the _exa ? this could be deduced from pname ?)

Yes because the pname isn't necessarily the same thing as the executable name, and the package could install multiple executables.

What's hard about defining :
zshCompletionFiles = [ "_exa=contrib/completions.zsh" ];
[…]
Then the installPhase could natively install the completion (rather than a setupHook).

How do you get people to write this
zshCompletionFiles = [ "_exa=contrib/completions.zsh" ];
installPhase = ''
  installShellFiles $zshCompletionFiles
'';

when they could just write
installPhase = ''
  installShellFiles _exa=contrib/completions.zsh
'';

Especially since this approach doesn't even handle edge cases like paths that have spaces in them (Nix arrays get exposed to bash just as space-separated strings, and if you escape the elements of the array, you then need to pass the whole thing to eval to get it to handle the escapes/quotes properly, so that's actually eval installShellFiles $zshCompletionFiles).

making installShellFiles a default hook would make sense. Then you don't need to modify installPhase. modifying the installPhase can be tricky too (must remember to properly trigger the pre/post hooks)
As for the space default, I believe it's so rare that we could leave it as an edgecase until __structuredAttrs becomes a thing.

As for the space default, I believe it's so rare that we could leave it as an edgecase until __structuredAttrs becomes a thing.

Given that Bash doesn't have any support for JSON I'm not expecting to be using __structuredAttrs with the default builder any time soon.

At this point, what's stopping this PR from being merged?

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review-may-2019/3032/53

Thanks for your patience 🙂
Rebased to master in 43dade238f39fc3edb6c6be6d318e4f7f990f971.

I have a use case for making installShellCompletion accept the completions via stdin. In kitty the code for installing the completions looks something like this:
mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
"$out/bin/kitty" + complete setup zsh > "$out/share/zsh/site-functions/_kitty"
"$out/bin/kitty" + complete setup fish > "$out/share/fish/vendor_completions.d/kitty.fish"
"$out/bin/kitty" + complete setup bash > "$out/share/bash-completion/completions/kitty.bash"

It could currently be rewritten as
mkdir 'completions'
"$out/bin/kitty" + complete setup zsh > 'completions/_kitty'
"$out/bin/kitty" + complete setup fish > 'completions/kitty.fish'
"$out/bin/kitty" + complete setup bash > 'completions/kitty.bash'

installShellCompletion --zsh 'completions/_kitty'
installShellCompletion --fish 'completions/kitty.fish'
installShellCompletion --bash 'completions/kitty.bash'

to use installShellCompletion. This is much more verbose than before. I propose adding the possibility of making installShellCompletion read stdin. The above code could then be written as follows for example:
"$out/bin/kitty" + complete setup zsh | installShellCompletion --zsh -
"$out/bin/kitty" + complete setup fish | installShellCompletion --fish -
"$out/bin/kitty" + complete setup bash | installShellCompletion --bash -

Is this a good place for this feature request or does it belong in a new issue or in the Nix community?

I just ran into this same scenario myself. My thought was to do something like
installShellCompletion \
  --zsh --exec “$out/bin/kitty + complete setup zsh” \
  --fish --exec “$out/bin/kitty + complete setup fish” \
  --bash --exec “$out/bin/kitty + complete setup bash”

but perhaps the stdin approach is better. Note that in both cases we actually need to throw in --name flags as well or it won’t know what to actually name the file.
In any case, this should go in a separate issue. If you want to file it that would be great, and please tag me on it.

authors: Luflosi bjornfor lilyball nixos-discourse rycee teto


text:
codeowners: add jonringer as python packages codeowner

Motivation for this change
@FRidh has a lot on his plate, I would like to help him out. For most python packages, my knowledge should suffice, and should enable him to focus on other things.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

That's fine, i usually check github like 10x a day now... so the spam shouldn't be too overwhelming

I'll take that as everyone is okay with me getting spammed :)

Thanks! Be prepared for the notifications avalanche ;-)

source: gharchive/pull-request

authors: FRidh jonringer

repo: NixOS/nixpkgs

license: MIT

license_type: permissive

license_source: github-api


text:
btrfs-progs: 5.2.2 -> 5.3.1

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/btrfs-progs/versions.
meta.description for btrfs-progs is: '"Utilities for the btrfs filesystem"'.
meta.homepage for btrfs-progs is: '"https://btrfs.wiki.kernel.org/"

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 5.3.1 with grep in /nix/store/38cwx27sgxc7j01jbc3njifsq01az60p-btrfs-progs-5.3.1

directory tree listing: https://gist.github.com/bb0b271c149024830d18441cd72d35d9

du listing: https://gist.github.com/1b04ff05b8a2a83759d0726f162ff58f

Rebuild report (if merged into master) (click to expand)

450 total rebuild path(s)
156 package rebuild(s)
156 x86_64-linux rebuild(s)
139 i686-linux rebuild(s)
18 x86_64-darwin rebuild(s)
137 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
adapta-gtk-theme
almanah
atom
atom-beta
bareos
bedup
bees
btrbk
btrfs-progs
buildah
cantata
chrome-gnome-shell
clementine
clementineUnfree
compsize
containerd
cri-o
deepin.dde-file-manager
deja-dup
docker
docker-edge
docker-gc
docker_18_09
docker_19_03
dropbox-cli
ekiga
empathy
evolution-data-server
far2l
feedreader
folks
gfbgraph
glusterfs
gnome-multi-writer
gnome-online-accounts
gnome-photos
gnome-recipes
gnome2.gvfs
gnome3.bijiben
gnome3.cheese
gnome3.empathy
gnome3.evolution
gnome3.evolution-data-server
gnome3.evolution_data_server
gnome3.file-roller
gnome3.folks
gnome3.geary
gnome3.gfbgraph
gnome3.gnome-applets
gnome3.gnome-books

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/38cwx27sgxc7j01jbc3njifsq01az60p-btrfs-progs-5.3.1 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A btrfs-progs https://github.com/r-ryantm/nixpkgs/archive/265c1be3053478555c40f5b30f6a1a5c604c96a1.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/38cwx27sgxc7j01jbc3njifsq01az60p-btrfs-progs-5.3.1
ls -la /nix/store/38cwx27sgxc7j01jbc3njifsq01az60p-btrfs-progs-5.3.1/bin

cc @7c6f434c for testing.

This update was sponsored by the generous Patreon donations of @lsix. Thanks!

authors: r-ryantm ryantm


text:
fribidi: add patch for CVE-2019-18397

Motivation for this change
Backport of #73516
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Notify maintainers
cc @

@GrahamcOfBorg build pango libass fluxbox abiword

@GrahamcOfBorg build fvwm


text:
alacritty: set priority to -1 (fix #71300)

This should allow alacritty to override any terminfo/a/alacritty* files
provided by ncurses with the ones freshly compiled with tic.

Motivation for this change
Fix https://github.com/NixOS/nixpkgs/issues/71300
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @Mic92 @worldofpeace @NilsIrl

This change is

I tested it and it doesn't work or fix anything for me.

Rather than hardcoding the number, I recommend to use the helpers in lib/meta.nix like hiPrio that could be used from all-packages.nix: alacritty = hiPrio (callPackage ...);

@GrahamcOfBorg build alacritty

@NilsIrl could you retest before I merge please ?

Doesn't fix the problem for me

Confirmed, it only merges in the terminfo variants that are not in ncurses.
$ ls -la /run/current-system/sw/share/terminfo/a/alacritty*
lrwxrwxrwx 91 root  1 Jan  1970  /run/current-system/sw/share/terminfo/a/alacritty -> /nix/store/yfpiz0n3dykir9r2skbxlvcard9xp275-ncurses-6.1-20190112/share/terminfo/a/alacritty
lrwxrwxrwx 98 root  1 Jan  1970  /run/current-system/sw/share/terminfo/a/alacritty+common -> /nix/store/yfpiz0n3dykir9r2skbxlvcard9xp275-ncurses-6.1-20190112/share/terminfo/a/alacritty+common
lrwxrwxrwx 98 root  1 Jan  1970  /run/current-system/sw/share/terminfo/a/alacritty-direct -> /nix/store/yfpiz0n3dykir9r2skbxlvcard9xp275-ncurses-6.1-20190112/share/terminfo/a/alacritty-direct

Right now I switched to TERM=alacritty-direct in ~/.config/alacritty/alacritty.yml:
env:
#  # TERM variable
#  #
#  # This value is used to set the `$TERM` environment variable for
#  # each instance of Alacritty. If it is not present, alacritty will
#  # check the local terminfo database and use 'alacritty' if it is
#  # available, otherwise 'xterm-256color' is used.
#  TERM: xterm-256color
   TERM: alacritty-direct

@NilsIrl @Mic92 Thanks a lot for your help.
If that's the case, I'll close the PR for now and update the derivation as soon as the release is out.


text:
open-vm-tools 10.3.10 -> 11.0.1

Motivation for this change
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @joamaki

@GrahamcOfBorg build open-vm-tools

Didn't someone from the NixOS community try to upstream changes like this at one point? @peterhoeg do you have any recollection on that?

Oh, it's has been a while and I forgot to merge this patch.

Didn't someone from the NixOS community try to upstream changes like this at one point?

I also see no reason why such a patch ever could be rejected, if it was.
If I were the maintainer I'd merge it with swiftness :smile:

We cannot claim /etc/os-release ref https://github.com/vmware/open-vm-tools/pull/35#issuecomment-226100905 for NixOS (well, we can if we do the patching on our side but it will not be accepted by upstream).
Upstream is terribly non-responsive as a proper fix was discussed in 2015 by @wmertens which to this date hasn't been even been acknowledged.

authors: CheariX aanderse peterhoeg worldofpeace


text:
Sort the maintainer-list

The maintainer-list has a comment about keeping it sorted. Sadly, it still got unsorted.
I have sorted it using nix eval '(import <nixpkgs/maintainers/maintainer-list.nix>)' | nixfmt, so that we can all sleep soundly again.
cc: @grahamc
TODO: investigate impact on maintainer scripts running git blame on this list.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/please-fix-all-packages-which-were-broken-by-the-qt-wrapping-changes/6444/17

authors: nixos-discourse yorickvP


text:
webkitgtk: 2.8.0 -> 2.8.2

Untested, but the delta contains only bugfixes so should be fine.

Pushed 2.8.3.

authors: joachifm vcunat


text:
mariadb: remove withoutClient

When used as a global override, it breaks most of the options in the
mysql module, such as ensureDatabases, ensureUsers, initialDatabases,
initialScript.
We could use .client there, but if the reasoning behind this was
closure size reduction, we now end up with the same (or a bigger)
runtime closure and more complexity.
Apart from the options exposed by the mysql module, the client is also
likely to be required for local backups or DBA tasks anyways.
Instead of dealing with all the increased complexity of this for no
arguable benefit, let's just remove the withoutClient argument.
Storage space on mysql servers shouldn't be that much of an issue.
Closes #82428.

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

@flokli need remove cmake-without-client.patch

authors: Izorkin flokli


text:
routino: enable on darwin

Motivation for this change
Enable on darwin.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)

$ curl -O https://download.geofabrik.de/europe/estonia-200712.osm.pbf
$ ./result/bin/planetsplitter --dir=./out --prefix=Estonia \
  --tagging=./result/share/routino/tagging.xml --parse-only --append estonia-200712.osm.pbf
$ ./result/bin/planetsplitter --dir=./out --prefix=Estonia \
  --tagging=./result/share/routino/tagging.xml --process-only

[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Did you try whether both patches are still required on macOS?

Did you try whether both patches are still required on macOS?

Sure, both patches are required.

Thanks!

authors: dotlambda sikmir


text:
swiftformat: 0.44.9 -> 0.45.6

Motivation for this change
Version bump. The changelog is here.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

cc @alyssais – thank you for merging my earlier PR, #83113! Unfortunately I had let it get stale and now there’s an even newer version to upgrade to.

@GrahamcOfBorg build swiftformat

@bdesham please resolve the merge conflict.

@bdesham please resolve the merge conflict.

@SuperSandro2000 I have resolved the merge conflict and bumped the version.

@SuperSandro2000 I have resolved the merge conflict and bumped the version.

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 95598 run on x86_64-darwin 1

1 package built:

swiftformat

This is a semi-automatic executed nixpkgs-review which is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
If you have any questions or problems please reach out to SuperSandro2000 on IRC.
Result of nixpkgs-review pr 95598 run on x86_64-darwin 1

1 package built:

swiftformat

authors: SuperSandro2000 alyssais bdesham


text:
🛑 libreddit libreddit.spike.codes is down

In 22bec2d, libreddit libreddit.spike.codes (https://libreddit.spike.codes) was down:

HTTP code: 502
Response time: 20224 ms

Resolved: libreddit libreddit.spike.codes is back up in c9fd0eb after 4 hours, 15 minutes.

source: gharchive/issue

repo: NoPlagiarism/services-personal-upptime


text:
🛑 GotHub g.opnxng.com is down

In 532aeb2, GotHub g.opnxng.com (https://g.opnxng.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: GotHub g.opnxng.com is back up in 611a8f7 after 44 minutes.


text:
🛑 libreddit libreddit.spike.codes is down

In 09b85c9, libreddit libreddit.spike.codes (https://libreddit.spike.codes) was down:

HTTP code: 0
Response time: 0 ms

Resolved: libreddit libreddit.spike.codes is back up in 75934c9 after 27 minutes.


text:
🛑 libreddit libreddit.domain.glass is down

In 6eae135, libreddit libreddit.domain.glass (https://libreddit.domain.glass) was down:

HTTP code: 503
Response time: 314 ms

Resolved: libreddit libreddit.domain.glass is back up in c0be4b3 after 12 minutes.


text:
🛑 GotHub g.opnxng.com is down

In 588af26, GotHub g.opnxng.com (https://g.opnxng.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: GotHub g.opnxng.com is back up in 7720481 after 8 minutes.


text:
Webhook not working for PokeAlarm

Hi, Im trying to send notifications to webhook in order to use them with Pokealarm but it seems not working. could you pls tell me if Im missing anything?
I guess setting NOTIFY to True and adding the webhook should be enaugh but in the output I can see "Notifications sent: 0". and Pokealarm running doesnt pick anything.
Below you can see notifications value in the config. I have also try specifying as always notify a certain number of common IDs, but no luck.
Any idea?
Thanks!
NOTIFY = True  # enable notifications

# create images with Pok  mon image and optionally include IVs and moves
# requires cairo and ENCOUNTER = 'notifying' or 'all'
TWEET_IMAGES = True
# IVs and moves are now dependant on level, so this is probably not useful
IMAGE_STATS = False

# As many hashtags as can fit will be included in your tweets, these will
# be combined with landmark-specific hashtags (if applicable).
HASHTAGS = {AREA_NAME, 'Monocle', 'PokemonGO'}
#TZ_OFFSET = 0  # UTC offset in hours (if different from system time)```

# the required number of seconds remaining to notify about a Pok  mon
TIME_REQUIRED = 600  # 10 minutes

### Only set either the NOTIFY_RANKING or NOTIFY_IDS, not both!
# The (x) rarest Pok  mon will be eligible for notification. Whether a
# notification is sent or not depends on its score, as explained below.
NOTIFY_RANKING = None

# Pok  mon to potentially notify about, in order of preference.
# The first in the list will have a rarity score of 1, the last will be 0.
NOTIFY_IDS = tuple(range(1, 152))

# Sightings of the top (x) will always be notified about, even if below TIME_REQUIRED
# (ignored if using NOTIFY_IDS instead of NOTIFY_RANKING)
#ALWAYS_NOTIFY = 14

# Always notify about the following Pok  mon even if their time remaining or scores are not high enough
ALWAYS_NOTIFY_IDS = tuple(range(1, 152))

# Never notify about the following Pok  mon, even if they would otherwise be eligible
#NEVER_NOTIFY_IDS = TRASH_IDS

Override the rarity score for particular Pok  mon
# format is: {pokemon_id: rarity_score}
#RARITY_OVERRIDE = {148: 0.6, 149: 0.9}

# Ignore IV score and only base decision on rarity score (default if IVs not known)
#IGNORE_IVS = False

# Ignore rarity score and only base decision on IV score
#IGNORE_RARITY = False

# The Pok  mon score required to notify goes on a sliding scale from INITIAL_SCORE
# to MINIMUM_SCORE over the course of FULL_TIME seconds following a notification
# Pok  mon scores are an average of the Pok  mon's rarity score and IV score (from 0 to 1)
# If NOTIFY_RANKING is 90, the 90th most common Pok  mon will have a rarity of score 0, the rarest will be 1.
# IV score is the IV sum divided by 45 (perfect IVs).
FULL_TIME = 1800  # the number of seconds after a notification when only MINIMUM_SCORE will be required
INITIAL_SCORE = 0.7  # the required score immediately after a notification
MINIMUM_SCORE = 0.4  # the required score after FULL_TIME seconds have passed

### The following values are fake, replace them with your own keys to enable
### notifications, otherwise exclude them from your config
### You must provide keys for at least one service to use notifications.

#PB_API_KEY = 'o.9187cb7d5bxxxxxxxxd63eaa8494'
#PB_CHANNEL = 0  # set to the integer of your channel, or to None to push privately

#TWITTER_CONSUMER_KEY = '53d9972xxxxxxxxxxxxxx7bf101d'
#TWITTER_CONSUMER_SECRET = '64b9ebfxxxxxxxxxxxxx8eb3e80d3d18bf9e00'
#TWITTER_ACCESS_KEY = '1dfb143d4f29-6xxxxxxxxxxxxxx951c4227cdf768b'
#TWITTER_ACCESS_SECRET = 'e743ed13xxxxxxxxxxxxxx29ec4a61'

## Telegram bot token is the one Botfather sends to you after completing bot creation.
## Chat ID can be two different values:
## 1) '@channel_name' for channels
## 2) Your chat_id if you will use your own account. To retrieve your ID, write to your bot and check this URL:
##     https://api.telegram.org/bot<BOT_TOKEN_HERE>/getUpdates
#TELEGRAM_BOT_TOKEN = '366172xxxxxxxxxxxxxxxxo9YbPlq8tsc'
#TELEGRAM_CHAT_ID = '-10xxxxxx8'

WEBHOOKS = {'http://127.0.0.1:4000'}

Notifications sent: 0
@Murkowk
erm... use triple quote syntax please, it's hard to read.
```test```
#TELEGRAM_BOT_TOKEN = '366172xxxxxxxxxxxxxxxxo9YbPlq8tsc'
^----- This hash symbol need to remove to activate it

@walaoaaa1234 Hi, I added quote, sorry for that :)
Im not trying to use monocle Telegram notification (this is why I keep commented telegram_bot_token), I would like to use Pokealarm notifications for Telegram so just want to send them to webhooks.
thanks!

@Murkowk
from Wiki
NOTIFY_IDS = None
NOTIFY_RANKING = None
ALWAYS_NOTIFY_IDS = tuple(range(1, 152))

yes, also tried this as one of the first options following the wik, but no way...

@walaoaaa1234, thanks
Got the problem. Needed to set    :ENCOUNTER = 'all'
Now all pkmns are sent to webhook, but got a different problem. seems to be related to python version as Pokealarm is not working with 3.6.
"Encountered error while sending notification (TypeError: name must be a byte string)"
anybody got it working with Monocle?
2017-05-31 15:21:55,285 [    MainProcess][    Server][    INFO] Starting up the Managers
2017-05-31 15:21:55,288 [    MainProcess][    Server][    INFO] PokeAlarm is listening for webhooks on: http://127.0.0.1:4000
2017-05-31 15:21:55,415 [      manager_0][   Manager][    INFO] Horsea ignored: no filters are set
2017-05-31 15:21:56,067 [      manager_0][   Manager][    INFO] Paras ignored: no filters are set
2017-05-31 15:21:56,182 [      manager_0][   Manager][    INFO] Magnemite ignored: no filters are set
2017-05-31 15:21:57,932 [      manager_0][   Manager][    INFO] Goldeen ignored: no filters are set
2017-05-31 15:21:58,555 [      manager_0][   Manager][    INFO] Goldeen ignored: no filters are set
2017-05-31 15:21:59,137 [      manager_0][   Manager][    INFO] Goldeen ignored: no filters are set
2017-05-31 15:21:59,435 [      manager_0][   Manager][    INFO] Magnemite ignored: no filters are set
2017-05-31 15:22:01,226 [      manager_0][   Manager][    INFO] Magnemite ignored: no filters are set
2017-05-31 15:22:01,601 [      manager_0][   Manager][    INFO] Venonat ignored: no filters are set
2017-05-31 15:22:01,659 [      manager_0][   Manager][    INFO] Pidgey notification has been triggered!
2017-05-31 15:22:01,809 [      manager_0][  Telegram][   ERROR] Encountered error while sending notification (TypeError: name must be a byte string)
2017-05-31 15:22:01,810 [      manager_0][  Telegram][    INFO] Telegram (sticker) is having connection issues. 1 attempt of 3.
2017-05-31 15:22:04,922 [      manager_0][  Telegram][   ERROR] Encountered error while sending notification (TypeError: name must be a byte string)
2017-05-31 15:22:04,923 [      manager_0][  Telegram][    INFO] Telegram (sticker) is having connection issues. 2 attempt of 3.
2017-05-31 15:22:08,034 [      manager_0][  Telegram][   ERROR] Encountered error while sending notification (TypeError: name must be a byte string)
2017-05-31 15:22:08,034 [      manager_0][  Telegram][    INFO] Telegram (sticker) is having connection issues. 3 attempt of 3.
2017-05-31 15:22:11,036 [      manager_0][  Telegram][   ERROR] Could not send notification... Giving up.
2017-05-31 15:22:11,132 [      manager_0][  Telegram][   ERROR] Encountered error while sending notification (TypeError: name must be a byte string)
2017-05-31 15:22:11,133 [      manager_0][  Telegram][    INFO] Telegram is having connection issues. 1 attempt of 3.
2017-05-31 15:22:14,229 [      manager_0][  Telegram][   ERROR] Encountered error while sending notification (TypeError: name must be a byte string)
2017-05-31 15:22:14,230 [      manager_0][  Telegram][    INFO] Telegram is having connection issues. 2 attempt of 3.```

thanks for all!

repo: Noctem/Monocle


text:
refactor: split utils

Refactors utils to separate files and updates import paths

@allcontributors please add @mkarkkainen for code

authors: fraxken mkarkkainen

repo: NodeSecure/js-x-ray


text:
Indicate that nothing was executed on rerun

If I rerun a deployment that is already complete, and doesn’t need any further action, the output shouldn’t be “successfully deployed”.

We don't give enough of a visual cue on a rerun where no futures are executed. We should successful deploy when nothing was deployed.

Take a look and see if we isResumed will get us enough information.

repo: NomicFoundation/hardhat-ignition


text:
Hosting on replit

Hi, have you considered hosting this tool on something like replit (https://replit.com/~), to avoid installation?

Hi Bridget,
Have a look at the Blazor version of Topo. It is a browser app, no installation runs on all browsers, computers, phones and tablets.
https://nomisnostab.github.io/Topo-Blazor/

authors: NomisNostab bridget-e-l

repo: NomisNostab/Topo


text:
Database

Dear,
Should I have the database backup file please? Thanks

I guess, you get no database errors.
You can create the database by running a ef command from data project folder like this:
\src\MvcTemplate.Data>dnx ef database update

the same should be done for tests project.

Thank you very much for your prompt reply.
Date: Fri, 25 Dec 2015 22:24:10 -0800
From: notifications@github.com
To: MVC6.Template@noreply.github.com
CC: webaamir@hotmail.com
Subject: Re: [MVC6.Template] Database (#3)
I guess, you get no database errors.
You can create the database by running a ef command from data project folder like this:
\src\MvcTemplate.Data>dnx ef database update
the same should be done for tests project.
—
Reply to this email directly or view it on GitHub.

authors: Muchiachio webaamir

license: mit

license_source: bigquery


text:
ci: resolve final lgtm.com recommendations

Remove conditional code with empty body that was being
used to avoid an unused-parameter compiler warning for
the case where HI_HAVE_BACKTRACE is not set.
The (void) pattern used here is a common alternative -
it avoids the warning, makes for slightly cleaner code
and removes the empty blocks that lgtm is recommending
against.

Thanks!

authors: bjosv natoscott

repo: Nordix/hiredis-cluster


text:
Support for value interpolation

I recently began work on a Tailwind plugin different from yours in that mine did not support grouping or anything like clsx, but similar in that mine introduces a transformer into the Tailwind config, so that I can inject constructed utility names without the entire class name needing to be fully written out.
The goal was to support value interpolation, but it appears your plugin may already cover this too. I just wanted to check to verify that.
My usage looks more like this:
const percent = 27;
const className = twerp(`content-[${percent}%]`, range(0, 100));

Here, a value can be dynamically interpolated using twerp but with all possible interpolatable values please as the second arg, with an array of arrays when multiple interpolatable values are present.
Is something like this already possible and natively supported using Easy Tailwind?

Not that I'm aware of.
The problem, as you know, is that you need to inject all of that into tailwind.
What I do here is basically recalculate everything at that step, only dropping conditionals to generate all classes to be used.
One thing It's not really possible to support without much pain is variables from elsewhere.
Considering your scope, if I had to do it, I would possibly use regex to find all mentions in the code of twerp, change the string interpolation with some random string and have a function that looks for that and replaces that with the values from the range returning all possible classes. Not sure if it would be the best approach for this case though.

@Noriller Thanks for the feedback!
Another idea—and this one would likely take a bit more effort, especially to make it cross-framework compatible—is to interpolate CSS variables instead of actual values, which would drastically lighten the load for Tailwind.
However, if I wanted to support dynamically changing values which would probably be essential here, I'd need to inject inline styling for the CSS car value itself, since handling that value in tailwind would be just as complicated.
In Svelte-land, this would probably end up looking more like a custom rule like…
<Component class="static-utils-here" use:twerp={`content-[${val}]`} />

This rule could inject the tailwind utilities into the class attribute (and the TW config) and also inject the variable value into the element itself via inline styling.
I'll have to see if there's a way of doing something similar and React and Vue. There's probably a fairly straightforward way in both. In react, it'll probably require some use of useRef to manage the DOM mode itself.
Definitely open to more ideas or feedback if you have any. Thanks again! 🙌🏼

Yeah, the impl could be done in vanilla JS, though to make it easy to use in different frameworks, I think some framework-specific wrappers would be needed.
Maybe I'm thinking about this wrong, though. Theoretically, if I build this in vanilla JS and someone wants to use it a React codebase, like below:
const RenderStringAsCSSContent = ({ str }) => {
  return <div className={`content-[${str}]`}>
;
}

In this case, what would handle the creation of the inline style for the CSS var? Ideally, this would render to this:

Or are saying that this could be done manually without any need for twerp, like this:
import { useId } from 'react';

const RenderStringAsCSSContent = ({ str }) => {
  const twerpId = `--twerp-${useId()}`;
  return <div style={{ [twerpId]: str }} className={`content-[var(${str})]`}>
;
}

This could certainly work, and more or less, I'm really only seeking to find a way to streamline this, so we can essentially write it as simply as <Component class={twerp(content-[${val}])} /> (or similar).
As you said, I'll likely still need to inject something into Tailwind, which I'm okay with. I'd love to find a way to make my transformer for twerp compatible with yours, or at least not conflicting, so both tools can be used in the same projects by Tailwind CSS users who really want to maximize their productivity. 🙂

From what I understand, it has to create the classes and inject them, with variable names and all.
Being able to sync between renders and SSR would probably be a must, so it wouldn't be a trivial thing to do.
You could also lookup on how actual plugins work and do something like content-[{0,${percent},100}] and have it create all possible values for that. Not sure how the interpolate would work in this case though...

Yeah, I'll give it some more thought and see what's possible. Thanks for thinking through all this with me!
Something like this might be less "nice" but easier for the parser to deal with, since it'll break up the strings from the dynamic bits:
<Component class={twerp([`sm:w-[`, range(0, 100), `px]`])} />

or something like this pseudo-code:
function twerp(prefix, values, suffix = '') {
  return values.map(v => `${prefix}-[${v}${suffix}]`).join(' ');
}

<Component class={twerp('sm:w', range(0, 100), 'px')} />

That part is not really a problem.
Maybe you can try something like this:
https://github.com/Mokshit06/tw-variants
Here is a babel plugin, so you could expand on whats needed and still keep the interpolation in the finished code.

authors: Noriller brandonmcconnell

repo: Noriller/easy-tailwind


text:
Separate checkpoint save and best save

Description
Please include a summary in English, of the changes in this pull request. If it closes an issue, please mention it here.
Closes: #385
You should link at least one existing issue for PR. Before your create a PR, please check to see if there is an issue for this change.
PRs from forked repository not accepted.
Change(s)

Separate checkpoint save and best save
Call only once best save method at the end of training

Changelog
If you PR to dev branch, please add a brief summary of the change to the Upcoming Release section of the CHANGELOG.md file and include a link to the PR (formatted in markdown) and a link to your github profile.
For example,
- Added a new feature by `@myusername` in [PR 2023](https://github.com/Nota-NetsPresso/netspresso-trainer/pull/2023)

Code Formatting
If you PR to either master or dev branch, you should follow the code linting process. Please check your code with lint_check.sh in ./scripts directory.
For more information, please read the contribution guide in CONTRIBUTING.md.

@aychun

repo: Nota-NetsPresso/netspresso-trainer


text:
Frage: Economy API

Issue description

Expected result: What were you expecting to happen?
Actual result: What actually happened?

Kleine Frage, gibt es bereits ein unterstütztes Economy Plugin für diese Version?
Wenn ja, welche?
Steps to reproduce the issue

...
...

OS and versions

Plugin Version:
PocketMine-MP:
PHP:
Game version: PE/Win10 (delete as appropriate)

Other Plugins

If you remove all other plugins, does the issue still occur? Yes/No (delete as appropriate)
If the issue is not reproducible without other plugins:

Have you asked for help in the community discord before creating an issue?
Can you provide sample, minimal reproducing code for the issue? If so, paste it in the bottom section.

Console error, backtrace or other files

Actually you have to update EconomyAPI by yourself

repo: NoteLand/PlotSquaredPM


text:
.NET Framework defualt to PackageReference

This page states that:

.NET Framework projects support PackageReference, but currently default to packages.config.

That default doesn't appear to be true in VS 15.9.17.

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

ID: ff707668-94d6-25a5-9139-b18cc1b6b446
Version Independent ID: 494847b9-4894-0beb-7ffa-39a2359999fa
Content: NuGet PackageReference format (package references in project files)
Content Source: docs/consume-packages/Package-References-in-Project-Files.md
Product: nuget
GitHub Login: @karann-msft
Microsoft Alias: karann

@ChrisMaddock - can you elaborate? Are you saying it defaults to something else in 15.9.17?

Yes, sorry. The doc says the default for .NET framework projects is packages.config.
In my version of VS (15.9.7) this appears to be incorrect. It defaults instead to PackageReference. I don’t know when that might have changed, sorry.

The doc is indeed accurate.
Check your setting to see if you have selected the default to be PackageReference.
You can do that by going to Tools>Options>NuGet Package Manager>General

My hunch is your default format is "PackageReference" and you have "Allow format selection...." unchecked.

@ChrisMaddock - I hope that helped. Please create an issue on the Home repo if you have product feedback.

Hey @karann-msft - sorry it's taken me a while to get back to this. You were spot on - no doc change needed. Thanks! 😄

authors: ChrisMaddock karann-msft


text:
Website does not use full scale on smaller viewports

On smaller viewports (less than roughly 480px width), the document appears to be smaller than the viewport. This is mostly noticeable in the navigation bar, which has a darker background that doesn't extend the full width of the viewport.

Using position: fixed on the document container to force a full rect fixes the main layout being too small, but pushes navigation items off the right edge of the viewport:

Looks like its missing the magic viewport initial scale stuff meta tag?

Nevermind, only one of the pages is

repo: NucleoidMC/nucleoid-stats


text:
Feature: Allow starting a windows executable with minimized console

Hello,
I've lately designed a backup program which works both with a CLI and a GUI, working on both linux and windows.
The idea is to have a GUI when running the program without parameters, and use the CLI in order to achieve scheduled tasks etc.
When run on Windows without parameters, a command line window shows, then the GUI appears.
I have a "user" problem, being that some users just click into the command line window, which halts GUI execution.
I've seen a couple of users complaining about this so far.
Would there be perhaps a way to run the command line window minimized, via let's say a --windows-minimize-console switch or so ?
That would totally solve my "user related" issues.
Thanks.
PS: Willing to sponsor a bit on this

Nuitka version, full Python version, flavor, OS, etc. as output by this
command.

python -m nuitka --version

1.4.2
Commercial: 2.0.0
Python: 3.10.7 (tags/v3.10.7:6cc6b13, Sep  5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)]
Flavor: CPython Official
Executable: c:\Python310-64\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: 10
Version C compiler: ~\AppData\Local\Nuitka\Nuitka\Cache\downloads\gcc\x86_64\11.3.0-14.0.3-10.0.0-msvcrt-r3\mingw64\bin\gcc.exe (gcc).

How did you install Nuitka and Python

git clone https://github.com/nuitka/nuitka-commercial
python -m pip install c:\path\to\nuitka-commercial

Also supply a Short, Self Contained, Correct, Example

Run the following program without arguments, click into the console window, then the GUI freezes until someone types a key into the console window (the actual reason being that windows considers console clicks as select operation for copy/pasting text).
from argparse import ArgumentParser
import PySimpleGUI as sg

def main_cli():
    print("I am running a CLI")

def main_gui():
    sg.Popup("Now the console window is open, users click inside, and hence will block GUI program")

if __name__ == "__main__":
    parser = ArgumentParser(prog="Some mixed gui and cli program")

    parser.add_argument(
        "--check", action="store_true", help="Do something fancy"
    )

    args = parser.parse_args()

    if args.check:
        main_cli()
    else:
        main_gui()

Provide in your issue the Nuitka options used

c:\python\310-64\python -m nuitka --standalone mysuperprogram.py

I am not sure that is even feasible. I doubt that as a console Window, we  can interact with other people and their Windows. This could be done I guess with a third mode, where the program is not launched on a terminal, but opens up a terminal and connects (creates actually) its sys.stdin and sys.stdout and then you more likely have full control over it this Windows. In that mode, you launch as a GUI application, but come "hybrid".
Knowing you as a capable Python guru, mastermind of Dejong Stacks, can you maybe come up with a prototype code for that in pure Python, and I am pretty sure, we could then change things to --console-mode=gui|hybrid|console with the hybrid being probably a good idea on all platforms.
I kind of like that idea, would make Nuitka automatically a better platform to run on, right?
Regarding the blockage, I am not sure if the original terminal has more powers over you than a newly created terminal windows, but I would expect that to be the case. It might also be a bug of PySimpleGUI, but that I do not care about of course.

Sorry if I'm not educated enough here, but shouldn't the C code that launches the iniitial window do this ?
I thought of something like `ShowWindow(GetConsoleWindow(), SW_MINIMIZE); initially.
As for the blockage, one can block any console window by clicking in it (at least on windows 7/10), which leaves one "white on black" character.

As a console application, I do not think you can show window like this? You can try it from Python, but I have not have had success in other contexts with things like this. I forget exactly what context this was, but I recall you couldn't do all stuff in console mode, can you? The ShowWindow is something you could try out with pywin32 as a proof of concept. If something works with pure Python, we can make it to C.
Regarding the console, I guess some sort of buffering for stdout and non-blocking read access will do the trick there. Our sys.stdin and sys.stdout could be implemented such that the blocking is not affecting the program.

I've succesfully managed to make 3 line patch that, once the window is launched, minizes it.
Here's the code:
import sys
import os
import win32gui
import win32con

if os.name == 'nt':
    CURRENT_EXECUTABLE = os.path.abspath(sys.argv[0])
    hwndMain = win32gui.FindWindow(None, CURRENT_EXECUTABLE)
    if hwndMain:
        win32gui.ShowWindow(hwndMain, win32con.SW_MINIMIZE)

Of course this proof of concept launches after the onefile code has finished uncompressing the actual executable and data, which takes a couple of seconds.
Having this code run early by C code would probably be better.
As for the console, I doubt you can do something about this, since it's not even a nuitka related issue.
For instance, just reading a file with type c:\big_file.txt will also block once you click into the cmd window.

So, that means we would have the right to minimize the terminal we are running on, very nice. The C equivalent of that code should be easy to add indeed. What about opening a new console after --disable-console, just opening a CON: or something might work?

From my cursory trials, I could not open a console window, maybe from a cmd subprocess, it can be done, but it looked as if cmd.exe just fails when forked in GUI mode, seems it will not create a terminal. Not nearly sure of that though, but I guess it would make sense.

So, that means we would have the right to minimize the terminal we are running on, very nice. The C equivalent of that code should be easy to add indeed. What about opening a new console after --disable-console, just opening a CON: or something might work?

Sorry, I don't understand. You mean I open a console in my program if I need CLI support ?
Doesn't work that way, since my program takes arguments when launched, which would be lost.
In the usecase of a hybrid CLI/GUI app, a --minimize-console like switch would resolve the issue, since when run in cmd, there would be no extra window to close and no window handle would be found since there's no window with the program's name.
But when run in GUI, the extra window would be minimized by the above code, which is okay.
I don't see a potential better version, since the only way to detect if program is not run from console, is finding the console window with the programs path as name.

Once I find the time, I will add the equivalent of your code as an option. I will really hate for it to be a separate one, but I guess making --console=no|minimized|yes a mode is too much of an overkill. But since these options have becomes Windows only, maybe it's also time to clean them up and make the old options invisible, but still work. Not sure.

Indeed, having a --console=no|minimized|yes option make more sense.
Looking out for this whenever it's ready.

Pushing this back to 1.6, don't think I want to delay 1.5 with 3.11 support due to it.

This might be solved by #2682 where it seems we found out, that it would be possible to re-attach to existing consoles if any, or to create one ourselves, which I assume we could then also start minimized. I am however putting this to 2.2 milestone, as it's not sure when we will have the time during 2.1 for such a big new development.

I have the same primary use-case as described in this ticket, and the new 'attach' option from #2682 is a great step in the right direction (--windows-console-mode=force|attach|disable).
Executing my script without arguments starts a GUI, but you can also interface with it via command-line arguments. The new 'attach' option provides greater flexibility, but the process seems to automatically go into background mode. This makes the command-line output look a bit strange if you expect standard command-line behavior.
I am suggesting a fourth option that would attach to a console if it exists and then avoid going into the background. Something like: --windows-console-mode=blockattach
Comparing to Linux, the 'blockattach' would be:
my_nuitka_compiled_binary --show-progress data.bin
Whereas the current 'attach' is more like:
my_nuitka_compiled_binary --show-progress data.bin &

I was also super excited, because it's a nice compromise, like being able to see debug information if you wish, without being forced to.
I think Windows might do this by design, meaning, as a GUI program, you launch detached and async from the console and in the background, also releasing the console. You are entitled to getting access to your parent process console yet, but you can't block your parent process from using it.
From my googling, it cannot be done. I will welcome to be proven wrong. The next best thing apparently would be to have a batch file that using "start" and blocks until your program exits. You users then can launch that, and it being a console program, it retains total control over the console while it launches the exe, which is GUI. I wonder if there would usefulness in creating that batch automatically. Let me know if you think that's some help, since your program will be launched as "yourprogram" the "yourprogram.cmd" will win over "yourprogram.exe" if you do it from path.

I am putting this to help wanted, but honestly, it might not be doable. The only thing we can do, is to create a mode, where we have a new console Windows being created minimized and we feed it ourselves, but that might be hard to do, I am not sure how that works and somebody needs to figure this out, which is how attach came about.

Nah, I am convinced it's not doable, so lets not have this other than to be found in search.

Hey @kayhayen,
I've been working on some sane cmd window behaviour which is more or less like this and have had some success. Here is the patch I'm using for my application.
Idea was also to just have a cmdline application which is sometimes called as a protocol-handler by a browser and shouldn't spawn a cmdline.
Here's the patch that actually works for me on a win10 vm:
https://gitlab.com/modding-openmw/umo/-/blob/5e748df0055cedf0c50f2883c9d8dffe1bb5977e/nuitka.patch

@fallchildren2 its still going to flash the console window, if you use console mode attach, it will not open one at all, maybe that's more like what you need?
I am however not against adding a mode, that is like "force", say "minimized" and have it run your patch. Your patch only works for onefile, and for standalone, we ought to maybe do the same thing, and where we tolerate the onefile parent pid to be there as well.
Can you put your code into a PR? I would merge it from there, maybe refactoring it to apply for both modes and have it as a console mode to pick.

Seems wer are going to have this after all still, even with a flashing console, that is how good it gets then.

@fallchildren2 its still going to flash the console window, if you use console mode attach, it will not open one at all, maybe that's more like what you need?

It doesn't flash for me. Hmm.. maybe my VM is too slow for the falshing to occur. The console mode attach is behaving strangely when used on the comandline. The output is fine but input is completely broken. It behave like a $ tail -f bla & on a unix - output still on the console but the next prompt appears.

I am however not against adding a mode, that is like "force", say "minimized" and have it run your patch. Your patch only works for onefile, and for standalone, we ought to maybe do the same thing, and where we tolerate the onefile parent pid to be there as well.

The  code doesn't really minimize but hides the console completely. So maybe minimized doesn't quite fit. But I'm struggling to find a better name for it.

Can you put your code into a PR? I would merge it from there, maybe refactoring it to apply for both modes and have it as a console mode to pick.

Yes, will do!

Thanks to @fallchildren2 who not only submitted a snippet but turned it into a full blown working solution, this is now a new option, that I can add to the docs now. It's on develop and will be part of 2.5

Part of the 2.5 release I just made. Docs update are still to be done though.

authors: deajan fallchildren2 hoxi kayhayen

repo: Nuitka/Nuitka


text:
Camera Direction Not Saving

After I make a camera point, the zoom in amount seems to work fine, but the direction (north, south, east, west) doesnt save. The first couple times pressing the hotkey for the camera point it will remember, but a minute later the directions wont work, then when i go to check the side-bar app, the camera points are back to "unchanged".

Turns out the direction was saved correctly but it was never loaded when loading the camera points. So once this is fixed, they should all appear like they have been saved previously.
Thanks for letting me know!

authors: HiImSevan NullNameException

repo: NullNameException/camera-points


text:
Items can't be stacked

Items such as paper can't be stacked any more in version 3.5.29. The previous version in use is 3.5.8.
Also, durability bar displayed many times takes up too much screen space in item tooltip box.

Further test found that when an item configured with durability, each use will add a line to the durability bar, make the item unbreakable.

I corrected the bug that caused the durability bar to stack infinitely in commit 7f90c4c2b956b72682719c92e9be444423413572. While doing that, I also noticed that the code for setting the durability of an item is utterly broken and needs alot more work. Did this bar work before or was it a result of one of my earlier commits?

Durability worked as usual in v3.5.8. For the latest commit i tried but it does not work yet - the durability bar does not decrease while using the item.

Fixed this issue in commit 6f6c8a48b2de7c67ebdfb7f6d8dce76f46a9785c. The problems stemmed from commit a1824a8edb01b941247ef65527eb28e451dec3a9. It seems like the RPGItems class depended on the getLocaleMeta() function returning a clone of the itemmeta, not the itemmeta itself.

Found another issue - When using items with durability, the whole stack item durability decreased.

authors: Taiterio phoenixlzx

repo: NyaaCat/RPGitems-reloaded


text:
Chore: Figure out how to invite users via email

If I am an admin of a community, I should be able to "invite" users via email address. This would lead to the following items:

If that email address is already associated with an account, that account will get automatically added.
If that email address is not associated with an account, they will get an invite link.
If they click that invite link, they will be invited to register with Foretold. After registering, they will automatically be part of the community.

Please spec out the work of items 2 & 3. This could mean making stories (if it would be fewer than 4 stories), or just writing a long description of how the main technical details would work.

Btw, I had this working in Guesstimate. Some relevant files:
https://github.com/getguesstimate/guesstimate-server/blob/master/app/models/user_organization_membership.rb
https://github.com/getguesstimate/guesstimate-server/blob/master/app/controllers/user_organization_invitations_controller.rb

repo: OAGr/foretold


text:
Enumeration of data model properties

I have a case where I have an enumeration that can return different String values. The @ApiModelProperty's allowableValues is close, but I need to have metadata associated with each possible value. Something like this:
@ApiModelProperty(...., allowableValues={
@ApiModelPropertyValue( value="registered", description="Yada yada...", discriminator="PUT" ),
@ApiModelPropertyValue( value="active", description="Yada yada...", discriminator="PUT,POST" ),
@ApiModelPropertyValue( value="closed", description="Yada yada...", discriminator="POST" )
});
It seems like any time there is a value, you'd need to at least describe the possible values.

Closing in favor of #348.

authors: gbisaga webron

repo: OAI/OpenAPI-Specification


text:
3.0.4: rephrase now-outdated statement on minor spec version compatibility

Section Versions claims

Each new minor version of the OpenAPI Specification SHALL allow any OpenAPI document that is valid against any previous minor version of the Specification, within the same major version, to be updated to the new Specification version with equivalent semantics. Such an update MUST only require changing the openapi property to the new minor version.
For example, a valid OpenAPI 3.0.2 document, upon changing its openapi property to 3.1.0, SHALL be a valid OpenAPI 3.1.0 document, semantically equivalent to the original OpenAPI 3.0.2 document. New minor versions of the OpenAPI Specification MUST be written to ensure this form of backward compatibility.

Now 3.1.0 is out, uses a different JSON Schema draft, and this statement does not reflect reality.
Should these two paragraphs be removed, despite 3.0.4 being a "patch" version?
One could argue that the second paragraph is a non-normative (and wrong) example, so it at least can be removed.

@MikeRalphson could you please add the 3.0.4 label?

@ralfhandl would you be interested in an official OAI triage team hat? It would allow you to label and close issues.

@MikeRalphson I would not object to that honor 😄

authors: MikeRalphson ralfhandl


text:
Move examples to learn.openapis.org or spec.openapis.org?

Can we move the examples in this repo (that are not part of the spec) either to the learn site or to the spec site (run from gh-pages, but see #3717 for how that is likely to change).
Going through all of the open issues just now (again), it's confusing to sort out the issues on examples in the spec from the issues about the examples directory from the general examples issues that we all agree should go on the learn site.  It would really help with issue curating if all of the outside-of-spec examples lived in one place.

One concern would be that published specs link to the examples.  We could either treat this like past broken links - OK to fix in place because doing so preserves the original text and behavior, rather than achanging it.  Or we could do something involving redirects, atlhough whether that's feasible in GitHub I do not know.
I would prefer to move all official links to a hosted site and not be dependent on GitHub because stapling our development environment to our publication channel means we can't organize development in the idea way.

@handrews if by "spec example" you mean this: https://spec.openapis.org/oas/latest.html#examples, then I would simply leave this area as is.  IMHO, good to have simple example within the spec itself immediately after the concept in question (rather than having to switch to another site, location).
If you mean "non-spec" example from these: https://github.com/OAI/OpenAPI-Specification/tree/main/examples then my humble vote is to move these to the learn site.
(on a personal note, I have never used these examples, but used the examples in the spec as I was trying to learn the spec itself and then googled, searched in github, searched in POSTMAN, etc for more complicated examples of OADs.

@miqui yes, your interpretation is correct - spec examples stay in the spec, but the non-spec (which you correctly identified) are the ones I'm suggesting we move.  I have also added a link to the Learn site at the top of the spec on @lornajane 's suggestion:

#3861

That will make it easier for folks who, like you, look for examples in the spec, to find the examples we have elsewhere.  And it's easiest if we can just send them to the Learn site instead of multiple locations.

In TDC meeting, there were no objections to moving examples over to the learn site.  This will require moving the convert to json action over also.
The spec references to examples will need to be moved to point to the learn site.

PR that adds the examples in the learn.openapis.org: https://github.com/OAI/learn.openapis.org/pull/102
I haven't opened a PR yet that cleans-up this repo.

authors: Bellangelo darrelmiller handrews miqui


text:
Add ability to export Arduino code for a registered site

Once a user has registered a site and added sensors to it, add a button to the site details/registration page that exports a code block with the following:

SamplingFeatureUUID
Time zone/UTCOffset Information
SecurityToken
ResultUUIDs for any attached sensors

This would enable us to use standardized code for the rest of the Arduino code, but the users can paste this code into the standard code. Still need to define exact content and format of the code that is exported.

We'll be basing the snippet generator off this .ino file:
https://github.com/EnviroDIY/ModularSensors/blob/master/examples/logging_to_EnviroDIY/logging_to_EnviroDIY.ino

@fryarludwig, please let me know if there's anything in that .ino that you don't understand!

As of my latest push, the devices page creates code that has each of the device's and sensors' UUIDs (see screenshot below). This is far from a full .ino file generator, but there are enough challenges (pins used, calibration values, header includes, and sensor initialization) that reliably generating full files would optimistically take about a week.
To generate the full .ino file, we would need to gather all of the sensor class names and constructors from the sensor repository, know which sensors require which pins and which calibration values (we could leave these blank for the user to fill in), and assume serial port details. We would also need a way to handle new sensors that are added after the release of this tool. There would still be a lot of values for the user to fill in, but it may save enough time to be useful. What's the group consensus on this? (We could also wait on the full .ino file generator for a later release, if there are higher priorities right now)

@fryarludwig - rather than displaying the code on the page, let's add a button that opens a modal window.
@SRGDamia1 and @aufdenkampe - I think we probably need some feedback from you guys on this.

@fryarludwig, thanks for all this hard work! What you just showed looks like a great help, and I'm leaning toward releasing the next version based on just generating the code snippets with the UUIDs and leaving the full .ino generation for a later release, because, as you point out, @SRGDamia1  and I will need to do some work to provide additional information about the pin configurations for each sensor, etc.
I also agree that there may be some higher priority issues to work on, which you could do in parallel to the our work.
Let's meet this week to discuss next steps.

authors: SRGDamia1 aufdenkampe fryarludwig horsburgh


text:
update derivedFrom in satellite health data packet elements

Satellite health data packet elements should list 0-References/6-SpaceSystemsEngineering.yaml under derivedFrom where appropriate.
This should constitute a minor version bump

blocked on #180

repo: ODU-CGA-CubeSat/mission-conops


text:
Error with on_stop task with multiprocessing

I got this message for a RoleAgent running in as_agent_process which has an on_stop handler which might have taken too long.
Stacktrace I got:
ERROR:mango.container.mp:The Send Message Task Loop has failed!
Traceback (most recent call last):
  File "/env/mango/container/mp.py", line 334, in _send_to_message_pipe
    await tx.drain()
  File "/env/mango/util/multiprocessing.py", line 184, in drain
    await self._stream_writer.drain()
  File "/env/lib/python3.12/asyncio/streams.py", line 392, in drain
    await self._protocol._drain_helper()
  File "/env/lib/python3.12/asyncio/streams.py", line 166, in _drain_helper
    raise ConnectionResetError('Connection lost')
ConnectionResetError: Connection lost
ERROR:mango.container.mp:The Send Message Task Loop has failed!

I don't quite know how this happened, but want to document this issue.
I tried to create a minimal example, but it did not occur in there.

I can see this happening. I guess we should do a two-phase shutdown. First, we shutdown the agents in the mirror containers; the main container gets notified when they shut down. After we shutdown the connection, we terminate the process.

authors: maurerle rcschrg

repo: OFFIS-DAI/mango


text:
Generalize uploadResults() for use in other packages

I'd like to propose that we generalize the signature for uploadResults() so that this function can be (re-)used in other packages.   The proposal is to change this signature to:
uploadResults <- function(connectionDetails,  # NOTE: THIS CANNOT BE NULL (CURRENT DEFAULT)
                          schema,
                          zipFileName,
                          forceOverWriteOfSpecifications = FALSE,
                          purgeSiteDataBeforeUploading = TRUE,
                          tempFolder = tempdir(),
                          specification = getResultsDataModelSpecifications()) # CHANGE HERE

then other packages (like LegendT2dm could provide their own specification arguments.

@anthonysena the issue has been transferred

authors: leeevans msuchard

repo: OHDSI/ResultModelManager


text:
How to setup the viewer with Ubuntu/Linux, Apache and Orthanc (No docker)?

``Is there any way to setup the OHIF viewer on Ubuntu/Linux apache2 without using docker?
I already have the Orthanc server installed and I can upload and actually already view studies with it's internal default viewer. However, when I try to look at them with the OHIF viewer the viewer fails and I get a CORS error.

here is the default.js wado config
servers: {     dicomWeb: [       {         name: 'ORTHANC',         wadoUriRoot: 'http://localhost:8042/wado',         qidoRoot: 'http://localhost:8042/dicom-web/studies',         wadoRoot: 'http://localhost:8042/dicom-web/studies',         qidoSupportsIncludeField: true,         imageRendering: 'wadors',         thumbnailRendering: 'wadors',         enableStudyLazyLoad: true,         supportsFuzzyMatching: true,       },     ],   },

well it seems like this does not work unless is with Docker. I have added the .htaccess file with

Header add Access-Control-Allow-Origin "ip:8042"
Header add Access-Control-Allow-Origin "domain:8042"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
Header set Cache-Control "no-store"

Yet nothing works, I also added the same thing into the vhost and I simply keep getting a damn "401
Unauthorized" How can I fix this?

I had to put together an nginx to handle the cors issue, here the nginx.conf. the orthan may be your apache if you keep it
`http {
server {
listen 80 default_server;
server_name localhost;
    #
    # Wide-open CORS config for nginx
    #
    location / {
        if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            #
            # Custom headers and headers various browsers *should* be OK with but aren't
            #
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            #
            # Tell client that this pre-flight info is valid for 20 days
            #
            add_header 'Access-Control-Allow-Headers' 'Authorization';
            add_header 'Access-Control-Allow-Credentials' true;
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Length' 0;
            return 204;
        }
        if ($request_method = 'POST') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
        }
        if ($request_method = 'GET') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
            add_header 'Access-Control-Allow-Headers' 'Authorization';
            add_header 'Access-Control-Allow-Credentials' true;
        }

        proxy_pass http://orthanc:8042;
    }

}

}%`

Take a look here, and if it does not work, please reopen the issue
https://docs.ohif.org/deployment/docker

authors: andresmmujica reya276 sedghi

repo: OHIF/Viewers


text:
Failed to load DICOM SEG series using dicom study json

Bug Report
Describe the Bug
When loading a study via the Study Dicom Json and the study contains a series and its segmentation (DICOM SEG), the viewer fails to load the segmentation series:

error messages:

ToolbarRow: Cannot read properties of undefined (reading 'SeriesInstanceUID')
Referenced series for SEG dataset not present.
Source data not present

Interestingly, the exact same series load correctly together when using the viewer /local route:

Running OHIF Viewer 4.12.18 from the docker hub. Also just tested in 4.12.19 local dev branch.
What steps can we follow to reproduce the bug?

Have a set of a dicom image and a dicom-seg segmentation made using e.g. dcmqi (DICOM for Quantitative Imaging) library
Have a dicom json containing two series 1) original dicom image and 2) dicom segmentation
Load the dicom json using the route /viewer?url=<json_url>

it's the metadata.ReferencedSeriesSequence missing

yes, the attribute is 1C https://dicom.innolitics.com/ciods/ct-image/common-instance-reference/00081115. So I would say the data needs to be fixed.
NOTE: at the moment we require it, because for IDC we overlay only segmentations which directly refer to the source data (i.e. the active data series).
However, one could add some UI to force to select manually other segmentations or segmentation missing the reference.

thank you for your reply. I am gonna try and provide the data as part of the study dicom json. I hope this solves the issue, and then this issue can probably be closed as not a bug

@Punzo do you know how exactly the ReferencedSeriesSequence metadata should be included in the dicom json? specifically:

at which nesting level (study/series/instance metadata) should the field appear?
how should it be formatted? stringified/as a list object?

you can activate the OHIFDicomTagBrowserExtension https://github.com/OHIF/Viewers/blob/master/platform/viewer/src/index.js#L57 for your local build, and you can explore the DICOM structure. I hope it helps.

After fixing the ReferencedSeriesSequence, now it's failing because it misses another SQ metadata, PerFrameFunctionalGroupsSequence. I find it inconvenient to having to serialize these data into the dicom json, when the OHIF can actually correctly parse them by itself. Is it possible to let OHIF fetch these missing metadata directly from the dicom files?

Hey @marcopus ,
I am currently facing the same obstacles (missing documentation for JSON structure) described in your bug report.
Since you closed the issue, have you found a satifying solution to achieve the same results when serving DCM files via JSON vs uploading them using the /local endpoint?
Any help is highly apprechiated!
Cheers

Hi @Kayakflo

have you found a satifying solution to achieve the same results when serving DCM files via JSON vs uploading them using the /local endpoint?

only partially... I ended up writing an additional OHIF component that imitates the /local endpoint (ViewerLocalFileData.js) but instead of loading files via the dropzone, it fetches them via our data API. So it's a bit of a custom solution, but it avoids the hassle of serializing a bunch of missing metadata, where the OHIF can already figure it out by itself.
For the generation of DICOM SEG from mha I was using a library called dcmqi, with something like:
itkimage2segimage --inputImageList <path_to_mha_file> --inputDICOMDirectory <path_to_dicom_dir> --outputDICOM <path_to_output_file> --inputMetadata <path_to_metainfo_json>

but you are probably familiar with this already

Awesome, thank you for sharing your approach @marcopus !
Looking into both endpoints and setting respective breakpoints also made me wonder why the /viewer endpoint did not utilize the parsing capabilities that already exist in /local.
That being said, I wanted to stay as close to the master branch as possible, to avoid conflicts in future versions. My solution is to use pydicom (which I use anyways) to create the JSON containing every single tag there is for each dicom file.
I am highly interested to see how much effort it was for you to add the parsing logic to the /viewer endpoint.
If you don't mind sharing your changed, that would be amazing.
Cheers!

Sure! Here's a snippet of the extra component that I made:
https://gist.github.com/marcopus/1a431b0dd56934a8d8573a489a1744fc
Just to clarify, I did not modify the logic of the /viewer endpoint, I simply created this new viewer component and registered it with the router, so that I do not interfere too much with upstream changes.
What's your application and how's your experience so far with OHIF Viewer?

Thank you very much for sharing, it looks clean and makes me wonder even more why it has not been implemented natively.
In my application I basically need a multitenant version of the viewer to limit access by user authenticated by my own authentication layer in front. From what I have seen and tested this is not (easily) possible with the officially supported data sources which led me to the /local and /viewer route.
From a usability perspective I am positively surprised about how extensive the viewer is, especially compared to paid alternatives.

Dear OHIF Viewer team,
I am currently using the OHIF Viewer in my web application and I am experiencing an issue with playing all frames of a DICOM file when loading studies through my ASP.NET Core API using JSON. While this functionality works fine in local mode, it seems to be malfunctioning when the studies are loaded via my API.
I have followed the official documentation of OHIF Viewer closely and cannot seem to identify the missing segment causing the issue.
I would greatly appreciate your guidance in resolving this matter. Could you please advise me on what I may be missing or what steps I can take to troubleshoot this issue?
Thank you for your assistance.

authors: Kayakflo LumiProj Punzo marcopus


text:
dicomWeb application/dicom Accept Header

According to this source https://cloud.google.com/healthcare/docs/how-tos/dicomweb:

When you store a DICOM instance directly, only the application/dicom Accept Header is required.

However the viewer always request multipart/related; type="application/octet-stream", is there an option to configure this?

Does the additional header have a negative impact?

Sorry, I quoted the wrong part. I meant retrieving a study, not storing. The request header send to the server has accept: multipart/related; type="application/octet-stream". Is is possible to accept: application/dicom?

Are you talking about the individual image requests? In that case, it's using octet-stream because we are using WADO-RS RetrieveFrames to pull only the pixel data. The study metadata was previously retrieved via WADO-RS Retrieve Metadata at the Study level.
If you want to retrieve the entire DICOM instance instead, you can switch to using WADO-URI. Just change these two lines to 'wadouri':
https://github.com/OHIF/Viewers/blob/6f4f098671be6c511fc303f52ccd870d6ee340fa/public/config/public_dicomweb.js#L11-L12

Thank you! That was the change I was looking for.

authors: dannyrb swederik tillmon


text:
Add frontend

Add frontend project, use yarn dev for test (Vite will proxy local cloudflare-worker server to /api path).
Usage:
Import review.js as ES Module, then call setupReview with options.
Other changes:

Update wrangler to latest
Cloudflare workers now accpet cross origin request from oi-wiki.org

抱歉最近比较忙没有review，我今天看一下

本地玩了一下新版 感觉挺好的。看到一些小问题：

XSS 攻击。建议把 html sanitize 一遍
图标包体积比较大，如果我们用的图标不是特别多的话，可以考虑直接inline。比如这种 https://www.npmjs.com/package/@material-icons/svg?activeTab=readme 。可以直接 import 一个 svg 进来。如果不含图标。现在的包大小是这样的，感觉还挺不错的：

dist/review.js  11.22 kB │ gzip: 3.29 kB

一个小问题，我发现有时候点这个按钮会没有用。排查了一下发现是这个按钮的点击区太小了，只有图标是可以点的。这里还有个hover弹出的动画，就会容易点不到。maybe可以考虑优化一下

我们先把hover动画删了吧~

找了一圈没找到比较合适的包，索性直接手动 inline 了，这是前后的包体积对比：
iconify-icon：

inline icon：

是否可以考虑 U+1F5E8？

是否可以考虑 U+1F5E8？

那这个得考虑到不同设备（字体）的展示效果问题了，个人不建议

14k变4k了，挺好的 👍

authors: CoelacanthusHex Enter-tainer shaokeyibb

repo: OI-wiki/feedback-sys


text:
generisches sendereihen verantwortlichenfeld

Kontakt ist ein Textfeld (mail von @kasabina, 2.06.16)

is now a reachme #57


text:
CW-69(AWS Setting): AWS configuration and encryption configuration info

AWS 설정정보를 세팅하였고, 이를 암호화하였습니다.

기존에 작성한 코드 merge하고 이 코드 merge 하겠습니다.

넵 상원님이 작성한 코드 수정할거 수정해주시고, 같이 merge 해주시면 될 것 같습니다.

repo: OMEGA-STARTUP/CO-Walk-Spring


text:
...would consider to integrate automatic dependency updating

We could integrate something like http://greenkeeper.io/ or https://github.com/peerigon/updtr to keep the gulp-modular dependencies up to date.

I like Greenkeeper because it integrates nicely by providing PRs. But we have to introduce tests and integrate Travis beforehand.

authors: maxklenk sebastianhenneberg

repo: ONE-LOGIC/gulp-modular


text:
Feature/editions no prepublish

What
Modified tests based on changes in the dp-dataset-api branch : https://github.com/ONSdigital/dp-dataset-api/tree/feature/stop-edition-prepublish
How to review
Switch your dataset-api to this branch: https://github.com/ONSdigital/dp-dataset-api/tree/feature/stop-edition-prepublish
cd into datasetAPI in this repo locally and go test ./.... All tests should pass.
check code changes.
Who can review
Anyone.

This has been superseded by https://github.com/ONSdigital/dp-api-tests/pull/50

authors: MikeData nshumoogum

repo: ONSdigital/dp-api-tests


text:
Escaping quotes and backslash in answers

What is the context of this PR?
Fixes #1060
We use jinja to inject strings into the questionnaire schemas however if
quotes or backslashes are injected it will break.
Quotes nor backslashes can be in JSON without being escaped. Both could
get into the JSON via user answers if they are not escaped before hand.
This fix is a minimal fix for the problem described.
How to review

Load census
Try combinations of special characters on household composition screen

Suggest better alternatives

Tested on branch works as expected for First name Last name and middle name.
But fails if the name of the company/trading in as have a " or \ (example: Apple & "Co" )

Can this be re-based

Rebase and squash please

authors: LJBabbage benjefferies collisdigital yoganandkunche

repo: ONSdigital/eq-survey-runner


text:
Fix lint error on HouseholdRelationship JS and enforce linting rules in Travis

What is the context of this PR?
Describe what you have changed and why, link to other PRs or Issues as appropriate.
How to review
Describe the steps required to test the changes (include screenshots if appropriate).

is this still 'needs-high-level-review'?


text:
Fix env variables for CF

What? and Why?

What does this pull request change/fix? Why was it necessary?

Checklist

[ ] CHANGELOG.md updated? (if required)

Codecov Report

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

@@           Coverage Diff           @@
##           master     #227   +/-   ##
=======================================
  Coverage   90.17%   90.17%
=======================================
  Files           6        6
  Lines         234      234
=======================================
  Hits          211      211
  Misses         23       23

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 fa30e54...bb94288. Read the comment docs.

authors: codecov-io warrenbailey

repo: ONSdigital/sdx-collect


text:
Simplify and improve leader election

Motivation and Context
Leader election was spitting out errors into the logs, and I suspect that it might be the reason why we have an integration test which fails occasionally.
What has changed
Got rid of the complex locking in favour of much simpler locking. Handled the dead heat in a more elegant and explicit way. Generally simplified and improved.
How to test?
Ensure that the table cluster_leader is empty, then start Case Processor up. You should see zero errors on startup (before you would have seen some kind of key violation occasionally).
Links
Trello: https://trello.com/c/68HFsjax

 Simplify & improve leader election in Case Processor

repo: ONSdigital/ssdc-rm-caseprocessor


text:
ASE is not coming up with OFS.

After bringing up ASE simulation on ofs-afu/samples and running the host code is giving me these issues.
I'm using an Ubuntu machine with Questasim as simulator.
Error: init.c:205:opae_init() ERROR : WITH_ASE was set, but could not find opae_ase.cfg file
AFC not found.

Sorry that you're having trouble.  We're not familiar with the path 'ofs-afu/samples'.  Could you mention a little more about the packages you're attempting to use, eg what collaterals you downloaded and from where?

OFS is an early access project we received from Intel.
Reference: https://www.intel.com/content/www/us/en/products/details/fpga/platforms/pac/open-fpga-stack.html
Samples link: https://github.com/otcshare/ofs-afu/tree/master/samples

Was your OPAE SDK built with ASE support (-DOPAE_BUILD_SIM=1)? If not, that could be your problem.
If you did build with ASE support:
If you look in https://github.com/OPAE/opae-sdk/blob/master/opae-libs/libopae-c/init.c you will see that find_ase_cfg() tries many places to find opae_ase.cfg. The first place it looks is the configured installation path when the library was built. Did you move a compiled installation tree to a new location? It also tries the path to the source tree in case you built the library from source and are running out of the installation directory.
Failing that search, it looks in a few directories relative to your $HOME and also a few system locations. Those paths are all near the top of init.c.
There is a copy of opae_ase.cfg in https://github.com/OPAE/opae-sim/blob/master/ase/opae_ase.cfg.

Hello @michael-adler , Thank you for the response. I'm building my OPAE with "-DOPAE_BUILD_SIM=1" . This is how I'm able to bring up the ASE Clent side working. I can also locate the opae_ase.cfg files in the simulation work directory. This issue comes when I run the host code (Server code).
PS: I'm using https://github.com/otcshare/ofs-fim/blob/master/ci/build_opae.sh script to build my OPAE. I suppose this satisfies all flags to build the OPAE for ASE too.

Only the host code follows this path, so the error can only be there.
Is it possible that you have two copies of OPAE compiled on the system and that the host code side of your simulation is using libraries compiled without ASE support?
Failing that, if you step through the host startup in a debugger you should be able to see the paths tested in init.c, which should make it clear where it is looking in your environment and why the file isn't found.

I do have two OPAE compiled on system and yes one is without ASE. The one without ASE is on /opt and the one with ASE is on my user space /home/user/ (Local install).  However I don't export OPAE in /opt paths. Is there a better way to do this?

If you run:
ldd <path to your binary>
you will probably find that the resolved version of libopae-c.so is in /opt. Set up your paths so your build in /home is found first.

Here's what I see doing a ldd to the binary. Before this I also gave export LD_PRELOAD=/scratch/stbodank/IOFS_S10NX_porting/install-opae-sdk/lib/libopae-c-ase.so
Logs:
stbodank@compute2:/scratch/stbodank/intel-ofs/ofs-afu-master/samples/hello_afu/sw$ ldd hello_afu
init.c:205:opae_init() ERROR : WITH_ASE was set, but could not find opae_ase.cfg file
linux-vdso.so.1 (0x00007ffd8c79d000)
/scratch/stbodank/IOFS_S10NX_porting/install-opae-sdk/lib/libopae-c-ase.so (0x00007ffadf3b5000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007ffadf1ae000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffadedbd000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffadebb9000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ffade99a000)
libjson-c.so.3 => /lib/x86_64-linux-gnu/libjson-c.so.3 (0x00007ffade78f000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffadf7d5000)

Use LD_LIBRARY_PATH
That's also the wrong .so, at least at the beginning of the run.

@michael-adler I've tried it.. Here are my observations.
export LD_LIBRARY_PATH=/scratch/stbodank/IOFS_S10NX_porting/install-opae-sdk/lib/
stbodank@compute2:/scratch/stbodank/intel-ofs/ofs-afu-master/samples/hello_afu/sw$ ldd hello_afu
linux-vdso.so.1 (0x00007fffad865000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f88b8f2b000)
libopae-c-ase.so.2 => /scratch/stbodank/IOFS_S10NX_porting/install-opae-sdk/lib/libopae-c-ase.so.2 (0x00007f88b8d0e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f88b891d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f88b9335000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f88b8719000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f88b84fa000)
libjson-c.so.3 => /lib/x86_64-linux-gnu/libjson-c.so.3 (0x00007f88b82ef000)
stbodank@compute2:/scratch/stbodank/intel-ofs/ofs-afu-master/samples/hello_afu/sw$ ./hello_afu
init.c:205:opae_init() ERROR : WITH_ASE was set, but could not find opae_ase.cfg file
AFC not found.

Use gdb, break in find_ase_cfg() and step a little bit. (You can see the source in the first message in this chain.) The first path it sets up is the installation tree. If you are running the library you think you are and it is installed properly, it should find:
/scratch/stbodank/IOFS_S10NX_porting/install-opae-sdk/share/opae/ase/opae_ase.cfg
It will probably be pointing somewhere else, or perhaps the cfg isn't there. Following the search in the code will likely get you running faster than my attempt at remote debugging.

authors: michael-adler saitej25 tswhison

repo: OPAE/opae-sdk