mutt/neomutt: work around S/MIME issues with application/pgp-encrypted

Motivation for this change
The original issue can be reproduced when sending with an unpatched
mutt or neomutt an email with an attachement which as han .asc
extension. This will be interpreted as application/pgp-encrypted which
experiences special logic, in the end the attachement will contain
"Version: 1"[1][2][3]
Right now, there are the following issues in the {,neo}mutt packages:

mutt.override { smimeSupport = true } fails to build since the
Debian patch results in a 404. Debian moved their packages to
salsa.debian.org.
However we can't use a versioned URL for this as Debian only tracks
the Mutt versions that are available in their releases. The patch
doesn't touch Mutt's core and is therefore simple to rebase, so
sticking to the 1.10.2 patch for now should be sufficient.

The original issue was never fixed in NeoMutt, currently we use the
S/MIME database from pkgs.mime-types which contains the issue with
application/pgp-encrypted as well.
It seems as it's more reliable to use the default neomutt database
for now which lives in doc/mime.types and place it into PKGDATADIR
($out/share/neomutt).

[1] https://bugs.archlinux.org/task/43319
[2] https://bugs.gentoo.org/534658
[3] https://github.com/neomutt/neomutt/blob/neomutt-20180716/sendlib.c#L490-L496
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
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)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Assured whether relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

cc @flokli

@Ma27 I believe mime-types-9 is outdated.
I just packaged mailcap that provides a fresher /etc/mime.types in #50987
You could patch mutt and neomutt to use this file to be sure .asc files are seen as text/plain MIME types.

I believe mime-types-9 is outdated.

@c0bw3b I figured that, but I orignally thought that it would be best to use the default MIME database distributed with the package.
I'll have a depper look at mailcap tomorrow (the patch itself seems good), then we can optionally merge that PR and continue with the discussion here whether to use mailcap for MIME discovery :)

No problem. Actually your PR made me wonder where Nixpkgs/NixOS was sourcing its /etc/mime.types and look at other distros.
FWIW Arch seem to use mailcap mime.types for mutt too. But they don't need to patch anything since the file will be available in its standard location under /etc.
On a side note: Debian sources moved to their GitLab on https://salsa.debian.org
Patches for mutt are under https://salsa.debian.org/mutt-team/mutt/tree/debian/1.10.1-2/debian/patches/

@c0bw3b thanks for the note, I updated the PR accordingly. (I've seen salsa before, but I wasn't sure if this applies for all of their packages ^^)

@GrahamcOfBorg build mutt

Success on x86_64-linux (full log)
Attempted: mutt
Partial log (click to expand)
shrinking /nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1/bin/pgpewrap
gzipping man pages under /nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1/share/man/
strip is /nix/store/n4hb93w6j076xcjw5pm09rdmc09s075b-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1/bin
patching script interpreter paths in /nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1
/nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1/bin/flea: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1
/nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1/bin/smime_keys: interpreter directive changed from " /usr/bin/perl -w" to "/nix/store/svqh993szsgi152vywx5ybyh1k22l5j1-perl-5.28.0/bin/perl -w"
/nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1/bin/muttbug: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/hawpc70ky7cm0q0d6iqny05wnpx6lyr8-mutt-1.10.1...

Success on aarch64-linux (full log)
Attempted: mutt
Partial log (click to expand)
shrinking /nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1/bin/mutt
gzipping man pages under /nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1/share/man/
strip is /nix/store/qjrnv0qw44bw1hc23zhfh26xd1c25dfs-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1/bin
patching script interpreter paths in /nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1
/nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1/bin/smime_keys: interpreter directive changed from " /usr/bin/perl -w" to "/nix/store/nv50smxc219sc49cwgvp0fi9w172y1b4-perl-5.28.0/bin/perl -w"
/nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1/bin/flea: interpreter directive changed from "/bin/sh" to "/nix/store/bpspdmsl0yys24gs70flsvcw3wcnl7lx-bash-4.4-p23/bin/sh"
/nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1/bin/muttbug: interpreter directive changed from "/bin/sh" to "/nix/store/bpspdmsl0yys24gs70flsvcw3wcnl7lx-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1...
/nix/store/lj4xy9992gvpzs6f4wwa8c20q22ds7zx-mutt-1.10.1

@c0bw3b is there anything that keeps us from merging?

Last check
@GrahamcOfBorg build neomutt

Success on x86_64-linux (full log)
Attempted: neomutt
Partial log (click to expand)
stripping (with command strip and flags -S) in /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/libexec  /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/bin
patching script interpreter paths in /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/pgpverify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/install.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/decrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/verify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/pgpdecrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/libexec/neomutt/smime_keys: interpreter directive changed from " /usr/bin/perl -w" to "/nix/store/svqh993szsgi152vywx5ybyh1k22l5j1-perl-5.28.0/bin/perl -w"
checking for references to /build in /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716...
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716

Success on x86_64-linux (full log)
Attempted: neomutt
Partial log (click to expand)
stripping (with command strip and flags -S) in /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/libexec  /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/bin
patching script interpreter paths in /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/verify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/decrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/pgpverify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/pgpdecrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/share/doc/neomutt/keybase/install.sh: interpreter directive changed from "/bin/sh" to "/nix/store/yal8k8rgbaj8p9vi08q1kh21ls0ndq95-bash-4.4-p23/bin/sh"
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716/libexec/neomutt/smime_keys: interpreter directive changed from " /usr/bin/perl -w" to "/nix/store/svqh993szsgi152vywx5ybyh1k22l5j1-perl-5.28.0/bin/perl -w"
checking for references to /build in /nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716...
/nix/store/nvk18kfi04h3al08zsgwk6ch9x2lz6ml-neomutt-20180716

Success on x86_64-darwin (full log)
Attempted: neomutt
Partial log (click to expand)
strip is /nix/store/mvpvjar6m4jpjcz48715w2pax53djv6g-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/libexec  /nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/bin
patching script interpreter paths in /nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/libexec/neomutt/smime_keys: interpreter directive changed from " /usr/bin/perl -w" to "/nix/store/maxij11md81wwwc9nh9c7nz40b7m0n1w-perl-5.28.0/bin/perl -w"
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/share/doc/neomutt/keybase/decrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/sv35yjk452mggg76bz94nppibj96a66h-bash-4.4-p23/bin/sh"
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/share/doc/neomutt/keybase/install.sh: interpreter directive changed from "/bin/sh" to "/nix/store/sv35yjk452mggg76bz94nppibj96a66h-bash-4.4-p23/bin/sh"
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/share/doc/neomutt/keybase/pgpdecrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/sv35yjk452mggg76bz94nppibj96a66h-bash-4.4-p23/bin/sh"
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/share/doc/neomutt/keybase/pgpverify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/sv35yjk452mggg76bz94nppibj96a66h-bash-4.4-p23/bin/sh"
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716/share/doc/neomutt/keybase/verify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/sv35yjk452mggg76bz94nppibj96a66h-bash-4.4-p23/bin/sh"
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716

Success on x86_64-darwin (full log)
Attempted: neomutt
Partial log (click to expand)
/nix/store/i1v4j8g9995bmy3sdr6cl7fiirb2nr1a-neomutt-20180716

Success on aarch64-linux (full log)
Attempted: neomutt
Partial log (click to expand)
stripping (with command strip and flags -S) in /nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/libexec  /nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/bin
patching script interpreter paths in /nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/libexec/neomutt/smime_keys: interpreter directive changed from " /usr/bin/perl -w" to "/nix/store/nv50smxc219sc49cwgvp0fi9w172y1b4-perl-5.28.0/bin/perl -w"
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/share/doc/neomutt/keybase/verify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/bpspdmsl0yys24gs70flsvcw3wcnl7lx-bash-4.4-p23/bin/sh"
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/share/doc/neomutt/keybase/pgpverify.sh: interpreter directive changed from "/bin/sh" to "/nix/store/bpspdmsl0yys24gs70flsvcw3wcnl7lx-bash-4.4-p23/bin/sh"
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/share/doc/neomutt/keybase/pgpdecrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/bpspdmsl0yys24gs70flsvcw3wcnl7lx-bash-4.4-p23/bin/sh"
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/share/doc/neomutt/keybase/install.sh: interpreter directive changed from "/bin/sh" to "/nix/store/bpspdmsl0yys24gs70flsvcw3wcnl7lx-bash-4.4-p23/bin/sh"
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716/share/doc/neomutt/keybase/decrypt.sh: interpreter directive changed from "/bin/sh" to "/nix/store/bpspdmsl0yys24gs70flsvcw3wcnl7lx-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716...
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716

Success on aarch64-linux (full log)
Attempted: neomutt
Partial log (click to expand)
  /nix/store/dbh94f2w319aa2d863vnjfa3c13fga3b-libselinux-2.7.drv
  /nix/store/ll6673ym2zxmgval010qlnvqvrwia4nj-libungif-4.1.4.drv
  /nix/store/rdgv0jdkyiqzxyh8ky87sb52h59g40xb-libotf-0.9.16.drv
  /nix/store/ky5xzgp77gzrq4ijfvixfkgyfhw3ak8b-emacs-26.1.drv
  /nix/store/l7i4dx18ci8apz97j5wfifnpi5qdqlf1-bash-completion-2.8.drv
  /nix/store/xjm9wvcvhpf3gnxvhk5j3m1s6yb82msy-talloc-2.1.14.drv
  /nix/store/n3iigh5q4adk930wjgqydfvn64j71fq2-notmuch-0.28.drv
  /nix/store/1flsqy7pjx0k26j0pqakg43jaq11va2k-neomutt-20180716.drv
waiting for locks or build slots...
/nix/store/mqzi5wj70p1h4bck10g33hkdqjygv7aq-neomutt-20180716

( so I edited my message to correct a typo and it duplicated ofBorg jobs... that's dangerous :p )
LGTM


tslint to eslint migration

This PR explores to migrate our custom tslint rules to eslint rules and adopts eslint in general.
Rules that we have today and that need migration

duplicateImportsRule.ts (comes with eslint)
[ ] importPatternsRule.ts
[x] layeringRule.ts (this PR)
[ ] noDomGlobalsRule.ts
[ ] noNewBufferRule.ts
[ ] noNlsInStandaloneEditorRule.ts
[ ] noNodejsGlobalsRule.ts
[ ] noStandaloneEditorRule.ts
[ ] noUnexternalizedStringsRule.ts
[ ] translationRemindRule.ts

Other work packages that are required to migrate away from eslint

[ ] use ruledir-setting instead of plugin-approach?
[x] migrate our existing tslint-config to eslint (using tslint-to-eslint-config result plus tweaks)
[ ] integrate into build
[ ] integrate into precommit hook
[ ] editor integration using our extension

Just curious, what's the reason behind the move?

@Stanzilla The TSLint project is winding down and will no longer be maintained in the future. See https://github.com/palantir/tslint/issues/4534.

Pushed https://github.com/microsoft/vscode/commit/7909462634a44f09e7f805bdeb9c082fd533e7e5 to move the globals rules (node.js, DOM) into a custom solution that uses the TS API directly. I could not get that to work with a tsconfig.json.
Btw there is a eslint rule for "new Buffer": https://github.com/eslint/eslint/blob/master/lib/rules/no-buffer-constructor.js

@bpasero Won't this rule help you? https://eslint.org/docs/rules/no-restricted-globals

current rule mapping/migration state
class-name <=> @typescript-eslint/class-name-casing
curly <=> curly
duplicate-imports <=> no-duplicate-imports
import-patterns <=> code-import-patterns
label-position <=> no-unused-labels (similar)
layering <=> code-layering
no-arg <=> no-caller
no-construct <=> no-new-wrappers
no-debugger <=> no-debugger
no-duplicate-super <=> constructor-super
no-duplicate-switch-case <=> no-duplicate-case
no-duplicate-variable <=> no-redeclare (OFF, unexpected warnings)
no-eval <=> no-eval
no-for-in-array <=> @typescript-eslint/no-for-in-array (OFF, need type info)
no-new-buffer <=> no-buffer-constructor
no-nls-in-standalone-editor <=> code-no-nls-in-standalone-editor
no-redundant-jsdoc <=> jsdoc/no-types (OFF, unexpected warnings)
no-restricted-globals <=> N/A
no-sparse-arrays <=> no-sparse-arrays
no-standalone-editor <=> code-no-standalone-editor
no-string-throw <=> no-throw-literal
no-unexternalized-strings <=> code-no-unexternalized-strings
no-unsafe-finally <=> no-unsafe-finally
no-unused-expression <=> no-unused-expressions (OFF, unexpected warnings)
no-var-keyword <=> no-var
number-literal-format <=> N/A
semicolon <=> @typescript-eslint/semi
translation-remind <=> code-translation-remind
triple-equals <=> eqeqeq

I think no-restricted-globals is still valid to have (and not covered by my solution), since it exists in ESLint, I can bring it back.


Untraceable build error

Ionic version:  (check one with "x")
[ ] 2.x
[x ] 3.x
[ ] 4.x
I'm submitting a ...  (check one with "x")
[x ] bug report
[ ] feature request
Current behavior:
When I try to build for Android I keep getting a simple error that appears as the following:
C:\path\to\project>ionic cordova run android --verbose --debug
[DEBUG] CLI flags: { interactive: true, confirm: false }
[DEBUG] Daemon found (pid: 312)
[INFO] Running app-scripts build: --platform android --target cordova

[12:58:34]  build dev started ...
[12:58:34]  clean started ...
[12:58:34]  clean finished in 15 ms
[12:58:34]  copy started ...
[12:58:34]  transpile started ...
[12:58:39]  transpile finished in 5.02 s
[12:58:39]  preprocess started ...
[12:58:39]  deeplinks started ...
[12:58:39]  deeplinks finished in 200 ms
[12:58:39]  preprocess finished in 202 ms
[12:58:39]  webpack started ...
[12:58:40]  copy finished in 5.54 s
[12:58:50]  webpack finished in 10.64 s
[12:58:50]  sass started ...
[12:58:51]  sass finished in 1.11 s
[12:58:51]  postprocess started ...
[12:58:51]  removed unused font files
[12:58:51]  postprocess finished in 34 ms
[12:58:51]  lint started ...
[12:58:51]  build dev finished in 17.24 s
> ionic cordova prepare android
> cordova prepare android
Error: Cannot read property 'length' of undefined

[ERROR] An error occurred while running cordova prepare android (exit code 1).

Expected behavior:
I've tried removing and re-adding the android platform, I've tried switching npm versions, I've tried deleting node_modules and several other things and I still haven't been able to successfully build my project. Does anyone know how I could go about resolving this issue?
Ionic info:
cli packages: (C:\path\to\project\node_modules)

    @ionic/cli-utils  : 1.12.0
    ionic (Ionic CLI) : 3.12.0

global packages:

    cordova (Cordova CLI) : 7.0.1

local packages:

    @ionic/app-scripts : 2.1.4
    Cordova Platforms  : android 6.2.3
    Ionic Framework    : ionic-angular 3.7.1

System:

    Android SDK Tools : 25.2.5
    Node              : v8.6.0
    npm               : 5.3.0
    OS                : Windows 10

Misc:

    backend : legacy

Hello! Thank you for opening an issue with us!
What do you get if you run cordova prepare android --verbose?  (after running your original command to failure)
Thank you for using Ionic

I ran that command and still got Error: Cannot read property 'length' of undefined

I expected you would still get the error, but with the --verbose flag I was also hoping for a little more context. There wasn't any?

Here's the last few lines of output
Updating icons at platforms\android\res Updating splash screens at platforms\android\res This app does not have additional resource files defined Prepared android project successfully Executing script found in plugin cordova-android-play-services-gradle-release for hook "after_prepare": plugins\cordova-android-play-services-gradle-release\scripts\after-prepare.js Executing script found in plugin cordova-android-support-gradle-release for hook "after_prepare": plugins\cordova-android-support-gradle-release\scripts\after-prepare.js Error: Cannot read property 'length' of undefined

I am going to hope there is some sanity here and say that the error is probably coming from plugins\cordova-android-support-gradle-release\scripts\after-prepare.js.
One thing I just noticed is this: @ionic/app-scripts : 2.1.4
A couple of things to try:

upgrade @ionic/app-scripts to 3.0.0
remove the plugins directory and then do an ionic build (may fail first time, if so try just the ionic build bit again)
if all else fails, try duplicating via a minimal sample app and put that out on GitHub so we can try it out (I build my test apps for Android all the time and haven't duplicated this exact error, but perhaps we have slightly different setups to our apps).

Could I perhaps post the contents of my package.json and config.xml? I only say that because I'm 99 percent sure this is a package/dependency issue.

yup, go for it

package.json

 "dependencies": {
        "@angular/common": "4.4.4",
        "@angular/compiler": "4.4.4",
        "@angular/compiler-cli": "4.4.4",
        "@angular/core": "4.4.4",
        "@angular/forms": "4.4.4",
        "@angular/http": "4.4.4",
        "@angular/platform-browser": "4.4.4",
        "@angular/platform-browser-dynamic": "4.4.4",
        "@angular/platform-server": "4.4.4",
        "@ionic-native/app-version": "^4.2.1",
        "@ionic-native/core": "^4.2.1",
        "@ionic-native/diagnostic": "^4.2.1",
        "@ionic-native/geolocation": "^4.2.1",
        "@ionic-native/in-app-browser": "^4.2.1",
        "@ionic-native/keyboard": "^4.2.1",
        "@ionic/cloud-angular": "^0.12.0",
        "@ionic/storage": "^2.0.1",
        "@ng-idle/core": "^2.0.0-beta.10",
        "@ng-idle/keepalive": "^2.0.0-beta.10",
        "angular-calendar": "^0.21.2",
        "angular2-moment": "^1.3.3",
        "angular2-number-picker": "^0.8.8",
        "cordova-android": "^6.3.0",
        "cordova-android-play-services-gradle-release": "^1.1.1",
        "cordova-android-support-gradle-release": "^1.1.1",
        "cordova-browser": "^5.0.0",
        "cordova-ios": "^4.4.0",
        "cordova-open-native-settings": "^1.4.1",
        "cordova-plugin-app-version": "^0.1.9",
        "cordova-plugin-camera": "^2.4.1",
        "cordova-plugin-compat": "^1.1.0",
        "cordova-plugin-crosswalk-certificate": "^2.0.1",
        "cordova-plugin-crosswalk-webview": "^2.3.0",
        "cordova-plugin-device": "^1.1.6",
        "cordova-plugin-file": "^4.3.3",
        "cordova-plugin-file-transfer": "^1.6.3",
        "cordova-plugin-filepath": "^1.0.2",
        "cordova-plugin-geolocation": "^2.4.3",
        "cordova-plugin-inappbrowser": "^1.7.1",
        "cordova-plugin-splashscreen": "^4.0.3",
        "cordova-plugin-statusbar": "^2.2.3",
        "cordova-plugin-whitelist": "^1.3.2",
        "cordova.plugins.diagnostic": "^3.6.7",
        "intl": "^1.2.5",
        "ionic-angular": "^3.6.1",
        "ionic-native": "^2.9.0",
        "ionic-plugin-keyboard": "^2.2.1",
        "ionic2-calendar": "^0.3.6",
        "ionicons": "3.0.0",
        "jquery": "^3.2.1",
        "preboot": "^5.0.0",
        "rxjs": "5.4.3",
        "sw-toolbox": "3.6.0",
        "zone.js": "^0.8.4"
    },
    "devDependencies": {
        "@angular/cli": "^1.0.4",
        "@ionic/app-scripts": "3.0.0",
        "cordova": "^7.0.1",
        "ionic": "3.12.0",
        "ts-node": "^3.3.0",
        "typescript": "2.4.0",
        "typings": "^2.1.1"
    },
    "cordovaPlugins": [
        "cordova-plugin-whitelist",
        "cordova-plugin-console",
        "cordova-plugin-statusbar",
        "cordova-plugin-device",
        "ionic-plugin-keyboard",
        "cordova-plugin-splashscreen"
    ],

"cordova": {
        "plugins": {
            "ionic-plugin-keyboard": {},
            "cordova-plugin-inappbrowser": {},
            "cordova-plugin-device": {},
            "cordova-plugin-splashscreen": {},
            "cordova-plugin-statusbar": {},
            "cordova-plugin-whitelist": {},
            "cordova-plugin-file": {},
      ,
            "cordova-plugin-file-transfer": {},
            "cordova-plugin-filepath": {},
            "cordova-plugin-compat": {},
            "cordova-plugin-geolocation": {
                "GEOLOCATION_USAGE_DESCRIPTION": " "
            },
            "cordova-plugin-crosswalk-certificate": {},
            "cordova-plugin-app-version": {},
            "cordova-plugin-crosswalk-webview": {
                "XWALK_VERSION": "23+",
                "XWALK_LITEVERSION": "xwalk_core_library_canary:17+",
                "XWALK_COMMANDLINE": "--disable-pull-to-refresh-effect",
                "XWALK_MODE": "embedded",
                "XWALK_MULTIPLEAPK": "true"
            },
            "cordova-open-native-settings": {},
            "cordova.plugins.diagnostic": {},
            "cordova-android-support-gradle-release": {
                "ANDROID_SUPPORT_VERSION": "25.+"
            },
            "cordova-android-play-services-gradle-release": {}
        },
        "platforms": [
            "android",
            "ios"
        ]
    }

Probably not an issue, but there is an errant comma on the line right after "cordova-plugin-file": {},
is that line supposed to contain something?

Yeah, sorry that was my bad. I removed some stuff to shorten it. It is correct on my end.

Tried removing and adding platform and I got this:
C:\.....>ionic cordova platform add android
> cordova platform add android --save
× Running command - failed!
[ERROR] Exception: Using cordova-fetch for<EMAIL_ADDRESS>
        Adding android project...
        Creating Cordova project for the Android platform:
                Path: platforms\android
                Package: XXX
                Name: XXX
                Activity: MainActivity
                Android target: android-25
        Subproject Path: CordovaLib
        Android project created with<EMAIL_ADDRESS>        Installing "cordova-android-play-services-gradle-release" for android
        Subproject Path: CordovaLib
        Installing "cordova-android-support-gradle-release" for android
        Error: Cannot read property 'length' of undefined

I couldn't install all of that due to dependency issues. Specifically, cordova-android-play-services-gradle-release refused to install.
Ignoring that, though, it ran fine on my machine. Perhaps the issue is with that plugin itself?
I also noticed you are using Crosswalk, which is deprecated. May want to look into removing that from your project if possible and in making sure your other dependencies all match what we release with our starter (I noticed some of the Angular ones did not, same with TypeScript I think). I doubt any of that is causing your issue, but could lead to other issues.
For your actual issue, you probably should dig through the plugins\cordova-android-support-gradle-release\scripts\after-prepare.js file and try debugging it. It looks like there are only a couple places that length is used in there. Also, check issues in that project's repo and see if there is anything logged.
It could be a Windows issue (I am on a Mac)
I am going to close this issue as we are well out of Ionic Framework land (actually, we left that land a while ago, but I wanted to try and see if there was something obvious going on here).
I urge that you ask this question on our forum or on our slack channel. The wider audience there may have run into this issue.

Will do. Thanks, Ken.


pre.js handling is broken

We need good examples, tests and documentation of pre.js handling, so that @kptdobe can get it to work.
Right now, the tests don't cover pre.js and the function signature might need some explanation.

See #13: the handling isn't broken, it's just that the next call needs to be made explicit.


[Feature] Add division of variables, exponents, and expressions

Added division of variables and exponents at quick speed, and division of expressions at O(n^2). Added many test cases to check this.

This PR is not mergeable. Pull in changes introduced in #29 to your branch, and make the necessary changes to clear any compile errors.

Superseded by #31


Respect a -kubeconfig and KUBECONFIG path in update-operator

Adding client-go tools/clientcmd seems to add 111K lines in vendor. Sorry.
Note: Leader election is still using its own clientset which uses the in-cluster config. As a result, this PR doesn't get us all the way to being able to develop update-operator locally. I started exploring changing leader election but it got complicated. This part should be straight forward and agreeable to all.

Part of why the vendor change is so large is that this project is not pinning dependencies below depth 1 and we probably should.

Step in the right direction or #90


When I was using this project, I encountered three tricky issues

Firstly, I added a panel and then deleted it, but I need to display it again. However, when it is displayed again, its position changes. Is there any way to make it return to its original position?
2. When I drag and drop two tab panels within a group, there are no events to listen to their changes, so when I refresh the page, the sub panels will return to their original positions
3. I have a requirement that elements within a specific group (including the current entire group) cannot be dragged into other groups. Can a similar feature be provided

Not too sure what you mean here, how are you removing and adding the panel? Do you have a small code snippet?

has a current open issue with pending PR https://github.com/mathuo/dockview/issues/582

should already be posible using the onWillShowOverlay event, I will try and create an example to demonstrate.

Regarding 1.) I think I have the same issue. I have a toolbar where you can show/hide several different tool windows. There is one toggle button for each registered component. When enabling a button, a panel for that component is added to the layout using addPanel. When disabling a button, the panel is removed via removePanel (also tried panel.api.close(), same behaviour).
The problem occurs after hiding a panel that is the only panel inside its group. If you then add the panel again, it appears at a different position compared to where it was when it was hidden. However, when it is not the only panel in the group when it is hidden, then adding it again places it back into the group.
I think the enhancement would be for each panel to "remember" where it was when it was removed so it can be added back with a position and size as close as possible to what it had when it was hidden. Currently this only works when the original group still exists. I can imagine the difficult part is that the layout could have changed in between and guessing the "as close as possible" layout could be challenging. The impact on UX would be IMHO quite significant though when using a toolbar to manage visible panels.

Not too sure what you mean here, how are you removing and adding the panel? Do you have a small code snippet?
has a current open issue with pending PR Expose event for moving tab within same panel #582
should already be posible using the onWillShowOverlay event, I will try and create an example to demonstrate.

Currently, the panel positions are declared during registration. For example, panel B is located to the right of panel A, and panel C is located to the right of panel B. When I delete panels A, B, and C in sequence and generate C, B, and A in reverse order, their positions are different from before deletion, even if I do not change any registration properties because when C is registered, B no longer exists.

Another issue is that I have two panels, A and B. A serves as my main panel, and in the future, I will add some sub panels to this group. However, when I delete A and register A again, I cannot add sub panels to A. I found that the groupId has changed, so I cannot continue to add sub panels to it. Therefore, I have to save the newly generated groupId locally every time and then map it

If you check whether you have registered before when registering the panel, and if the same ID is used, then continue to use the original one, can this solve the problem
We look forward to your reply


Revert "(fleet) make new-e2e-updater manual (#24032)"

This reverts commit 92f92e3f0f5141e6c2e87145289591168f3a294d.

What does this PR do?

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


After moving a package to a new server, the package doesn't show in the web.

version: 3.12.0
I had moved some packages to a new server from an old server and I can install the package successfully in my project.
But what the problem was that the packages which I moved didn't show in  the web.

did you move also the .json file?

@carlosen14 Could you tell me the detail path of the .json file?

Yeah, I'll tell you tomorrow

ok, tkx!

@Tiny-Fendy the verdaccio-db.json or sinopia-db.json file is the tiny database that holds all the names of your private packages + the secret key that salt your passwords (keep it in secret).
The location should be here https://verdaccio.org/docs/en/cli#default-database-file-location depending of your OS.
That being said, you should provide more detailed info about your environment, please read and fill the following template in markdown format https://raw.githubusercontent.com/verdaccio/verdaccio/master/.github/ISSUE_TEMPLATE/Bug_report.md and perhaps we can have a better overview of your issue.

@Tiny-Fendy We don't know if you are running on Docker, if it was your case, then here it is /verdaccio/storage/data/.verdaccio-db.json you won't see it normally because it is hidden.
You need to move this file along with the folders on migration.

@carlosen14 @juanpicado Thanks for your help，I had resolve this question yesterday.

How to ? Could you share it?

I haven't moved the sinopia-db.json file to the new server.

Thanks !!


[read-fonts] Properly compute length of delta sets

We were previously just taking all remaining data here, but we have enough information to compute the expected length exactly. This will let us better handle the case where data is missing.

closes #857

nice thank you!


Occasionally occurs java.lang.NullPointerException，but retrying fixes it

The issue occurs not only during updates but also intermittently during inserts.
The exception message is as follows:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: java.lang.NullPointerException
### The error may exist in class path resource [mapper/UserDigestPartitionMapper.xml]
### The error may involve com.a.dao.mapper.AMapper.batchDelete-Inline
### The error occurred while setting parameters
### SQL: update table_name set *****（It’s inconvenient to show, but there’s no problem）
### Cause: java.lang.NullPointerException
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:96) ~[mybatis-spring-2.0.6.jar!/:2.0.6]
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441) ~[mybatis-spring-2.0.6.jar!/:2.0.6]
	at com.sun.proxy.$Proxy241.update$original$oSjoG3kH(Unknown Source) ~[?:?]
	at com.sun.proxy.$Proxy241.update$original$oSjoG3kH$accessor$uvnCqopq(Unknown Source) ~[?:?]
	at com.sun.proxy.$Proxy241$auxiliary$gLlaRWG8.call(Unknown Source) ~[?:?]
	at com.sun.proxy.$Proxy241.update(Unknown Source) ~[?:?]
	at org.mybatis.spring.SqlSessionTemplate.update$original$n6HhRjh8(SqlSessionTemplate.java:288) ~[mybatis-spring-2.0.6.jar!/:2.0.6]
	at org.mybatis.spring.SqlSessionTemplate.update$original$n6HhRjh8$accessor$iwhwph8a(SqlSessionTemplate.java) ~[mybatis-spring-2.0.6.jar!/:2.0.6]
	at org.mybatis.spring.SqlSessionTemplate$auxiliary$oRHA7ZgN.call(Unknown Source) ~[mybatis-spring-2.0.6.jar!/:2.0.6]
	at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java) ~[mybatis-spring-2.0.6.jar!/:2.0.6]
	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64) ~[mybatis-plus-core-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148) ~[mybatis-plus-core-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89) ~[mybatis-plus-core-<IP_ADDRESS>.jar!/:<IP_ADDRESS>]
	at com.sun.proxy.$Proxy244.batchDelete(Unknown Source) ~[?:?]

Hello @sangewuxie ,
The stack trace looks incomplete (which is not helpful), but I can see mybatis-plus is used.
As mybatis-plus is not our product, you need to isolate the issue from mybatis-plus first.
Once the issue is reproduced without mybatis-plus, please post the full stack trace.

oh ,no.The stack trace I provided is quite complete; any further information would be irrelevant. If there is a suspicion that using MyBatis-Plus might be causing this issue, I believe it indicates an imperfection in the underlying framework.

I'm not exactly sure what you mean, but you are not going to follow my instruction about isolating the issue from mybatis-plus, I guess?
If that is the case, there is nothing we can do here, I am afraid.
You can try reporting the issue to the mybatis-plus' tracker.
They might be able to help you narrow down the problem if you provide enough information.
https://github.com/baomidou/mybatis-plus/issues
By the way, if the stack trace you posted is the only output in the log, the important part may be lost somewhere in your application stack.

呵，其他人提出过，你们都没有重视，一个中国人开发的产品，提交只能用英文，呵


scipy.stats.theilslopes fails on small data

from scipy.stats import theilslopes as ts
ts([0, 1], [0, 1])  # Works fine
ts([0, 0, 0], [0, 1, 0])  # Fails with message below

.pyenv/versions/3.9.2/lib/python3.9/site-packages/numpy/core/_methods.py:189: RuntimeWarning: invalid value encountered in double_scalars
  ret = ret.dtype.type(ret / rcount)
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Input In [9], in <cell line: 1>()
----> 1 ts([0, 1], [0, 0])

File ~/.pyenv/versions/3.9.2/lib/python3.9/site-packages/scipy/stats/_stats_mstats_common.py:344, in theilslopes(y, x, alpha, method)
    342 Ru = min(int(np.round((nt - z*sigma)/2.)), len(slopes)-1)
    343 Rl = max(int(np.round((nt + z*sigma)/2.)) - 1, 0)
--> 344 delta = slopes[[Rl, Ru]]
    345 return medslope, medinter, delta[0], delta[1]

IndexError: index 0 is out of bounds for axis 0 with size 0

The problem appears to be, if you go back to Sen (1968), equation 2.6, which theilslopes uses, is an approximation for large n, but when you use small n like above, sigma (above) can be the sqrt() of a negative value, which is nan, which causes the above.
I know that when n is small, one can just calculate all the slopes, and 95% confidence intervals make less sense when there's fewer than 20 slopes, but it would be nice for theilslopes not breaking on small n. I suggest not using the approximation but consulting Kendall's U table directly for small n.
Thanks to everyone who's make scipy such a success!

@rarnaout Thanks for reporting this. I've labeled it as an enhancement request: although the error messages in the current version of the code could be more graceful in these edge cases, they don't return an incorrect result (good), and the failure seems to be due to the equations themselves, which are designed for large samples. (This could also be mentioned a bit more explicitly in the docs rather than relying on the reader to be familiar with reference [1].)
Essentially, this is asking for an exact method - something we're gradually adding to a lot of functions. PR welcome!

Interesting, though. I get no warnings or errors in the first example, but a different error message than you show for the second:
ts([0, 0, 0], [0, 1, 0])  # Fails with message below
C:\Users\matth\scipy\scipy\stats\_stats_mstats_common.py:341: RuntimeWarning: invalid value encountered in sqrt
  sigma = np.sqrt(sigsq)
Traceback (most recent call last):

  Input In [2] in <cell line: 1>
    ts([0, 0, 0], [0, 1, 0])  # Fails with message below

  File ~\scipy\scipy\stats\_stats_mstats_common.py:342 in theilslopes
    Ru = min(int(np.round((nt - z*sigma)/2.)), len(slopes)-1)

ValueError: cannot convert float NaN to integer

Hm, that error message looks the same to me? Did I copy-paste incorrectly?
At any rate, the problem is the one I described: cannot convert NaN to
integer refers to the NaN you get from sqrt of a negative number.
Thanks for taking a look at this, and for the quick reply! I would code the
exact solution myself, but I always seem to find you guys do things more
cleverly than I would (here, a nested for loop).
R
Ramy Arnaout, MD, DPhil, FCAP, FASCP
http://arnaoutlab.org
Associate Professor, Department of Pathology
Associate Director, Clinical Microbiology
Faculty, Division of Clinical Informatics, Department of Medicine
Beth Israel Deaconess Medical Center
Faculty, Department of Systems Biology
Harvard Medical School
On Wed, Apr 6, 2022 at 1:25 AM Matt Haberland @.***>
wrote:

Interesting, though. I get no warnings or errors in the first example, but
a different error message than you show for the second:
ts([0, 0, 0], [0, 1, 0])  # Fails with message below
C:\Users\matth\scipy\scipy\stats_stats_mstats_common.py:341: RuntimeWarning: invalid value encountered in sqrt
sigma = np.sqrt(sigsq)
Traceback (most recent call last):
Input In [2] in <cell line: 1>
ts([0, 0, 0], [0, 1, 0])  # Fails with message below
File ~\scipy\scipy\stats_stats_mstats_common.py:342 in theilslopes
Ru = min(int(np.round((nt - z*sigma)/2.)), len(slopes)-1)
ValueError: cannot convert float NaN to integer
—
Reply to this email directly, view it on GitHub
https://github.com/scipy/scipy/issues/15943#issuecomment-1089834147, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADCQYTLHXYFLVDLJQ35CWSTVDUN5XANCNFSM5SUOCDJQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Defect addressed in gh-16056. Exact method (enhancement) PR welcome.


Patch 2

Docs Build status updates of commit f4fd2e6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-conceptual/azureadps-2.0/using-extension-attributes-sample.md
:bulb:Suggestion
View (azureadps-2.0)
Details

docs-conceptual/azureadps-2.0/using-extension-attributes-sample.md

Line 2, Column 1: [Suggestion: description-missing - See documentation] Missing required attribute: 'description'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Thanks @jhayek24 for your contribution.
@CelesteDG , this is good to go.

Added the missing description in PR 801. Closing this. Thanks @jhayek24 for your contribution.

Added the missing description in PR 801. Closing this. Thanks @jhayek24 for your contribution.

.


Cannot connect to ORCL database

Hi,
I just downloaded DBeaver and I'm trying to connect to ORCL database.
Basically...not sure what to do. It seems that all drivers are fine.
Any suggestions?

FYI : I am just beginning my journey with databases and DBeaver so please be understanding.
Thx,
Geo
#Dbeaver

probably, something helpful could be found here https://community.oracle.com/tech/developers/discussion/4339528/io-error-the-network-adapter-could-not-establish-the-connection-in-sql-developer

Seems to be fixed.
Closing the case


JSON pact file not generated after the test passes

Hi,
I am testing a swift2 app, I've setup the MockService and run my test successfully--I can see the mock-service Webrick log being populated--but there is no pacts directory with the json pact file!
The server starts/stops successfully via the scheme pre/post test scripts.
Has anyone seen this before? Any idea to where to look at what's going wrong?
Thanks

Hi @agenteo
What version of the library are you using? There was a bug in the startup script which was causing errors with the latest version of the mock server. It should be fixed in 0.2.0
You can test by manually starting up the mock server and disabling the script from running.
pact-mock-service start --pact-specification-version 2.0.0 --log "./tmp/pact.log" --pact-dir "./tmp/pacts" -p 1234
Let me know if you still have issues.

Hi @andrewspinks
I was on pact-mock_server 0.9, now updated the gem to 0.10
the consumer has always been 0.2
I tried the manual server start--before and after the gem update--I still don't have pact files baked in. A few things I noticed in the log:
Received Request followed by Found matching response--both matching my expectations and making the app work. Then Veryfing - interactions matched for example ""
The first two log entries are good--meaning the app generated and received back payload--but The Empty string in that Verifying is suspicious.
One thing I forgot to mention this behaviour is in an experiment using XCUIApplication and not within a swift unit test. The UI test runs within mockService.run.

@agenteo There is nothing specific to any test framework, so it should work for a XCUIApplication. 2 things that I can think of which might be causing the problem:

The testComplete() function is not be called. This tells the mock server that all requests have completed and it should verify that all expected requests have been performed.
The test is exiting before all the requests have been processed. The mock server processing and your api requests will be asynchronous, so the test needs to be told to wait until everything has finished.  i.e. using something like waitForExpectationsWithTimeout(5.0, handler:nil) https://www.bignerdranch.com/blog/asynchronous-testing-with-xcode-6/

Check my PR #33


rbd-provisioner: missing Ceph monitors

Kubernetes version:
Client Version: v1.10.2
Server Version: v1.10.2
OS version
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
Ceph version
Luminous 12.2.5
rbd-provisioner version
quay.io/external_storage/rbd-provisioner     latest              dcc584102b93
storage class:
kind: StorageClass
metadata:
  annotations:
    storageclass.beta.kubernetes.io/is-default-class: "true"
  creationTimestamp: 2018-05-23T06:39:27Z
  name: dynamic
  resourceVersion: "7297999"
  selfLink: /apis/storage.k8s.io/v1/storageclasses/dynamic
  uid: 0a494817-5e54-11e8-ab89-94c69119d0e9
parameters:
  adminId: admin
  adminSecretName: ceph-secret
  adminSecretNamespace: kube-system
  fsType: ext4
  imageFeatures: layering
  imageFormat: "2"
  monitors: <IP_ADDRESS>:6789,<IP_ADDRESS>:6789,<IP_ADDRESS>:6789
  pool: ssd
  userId: kube
  userSecretName: ceph-secret-user
provisioner: kubernetes.io/rbd
reclaimPolicy: Delete
volumeBindingMode: Immediate

pvc:
kind: PersistentVolumeClaim
metadata:
  annotations:
    control-plane.alpha.kubernetes.io/leader: '{"holderIdentity":"9d2b5b91-5e54-11e8-901d-7a1ea547e356","leaseDurationSeconds":15,"acquireTime":"2018-05-25T06:48:52Z","renewTime":"2018-05-25T06:51:26Z","leaderTransitions":0}'
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"ceph-claim","namespace":"nextcloud"},"spec":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"2Gi"}}}}
    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/rbd
  creationTimestamp: 2018-05-25T06:48:52Z
  finalizers:
  - kubernetes.io/pvc-protection
  name: ceph-claim
  namespace: nextcloud
  resourceVersion: "7676411"
  selfLink: /api/v1/namespaces/nextcloud/persistentvolumeclaims/ceph-claim
  uid: af7d08ca-5fe7-11e8-ab89-94c69119d0e9
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  storageClassName: dynamic
status:
  phase: Pending

But the pvc is stuck in pending with the error message from the rbd-provisioner pod:
Failed to provision volume for claim "nextcloud/ceph-claim" with StorageClass "dynamic": missing Ceph monitors
Anybody have experienced similar problems ?

seems related to issue  https://github.com/kubernetes-incubator/external-storage/issues/772 as I have upgraded to coredns recently

For those wanting to use ceph-mons by IPs, a nasty workaround (that works): create externalName resources pointing to each monitor, using e.g. xip.io service to get hostnames (as naked IPs are not supported by externalName services):
kind: Service
apiVersion: v1
metadata:
  name: ceph-mon-1
  namespace: ceph
spec:
  type: ExternalName
  externalName: <IP_ADDRESS>.xip.io
---
kind: Service
apiVersion: v1
metadata:
  name: ceph-mon-2
  namespace: ceph
spec:
  type: ExternalName
  externalName: <IP_ADDRESS>.xip.io
---
kind: Service
apiVersion: v1
metadata:
  name: ceph-mon-3
  namespace: ceph
spec:
  type: ExternalName
  externalName: <IP_ADDRESS>.xip.io

Then pass
   monitors: ceph-mon-1.ceph.svc.cluster.local.:6789,ceph-mon-2.ceph.svc.cluster.local.:6789,ceph-mon-3.ceph.svc.cluster.local.:6789

That seems to be working for me @jjo thanks for the tip :+1:

Not working for CEPH IPV6 nodes

@jjo Why that? Is brd-provisioner must be to lookup the monitor name?

@jjo Why that? Is brd-provisioner must be to lookup the monitor name?

I recall needing the monitors to be resolvable (i.e. not naked IPs), you
could just add e.g. <IP_ADDRESS>.xip.io and so -- I put an ExternalName in
the middle to be able to more ~easily update it while keeping an stable
monitors list  (tho not strictly needed really)

Not working for CEPH IPV6 nodes

Wonder if it would work via ip6.name ~equivalent hack:
$ dig +short 2001.db8.8<IP_ADDRESS>.0.1.ip6.name aaaa
2001:db8:8000::1

, maybe putting the above fqdns directly into monitors list.

@jjo i added them like you said, but still complaining about missing monitors IPs

我也是这个问题，但是我尝试过无数种方法。
我发现了一个让人很生气的问题
我修改了storageclass中的配置参数，这个参数
parameters:
monitors: 这个参数即使乱写 storage依然可以创建出来，并且provisioner也是报 StorageClass "rbd": missing Ceph monitors
这个错误真的很误导人，其实并不是没有ceph monitor
我到现在还没有解决这个问题。
这个问题误导了我快1个月了


[GLUTEN-1632][CH]Daily Update Clickhouse Version (20240730)

Auto commit by gluten daily build, please check the build status and merge it if it's green.

Rebase failed with

https://github.com/ClickHouse/ClickHouse/pull/67098
https://github.com/ClickHouse/ClickHouse/pull/65414

===== Performance report for TPCH SF2000 with Velox backend, for reference only ====

query
log/native_master_07_30_2024_time.csv
log/native_master_07_29_2024_ca49ab9ce1_time.csv
difference
percentage

q1
40.48
40.69
0.218
100.54%

q2
30.82
30.30
-0.522
98.31%

q3
56.32
53.61
-2.715
95.18%

q4
41.60
41.35
-0.246
99.41%

q5
106.67
104.58
-2.097
98.03%

q6
14.28
11.40
-2.874
79.87%

q7
121.11
116.42
-4.688
96.13%

q8
115.72
116.85
1.124
100.97%

q9
171.12
167.76
-3.369
98.03%

q10
66.00
67.11
1.112
101.69%

q11
28.05
27.22
-0.834
97.03%

q12
30.46
30.97
0.505
101.66%

q13
52.36
50.71
-1.653
96.84%

q14
25.55
24.78
-0.774
96.97%

q15
55.81
52.82
-2.990
94.64%

q16
20.09
19.08
-1.004
95.00%

q17
134.70
129.78
-4.923
96.35%

q18
199.98
198.77
-1.212
99.39%

q19
25.41
24.50
-0.907
96.43%

q20
40.81
39.54
-1.275
96.87%

q21
381.21
366.91
-14.299
96.25%

q22
18.70
15.14
-3.560
80.96%

total
1777.26
1730.27
-46.983
97.36%


It says "CORS Enabled" but can't access files from external domains.

I really don't know if this is a bug report or a feature request because I don't know what you mean by "CORS Enabled" in the description and I didn't find any reference in the docs. Anyway, it would be nice to have Allow Origin headers automatically added to pages served with Live Server. I know that you can add the flags or install an extension to Chrome but that makes navigation while developing insecure. "Allow Origin" should be added only for the pages you are developing.
Chrome
Live Server 5.3.1

I agree. The use case with Live Server does not warrant Same Origin Policy. CORS should be enabled.

I found a way to fix this problem so far (even though it looks like so bad),  adding below config to your settings.json .

{
    "liveServer.settings.proxy": {
        "enable": true,
        "baseUri": "/api",
        "proxyUri": "http://<IP_ADDRESS>:8080/"
    }
}

Hey I have the same issue when using d3.js. How to fix this issue?
d3.html('http://enable-cors.org')
  .get((err, data) => {
    console.log(data)
  })


update fetcher for full day events east of UTC start time and duration

fixes #2200
change variable names in getCorrection() to make more understandable

i don't understand why I have all these changes.. I pulled from develop to my local, added my two file changes, and then committed, and pushed..   CHANGELOG.md and calendarfetcher.js

You created the PR on GitHub when you were finished?

Yes, like always. New branch to develop

But the sub-headline here on github says:
"sdetweil wants to merge 90 commits into MichMich:master from sdetweil:cal-again"
So maybe you misclicked when creating it here.

yes, that was the question I asked... I will redo..


shgo + sobol + high dimensional input: skip argument missing for sobol_points_10k

When running scipy.optimize.shgo with high dimensional input and sobol as sampling strategy a TypeError is thrown,
because the sobol_points_10k function misses a parameter skip, which is passed to it.
The error goes away if adding such a skip parameter to this function.
Reproducing code example:

from scipy.optimize import shgo
shgo(
    lambda x: -np.sum(np.sin(x)),
    [(-1, 1) for _ in range(64)],
    n=100, iters=10, sampling_method='sobol', minimizer_kwargs={'method': 'COBYLA'}, options=None
)

Error message:

 ...
 Traceback (most recent call last):
  File ".../IPython/core/interactiveshell.py", line 3437, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "...", line 1, in <module>
    shgo(lambda x: -np.sum(np.sin(x)), [(-1, 1) for _ in range(64)], n=100, iters=10, sampling_method='sobol', minimizer_kwargs={'method': 'COBYLA'}, options=None)
  File ".../scipy/optimize/_shgo.py", line 421, in shgo
    shc.construct_complex()
  File ".../scipy/optimize/_shgo.py", line 726, in construct_complex
    self.iterate()
  File ".../scipy/optimize/_shgo.py", line 869, in iterate
    self.iterate_complex()
  File ".../scipy/optimize/_shgo.py", line 906, in iterate_delaunay
    self.sampled_surface(infty_cons_sampl=self.infty_cons_sampl)
  File ".../scipy/optimize/_shgo.py", line 1225, in sampled_surface
    self.sampling(self.nc, self.dim)
  File ".../scipy/optimize/_shgo.py", line 1367, in sampling_sobol
    self.C = self.sobol_points(n, dim, skip=self.n_sampled)
TypeError: sobol_points_10k() got an unexpected keyword argument 'skip'

Scipy/Numpy/Python version information:
1.6.3 1.19.5 sys.version_info(major=3, minor=8, micro=8, releaselevel='final', serial=0)

Hi. So you know this part has been completely refactored to take advantage of the new scipy.stats.qmc.Sobol. Hence there is no limitation anymore on Sobol' sampling. You can test all that if you use the current dev version.
Also shgo is receiving a big update (in progress).

@cherrywoods could you please confirm if current implementation fixes the issue?

@ilayn this is not relevant anymore. The code was calling sobol_points_10k when asking for more points. Now this has been changes completely and you can sample as many points as you want with a single function. So if this works for 1000 points it will work for 10000. The code is not branching or anything else.
What you might have though with sampling as much is memory errors from other parts of the code. But there is no issue on Sobol' here.

It won't hurt to get a confirmation since we don't test with real world case. We can close it later on another sweep if we don't hear back.

I probably won't confirm that this works before the next scipy release.

FYI, I testing your code and it's crashing after a while because I don't have enough memory. But in smaller dimensions it seems to be running fine.


Does this require existing smokeping

Hi,
I'm considering using this role to run on a server which already has smokeping installed and configured. Am I able to use this role to export my existing data to prometheus or does this role invoke an existing smokeping install to monitor a different set of hosts?
thanks,

Sorry for not responding - I forgot about the reply until the bot kicked in (yay for the bot?).
Thanks for your response @paulfantom , that clears things up!
Karl.


Debian package contains libbeat snapshot version only

First of all: thank you for providing your software as Debian packages. There is one thing that in probably a bug, however:
From a dpkg/apt perspective the relevant version is not the one encoded in the file name but the one in the debian/control Version field. The execbeat packages contain a version sting like Version: 5.2.1-SNAPSHOT. This is not only a cosmetic issue because with the latest releases it became obvious that this version field does not change unless execbeat has its underlying libbeat version updated.
To clarify: both 3.0.0 and 3.0.1 are version 5.2.1-SNAPSHOT from the Debian perspective.
I would like to propose a different versioning scheme in the control file. I know that versioning schemes are a question of taste, so please take it as it is meant: as a suggestion.
One could simply put 3.0.1 there. But maybe it is a good idea to keep aligned with the major version of the elastic stack, currently 5. According to the debian policy the Version field's upstream version may contain additional characters. How about this: 5+3.0.1? Personally, I would also add the debian revision -1 suffix that makes it possible to release the same upstream version again with -2 if something is wrong with the packaging itself.
The following expressions yield true:
dpkg --compare-versions '5+3.0.1' '>>' '5+3.0.0'
dpkg --compare-versions '5+4.0.0' '>>' '5+3.0.1'
dpkg --compare-versions '6+1.0' '>>' '5+4.0.0'

The last example illustrates that one could even completely change the execbeat versioning scheme when the elastic stack major version changes.
To cut to the chase: there are many possibilities. But the main questions are: can you influence the debian/control file Version field in the context of your packaging process and if so, are you willing to change it?

Hi @jautz,
thank you for your feedback. This is a known issue in the beat infrastructure code and is planned to be fixed in the next major version and then also fixed in the execbeat.

Thank you, @christiangalsterer for your quick reply. It would be great if you could give me additional hints to these questions:

Could you please point me to the known issue you mentioned? I did not find it through the search engine (probably failed to use the right keywords).
Do you already know how the versioning scheme will look like when this is fixed (your version / their version / both)?

See https://discuss.elastic.co/t/community-beat-wrong-version-information-in-various-make-targets/69945 and https://github.com/elastic/beats/pull/3203 for details

Seems that is also available in 5.2.1. Will look into it next days.

Just tried it and it works (partially). One can set now indeed the version, but it is always suffixed with SNAPSHOT. Need to look into it.

Seems that I also found the switch for this. Will do some further tests tomorrow before releasing a new version.

Release 3.1.1 is now available.

Great, thank you for your effort to get this fixed within one day.


Explore reducing bower components filesize

A quick/cursory test shows that we can go from 31.3MB to ~3.28MB (10% of current size), 1,817 files to 425ish files, and 306 folders to 106 folders.
However this would need to be done in the build process. Which would likely take a lot of manual labor to set up an automated system that removes everything except for the Dist and License stuff.
Reduction in total size will reduce the distribution download size for the app. Reduction in Files/Folders will reduce the time it takes to unzip the distribution of the app after it is downloaded.
Status:
Extremely low priority, will happily accept pull requests.

Closing issue. This has been released in Scout-App v2.18.16.


Add tests framework for storage migration

close partially #598

[x] Sqlite3
[ ] PostgreSQL
[ ] MySQL

sqlite3 migration test is ready, should fail until #629 got merged 🚀

Yes took me quite a while ... filterd al logs manualy, delete most repos and related stuf, replaced all sensitive data (by using random data ... and even generate a new ssh ky just replace ...)
So the size went down from 114M to 27M (in git 4M)


Netty native build failure

hi
i use java 17.0.1, graalvm 21.3.0.r17-grl, spring boot 2.6.2-snapshot, when generate a native executable
java.lang.IllegalArgumentException: Failed to load any of the given libraries: [netty_tcnative_linux_x86_64, netty_tcnative_linux_x86_64_fedora, netty_tcnative_x86_64, netty_tcnative]

As usual, please provide a repro. Could you also share what OS are you using and if that happens with Naytive Build Tools only, Buildpacks only, or both.

We see this error with Spring Boot 2.6.2-SNAPSHOT so this should be fixed before releasing 0.11.1. See for example https://ci.spring.io/teams/spring-native/pipelines/spring-native-0.11.x/jobs/build-key-samples-java11/builds/410.

Like related to Netty 4.1.72.Final upgrade.


IndexError: list index out of range when checking states[i] != i

This line: https://github.com/EelVex/pennylane-qiskit/blob/e84c57c96ff993894fbb0007af26dd9f4c1d0658/pennylane_qiskit/runtime_devices.py#L219
will trigger an IndexError if the number_of_states-1 is not in states.

Hi @EelVex, thank you very much for opening this issue! Would you like to open a PR with a proposed fix? Or do you have additional thoughts or ideas for a fix?

Hi @CatalinaAlbornoz . I have submitted PR#267 that fixes this issue.

Awesome. That's great @EelVex !


Stop printing environment in ci/verify.bat

so if you're doing this to prevent outputting secret values the issue here is that obviously anyone in the world can submit a PR to revert this commit, so this can't be a security mechanism...
(and i guess the description should really have something in it so that people know what this change was doing and why)


💬 RFC: TechDoc Redirects

🔖 Need
Improve handling of broken documentation links in Backstage.
Problem
Broken links for documentation that has moved or been replaced.
Two main scenarios:

Redirect for the case where part of documentation has moved/been renamed.
Redirect for the case that the whole documentation site has moved.

🎉 Proposal
Scenario 1: Part of documentation site moved or renamed
Mkdocs-redirects plugin with transformer
The mkdocs-redirects plugin resolves this redirect scenario for mkdocs. With some modification, we could make it work in TechDocs too. The plugin generates a redirect HTML file for each of the old docs declared in the redirect map in the mkdocs.yaml. Granular redirection is supported, redirects are per page in a documentation site.
Unfortunately, though, this plugin will not work out of the box with TechDocs. There are two main problems with it.

The useSanitizerTransformer removes the <script> and <meta> tags from the HTML page.
<meta> tags do not work in the shadow DOM. The browser needs to process these redirects and it is unaware of them in the shadow DOM.

Note: This redirect plugin was previously discussed in this thread.
Therefore, we should transform the <meta> tags into a magic link [techdocs_redirect](url) and then use an addon to parse the link and perform the redirect. Additionally, if we go the addon path, we could further improve the user redirect experience. For example, by displaying some UI element to notify about the redirect.
Scenario 2: Whole documentation site moved
The whole documentation site moved or was renamed. This is a common case internally for redirects. In this scenario, the old component does not exist in the catalog, but the broken url contains the old component ID. We will use this component ID in the solution detailed below.
Catalog backstage.io/techdocs-replaces annotation
If a user renames their component, in the new component, add an attribute backstage.io/techdocs-replaces in the catalog-info.yaml. The value will be the old component ID. Within TechDocs, we will add logic to query the Catalog API to see if any components claim to replace the component ID in the current URL. Redirect, if so.
We can't go the other direction and add an annotation like, backstage.io/techdocs-is-replaced-by on the old component because the old component should be deleted.
〽 Alternatives
Alternatives to "Mkdocs-redirects plugin with transformer" solution
Create our own techdocs-mkdocs-redirects plugin
We could clone mkdocs-redirects and modify the logic to add the techdocs_redirects magic link. Or start from scratch and go a different route, like generating the new files at the same path as the old. We would have a lot of autonomy with how we solve this problem. The main con though is that we would need to maintain another plugin. This plugin also may contain duplicate code of mkdocs-redirects. The mkdocs-redirects solution already solves the problem, so making it work in TechDocs seems more efficient.
Documentation owners add the magic [techdocs_redirect](url) link
In this scenario, we would not use the mkdocs-redirects plugin. Instead, documentation owners would keep the old markdown file in their repository, but replace the file content with the techdocs_redirect magic link. Then, the TechDocs redirect addon will read that keyword and redirect to the new page. The main con with this approach is that the user has to maintain the old file paths in their documentation repository.
Redirect from techdocs-backend plugin based on mkdocs-redirect html files
Redirecting from the backend, is likely not worth the potential benefit to web crawlers, due to the complication of implementation in the BE over FE. For example, the endpoint that retrieves the static files calls the docsRouter middleware which is defined in the PublisherBase interface and has many different implementations. The docsRouter middleware sends the file response to the browser, making it more complicated to determine when to redirect. Also, TechDocs already has a pattern of transformers and addons in the FE.
Alternatives to "Catalog backstage.io/techdocs-replaces annotation" solution
Fix this in the Catalog
The most seamless solution would have the Catalog handle broken links when components are renamed. However, this could take time and we could implement the proposed solution for now.
❌ Risks
Risks to "Catalog backstage.io/techdocs-replaces annotation" solution

There could be multiple pages claiming that they replace a documentation site.

We would need to decide how to handle this. Redirecting to the first result would be the simplest, but we could try and have more advanced logic to determine the oldest claim to replace the document.
On the component page of the replacing components we can highlight that the component will not replace the old because another component already claims to.

We can't assume paths match across the old component and the new component.

We could add logic to check if the doc path still exists in the new component or just redirect to the index page of the replacing doc site.

What if a component gets renamed multiple times?

In this case, there would be 2+ old components that a new component needs to replace. We could make the backstage.io/techdocs-replaces annotation handle an array of component IDs.

👀 Have you spent some time to check if this RFC has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Would love to hear thoughts from the community!
In the meantime, I have been experimenting with these solutions in draft PRs and would like to test them internally at Spotify. I may merge some code in beta, but it should not affect other consumers of TechDocs and can always be reversed if feedback for this RFC takes us in a different direction. 😄  It would be just to enable testing the proposal and getting user feedback internally.

Nice! 👍
For the partial move it sounds like adjacent metadata in some form is the way to go indeed, which is then transformed during rendering. It can indeed be good to notify of the redirect.
For the full move I'd think it's best if we want solve that at the catalog level tbh, rather than an annotation that's specific to TechDocs. Most discussions so far about moving things in the catalog have been to move code but keep the name intact, this case is a little bit different and maybe simpler? There's a proposal towards this over here: https://github.com/backstage/backstage/issues/5231#issuecomment-2016342479. I'd expect the hardest part of this to figure out what the response should be from the different catalog APIs when accessing a moved entity. I doubt you'd want moved entities to show up when listing, only when fetching single entities, but on top of that there's batch endpoints and permissions to complicate things x)

Hi Patrik, thanks for linking that catalog proposal! The movedFrom relationship would be great and looks like it covers the use case of the backstage.io/techdocs-replaces annotation I proposed here. I agree, it would be a better solution to have the relationship be used across Backstage vs just TechDocs specific.
Perhaps, I can start on the work for "Scenario 2: Whole documentation site moved" proposed in this RFC, but use the movedFrom relationship instead. Then, down the line if there is capacity for the catalog processor or other plugins to extend the functionality, the same annotation can be used.

From Catalog documentation

Each relation has a source (implicitly: the entity that holds the relation), a target (the entity to which the source has a relation), and a type that tells what relation the source has with the target.

Thinking more about the movedFrom annotation, it seems like this relation would be an outlier amongst the other well-known relations because the target in this relationship would be an entity that no longer exists.

@Rugvip
There is one scenario seen internally for TechDocs that the movedFrom annotation would not cover: when documentation moves from a component to the component's system entity. This is the main scenario I can think of for a TechDocs site moving separately from the owning entity.
In this case, the documentation owner could use the mkdocs-redirects solution since the component still exists. However, it would be tedious to write out the redirect map for an entire TechDocs site. On the other hand, it also isn't ideal to have an annotation like backstage.io/techdocs-replaces specifically for this scenario because it creates overlap with the movedFrom annotation.

The useSanitizerTransformer removes the <script> and <meta> tags from the HTML page.

Would be worth investigating how easy (and precisely) you could allow the redirect meta tag through the DOMPurify sanitizer.
Since it has no effect in the shadow DOM, and because the server always responds with the HTML using plain text content type headers, I can't think of any downsides from a security perspective if you can safely only allow the redirect meta tag.
You'd still need an addon to parse out the tag and react to it, but you'd avoid having to do any pre-transformations in mkdocs-land. And, you'd be building the addon based on a well-understood standard.

For the case of things being moved across existing entities, I wonder if the simplest approach there might be to simply manually link to the new docs in the old TechDocs content?

@iamEAP  Hi Eric! In a past experiment, with DOMPurifier, I allowed all meta tags and content attributes.  I'll look into if I can get more precise than that. Would you mind sharing a link to the example you mentioned?

@Rugvip True. Thinking about it more, the scenario I mentioned makes sense as the responsibility of site maintainers to be good stewards of their documentation. If they moved documentation from a site they continue to maintain, then there shouldn't be a problem with having them inform/link their readers. They can either add an explanation and link to the new docs as you mentioned or redirect their users using the mkdocs-redirect plugin map.
We can go ahead with only performing the automatic redirects for scenarios in which the old component no longer exists and there is a movedFrom relationship.

Would you mind sharing a link to the example you mentioned?

Sure thing @squid-ney! I was imagining another transformer being applied somewhere in this hook: https://github.com/backstage/backstage/blob/master/plugins/techdocs/src/reader/components/TechDocsReaderPageContent/dom.tsx#L162-L163

Hey @iamEAP ! I have a draft PR, https://github.com/backstage/backstage/pull/25766 based on the suggestions you made in this RFC. This PR does not use and addon and instead lifts the meta tags from the shadowDom to the main document. Wanted to get your thoughts before I clean it up and add tests.

@Rugvip I have another concern with not redirecting TechDocs sites that move independently of their component. Mostly regarding the potential for consumers to land on outdated TechDoc sites.  For example, with documentation moving from component -> system, even if the site owners link the new documentation site on their home page, users could visit old links with nested paths would result in a 404 on the TechDocs site or outdated documentation if old pages weren't cleaned up.
For the 404 scenario specifically, we definitely could have better handling within the TechDocs plugin. For ex: if a TechDoc site exists and the user navigates to a non-existing sub path, then fall back to the home page of the site. However, if the old pages aren't removed from the old component site, then the user is reading outdated documentation and that is concerning.  We would be asking the owner to remove all the outdated documentation and update the home page with content linking to the new documentation and then they would need to confirm a successful documentation build so the prod site gets updated. Having an annotation specific for moved documentation, backstage.io/techdocs-replaces, would simplify this process for the user, hopefully resulting in less 404s or outdated docs.

@squid-ney yep for this case I think it makes sense to have a solution specific to TechDocs, since that's really only where the redirect applies.
So to summarize:

For cases where the old entity doesn't exist we introduce a catalog-wide concept that allows redirecting from old entities
For cases where the old entity does exist but we want to redirect users to a new TechDocs page, we introduce a TechDocs-specific concept that allows redirecting to the new docs


added terragrunt

Terraform was here but I saw no terragrunt, as I have started using this I thought it may be helpful so added.

dropping for now


does zlib require?

hi! Does zlib require curl & & openssl to work?
And what else can be required for work?

I figured out, zlib is needed


job_finding_website

Description
This is the front page design of the job_finding_website.This website is made with HTML CSS Bootstrap and Javascript.
Fixes # (428.)
Type of change

Explain the Testing instructions
Test Configuration:

Operating system: Windows/Linux/Mac
Version:any
Text-editors used:Visual Studio Code

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code

Actually i,m contributing in the open source first time ever, i don't know how to contribute ...so please tell me what to do next...


ERROR:  column "relhaspkey" does not exist

What went wrong can we infer from these logs?
 * Starting PostgreSQL 9.5 database server
   ...done.
[CONTAINER] Adding databases to Bucardo...
[CONTAINER] Adding db 0
No such database "db1"
Added database "db1"
[CONTAINER] Adding db 1
No such database "db2"
Added database "db2"
[CONTAINER] Adding sync0 to Bucardo...
No such sync: sync0
DBD::Pg::st execute failed: ERROR:  column "relhaspkey" does not exist
LINE 2: ...CT nspname||'.'||relname AS name, relkind, c.oid, relhaspkey...
                                                             ^ at /usr/bin/bucardo line 5063.
[CONTAINER] Adding sync1 to Bucardo...
No such sync: sync1
DBD::Pg::st execute failed: ERROR:  column "relhaspkey" does not exist
LINE 2: ...CT nspname||'.'||relname AS name, relkind, c.oid, relhaspkey...
                                                             ^ at /usr/bin/bucardo line 5063.
[CONTAINER] Starting Bucardo...
Checking for existing processes
Starting Bucardo
[CONTAINER] Now, some status for you.
PID of Bucardo MCP: 296
No syncs have been created yet.
PID of Bucardo MCP: 296
No syncs have been created yet.

I can reproduce this error by log in to the bucardo docker container and execute this command:
docker exec -it bucardo-container sh

su - postgres -c "bucardo add sync sync0 dbs=db0:source,db1:target tables="xxx" onetimecopy=2"

It can be fixed by upgrading bucardo to latest version. However, the latest version can't be installed from apt-get install bucardo, instead, installing from source worked.
I changed the Dockerfile to install latest bucardo from source and pushed the changed docker image to jefftian/bucardo.
Will create a PR, hope it can be accepted.


dependency-check action for Maven

Create allow-list.xml to work with the new github action

The action seems to work, good stuff!
For next PR, make sure to write a clear and comprehensive description of what you did:

Updated GitHub Action for maven to use the OWASP Dependency Check Action
Created a dedicate file to manage suppressions (or list of ignored libraries) only for the maven project


STI Models can only be retrieved through parent

Environment
Playground
Reproduction
Reproduction
Describe the bug
You can't retrieve data from children model, only through parent model.
Additional context
No response
Logs
No response

Hmmm good catch. Need to look into it.


Problem with checking in Variable._parse_dimensions() (xray.core.variable)

I have had some problem with some dataset I have created by slicing from an existing dataset. Some operations I’m trying to perform on that new dataset fail because it doesn't pass some checking that goes on in xray.core.variable.py (Variable._parse_dimensions()).
This is the original dataset:
<xray.Dataset>
Dimensions:     (depth: 40, lat: 2001, lon: 4500, time: 1)
Coordinates:
  * time        (time) float64 3.502e+04
  * depth       (depth) float64 0.0 2.0 4.0 6.0 8.0 10.0 12.0 15.0 20.0 25.0 ...
  * lat         (lat) float64 -80.0 -79.92 -79.84 -79.76 -79.68 -79.6 -79.52 ...
  * lon         (lon) float64 -180.0 -179.9 -179.8 -179.8 -179.7 -179.6 ...

Attributes:
    classification_level: UNCLASSIFIED
    distribution_statement: Approved for public release. Distribution unlimited.
    downgrade_date: not applicable
    classification_authority: not applicable
    institution: Naval Oceanographic Office
    source: HYCOM archive file
    history: archv2ncdf3z
    field_type: instantaneous
    Conventions: CF-1.0 NAVO_netcdf_v1.0

This is how I have sliced it to create my new dataset,
dset_new = dset['water_u'].sel(lat=[-30], depth=[0, 10, 20], lon=[0], method='nearest').to_dataset(name='water_u')

And this is how the new dataset looks like:
<xray.Dataset>
Dimensions:  (depth: 3, lat: 1, lon: 1, time: 1)
Coordinates:
  * lat      (lat) float64 -30.0
  * depth    (depth) float64 0.0 10.0 20.0
  * lon      (lon) float64 0.0
  * time     (time) float64 3.502e+04
Data variables:
    water_u  (time, depth, lat, lon) float64 0.104 0.138 0.144

This only has one variable, but in my case I also add some others. I could not identify anything obviously wrong with this new dataset.
I was trying to concatenate similar datasets sliced from multiple files. But the same error happens if for example I try to dump it as a netcdf using to_netcdf(). This is the most recent call of the Traceback:
/usr/lib/python2.7/site-packages/xray-0.6.1_15_g5109f4f-py2.7.egg/xray/core/variable.py in _parse_dimensions(self, dims)
    302             raise ValueError('dimensions %s must have the same length as the '
    303                              'number of data dimensions, ndim=%s'
--> 304                              % (dims, self.ndim))
    305         return dims
    306

ValueError: dimensions (u'time', u'depth', u'lat', u'lon') must have the same length as the number of data dimensions, ndim=2

I’m not sure what the “number of data dimensions” ndim represents, but my new dataset is not passing that check (len(dims)==4 but self.ndim==2). However if I comment out that check, everything works - I can concatenate datasets, and dump them to netcdf files.
Thanks,
Rafael

Do you have a copy-pastable example?

In particular -- how exactly do you concatenate the datasets together?

I was concatenating them as:
dset_concat = xray.concat([ds1, ds2], dim='time')

Trying to dump any of them as netcdf:
ds1.to_netcdf('test.nc')

would also yield the same problem

@maximilianr I have managed to reproduce this with a different file with different number of dimensions (time, latitude, longitude). So I believe the below example should give same problem if you run on some other file and change the variable / dimension names accordingly:
ncvar = 'hs'
dset_sliced1 = xray.Dataset()
dset_sliced2 = xray.Dataset()
dset = xray.open_dataset(filename, decode_times=False)
slice_dict1 = {u'latitude': [-30], u'longitude': [0], u'time': [2.83996800e+08, 2.84007600e+08]}
dset_sliced1[ncvar] = dset[ncvar].sel(method='nearest', **slice_dict1)
slice_dict2 = {u'latitude': [-30], u'longitude': [0], u'time': [2.84018400e+08, 2.84029200e+08]}
dset_sliced2[ncvar] = dset[ncvar].sel(method='nearest', **slice_dict2)

dset_sliced1.to_netcdf('test.nc')  # This fails
xray.concat([dset_sliced1, dset_sliced2], dim='time') # This also fails, same error

Traceback:
----> 1 xray.concat([dset_sliced1, dset_sliced2], dim='time') # This also fails

/source/xray/xray/core/combine.pyc in concat(objs, dim, data_vars, coords, compat, positions, indexers, mode, concat_over)
    113         raise TypeError('can only concatenate xray Dataset and DataArray '
    114                         'objects')
--> 115     return f(objs, dim, data_vars, coords, compat, positions)
    116
    117

/source/xray/xray/core/combine.pyc in _dataset_concat(datasets, dim, data_vars, coords, compat, positions)
    265     for k in concat_over:
    266         vars = ensure_common_dims([ds.variables[k] for ds in datasets])
--> 267         combined = Variable.concat(vars, dim, positions)
    268         insert_result_variable(k, combined)
    269

/source/xray/xray/core/variable.pyc in concat(cls, variables, dim, positions, shortcut)
    711                 utils.remove_incompatible_items(attrs, var.attrs)
    712
--> 713         return cls(dims, data, attrs)
    714
    715     def _data_equals(self, other):

/source/xray/xray/core/variable.pyc in __init__(self, dims, data, attrs, encoding, fastpath)
    194         """
    195         self._data = _as_compatible_data(data, fastpath=fastpath)
--> 196         self._dims = self._parse_dimensions(dims)
    197         self._attrs = None
    198         self._encoding = None

/source/xray/xray/core/variable.pyc in _parse_dimensions(self, dims)
    302             raise ValueError('dimensions %s must have the same length as the '
    303                              'number of data dimensions, ndim=%s'
--> 304                              % (dims, self.ndim))
    305         return dims
    306

ValueError: dimensions (u'time', u'latitude', u'longitude') must have the same length as the number of data dimensions, ndim=2

@rafa-guedes can you share an example netcdf file that reproduces the issue?

@shoyer I'm sending you by email (was not able to attach here) a stripped version of one of the files I was using. The code below should reproduce the issue:
import xray
dset = xray.open_dataset('hycom_example.nc', decode_times=False)
ncvar = 'water_u'
dset_sliced = xray.Dataset()
slice_dict = {u'lat': [-30], u'lon': [0]}
dset_sliced[ncvar] = dset[ncvar].sel(method='nearest', **slice_dict)
dset_sliced.to_netcdf()

Here's a link to the file on dropbox: https://www.dropbox.com/s/9al7mw6f45pmfk8/hycom_example.nc?dl=1

OK -- when I run your example, it works fine on my machine!
What versIons are you using for each of these libraries: netCDF4, scipy, numpy, pandas, xray?

Hum... Ok I will try that in another machine too.. The versions are:
pandas==0.17.0
netCDF4==1.1.1
scipy==0.15.1
numpy==1.10.1
xray==0.6.1-15-g5109f4f

OK, I was able to reproduce this using netcdf4==1.1.1!
I still don't know exactly what's going on, but it seems to have been fixed since then -- it works when I specify engine='scipy' in open_dataset or install a newer version of netCDF4.

I think this is likely https://github.com/unidata/netcdf4-python/issues/300

Awesome, works here too with netCDF4==1.2.1
Thanks!


Investigate feasibility of putting a TTL on command tasks

Tip of 2.0.x now has a "task start timeout" parameter as a configuration option.


New feature for 4.3.3 release - no more resetting ID's after resetting module

From the release 4.3.3 the status ID's will no longer be reset, changed after the module is reset, the old ID's will stay the same.
Hopefully this will be helpful for the community.
--
Best regards,
Invertus Support team

Hello,
The 4.3.3 release was made, and it should no longer reset the status ID's.
The latest version can be downloaded here - https://github.com/mollie/PrestaShop/releases/tag/4.3.3
--
Best regards,
Invertus Support team


Collect image assets for the Mosque and QR code

Chore
Describe the chore
Need to decide where to store the assets to integrate with the image hosting
Additional context
Some options:

Uploadcare
ImageKit
Cloudinary

Let's use Uploadcare since it just launched its file uploader recently which I believe would speed up our development effort.

@zainfathoni just checked again for the new file uploader, it doesn't support React yet.
What's available for React is the previous/existing uploader package:

https://uploadcare.com/docs/integrations/react
https://www.npmjs.com/package/@uploadcare/react-widget

But it's still fine though.

@zainfathoni Since it's so new, the docs might be confusing to navigate. But better than nothing.
The React example is here: https://github.com/uploadcare/blocks-examples/tree/main/examples/react-uploader

Let's make this as a top priority issue.
This is an essential feature, since the main goal of the site is to provide the QR Code from the user.


Bugfix Returning Typenames

The returning Typenames concat wit 'ret_' and abapname. If abapname is 30 characters, ret_abapname will be 34 and we get a Syntaxerror in the Interface

please add a unit test, and/or another test case to https://github.com/abap-openapi/abap-openapi/tree/main/test_v2

please add a unit test, and/or another test case to https://github.com/abap-openapi/abap-openapi/tree/main/test_v2

Unit Test added.
DATA(...) Should be upper case im my opinion.

please add a unit test, and/or another test case to https://github.com/abap-openapi/abap-openapi/tree/main/test_v2

Unit Test added. DATA(...) Should be upper case im my opinion.

the code is https://github.com/abap-openapi/abap-openapi/blob/main/abaplint.json#L15
so "data(len)" is the only valid syntax in 702 where data is the variable name, "DATA(definition)" is from 740 something

thanks 👍


finetuning from DINO weights

In your train.md doc, you mention about pretrained folder with a preprocess.py script to convert DINO weights for loading into your architecture.
cd ViTMatte/pretrained
python preprocess.py

Can you please release this script?

Hi, we have updated the script.
You could run
cd ./pretrained
python preprocess.py

to get dino_vit_s_fna.pth and mae_vit_b_fna.pth for the training.

thanks!


Updates to CR due to frequent reconcile makes it hard to edit the spec fields

Delivered via PR https://github.com/application-stacks/runtime-component-operator/pull/231


Podspec

Fixes #49
I was getting a build error until I added the AppDelegate.h file, but its contents are straight out of a react-native init project, so I'm not sure that this is syntactically the best way to go when loading the ObjC code via CocoaPods.
If someone with more Xcode experience could chime in, here, I'd appreciate it.

20 days old.. lovely. Can you bump the version on it? @mcrumm :)

@JAStanton Done!  Thanks for taking a look at this.

👎 Injecting behavior into AppDelegate via a category is problematic:

Not all apps call their application delegate AppDelegate (at which point this package becomes unusable)
Apps may need to override the behavior of supportedInterfaceOrientationsForWindow, but this package prevents it.
Using this as a cocoapod would not work if the user has use_frameworks! enabled in their Podspec (since it's dynamically linked, rather than statically linked into the binary that defines AppDelegate)
If someone changes their header search paths, there's a possiblitity that this embedded AppDelegate will override the one defined in their app, leading to compile failures if the headers declare different properties.

IMO a much cleaner and more friendly approach is to just expose [RCTOrientation getOrientation], and direct consumers of this package to implement that delegate method themselves.

@nevir Thanks for the explanation!  I assumed my newb-ness would cause problems here, but not of that magnitude 😄
@yamill Would you like to weigh in, here?  I would be happy to attempt refactoring this to support CocoaPods, but only if you're interested in adding that support.

I'm in the process right now to get this to work: https://github.com/convoyinc/react-native-orientation

I'll see what I can do Michael! Thanks for getting the ball rolling! I'll
update this when I get something working
On Fri, Jun 10, 2016 at 3:02 PM Michael Crumm<EMAIL_ADDRESS>wrote:

@JAStanton https://github.com/JAStanton I totally appreciate the help,
and I look forward to checking it out!
Gotta ask a favor, though: Would you mind not hijacking my original PR?
Especially since I already made the name changes based on your suggestion,
and you clearly just copied and pasted my original work, complete with an
incorrect s.homepage param (from my original copy/paste job 😄), which
I've already fixed.
/rant
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yamill/react-native-orientation/pull/66#issuecomment-225306760,
or mute the thread
https://github.com/notifications/unsubscribe/AAnYtGY5kK4KjhWWHBo1WOBRrZUhD0yQks5qKd7NgaJpZM4IMN1r
.

Feel free to steal commits back, imo :)

@nevir See #75 😃


OObjectLazyList.listIterator() should return customized ListIterator

Expected behavior and actual behavior
OObjectLazyList list;
// load a non-empty list from the db;
assert list.listIterator().next() !=null;
Steps to reproduce the problem
Important Questions
OObjectLazyList.listIterator() should return a customized ListIterator rather than the one defined in ArrayList.
Runninng Mode
Embedded, using PLOCAL access mode
Misc
OrientDB Version
v2.1.15
Operating System
Linux
Java Version
8

Hi @scg03
What's the reason for this request? Is there a specific need behind it?
Thanks
Luigi

Hi,
Never mind. I modified my code to use List.iterator() instead of
List.listIterator().
Previously when using List.listIterator(), the Iterator.next() failed to
load data from the database.
Thanks,
Chenguang
On Tue, Jun 7, 2016 at 5:50 AM, luigidellaquila<EMAIL_ADDRESS>wrote:

Hi @scg03 https://github.com/scg03
What's the reason for this request? Is there a specific need behind it?
Thanks
Luigi
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/orientechnologies/orientdb/issues/6265#issuecomment-224232878,
or mute the thread
https://github.com/notifications/unsubscribe/AH7agSAPf2_Kc3FAky2xSKVP2eS-IaSEks5qJT7vgaJpZM4IvMk4
.

OK thanks @scg03
Closing
Luigi


feat: allow null|undefined for initialValue via explicitInitialValue

Currently houseform defaults to the empty string for nullish initialValues.
This causes issues if used with non text values, like objects for form fields.
Currently also typing is unsound since the effective value for a field might be "" even though it might not be a valid value for T.
Since people might depend on this behavior I've included an explicitInitialValue flag that turns of using the "" default for the initialValue.
I think the default behavior of supplying [] should be fine for the array case since [] is always a valid instance of T[] unlike the "" case.
This behavior is enabled for both tho since I do not know enough about the codebase to do the necessary refactoring.
I do not know if it is possible to fix the typing to represent the current behavior in addition to explicitInitialValue since the type would need to be T if explicitInitialValue is set and T | "" otherwise.

Hey @Herdinger - apologies for not merging this already 😅
I have some concerns about this API however. Both initialValue and explicitInitialValue seem to be a bit odd to me as a library consumer. Could we instead change ?? to props.initialValue !== undefined ? props.intialValue : initialValue and simply discourage the usage of undefined in our docs instead?
Curious to hear your thoughts.


Convert to ES6 Class Refactoring removes export keyword

TypeScript Version:  2.5.2 / nightly (2.6.0-dev.20170913)
Apply the refactoring to the following code:
Code
export function MyClass() {
}
MyClass.prototype.foo = function() {
}

Expected behavior:
export class MyClass {
    constructor() {
    }
    foo() {
    }
}

Actual behavior:
class MyClass {
    constructor() {
    }
    foo() {
    }
}

Tested with both 2.5.2 and the latest nightly (2.6.0-dev.20170913).

Copying export is straightforward, but handling other modifiers (default?) and member modifiers (e.g. could foo be async) will require further thought.

Fixing exactly this problem is very easy and I'd be happy to create a PR if will unblock someone.  Making the entire refactoring modifier-aware, on the other hand, has relatively low ROI.

PR #19070 Opened to resolve this issue.


create OR connect on nested writes (upsert)

is there a plan to add an upsert to nested writes? The use case is when you dont know if the nested record exists or not
say im creating a movie with a list of n actors, some already exist and some do not.
using either create or connect wont work since i dont know beforehand which exist or not.
the only current solution is to loop and upsert the entire list and then always use connect.
so instead of connect, create also add an upsert
(pseudo ish)

const actors = [{name:'Johnny Dopp'}, {name:'Brad Pitts'}]

const actorIds = Promise.all(actors.map((actor)=>photon.artists.upsert({
    where: { name: actor.name },
    update: {},
    create: actor
  }))

photon.movie.create({
    name: "something",
    cast: {
      connect: actorIds.map(actor=>actor.id)
    }
  })

but instead
photon.movie.create({
    name: "something",
    cast: {
      upsert: [
          {name:'Johnny Dopp'},
          {name:'Brad Pitts'}
      ]
    }
  })

the first one is not very ACID obviously.

Internal Note: We do have nested upsert but we only expose it within an update. Exposing this might be very simple. It is mostly writing a few test cases i assume.

Any plans to implement this?  @mavilein
it would be an amazing feature

Just realized that we already have a more prominent issue for this feature request: https://github.com/prisma/prisma/issues/2194

That one is for Prisma1 though, which we do not look into around here ;)

so a feature thats been requested since 2018 and might be very simple. sounds like a good candidate @mavilein  :)

@jaywalklabs @mavilein @janpio Agree, this would remove a lot of boilerplate!

@ssalbdivad not no mention actually support transactions which the boilerplate workaround does not.

this would be awesome when it works! 🤗

Running into an issue with the connectOrCreate operation. The following query should create an entity for a Winery, and assign a Tag to it.
mutation createwinery {
  createOneWinery(
    data: {
      name: "Winery X",
      author: { connect: { email<EMAIL_ADDRESS>} },
      tag: {
        create: {
          tagName: {
            connectOrCreate: {
              where: { name: "Tag 1" }
              create: {
                name: "Tag 1",
                author: { connect: { email<EMAIL_ADDRESS>} }
              }
            }
          }
          author: { connect: { email<EMAIL_ADDRESS>} }
        }
      }
    }
  ) {
    name
    author {
      name
    }
    tag {
      tagName {
        name
      }
    }
  }
}

I get the error message in the image below
.

When I replace the connectOrCreate operation with a regular create the query runs as expected, without error.

Moved into separate issue https://github.com/prisma/prisma-client-js/issues/764 @RoaldSchuring