[SPARK-24690][SQL] Add a config to control plan stats computation in LogicalRelation

What changes were proposed in this pull request?

This pr proposes a new independent config so that LogicalRelation could use rowCount to compute data statistics in logical plans even if CBO disabled. In the master, we currently cannot enable StarSchemaDetection.reorderStarJoins because we need to turn off CBO to enable it but StarSchemaDetection internally references the rowCount that is used in LogicalRelation if CBO disabled.
Why are the changes needed?

Plan stats are pretty useful other than CBO, e.g., star-schema detector and dynamic partition pruning.
Does this PR introduce any user-facing change?

No.
How was this patch tested?

Added tests in DataFrameJoinSuite.

This comes from #20345.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/572/
Test PASSed.

Merged build finished. Test PASSed.

Test build #92460 has started for PR 21668 at commit f0db73b.

Test build #92460 has finished for PR 21668 at commit f0db73b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/92460/
Test PASSed.

Merged build finished. Test PASSed.

yea this is a real problem, but I feel a better solution is to integrate the StarSchemaDetection into CBO. How hard will it be?

yea, ok. I'll reconsider this again. Thanks!

sounds reasonable, also cc @wzhfy @maryannxue

@cloud-fan If no problem, could you check #20345 and merge it first? Based on that, I'd like to start refactoring for the approach.

ping

Test build #93382 has finished for PR 21668 at commit 0b1f751.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/93382/
Test PASSed.

Merged build finished. Test PASSed.

@cloud-fan ping

Test build #105617 has started for PR 21668 at commit 0b1f751.

Test build #105617 has finished for PR 21668 at commit 0b1f751.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105617/
Test FAILed.

Test build #107408 has started for PR 21668 at commit 0b1f751.

Test build #107408 has finished for PR 21668 at commit 0b1f751.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/107408/
Test FAILed.

retest this please

Seems fine to me too

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/12996/
Test PASSed.

Test build #107881 has started for PR 21668 at commit 0b1f751.

thx for your response, @HyukjinKwon

Test build #107881 has finished for PR 21668 at commit 0b1f751.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/107881/
Test FAILed.

will fix in hours.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/13002/
Test PASSed.

Test build #107887 has started for PR 21668 at commit fabd8ee.

Test build #107887 has finished for PR 21668 at commit fabd8ee.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/107887/
Test FAILed.

retest this please

Test build #107888 has started for PR 21668 at commit fabd8ee.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/13003/
Test PASSed.

Test build #107888 has finished for PR 21668 at commit fabd8ee.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

ping @dongjoon-hyun @HyukjinKwon

@maropu . What is the relationship with #20345? Do you want to go without that?

https://github.com/apache/spark/pull/21668#issuecomment-404399289

This pr comes from https://github.com/apache/spark/pull/20345#issuecomment-400925890. Could you check that comment? IIUC we cannot enable StarSchemaDetection.reorderStarJoins now.

@wzhfy @maryannxue do you have any comment on this PR?

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/15756/
Test PASSed.

Test build #114183 has started for PR 21668 at commit d9b7051.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19035/
Test PASSed.

Test build #114183 has finished for PR 21668 at commit d9b7051.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114183/
Test FAILed.

Test build #114205 has started for PR 21668 at commit 8038f1b.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19056/
Test PASSed.

Test build #114205 has finished for PR 21668 at commit 8038f1b.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114205/
Test FAILed.

retest this please

Test build #114231 has started for PR 21668 at commit 8038f1b.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19081/
Test PASSed.

Test build #114231 has finished for PR 21668 at commit 8038f1b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114231/
Test FAILed.

Test build #114244 has started for PR 21668 at commit 897163c.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19093/
Test PASSed.

Test build #114244 has finished for PR 21668 at commit 897163c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114244/
Test PASSed.

Could you check this? @cloud-fan

Hi, @maropu .
I'm wondering if https://github.com/apache/spark/pull/20345 supersedes this PR.
It was the original @cloud-fan 's suggestion (https://github.com/apache/spark/pull/21668#issuecomment-402006762), and it seems that you created https://github.com/apache/spark/pull/20345 for that. Do we still need this if we have https://github.com/apache/spark/pull/20345 ?

Ah, thanks for the comment, @dongjoon-hyun! To be honest, I forgot the comment above... (thanks for reminding me).
On second thoughts, yea, I personally think that this pr is still worth a try. Currently, in the master, spark.sql.cbo.enabled=true directly means the cost-based join reorder + BasicStatsPlanVisitor. Recently, the new features (e.g., the dynamic part pruning) depend on LogicalPlanVisitor[Statistics] . To use the dynamic part pruning + BasicStatsPlanVisitor, we need to set spark.sql.cbo.enabled=true. But, this also activates the cost-based join reorder.
I think how to collect data stats (BasicStatsPlanVisitor or SizeInBytesOnlyStatsPlanVisitor) is orthogonal to join reorder logics and it'd better to be able to turn on/off them individually.
What I propose is the two things as follows;

Add a new config to control how to collect data stats (this pr)
Since the name of spark.sql.cbo.enabled is ambiguous, rename it to spark.sql.cbo.joinReorder.enabled
If the dynamic part pruning is one of CBO features, rename spark.sql.optimizer.dynamicPartitionPruning.enabled to spark.sql.cbo.dynamicPartitionPruning.enabled?

WDYT? @cloud-fan @dongjoon-hyun
(off-topic: I personally think CBO is one of optimizer features, so better to move spark.sql.cbo.enabled to spark.sql.optimizer.cbo.enabled?)

@maropu . I agree with you because this PR aims the simple clear idea which is better than now.
For the other comments (@gatorsmile , @cloud), I believe we can adjust inside that PR after merging this because there is no ETA for them.

Could you address https://github.com/apache/spark/pull/21668#discussion_r349382684 , too? If there is no other feedback here, that is the only (nit) blocker for me. :)

oh, I missed you comment, thanks!

Test build #114326 has started for PR 21668 at commit 5221c94.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19165/
Test PASSed.

Test build #114326 has finished for PR 21668 at commit 5221c94.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114326/
Test PASSed.

Test build #114335 has started for PR 21668 at commit 21222f0.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19174/
Test PASSed.

ok, @dongjoon-hyun, all the comments addressed.

Test build #114336 has started for PR 21668 at commit bd26ce7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19175/
Test PASSed.

Test build #114335 has finished for PR 21668 at commit 21222f0.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test build #114336 has finished for PR 21668 at commit bd26ce7.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114336/
Test FAILed.

retest this please

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114335/
Test FAILed.

Test build #114337 has started for PR 21668 at commit bd26ce7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/19176/
Test PASSed.

Test build #114337 has finished for PR 21668 at commit bd26ce7.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/114337/
Test PASSed.


Fix incorrect subsection title and duplicated mimetype

This PR addresses both https://github.com/bmaupin/go-epub/issues/59 and https://github.com/bmaupin/go-epub/issues/60.
Using filepath.FromSlash(path) when comparing would make sure that we're comparing platform-specific path with filepath.Join(rootEpubDir, mimetypeFilename) and it kept the modification to minimal.

Coverage remained the same at 86.638% when pulling d4d062ed48424dfcfe2484c392bfff09ce246b0b on nitxy:bug-fix into dcb669518bcd1d8ab50152f6966be7c67bcd9c7f on bmaupin:main.

This looks great. Thanks so much!


Handle expressions using variables within lists

These changes have broader applicability, but examples that require them are models from psyneulink that involve multiple incoming edges to a node, because their values are linearly combined before being passed to the node's function.


Don't add pagination links for empty collections

Currently, pagination links are still added even if the collection is empty. No need to add them if this is the case.

Fixed via #43


Adding descriptor names to tasks, methods, platforms, tags, results.

Closes #547

@WrathfulSpatula just pinging again on this one to check if it's good to go.

Sorry about that, @vprusso! LGTM!


[HOWTO] Make doom emacs work with golden-ratio-mode

What are you trying to achieve?
I've been able to install the package, and it resizes the new windows when I create them. However, when I change windows, it does not resize correctly. However, it resizes after a which-key buffer is opened and closed.
What have you tried?
I've tried adding a hook to prog-mode, to call the golden-ratio function. However, that hasn't worked
Additional information
This is how it's supposed to work

System information

emacs   version    26.3
        features   XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GLIB NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM THREADS LIBSYSTEMD LCMS2
        build      Sep 23, 2019
        buildopts  (--build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.3/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.3/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-x=yes --with-x-toolkit=lucid --with-toolkit-scroll-bars --without-gsettings 'CFLAGS=-g -O2 -fdebug-prefix-map=/build/emacs-wvqver/emacs-26.3+1=. -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro')
        windowsys  x
        daemonp    server-running
doom    version    2.0.9
        build      HEAD -> develop, origin/develop, origin/HEAD 18edebe9c 2019-12-21 04:21:43 -0500
system  type       gnu/linux
        config     x86_64-pc-linux-gnu
        shell      /usr/bin/zsh
        uname      Linux 5.3.0-24-generic #26-Ubuntu SMP Thu Nov 14 01:33:18 UTC 2019 x86_64
        path       (~/miniconda3/bin/ ~/miniconda3/condabin/ ~/.cargo/bin/ ~/.local/bin/ /usr/local/sbin/ /usr/local/bin/ /usr/sbin/ /usr/bin/ /sbin/ /bin/ /usr/games/ /usr/local/games/ /snap/bin/ /usr/lib/jvm/jdk-13.0.1+9/bin/ ~/.scripts/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/lib/ ~/.antigen/bundles/romkatv/powerlevel10k/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/command-not-found/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/pip/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/python/ ~/.antigen/bundles/esc/conda-zsh-completion/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/git/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/common-aliases/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/web-search/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/sudo/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/vi-mode/ ~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins/z/ ~/.antigen/bundles/zdharma/fast-syntax-highlighting/ ~/.antigen/bundles/zsh-users/zsh-completions/ ~/.fzf/bin/ /usr/lib/emacs/26.3/x86_64-linux-gnu/)
config  envfile    envvar-file
        elc-files  0
        modules    (:completion company ivy :ui doom doom-dashboard doom-quit hl-todo hydra nav-flash ophints (popup +all +defaults) treemacs unicode vc-gutter vi-tilde-fringe window-select workspaces :editor (evil +everywhere) file-templates fold (format +onsave) multiple-cursors rotate-text snippets :emacs (dired +icons) electric ibuffer vc :term eshell :tools (eval +overlay) flycheck flyspell (lookup +docsets) lsp magit pdf :lang (cc +lsp) data emacs-lisp (java +lsp) (javascript +lsp) lua markdown (org +dragndrop +pandoc +present) (php +lsp) (python +lsp) (sh +lsp) (web +lsp) :config (default +bindings +smartparens))
        packages   (evil-escape doom-modeline move-text (golden-ratio :recipe (:host github :repo "roman/golden-ratio.el")))
        elpa       (n/a)

This should work:
(use-package! golden-ratio
  :after-call pre-command-hook
  :config
  (golden-ratio-mode +1)
  ;; Using this hook for resizing windows is less precise than
  ;; `doom-switch-window-hook'.
  (remove-hook 'window-configuration-change-hook #'golden-ratio)
  (add-hook 'doom-switch-window-hook #'golden-ratio))

This works very well for me. However, I have one doubt  - will it cause an issue if I keep the original hook as well? Because the original hook runs golden-ratio when new windows are created, which doom-switch-window-hook does not cover i.e, the windows are resized only when I switch to the new window for the first time.
Also, thank you for the prompt reply! I switched over from spacemacs very recently and love your work!

I'm also having an issue with popup buffers after adding this to my config. They all fail to open, with the following message : Wrong type argument: stringp, nil

will it cause an issue if I keep the original hook as well? Because the original hook runs golden-ratio when new windows are created...

It should be fine to keep the old hook. I hadn't thought it through.

Wrong type argument: stringp, nil

Could you create a backtrace from this error?

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  set-buffer(nil)
  (save-current-buffer (set-buffer (if (windowp buffer) (window-buffer buffer) buffer)) (run-hooks (quote doom-switch-buffer-hook)))
  (progn (save-current-buffer (set-buffer (if (windowp buffer) (window-buffer buffer) buffer)) (run-hooks (quote doom-switch-buffer-hook))) buffer)
  (if buffer (progn (save-current-buffer (set-buffer (if (windowp buffer) (window-buffer buffer) buffer)) (run-hooks (quote doom-switch-buffer-hook))) buffer) nil)
  (let* ((buffer (and t (apply orig-fn buffer-or-name args)))) (if buffer (progn (save-current-buffer (set-buffer (if (windowp buffer) (window-buffer buffer) buffer)) (run-hooks (quote doom-switch-buffer-hook))) buffer) nil))
  (let ((doom-inhibit-switch-buffer-hooks t)) (let* ((buffer (and t (apply orig-fn buffer-or-name args)))) (if buffer (progn (save-current-buffer (set-buffer (if (windowp buffer) (window-buffer buffer) buffer)) (run-hooks (quote doom-switch-buffer-hook))) buffer) nil)))
  (if (or doom-inhibit-switch-buffer-hooks (eq (current-buffer) (get-buffer buffer-or-name)) (and (eq orig-fn (function switch-to-buffer)) (car args))) (apply orig-fn buffer-or-name args) (let ((doom-inhibit-switch-buffer-hooks t)) (let* ((buffer (and t (apply orig-fn buffer-or-name args)))) (if buffer (progn (save-current-buffer (set-buffer (if ... ... buffer)) (run-hooks (quote doom-switch-buffer-hook))) buffer) nil))))
  (let ((gc-cons-threshold most-positive-fixnum)) (if (or doom-inhibit-switch-buffer-hooks (eq (current-buffer) (get-buffer buffer-or-name)) (and (eq orig-fn (function switch-to-buffer)) (car args))) (apply orig-fn buffer-or-name args) (let ((doom-inhibit-switch-buffer-hooks t)) (let* ((buffer (and t (apply orig-fn buffer-or-name args)))) (if buffer (progn (save-current-buffer (set-buffer ...) (run-hooks ...)) buffer) nil)))))
  doom-run-switch-buffer-hooks-a(#f(compiled-function (buffer-or-name &optional action frame) "Display BUFFER-OR-NAME in some window, without selecting it.\nBUFFER-OR-NAME must be a buffer or a string naming a live buffer.\nReturn the window chosen for displaying that buffer, or nil if no\nsuch window is found.\n\nOptional argument ACTION, if non-nil, should specify a buffer\ndisplay action of the form (FUNCTIONS . ALIST).  FUNCTIONS is\neither an \"action function\" or a possibly empty list of action\nfunctions.  ALIST is a possibly empty \"action alist\".\n\nAn action function is a function that accepts two arguments: the\nbuffer to display and an action alist.  Based on those arguments,\nit should try to display the buffer in a window and return that\nwindow.  An action alist is an association list mapping symbols\nto values.  Action functions use the action alist passed to them\nto fine-tune their behaviors.\n\n`display-buffer' builds a list of action functions and an action\nalist by combining any action functions and alists specified by\n`display-buffer-overriding-action', `display-buffer-alist', the\nACTION argument, `display-buffer-base-action', and\n`display-buffer-fallback-action' (in order).  Then it calls each\nfunction in the combined function list in turn, passing the\nbuffer as the first argument and the combined action alist as the\nsecond argument, until one of the functions returns non-nil.\n\nAction functions and the action they try to perform are:\n `display-buffer-same-window' -- Use the selected window.\n `display-buffer-reuse-window' -- Use a window already showing\n    the buffer.\n `display-buffer-in-previous-window' -- Use a window that did\n    show the buffer before.\n `display-buffer-use-some-window' -- Use some existing window.\n `display-buffer-pop-up-window' -- Pop up a new window.\n `display-buffer-below-selected' -- Use or pop up a window below\n    the selected one.\n `display-buffer-at-bottom' -- Use or pop up a window at the\n    bottom of the selected frame.\n `display-buffer-pop-up-frame' -- Show the buffer on a new frame.\n `display-buffer-in-child-frame' -- Show the buffer in a\n    child frame.\n `display-buffer-no-window' -- Do not display the buffer and\n    have `display-buffer' return nil immediately.\n\nAction alist entries are:\n 'inhibit-same-window' -- A non-nil value prevents the same\n    window from being used for display.\n 'inhibit-switch-frame' -- A non-nil value prevents any frame\n    used for showing the buffer from being raised or selected.\n 'reusable-frames' -- The value specifies the set of frames to\n    search for a window that already displays the buffer.\n    Possible values are nil (the selected frame), t (any live\n    frame), visible (any visible frame), 0 (any visible or\n    iconified frame) or an existing live frame.\n 'pop-up-frame-parameters' -- The value specifies an alist of\n    frame parameters to give a new frame, if one is created.\n 'window-height' -- The value specifies the desired height of the\n    window chosen and is either an integer (the total height of\n    the window), a floating point number (the fraction of its\n    total height with respect to the total height of the frame's\n    root window) or a function to be called with one argument -\n    the chosen window.  The function is supposed to adjust the\n    height of the window; its return value is ignored.  Suitable\n    functions are `shrink-window-if-larger-than-buffer' and\n    `fit-window-to-buffer'.\n 'window-width' -- The value specifies the desired width of the\n    window chosen and is either an integer (the total width of\n    the window), a floating point number (the fraction of its\n    total width with respect to the width of the frame's root\n    window) or a function to be called with one argument - the\n    chosen window.  The function is supposed to adjust the width\n    of the window; its return value is ignored.\n 'preserve-size' -- The value should be either (t . nil) to\n    preserve the width of the chosen window, (nil . t) to\n    preserve its height or (t . t) to preserve its height and\n    width in future changes of the window configuration.\n 'window-parameters' -- The value specifies an alist of window\n    parameters to give the chosen window.\n 'allow-no-window' -- A non-nil value means that `display-buffer'\n    may not display the buffer and return nil immediately.\n\nThe entries 'window-height', 'window-width' and 'preserve-size'\nare applied only when the window used for displaying the buffer\nnever showed another buffer before.\n\nThe ACTION argument can also have a non-nil and non-list value.\nThis means to display the buffer in a window other than the\nselected one, even if it is already displayed in the selected\nwindow.  If called interactively with a prefix argument, ACTION\nis t.  Non-interactive calls should always supply a list or nil.\n\nThe optional third argument FRAME, if non-nil, acts like a\n(reusable-frames . FRAME) entry appended to the action alist\nspecified by the ACTION argument." (interactive #f(compiled-function () #<bytecode 0x2c33111>)) #<bytecode 0x1b2b93>) #<buffer *doom:eshell-popup:main*> nil)
  apply(doom-run-switch-buffer-hooks-a #f(compiled-function (buffer-or-name &optional action frame) "Display BUFFER-OR-NAME in some window, without selecting it.\nBUFFER-OR-NAME must be a buffer or a string naming a live buffer.\nReturn the window chosen for displaying that buffer, or nil if no\nsuch window is found.\n\nOptional argument ACTION, if non-nil, should specify a buffer\ndisplay action of the form (FUNCTIONS . ALIST).  FUNCTIONS is\neither an \"action function\" or a possibly empty list of action\nfunctions.  ALIST is a possibly empty \"action alist\".\n\nAn action function is a function that accepts two arguments: the\nbuffer to display and an action alist.  Based on those arguments,\nit should try to display the buffer in a window and return that\nwindow.  An action alist is an association list mapping symbols\nto values.  Action functions use the action alist passed to them\nto fine-tune their behaviors.\n\n`display-buffer' builds a list of action functions and an action\nalist by combining any action functions and alists specified by\n`display-buffer-overriding-action', `display-buffer-alist', the\nACTION argument, `display-buffer-base-action', and\n`display-buffer-fallback-action' (in order).  Then it calls each\nfunction in the combined function list in turn, passing the\nbuffer as the first argument and the combined action alist as the\nsecond argument, until one of the functions returns non-nil.\n\nAction functions and the action they try to perform are:\n `display-buffer-same-window' -- Use the selected window.\n `display-buffer-reuse-window' -- Use a window already showing\n    the buffer.\n `display-buffer-in-previous-window' -- Use a window that did\n    show the buffer before.\n `display-buffer-use-some-window' -- Use some existing window.\n `display-buffer-pop-up-window' -- Pop up a new window.\n `display-buffer-below-selected' -- Use or pop up a window below\n    the selected one.\n `display-buffer-at-bottom' -- Use or pop up a window at the\n    bottom of the selected frame.\n `display-buffer-pop-up-frame' -- Show the buffer on a new frame.\n `display-buffer-in-child-frame' -- Show the buffer in a\n    child frame.\n `display-buffer-no-window' -- Do not display the buffer and\n    have `display-buffer' return nil immediately.\n\nAction alist entries are:\n 'inhibit-same-window' -- A non-nil value prevents the same\n    window from being used for display.\n 'inhibit-switch-frame' -- A non-nil value prevents any frame\n    used for showing the buffer from being raised or selected.\n 'reusable-frames' -- The value specifies the set of frames to\n    search for a window that already displays the buffer.\n    Possible values are nil (the selected frame), t (any live\n    frame), visible (any visible frame), 0 (any visible or\n    iconified frame) or an existing live frame.\n 'pop-up-frame-parameters' -- The value specifies an alist of\n    frame parameters to give a new frame, if one is created.\n 'window-height' -- The value specifies the desired height of the\n    window chosen and is either an integer (the total height of\n    the window), a floating point number (the fraction of its\n    total height with respect to the total height of the frame's\n    root window) or a function to be called with one argument -\n    the chosen window.  The function is supposed to adjust the\n    height of the window; its return value is ignored.  Suitable\n    functions are `shrink-window-if-larger-than-buffer' and\n    `fit-window-to-buffer'.\n 'window-width' -- The value specifies the desired width of the\n    window chosen and is either an integer (the total width of\n    the window), a floating point number (the fraction of its\n    total width with respect to the width of the frame's root\n    window) or a function to be called with one argument - the\n    chosen window.  The function is supposed to adjust the width\n    of the window; its return value is ignored.\n 'preserve-size' -- The value should be either (t . nil) to\n    preserve the width of the chosen window, (nil . t) to\n    preserve its height or (t . t) to preserve its height and\n    width in future changes of the window configuration.\n 'window-parameters' -- The value specifies an alist of window\n    parameters to give the chosen window.\n 'allow-no-window' -- A non-nil value means that `display-buffer'\n    may not display the buffer and return nil immediately.\n\nThe entries 'window-height', 'window-width' and 'preserve-size'\nare applied only when the window used for displaying the buffer\nnever showed another buffer before.\n\nThe ACTION argument can also have a non-nil and non-list value.\nThis means to display the buffer in a window other than the\nselected one, even if it is already displayed in the selected\nwindow.  If called interactively with a prefix argument, ACTION\nis t.  Non-interactive calls should always supply a list or nil.\n\nThe optional third argument FRAME, if non-nil, acts like a\n(reusable-frames . FRAME) entry appended to the action alist\nspecified by the ACTION argument." (interactive #f(compiled-function () #<bytecode 0x2c33251>)) #<bytecode 0x1b2b93>) (#<buffer *doom:eshell-popup:main*> nil))
  display-buffer(#<buffer *doom:eshell-popup:main*> nil)
  #f(compiled-function (buffer-or-name &optional action norecord) "Display buffer specified by BUFFER-OR-NAME and select its window.\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf it is a string not naming an existent buffer, create a buffer\nwith that name.  If BUFFER-OR-NAME is nil, choose some other\nbuffer.  In either case, make that buffer current and return it.\n\nThis uses `display-buffer' as a subroutine.  The optional ACTION\nargument is passed to `display-buffer' as its ACTION argument.\nSee `display-buffer' for more information.  ACTION is t if called\ninteractively with a prefix argument, which means to pop to a\nwindow other than the selected one even if the buffer is already\ndisplayed in the selected window.\n\nIf a suitable window is found, select that window.  If it is not\non the selected frame, raise that window's frame and give it\ninput focus.\n\nOptional third arg NORECORD non-nil means do not put this buffer\nat the front of the list of recently selected ones." (interactive #f(compiled-function () #<bytecode 0x2c333c9>)) #<bytecode 0x1b2fa7>)(#<buffer *doom:eshell-popup:main*> nil nil)
  apply(#f(compiled-function (buffer-or-name &optional action norecord) "Display buffer specified by BUFFER-OR-NAME and select its window.\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf it is a string not naming an existent buffer, create a buffer\nwith that name.  If BUFFER-OR-NAME is nil, choose some other\nbuffer.  In either case, make that buffer current and return it.\n\nThis uses `display-buffer' as a subroutine.  The optional ACTION\nargument is passed to `display-buffer' as its ACTION argument.\nSee `display-buffer' for more information.  ACTION is t if called\ninteractively with a prefix argument, which means to pop to a\nwindow other than the selected one even if the buffer is already\ndisplayed in the selected window.\n\nIf a suitable window is found, select that window.  If it is not\non the selected frame, raise that window's frame and give it\ninput focus.\n\nOptional third arg NORECORD non-nil means do not put this buffer\nat the front of the list of recently selected ones." (interactive #f(compiled-function () #<bytecode 0x2c38881>)) #<bytecode 0x1b2fa7>) (#<buffer *doom:eshell-popup:main*> nil nil))
  #f(advice-wrapper :after #f(compiled-function (buffer-or-name &optional action norecord) "Display buffer specified by BUFFER-OR-NAME and select its window.\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf it is a string not naming an existent buffer, create a buffer\nwith that name.  If BUFFER-OR-NAME is nil, choose some other\nbuffer.  In either case, make that buffer current and return it.\n\nThis uses `display-buffer' as a subroutine.  The optional ACTION\nargument is passed to `display-buffer' as its ACTION argument.\nSee `display-buffer' for more information.  ACTION is t if called\ninteractively with a prefix argument, which means to pop to a\nwindow other than the selected one even if the buffer is already\ndisplayed in the selected window.\n\nIf a suitable window is found, select that window.  If it is not\non the selected frame, raise that window's frame and give it\ninput focus.\n\nOptional third arg NORECORD non-nil means do not put this buffer\nat the front of the list of recently selected ones." (interactive #f(compiled-function () #<bytecode 0x2c389dd>)) #<bytecode 0x1b2fa7>) doom-modeline-update-buffer-file-name)(#<buffer *doom:eshell-popup:main*> nil nil)
  ad-Advice-pop-to-buffer(#f(advice-wrapper :after #f(compiled-function (buffer-or-name &optional action norecord) "Display buffer specified by BUFFER-OR-NAME and select its window.\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf it is a string not naming an existent buffer, create a buffer\nwith that name.  If BUFFER-OR-NAME is nil, choose some other\nbuffer.  In either case, make that buffer current and return it.\n\nThis uses `display-buffer' as a subroutine.  The optional ACTION\nargument is passed to `display-buffer' as its ACTION argument.\nSee `display-buffer' for more information.  ACTION is t if called\ninteractively with a prefix argument, which means to pop to a\nwindow other than the selected one even if the buffer is already\ndisplayed in the selected window.\n\nIf a suitable window is found, select that window.  If it is not\non the selected frame, raise that window's frame and give it\ninput focus.\n\nOptional third arg NORECORD non-nil means do not put this buffer\nat the front of the list of recently selected ones." (interactive #f(compiled-function () #<bytecode 0x2c38b8d>)) #<bytecode 0x1b2fa7>) doom-modeline-update-buffer-file-name) #<buffer *doom:eshell-popup:main*>)
  apply(ad-Advice-pop-to-buffer #f(advice-wrapper :after #f(compiled-function (buffer-or-name &optional action norecord) "Display buffer specified by BUFFER-OR-NAME and select its window.\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf it is a string not naming an existent buffer, create a buffer\nwith that name.  If BUFFER-OR-NAME is nil, choose some other\nbuffer.  In either case, make that buffer current and return it.\n\nThis uses `display-buffer' as a subroutine.  The optional ACTION\nargument is passed to `display-buffer' as its ACTION argument.\nSee `display-buffer' for more information.  ACTION is t if called\ninteractively with a prefix argument, which means to pop to a\nwindow other than the selected one even if the buffer is already\ndisplayed in the selected window.\n\nIf a suitable window is found, select that window.  If it is not\non the selected frame, raise that window's frame and give it\ninput focus.\n\nOptional third arg NORECORD non-nil means do not put this buffer\nat the front of the list of recently selected ones." (interactive #f(compiled-function () #<bytecode 0x2c3c5bd>)) #<bytecode 0x1b2fa7>) doom-modeline-update-buffer-file-name) #<buffer *doom:eshell-popup:main*>)
  pop-to-buffer(#<buffer *doom:eshell-popup:main*>)
  (set-buffer (pop-to-buffer eshell-buffer))
  (save-current-buffer (set-buffer (pop-to-buffer eshell-buffer)) (doom-mark-buffer-as-real-h) (if (eq major-mode (quote eshell-mode)) (run-hooks (quote eshell-mode-hook)) (eshell-mode)) (if command (progn (+eshell-run-command command eshell-buffer))))
  (if win (if (eq (selected-window) win) (let (confirm-kill-processes) (delete-window win) (condition-case nil (progn (kill-buffer eshell-buffer)) (error nil))) (select-window win) (if (and (boundp (quote evil-local-mode)) evil-local-mode) (progn (evil-change-to-initial-state))) (goto-char (point-max))) (save-current-buffer (set-buffer (pop-to-buffer eshell-buffer)) (doom-mark-buffer-as-real-h) (if (eq major-mode (quote eshell-mode)) (run-hooks (quote eshell-mode-hook)) (eshell-mode)) (if command (progn (+eshell-run-command command eshell-buffer)))))
  (let* ((win (and t (get-buffer-window eshell-buffer)))) (if win (if (eq (selected-window) win) (let (confirm-kill-processes) (delete-window win) (condition-case nil (progn (kill-buffer eshell-buffer)) (error nil))) (select-window win) (if (and (boundp (quote evil-local-mode)) evil-local-mode) (progn (evil-change-to-initial-state))) (goto-char (point-max))) (save-current-buffer (set-buffer (pop-to-buffer eshell-buffer)) (doom-mark-buffer-as-real-h) (if (eq major-mode (quote eshell-mode)) (run-hooks (quote eshell-mode-hook)) (eshell-mode)) (if command (progn (+eshell-run-command command eshell-buffer))))))
  (let ((eshell-buffer (get-buffer-create (format "*doom:eshell-popup:%s*" (if (and (boundp ...) persp-mode) (safe-persp-name (get-current-persp)) "main")))) confirm-kill-processes current-prefix-arg) (if arg (progn (let* ((win (and t (get-buffer-window eshell-buffer)))) (if win (delete-window win) nil)) (if (buffer-live-p eshell-buffer) (progn (save-current-buffer (set-buffer eshell-buffer) (fundamental-mode) (erase-buffer)))))) (let* ((win (and t (get-buffer-window eshell-buffer)))) (if win (if (eq (selected-window) win) (let (confirm-kill-processes) (delete-window win) (condition-case nil (progn (kill-buffer eshell-buffer)) (error nil))) (select-window win) (if (and (boundp (quote evil-local-mode)) evil-local-mode) (progn (evil-change-to-initial-state))) (goto-char (point-max))) (save-current-buffer (set-buffer (pop-to-buffer eshell-buffer)) (doom-mark-buffer-as-real-h) (if (eq major-mode (quote eshell-mode)) (run-hooks (quote eshell-mode-hook)) (eshell-mode)) (if command (progn (+eshell-run-command command eshell-buffer)))))))
  +eshell/toggle(nil)
  funcall-interactively(+eshell/toggle nil)
  call-interactively(+eshell/toggle nil nil)
  command-execute(+eshell/toggle)

Is this the right way to do it? It's my first time, so not really sure.

Is this the right way to do it? It's my first time, so not really sure.

Well working for me currently.

Is this the right way to do it? It's my first time, so not really sure.

@anihm136 Try to add this config, ignore the *info* buffer, would avoid the Wrong type argument: stringp, nil.
(setq golden-ratio-exclude-modes '("calendar-mode" "org-agenda-mode" "help-mode" "treemacs-mode"))
(setq golden-ratio-exclude-buffer-names '("*Org tags*" " *Org todo*" "*info*" "scratch" "Messages"))

For anyone with the same problem, you might want to check ➡  Zoom
What about golden-ratio.el?

I have been a more or less happy golden-ratio.el user for some time when I stared noticing some bugs and sadly I discovered that it is apparently a dead project now, so I decided to write a new and improved minor mode from scratch that implements the same basic idea of automatic window layout as my first attempt at Emacs mode development.

Peace!

Thank you! From the time I posted this issue, I've been on and off Doom (currently on). Haven't been using golden-ratio-mode recently, but this package looks good. Maybe I'll try it again

@lroolle how did you setup this?

@blasterpistol My config is like this:

(use-package zoom
  :after-call pre-command-hook
  :config
  (remove-hook 'window-configuration-change-hook #'zoom)
  (add-hook 'doom-switch-window-hook #'zoom)
  (custom-set-variables
   '(zoom-size '(0.7 . 0.7))
   '(zoom-ignored-major-modes '(dired-mode vterm-mode))
   '(zoom-ignored-buffer-names '())
   '(zoom-ignored-buffer-name-regexps '("^*calc"))
   '(zoom-ignore-predicates '((lambda () (> (count-lines (point-min) (point-max)) 20))))
   ))

But recently I suffered from wrong-type-argument stringp nil again...
Details:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  doom-run-switch-buffer-hooks-a(#f(compiled-function (buffer-or-name &optional action frame) "Display BUFFER-OR-NAME in some window, without selecting it.\nBUFFER-OR-NAME must be a buffer or a string naming a live buffer.\nReturn the window chosen for displaying that buffer, or nil if no\nsuch window is found.\n\nOptional argument ACTION, if non-nil, should specify a buffer\ndisplay action of the form (FUNCTIONS . ALIST).  FUNCTIONS is\neither an \"action function\" or a possibly empty list of action\nfunctions.  ALIST is a possibly empty \"action alist\".\n\nAn action function is a function that accepts two arguments: the\nbuffer to display and an action alist.  Based on those arguments,\nit should try to display the buffer in a window and return that\nwindow.  An action alist is an association list mapping symbols\nto values.  Action functions use the action alist passed to them\nto fine-tune their behaviors.\n\n`display-buffer' builds a list of action functions and an action\nalist by combining any action functions and alists specified by\n`display-buffer-overriding-action', `display-buffer-alist', the\nACTION argument, `display-buffer-base-action', and\n`display-buffer-fallback-action' (in order).  Then it calls each\nfunction in the combined function list in turn, passing the\nbuffer as the first argument and the combined action alist as the\nsecond argument, until one of the functions returns non-nil.\n\nAction functions and the action they try to perform are:\n `display-buffer-same-window' -- Use the selected window.\n `display-buffer-reuse-window' -- Use a window already showing\n    the buffer.\n `display-buffer-in-previous-window' -- Use a window that did\n    show the buffer before.\n `display-buffer-use-some-window' -- Use some existing window.\n `display-buffer-pop-up-window' -- Pop up a new window.\n `display-buffer-below-selected' -- Use or pop up a window below\n    the selected one.\n `display-buffer-at-bottom' -- Use or pop up a window at the\n    bottom of the selected frame.\n `display-buffer-pop-up-frame' -- Show the buffer on a new frame.\n `display-buffer-in-child-frame' -- Show the buffer in a\n    child frame.\n `display-buffer-no-window' -- Do not display the buffer and\n    have `display-buffer' return nil immediately.\n\nAction alist entries are:\n `inhibit-same-window' -- A non-nil value prevents the same\n    window from being used for display.\n `inhibit-switch-frame' -- A non-nil value prevents any frame\n    used for showing the buffer from being raised or selected.\n `reusable-frames' -- The value specifies the set of frames to\n    search for a window that already displays the buffer.\n    Possible values are nil (the selected frame), t (any live\n    frame), visible (any visible frame), 0 (any visible or\n    iconified frame) or an existing live frame.\n `pop-up-frame-parameters' -- The value specifies an alist of\n    frame parameters to give a new frame, if one is created.\n `window-height' -- The value specifies the desired height of the\n    window chosen and is either an integer (the total height of\n    the window), a floating point number (the fraction of its\n    total height with respect to the total height of the frame's\n    root window) or a function to be called with one argument -\n    the chosen window.  The function is supposed to adjust the\n    height of the window; its return value is ignored.  Suitable\n    functions are `shrink-window-if-larger-than-buffer' and\n    `fit-window-to-buffer'.\n `window-width' -- The value specifies the desired width of the\n    window chosen and is either an integer (the total width of\n    the window), a floating point number (the fraction of its\n    total width with respect to the width of the frame's root\n    window) or a function to be called with one argument - the\n    chosen window.  The function is supposed to adjust the width\n    of the window; its return value is ignored.\n `preserve-size' -- The value should be either (t . nil) to\n    preserve the width of the chosen window, (nil . t) to\n    preserve its height or (t . t) to preserve its height and\n    width in future changes of the window configuration.\n `window-parameters' -- The value specifies an alist of window\n    parameters to give the chosen window.\n `allow-no-window' -- A non-nil value means that `display-buffer'\n    may not display the buffer and return nil immediately.\n\nThe entries `window-height', `window-width' and `preserve-size'\nare applied only when the window used for displaying the buffer\nnever showed another buffer before.\n\nThe ACTION argument can also have a non-nil and non-list value.\nThis means to display the buffer in a window other than the\nselected one, even if it is already displayed in the selected\nwindow.  If called interactively with a prefix argument, ACTION\nis t.  Non-interactive calls should always supply a list or nil.\n\nThe optional third argument FRAME, if non-nil, acts like a\n(reusable-frames . FRAME) entry appended to the action alist\nspecified by the ACTION argument." ... #<bytecode 0x44050889>) #<buffer *Org Src README.org[ go ]*> nil)
  apply(doom-run-switch-buffer-hooks-a #f(compiled-function (buffer-or-name &optional action frame) "Display BUFFER-OR-NAME in some window, without selecting it.\nBUFFER-OR-NAME must be a buffer or a string naming a live buffer.\nReturn the window chosen for displaying that buffer, or nil if no\nsuch window is found.\n\nOptional argument ACTION, if non-nil, should specify a buffer\ndisplay action of the form (FUNCTIONS . ALIST).  FUNCTIONS is\neither an \"action function\" or a possibly empty list of action\nfunctions.  ALIST is a possibly empty \"action alist\".\n\nAn action function is a function that accepts two arguments: the\nbuffer to display and an action alist.  Based on those arguments,\nit should try to display the buffer in a window and return that\nwindow.  An action alist is an association list mapping symbols\nto values.  Action functions use the action alist passed to them\nto fine-tune their behaviors.\n\n`display-buffer' builds a list of action functions and an action\nalist by combining any action functions and alists specified by\n`display-buffer-overriding-action', `display-buffer-alist', the\nACTION argument, `display-buffer-base-action', and\n`display-buffer-fallback-action' (in order).  Then it calls each\nfunction in the combined function list in turn, passing the\nbuffer as the first argument and the combined action alist as the\nsecond argument, until one of the functions returns non-nil.\n\nAction functions and the action they try to perform are:\n `display-buffer-same-window' -- Use the selected window.\n `display-buffer-reuse-window' -- Use a window already showing\n    the buffer.\n `display-buffer-in-previous-window' -- Use a window that did\n    show the buffer before.\n `display-buffer-use-some-window' -- Use some existing window.\n `display-buffer-pop-up-window' -- Pop up a new window.\n `display-buffer-below-selected' -- Use or pop up a window below\n    the selected one.\n `display-buffer-at-bottom' -- Use or pop up a window at the\n    bottom of the selected frame.\n `display-buffer-pop-up-frame' -- Show the buffer on a new frame.\n `display-buffer-in-child-frame' -- Show the buffer in a\n    child frame.\n `display-buffer-no-window' -- Do not display the buffer and\n    have `display-buffer' return nil immediately.\n\nAction alist entries are:\n `inhibit-same-window' -- A non-nil value prevents the same\n    window from being used for display.\n `inhibit-switch-frame' -- A non-nil value prevents any frame\n    used for showing the buffer from being raised or selected.\n `reusable-frames' -- The value specifies the set of frames to\n    search for a window that already displays the buffer.\n    Possible values are nil (the selected frame), t (any live\n    frame), visible (any visible frame), 0 (any visible or\n    iconified frame) or an existing live frame.\n `pop-up-frame-parameters' -- The value specifies an alist of\n    frame parameters to give a new frame, if one is created.\n `window-height' -- The value specifies the desired height of the\n    window chosen and is either an integer (the total height of\n    the window), a floating point number (the fraction of its\n    total height with respect to the total height of the frame's\n    root window) or a function to be called with one argument -\n    the chosen window.  The function is supposed to adjust the\n    height of the window; its return value is ignored.  Suitable\n    functions are `shrink-window-if-larger-than-buffer' and\n    `fit-window-to-buffer'.\n `window-width' -- The value specifies the desired width of the\n    window chosen and is either an integer (the total width of\n    the window), a floating point number (the fraction of its\n    total width with respect to the width of the frame's root\n    window) or a function to be called with one argument - the\n    chosen window.  The function is supposed to adjust the width\n    of the window; its return value is ignored.\n `preserve-size' -- The value should be either (t . nil) to\n    preserve the width of the chosen window, (nil . t) to\n    preserve its height or (t . t) to preserve its height and\n    width in future changes of the window configuration.\n `window-parameters' -- The value specifies an alist of window\n    parameters to give the chosen window.\n `allow-no-window' -- A non-nil value means that `display-buffer'\n    may not display the buffer and return nil immediately.\n\nThe entries `window-height', `window-width' and `preserve-size'\nare applied only when the window used for displaying the buffer\nnever showed another buffer before.\n\nThe ACTION argument can also have a non-nil and non-list value.\nThis means to display the buffer in a window other than the\nselected one, even if it is already displayed in the selected\nwindow.  If called interactively with a prefix argument, ACTION\nis t.  Non-interactive calls should always supply a list or nil.\n\nThe optional third argument FRAME, if non-nil, acts like a\n(reusable-frames . FRAME) entry appended to the action alist\nspecified by the ACTION argument."   If BUFFER-OR-NAME is nil, choose some other\nbuffer.  In either case, make that buffer current and return it.\n\nThis uses `display-buffer' as a subroutine.  The optional ACTION\nargument is passed to `display-buffer' as its ACTION argument.\nSee `display-buffer' for more information.  ACTION is t if called\ninteractively with a prefix argument, which means to pop to a\nwindow other than the selected one even if the buffer is already\ndisplayed in the selected window.\n\nIf a suitable window is found, select that window.  If it is not\non the selected frame, raise that window's frame and give it\ninput focus.\n\nOptional third arg NORECORD non-nil means do not put this buffer\nat the front of the list of recently selected ones." (interactive #f(compiled-function () #<bytecode 0x1ffe7369241d>)) #<bytecode 0x43deb395>)(#<buffer *Org Src README.org[ go ]*> nil nil)
  apply(#f(compiled-function (buffer-or-name &optional action norecord) "Display buffer specified by BUFFER-OR-NAME and select its window.\nBUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.\nIf it is a string not naming an existent buffer, create a buffer\nwith that name.  If BUFFER-OR-NAME is nil, choose some other\nbuffer.  In either case, make that buffer current and return it.\n\nThis uses `display-buffer' as a subroutine.  The optional ACTION\nargument is passed to `display-buffer' as its ACTION argument.\nSee `display-buffer' for more information.  ACTION is t if called\ninteractively with a prefix argument, which means to pop to a\nwindow other than the selected one even if the buffer is already\ndisplayed in the selected window.\n\nIf a suitable window is found, select that window.  If it is not\non the selected frame, raise that window's frame and give it\ninput focus.\n\nOptional third arg NORECORD non-nil means do not put this buffer\nat the front of the list of recently selected ones." (interactive #f(compiled-function () #<bytecode 0x1ffe748c3725>)) #<bytecode 0x43deb395>) (#<buffer *Org Src README.org[ go ]*> nil nil))
  pop-to-buffer(#<buffer *Org Src README.org[ go ]*> nil nil)
  +popup--org-pop-to-buffer-a(#f(compiled-function (&rest args) "Switch to buffer in a second window on the current frame.\nIn particular, do not allow pop-up frames.\nReturns the newly created buffer." #<bytecode 0x1ffe73196989>) #<buffer *Org Src README.org[ go ]*>)
  apply(+popup--org-pop-to-buffer-a #f(compiled-function (&rest args) "Switch to buffer in a second window on the current frame.\nIn particular, do not allow pop-up frames.\nReturns the newly created buffer."  :post-blank 0 :post-affiliated 2257 :parent nil)) "*Org Src README.org[ go ]*" go-mode #f(compiled-function () #<bytecode 0x1ffe73877411>) nil)
  org-edit-src-code()
  org-edit-special(nil)
  funcall-interactively(org-edit-special nil)
  call-interactively(org-edit-special nil nil)
  command-execute(org-edit-special)

@hlissner

In case anyone else searches for setting up zoom for Doom, use the following:
;; in ~/.doom.d/packages.el
(package! zoom)

;; in ~/.doom.d/config.el
(use-package zoom
  :hook (doom-first-input . zoom-mode)
  :config
  (setq zoom-size '(0.7 . 0.7)
        zoom-ignored-major-modes '(dired-mode vterm-mode help-mode helpful-mode rxt-help-mode help-mode-menu org-mode)
        zoom-ignored-buffer-names '("*doom:scratch*" "*info*" "*helpful variable: argv*")
        zoom-ignored-buffer-name-regexps '("^\\*calc" "\\*helpful variable: .*\\*")
        zoom-ignore-predicates (list (lambda () (> (count-lines (point-min) (point-max)) 20))))

Thanks a lot, that works fine finally.
But recently I've given up the auto zoom mode, since the auto mode some times really make annoying things......Anyway, so I made my own map to zoom like C-w-z.
Yes, It's quite like the doom/window-enlargen command, which is C-w-o, but a little more space for the minimized window.
So, I've got another idea or question? Is there any possible to config the zoom size like zoom for doom's command doom/window-enlargen? 😀

This wasn't working consistently for me until I removed: zoom-ignore-predicates (list (lambda () (> (count-lines (point-min) (point-max)) 20))
Besides that, very happy to have this feature in my setup, thanks everyone

@lroolle, were you having issues with popup buffers? I seem to be having issues when zoom is enabled with any buffers seemingly controlled by popup.el. I have experienced this mostly in ess (as this is the mode I use most) and raised an issue on the zoom repo.


[Model Request] Phi-3-Vision

⚙  Request New Models

Link to an existing implementation (e.g. Hugging Face/Github): https://huggingface.co/microsoft/Phi-3-vision-128k-instruct
Is this model architecture supported by MLC-LLM? (the list of supported models) No

Additional context
It would be great if MLC can start supporting vision language models, one such model being the Phi-3-Vision tiny model.

@MasterJH5574:
OpenBMB have modified MLC LLM for multi-modal support on Android.
https://github.com/OpenBMB/mlc-MiniCPM
Is it possible to add MiniCPM-V model as a new "model-type" parameter?

This would be awesome !

very cool if it comes true

Looking forward to it!

Looking forward to it!


Pip install groundingdino-py error

I use the LangSam to segment tif file,and can not installk groundingdino-py,then i install it by pip,and get the error message as folow:
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "C:\Users\Lining\AppData\Local\Temp\pip-install-godyuld_\groundingdino-py_3354b3ab580b4d9f8d19e2f3a8521336\setup.py", line 41, in
readme = readme_file.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 2878: illegal multibyte sequence

move to groundingdino


adding HTTP & TCP reversed shell using python

Aim

I offer to develop a server-client model that acts as a trojan horse, Depends on HTTP and TCP protocols using Python, and maybe C++. Develop it for purely educational purposes. I will work on it with my friends who are accepted into your GSSOC 2021 Program.

Details
The client script (reversed shell/trojan) will contain some functions that can be executed on his device and then send the results to the server device (hacker)

Takes screenshots.
Command Execution.
Simple Keylogger.
Read Browser's Cookies.
Searching for specific files extension like the Metasploit module.
Persistence.
Data Exfiltration.
Simple port scanner.
Get system info (including geographical information)
Encrypted connection.

Do I want to work on this:

[x]  Yes
[ ] No
Please assign this to me under GSSOC'21

@nullx33F Good luck!

@c0sm0void thanks you ❤

@nullx33F any update??

Hi Sir, @c0sm0void
I apologize for the delay in responding to you.
In past day days, I was in my university exams
And yesterday I hade finished the exams
and now I am now working on HTTP reversed shell
And I thought, at the end of the day, I will add these features to it:

Takes screenshots.
Command Execution.
Searching for specific files extension like the Metasploit module.
Persistence.
Data Exfiltration.
Simple port scanner.
Get system info (including geographical information)

I am working on it now on my own so excuse me for any delay.

Hi Sir, @c0sm0void
I apologize for the delay in responding to you.
In past day days, I was in my university exams
And yesterday I hade finished the exams
and now I am now working on HTTP reversed shell
And I thought, at the end of the day, I will add these features to it:

Takes screenshots.
Command Execution.
Searching for specific files extension like the Metasploit module.
Persistence.
Data Exfiltration.
Simple port scanner.
Get system info (including geographical information)

I am working on it now on my own so excuse me for any delay.

ah, it's okay...start implementing it


Extract GEMs into own repository

Any chance that we extract the system and wifi GEM into an independent repository? These days I always copy it manualy around but it would be nice if we could integrate into the mgem-list.

Thanks!
This issue was solved in #8


[Fix][Connecotr-V2] Bug clickhouse sink does not support composite primary key

Purpose of this pull request
close #7948
Does this PR introduce any user-facing change?

How was this patch tested?

Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist
Add ci label in label-scope-conf
Add e2e testcase in seatunnel-e2e
Update connector plugin_config

[ ] Update the release-note.

Looks like your fork repository doesn't open github action. https://github.com/eyys/seatunnel/actions

Looks like your fork repository doesn't open github action. https://github.com/eyys/seatunnel/actions

ok, done

Please push an emtpy commit to trigger ci.


Build error with tns run android

I cloned the repo and switched to the start branch on running tns run androidthis is the output i get

Hey @maziey93,
Sorry you ran into problems here, but I’m unable to recreate this on my end. If you’re switching branches you may need to rm -rf platforms/ node_modules and tns install again. Could you try that and see if the problem goes away?

Hey @maziey93, I’m closing this for now, but if you’re still having problems let me know. You may also want to try logging issues like this on Stack Overflow. If you use the “nativescript” tag our whole community will see the issue and you’ll get faster responses. Our community Slack channel is also a great place to get help.


Disable UI node Interaction when ComputedVisibility is false

Objective
UI nodes can be hidden by setting their Visibility property. Since #5310 was merged, this is now ergonomic to use, as visibility is now inherited.
However, UI nodes still receive (and store) interactions when hidden, resulting in surprising hidden state (and an inability to otherwise disable UI nodes.
Solution
Fixes #5360.
I've updated the ui_focus_system to accomplish this in a minimally intrusive way, and updated the docs to match.
NOTE: I have not added automated tests to verify this behavior, as we do not currently have a good testing paradigm for bevy_ui. I'm not thrilled with that by any means, but I'm not sure fixing it is within scope.
Paths not taken
Separate Disabled component
This is a much larger and more controversial change, and not well-scoped to UI.
Furthermore, it is extremely rare that you want hidden UI elements to function: the most common cases are for things like changing tabs, collapsing elements or so on.
Splitting this behavior would be more complex, and substantially violate user expectations.
A separate limbo world
Mentioned in the linked issue. Super cool, but all of the problems  of the Disabled component solution with a whole new RFC-worth of complexity.
Using change detection to reduce the amount of redundant work
Adds a lot of complexity for questionable performance gains. Likely involves a complete refactor of the entire system.
We simply don't have the tests or benchmarks here to justify this.
Changelog

UI nodes are now always in an Interaction::None state while they are hidden (via the ComputedVisibility component).

@undersquire, I'd love to have your review (and ideally hands-on-testing) for this PR :)

Working perfectly on my end, especially now that Visibility affects children too. Not sure if there are any other tests that can be done.

Open! is sent when I click my Inventory button, and shows the Close button. Close! is sent when I click the Close button, and hides itself.

Adding to the milestone now that we have approvals; I'd like to enable more serious experiments with bevy_ui during 0.8 and this is an important building block.

As this just change the focus, setting an entity as not visible doesn't remove it from the layout computation.
The proper way to hide a UI node without de-awning the entity is to set it's Style component display field to Display::None. https://docs.rs/bevy/latest/bevy/ui/struct.Style.html#structfield.display

Does that propagate downwards correctly?
I really dislike that this is the way to control whether or not to hide UI nodes (monolithic components are bad and the discoverability is terrible), but that's a debate for another issue.

I'm mostly in agreement with Alice here. I think the core problem is that there are multiple ways to remove elements, when there really should be only one. I think the right path forward is to close this PR, then open a new PR that unifies all of these things under the same API/field (disabling visible display, removing from the layout, and disabling interaction).

Yes, I think this should be considered as a bug in Bevy, as the visibility will not act as expected for Bevy.
We should align visibility and display to only one value. display is closer to html/css, visibility to everything else in Bevy. Do we want to keep both and sync them, or only one?

For what it’s worth, I feel like the consistency of using Visibility for UI as well is the better choice.

from discussion in #5368 and looking how it works on the web, it actually makes sense to keep visibility and display separated. making an item invisible but keeping it in layout is actually useful to ensure layout doesn't change when showing/hiding elements

@mockersf @Nilirad I've added some additional docs in my last commit to help make this distinction a little more clear :)

I can try to test my menus using the Display::None and show the results here. Should I use this PR branch or Bevy 0.7?

Use this PR branch :) Ideally we'll turn that into a proper UI example down the line.

I can confirm that I get the same effect by modifying the Style component's Display field.

[5:25 PM] cart: Feels like an easy win worth squezing in

bors r+


h2o_wave.data works differently for ui.visualization and ui.plot_card

Question and Background
It seems to the developer that 1. ui.form_card with ui.visualization would be the same as 2. ui.plot_card. This is not explicitly stated in the docs, but from looking at examples it seems like 1. is the only way to replicate 2. in a card with other items, so the user assumes you could copy-past your plot and data code from one and put it in the other. This is not the case when using a dataframe, and addition option pack=True is required in 1.
Reproducible Example
n = 100
    df = pd.DataFrame({'length': np.random.rand(n),
                       'width': np.random.rand(n),
                       'data_type': np.random.choice(a=['Train', 'Test'], size=n, p=[0.8, 0.2])
                       })

    plot_marks = [ui.mark(type='point', x='=length', x_title='Length (cm)', y='=width', y_title='Width (cm)',
                          color='=data_type', shape='circle')]

    q.page['scatter_plot_card'] = ui.plot_card(
        box='1 1 4 4',
        title='Scatter Plot from Dataframe',
        data=data(
            fields=df.columns.tolist(),
            rows=df.values.tolist()
        ),
        plot=ui.plot(marks=plot_marks)
    )

    q.page['scatter_viz_form_card'] = ui.form_card(
        box='1 5 4 4',
        items=[ui.visualization(
                plot=ui.plot(marks=plot_marks
                             ),
                data=data(
                    fields=df.columns.tolist(),
                    rows=df.values.tolist(),
                    pack=True
                ),
        )]
    )

Notice the pack=True of scatter_viz_form_card which is not required for scatter_plot_card. If you do not include it you get this error:

TypeError: Object of type Data is not JSON serializable

Actual Question
You can add pack=True to scatter_plot_card and nothing changes, but I am wondering why it's not required. Is this user confusion, a possible bug in ui.visualization, or missing docs?

I can understand the confusion - this needs to be made clearer in the docs.
[1] is a card. Cards are backed by data buffers, which means they support incremental updates to individual rows or values in their data.
[2] is a component. It's not backed by data buffers, which means if you need to update a plot's data, you cannot use the simplified data-buffer syntax to edit individual values in the data. Instead, you'll need to do something like q.page['card_name'].items[0].visualization.data.rows[42][3] = 1024.
The pack=True indicates that you do not intend to edit individual rows or values in the data once the plot is rendered. Setting this attribute makes the server perform less work to host your page, and consequently improves performance.
We should probably make [2] work like [1] (without having to provide pack=True.

I can understand the confusion - this needs to be made clearer in the docs.
[1] is a card. Cards are backed by data buffers, which means they support incremental updates to individual rows or values in their data.
[2] is a component. It's not backed by data buffers, which means if you need to update a plot's data, you cannot use the simplified data-buffer syntax to edit individual values in the data. Instead, you'll need to do something like q.page['card_name'].items[0].visualization.data.rows[42][3] = 1024.
The pack=True indicates that you do not intend to edit individual rows or values in the data once the plot is rendered. Setting this attribute makes the server perform less work to host your page, and consequently improves performance.
We should probably make [2] work like [1] (without having to provide pack=True.


[Usable] [Screen reader- Open Bot Dialog] Voiceover is announcing the name of check box and information multiple times.

Actual Result:
Voiceover is reading multiple times for checkboxes information present in the "Open bot dialog".
Voiceover announces “Open in Debug mode Open in Debug mode check box not checked” again and again.
1.Open in Debug mode 2. Azure for US Government
Expected Result:
Voiceover should announce the information only once i.e. the checkbox should be associated with the content and focus goes only once on the content.
Repro Steps:

Open the Bot Framework V4 Emulator.
Welcome tab screen gets opened.
Navigate to the "Open Bot" button and activate it.
Navigate the dialog with voiceover.
Observe the issue.

Note:

Same issue observed for links present at "Create new bot configuration dialog".
Same issue observed with "Remove key value pair" dimmed button at "Add other service" dialog.
Same issue observed with "Browse" button present at "Settings".
Same issue observed for the check boxes present throughout the application such as "New bot configuration", "Add an endpoint for your Bot", "edit ngrok settings".

The same issue gets resolved for Win32, reference bug Id: https://github.com/microsoft/BotFramework-Emulator/issues/1823
User Impact:
Users who rely on voiceover will be affected to navigate the check boxes if the same info narrated multiple times.
Test Environment:
OS: MacOs Version 10.15
Application: Bot Framework V4 Emulator (Version 4.5.2-80829)
Attachment:
Checkboxes are announced multiple times.zip

I can't reproduce this behavior on the most recent Emulator build:

Please reevaluate this scenario on the newest nightly release:
https://github.com/microsoft/botframework-emulator-nightlies/releases

@tonyanziano The issue still exist in latest build. You can repro this, in voice over mode (control+option+left/right key).
Please find the latest attachment.
Checkboxes are announced multiple times.zip
Test Environment:
OS: MacOs Version 10.15
Application: Bot Framework V4 Emulator (version: 4.6.0-92058)

Verified and fixed .


[DOCFIX] Update Chinese Swift Docs

Can one of the admins verify this patch?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-PR-Builder/10863/
Test PASSed.


error: no suitable constructor found for AccessToken

error: no suitable constructor found for AccessToken(String,String,String,,,,,) constructor AccessToken.AccessToken(String,String,String,Collection,Collection,AccessTokenSource,Date,Date,Date) is not applicable (actual and formal argument lists differ in length) constructor AccessToken.AccessToken(Parcel) is not applicable (actual and formal argument lists differ in length)

error: no suitable constructor found for AccessToken(String,String,String,,,,,) constructor AccessToken.AccessToken(String,String,String,Collection,Collection,AccessTokenSource,Date,Date,Date) is not applicable (actual and formal argument lists differ in length) constructor AccessToken.AccessToken(Parcel) is not applicable (actual and formal argument lists differ in length)

finally i got a solution... i m using react-native-fbsdk 0.7.0 now i update it to 0.8.0 issue got fixed


Use attached images / suggest using a cropped version as title image

There's images. These could be used as title image.

we would need to add a checkbox to indicate "use as title image" in our image-picker (if there are multiple images present) and include a rdf representation within the rdf part of the selected image which should be included by default if only one image is present.
However since we are trying to add a persona Image anyway (profile image for the persona #2279) we would have a sep. detail and therefore could handle the title image/icon more gracefully -> wysiwyg picker (automatic cropping or whatever)


Hotfix for Meta failing icu download url for metapy

Add updated ICU download URL after ICU dependency's tgz file was migrated from Subversion repo to GitHub repo (source: http://site.icu-project.org/repository).
Purpose: Metapy's Python wheel install process runs the Meta repo's cmake build process. The Meta repo's cmake steps will fail to download the ICU dependency because the old URL for the ICU dependency does not have the Tar file anymore. Without this updated URL that has the ICU dependency Meta needs to build, no-one can make builds of Meta and by extension, the Metapy repo cannot make new builds for Python 3.8 and Python 3.9 which are currently needed (but missing because of this bug).

Closing: for some reason lots of extra commits were included with this PR. I branched off current commit hash used by Metapy repo which must not be from the master branch.


dogfood not python

We need to remove the python code and dogfood linuxkit/infrakit code for running tests.

Is there a time-frame for this?


Newsletter 11: Snake For Keyboard & Mousless Img Editor

Part of #172

Merged, thanks for the PR! :rocket:


Add model auto redeploy feature

Description
This is a new feature in ml-commons which is to enable the model auto redeploy when nodes join cluster based on different configurations, e.g. plugins.ml_commons.model_auto_redeploy.enable, plugins.ml_commons.model_auto_redeploy.lifetime_retry_times etc. This feature can make sure the crash/new node been deployed with running models automatically to save user efforts.
Issues Resolved
https://github.com/opensearch-project/ml-commons/issues/832
Check List

[x] New functionality includes testing.

[x] All tests pass

[x] New functionality has been documented.

[x] New functionality has javadoc added

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

One general suggestion: use a clear commit message to show what the new commit is about. I see all commits are using "Add model auto redeploy feature", hard to know which part the commit changed

Tests are failing, please check.

Tests are failing, please check. You might need to check MLModelCacheHelperTests.java 104 line.

Tests are failing, please check. You might need to check MLModelCacheHelperTests.java 104 line.

Upstream code changed, I need to rebase the code


fastfetch: 2.31.0 -> 2.32.1

Release notes
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 366494

x86_64-linux

:x: 2 packages failed to build:

fastfetch
fastfetch.man

aarch64-linux

:x: 2 packages failed to build:

fastfetch
fastfetch.man

x86_64-darwin

:x: 2 packages failed to build:

fastfetch
fastfetch.man

aarch64-darwin

:x: 2 packages failed to build:

fastfetch
fastfetch.man

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 366494

x86_64-linux

:white_check_mark: 2 packages built:

fastfetch
fastfetch.man

aarch64-linux

:white_check_mark: 2 packages built:

fastfetch
fastfetch.man

x86_64-darwin

:white_check_mark: 2 packages built:

fastfetch
fastfetch.man

aarch64-darwin

:white_check_mark: 2 packages built:

fastfetch
fastfetch.man


TST: Test EPSG 10 PROJ changes (PART 2)

Related: https://github.com/OSGeo/PROJ/pull/2371

The main change that might need to be looked at is: test_datum__from_user_input


SQL syntax error. findAndCountAll with scopes

allowed  sequelize findAndCountAll options set empty include array.
It's default sequelize behaviour.

@ALjean thanks for implementing. Can you also add a test which covers the issue you actually had?

@RobinBuschmann Yes. it's still WIP


Prompt template library

Is your feature request related to a problem? Please describe.
I find myself very often reusing specific prompts to automate tasks during the day (e.g. summarize meeting notes).
Describe the solution you'd like
It would be great to have a very lightweight "library" within the app to store those prompts and have them all in the same place. With this in place, I can just quickly insert a prompt template for a specific task i want to automate and get going, without needing to rewrite the prompt or go to another note-taking app where i have saved prompt templates. It could just be a very simple store of txt documents, even without the need for formatting or markdown.
Describe alternatives you've considered
A separate note-taking app (like Obsidian) where I store prompt templates, which adds overhead to the workflow.

also would like to have a capability to change prompt, since the default response is too wordy and verbose, and it also impact the speed. to have a feature customize the prompt would more suitable for personalized tasks.


CORE-5566: Add Explicit Test Assertions

Explicitly assert within tests that a flow execution failed due an invalid flow constructor.

The change itself is fine, but I wonder if we should take this chance to add a few more tests.
These would both be tests for Java Flows:

Has no constructors defined (should run).
Has no default constructor (should fail).
Has a private default constructor (should fail?).

Right now I think our Java test coverage is non existent, and surely we should check that Java flows can actually run for DP2.


make the search config configurable

adds a config variable so that the search config ('simple', 'english', etc) can be set in the app

Thanks! 👍 I'll try to review it ASAP.

Thanks again for the contribution! Reworked it quite a bit and merged to master. It's possible to set search config either globally in scout config or on a per-model basis. Hopefully tag a new release soon.


Hardcoded build path in esbonio.py file

I have a different out directory name (eg: _out), so the json is generated at _out/needs/needs.json,
but in the below file
https://github.com/useblocks/sphinxcontrib-needs/blob/master/sphinx_needs/lsp/esbonio.py
The build directory is hard coded to start with _build, this causes the extension fail continuously with below error.
raise FileNotFoundError(f"JSON file not found: {json_file}")
Can you please check if this is an issue ?
LOC - 89
needs_json = confdir / "_build/needs/needs.json"

@haiyangToAI Is this done with #637?

the esbonio module is no longer part of sphinx-needs


Rewrite GC to get rid of Python ids or references

https://github.com/sdingcn/exprscript/blob/82896e320af01bc77651ec3806c4ac67c83da2dd/src/interpreter.py#L865
Use value.location to de-duplicate GC tracing.

66ed0788d0add5f474f66c3fd326b6d32c63b5ee
In some cases value.location is not set yet.


does not build

Here is the relevant part of my npm log from npm i
...
56 info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>57 silly lifecycle<EMAIL_ADDRESS>no script for postpack, continuing
58 silly pacote git manifest for undefined@github:atom/language-shellscript fetched in 1384ms
59 silly fetchPackageMetaData error for github:deoxxa/dissolve#eeb806f2bad501548138c8e38d0adcf95d4d1bdb Command failed: /usr/local/bin/git clone --depth=1 -q -b 17/head git:/
/github.com/deoxxa/dissolve.git /Users/tcurdt/.npm/_cacache/tmp/git-clone-d8999689
59 silly fetchPackageMetaData warning: templates not found in /var/folders/pf/7vhqx5bn41qddypw08w9jc4w0000gn/T/pacote-git-template-tmp/git-clone-6a6ebdc2
59 silly fetchPackageMetaData warning: Could not find remote branch 17/head to clone.
59 silly fetchPackageMetaData fatal: Remote branch 17/head not found in upstream origin
60 verbose stack Error: Command failed: /usr/local/bin/git clone --depth=1 -q -b 17/head git://github.com/deoxxa/dissolve.git /Users/tcurdt/.npm/_cacache/tmp/git-clone-d8999689
60 verbose stack warning: templates not found in /var/folders/pf/7vhqx5bn41qddypw08w9jc4w0000gn/T/pacote-git-template-tmp/git-clone-6a6ebdc2
60 verbose stack warning: Could not find remote branch 17/head to clone.
60 verbose stack fatal: Remote branch 17/head not found in upstream origin

Should be fixed with recent transition to @marko/build and @marko/serve.


Fix static_string.cpp compilation with MSVC standard library

std::array's iterator is a pointer in libc++ and libstdc++ so const auto* works fine. However the array iterator is not a pointer on MSVC so compilation fails. Removing the asterisk still results in a pointer type being used but causes a clang-tidy check to fail so we have to disable that.

@traversaro does this work on your machine? I hope we can eventually get some Windows CI jobs so we can ensure we don't break Windows compat in the future.

@traversaro does this work on your machine? I hope we can eventually get some Windows CI jobs so we can ensure we don't break Windows compat in the future.

Sorry, this ended up in European evening. I will check this tomorrow!


Allow debug controls to be dragged over the titlebar

VSCode Version: 1.46.0
OS Version: macOS

Steps to Reproduce:

Start new debugging session
Attempt to drag debugging controls to titlebar (even custom titlebar)

Does this issue occur when all extensions are disabled?: Yes
This is a UI bug. A while ago VSCode added the ability to drag the debugging controls down a level so that they don't cover up tabs. However, it's not enough, they are in the way, and I still end up dragging them around all the time to uncover various parts of the UI.
I am on a laptop, probably users with external monitors don't have this problem as much.
I always wish I could just drag the debugging controls up into the empty titlebar instead of down over my code.
I know this would be difficult to support for native titlebars, but for custom titlebars I believe it's possible?

Related to #98606
@atg are you aware that this toolbar can already be docked rather than floating (see https://github.com/microsoft/vscode/issues/88067#issuecomment-570720074)?

@gjsjohnmurray Unfortunately docking it doesn't solve the issue for laptop screens specifically. Laptop users are precisely the kinds of users who are likely to have the side bar hidden at various times. If I want to get two side-by-side editors comfortably I have to hide the side bar, I don't really want to have be in a position of having to show the side bar just to step through my code. That would be swapping one inconvenience (of having to move the debug controls around) for an even greater one.
The problem is that the area where the debug controls are currently allowed to be dragged is already extraordinarily busy. There is: the top line of code in each editor, the tab bar, and the find/replace bar.
There's this really nice free area of unused real estate in the titlebar, and since it's floating it feels so natural to just drag it up there, but it's not allowed.


Center the main element

Changes the current layout from this:

To this:

This change should provide a more pleasant reading experience, especially on wider monitors.

I just noticed the images on the Auto Revalidation-page have some positioning issues now:

@leodr Thanks for this PR! I think we should also add some extra padding to the main container (under a media query), so it's centered to the entire screen:

Regarding the videos, it's intended to have those overflow so they will be larger and clearer. We can make them overflow in both sides.

I've added the right padding with a lg: media query, i think it looks strange otherwise for smaller screens that barely have enough space to display the sidebar but not really the right-side padding.
Haven't really got the centered videos working tho...

Works pretty well, @pacocoursey! I added your CSS and IMO the video scales down pretty gently now.

I set the maximum width of the video to 136%, which looks pretty good i think 👍
I also centered the fixcaption and gave it a maximum width to provide some contrast between the primary text and the caption on smaller screens.

Another option to consider: Stripe sets a max width on XXL screens and fills in the remaining right side of the page with some stripes.

Hi @leodr do you mind fixing the conflicts, so we can merge this PR? Thanks!

Hi @leodr do you mind fixing the conflicts, so we can merge this PR? Thanks!

Sorry for being inactive for so long, I'm kinda new to all of open source, I thought the maintainers would resolve these merge conflicts.
I guess I got it done, with a few more commits than it should have, but hey, it's working :)

No worries. This is great work, thank you so much @leodr!


Question regarding Git tag 1.3.0

Hello, I'm one of the maintainers of the Homebrew package manager. We're currently shipping v1.3.0 of source-to-image and noticed that the revision tagged as 1.3.0 has changed since its original release. Has the code been rebased or a new copy of v1.3.0 been retagged? I notice that it was tagged in April 2020 and the copy of v1.3.0 that we're distributing seems older than that.
I just wanted to verify that this change was intentional and also understand if there were any breaking changes during the retag process. Thanks!

@alebcay if you are able to post the SHA that was used in the original distribution, I can tell you if we added any breaking changes. I don't think I did - after I created the tag, we discovered some important docs were missing. I believe s2i version will print out the commit SHA.

The original v1.3.0 revision that we distributed seems to be ecf5524df96eb4def4db8ef0969a9630e59ec890, while the v1.3.0 tag now points at eed2850f2187435ef5d83487e05bf3dc18622ceb.

@alebcay no breaking changes for end-users between those commits. One bug fix related to the new generate command.

I see. Thanks for clarifying! 👍


Taylorr/feature/fec toggle

Sorry!! I keep doing this. Do you know how to make it default to our fork?

https://stackoverflow.com/a/18816842/640650


fix: mdx theme is missing

create two style files style.css style_node_modules.css but only publish style.css
Inside workspace, we could use webpack alias to do the same hack without symlinks: false so that nextra and themes could use same @mdx-js/react instances.
close #637

Great solution!


GUI believes a Coordinate is clamped when it is not

Steps to reproduce
Load pendulum model. Set any of the unclamped coordinates to a value that exceed -90 to 90.
Expected result
Change is accepted with no error and model changes pose since coordinates are not clamped.
Actual result
Receive two error message pop-ups that "Value enetered is outside range of clamped coordinate. Ignoring"

Clamping and unclamping enables the user to set the value without error.
Also recommend changing the message in the case it is clamped to the suggested message in #534.
Environment and GUI version
Windows OpenSim-5eacd8a5-2018-05-22

The main issue appears to fixed on Windows OpenSim_cea85df3-2018-07-18. No warning popup when editing an unclamped coordinate beyond its limits.
However, if you then clamp while exceeding the limits, nothing appears to happen but an Exception is thrown (⛔ appears) with the following message:

And coordinate sliders no longer have any effect on the model.
I think the dialog should appear again with a message that is relevant to both cases: 1. value entered is beyond clamped range, and 2. clamp is turned on when coordinate value is outside of range and value is updated to be nearest in range.

I agree regarding the end result being a dialog. The only reason this doesn't happen on its own is that the Exception thrown is a ow level SimTK::Exception rather than an OpenSim::Exception that the GUI knows how to handle (thus truly Unexpected Exception)  😃


[DOCS] Add a Code of Conduct (COC)

You have to add this COC:
Example File in Another repo - Contributor Covenant Code of Conduct v2

You can assign me for the task.

I added this but forgot to close the issue.


Some threads can apparently pass though syncthreads() before all threads arrive there

Sorry for the long reproducer - I was having trouble shrinking it any further. Running the following:
from numba import cuda, float64
import numpy as np

@cuda.jit()
def f(a):
    sh_arr = cuda.shared.array((1, 3), dtype=float64)

    x = cuda.threadIdx.x
    y = cuda.threadIdx.y

    if y > 3:
        return

    if 1 == 3:
        next_hs = y
    else:
        next_hs = (0, 2, 3)[y]

    if next_hs > 0:
        assets_value = a[0]

    n = a.size
    if assets_value < a[0]:
        pass
    elif assets_value < a[n - 1]:
        for i in range(1, n):
            pass

    sh_arr[x, y] = -999.0

    cuda.syncthreads()

    if (x == 0 and y == 0):
        for j in range(1):
            for k in range(3):
                print(sh_arr[j, k])

a = np.asarray([0.0, 0.0, 0.0])
f[(1, (1,3))](a)

results in the following output (on my GTX 970 and @stuartarchibald's 750Ti):
-999.000000
0.000000
0.000000

whereas I would have expected:
-999.000000
-999.000000
-999.000000

It seems as though thread 0 manages to get past the syncthreads() call before threads 2 and 3 arrive. If print(7) is added just before the call to syncthreads(), the output looks something like
7
-999.000000
0.000000
0.000000
77

This is a strange thing to observe (and hard to believe it is happening) because the three threads are all in the same warp - they "should" be executing in lock-step.

The 0.000000 in the last two elements of output where there ought be -999.000000 is random junk (locally 0.007813 and  0 seem to be favourites). If the sh_arr elements are set to a fixed value immediately after allocation then it is those that are reported in the place of the 0.000000/junk. I've also tried 100 runs of the test in case there was an easily spotted race, at no point does it produce the right answer.

This issue seems to disappear with Numba master and llvmlite 0.9.0.dev. There are significant differences in the generated PTX, so it's not very easy to tell what the change was.

Closing since we probably can't reproduce this anymore.


Wells Fargo

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Stack trace
If applicable, please add the sdk stack trace for the error.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Python version: [e.g. 3.9.12]
raiwidgets and responsibleai package versions [e.g. 0.19.0]

To get the package versions please run in your command line:
pip show raiwidgets
pip show responsibleai

Additional context
Add any other context about the problem here.

@chris6090 sorry I did not understand the question. also this github is public please don't post your private info here.


Add logo to docs

Description of the modifications
Contact Muhammed Adedigba to have a logo created for PyAdditive and incorporate it in the docs.
Useful links and references
No response

Added prematurely.


Adding ssh proxy capability

Adding the capability to configure a proxy host and port for ssh git
repo connections.

Hi @ryanjbaxter
Thanks for your reply. At the moment it is implemented, that the proxy host is set for file and property based ssh transport configurations. Do you think it will be better to use the property porxyHost only when ignoreLocalSshSettings: true?
I will try to add some tests.
Regards,
Chris

It seems like the rest of the ssh settings in configuration only take effect when ignoreLocalSshSettings is true, so I think that makes sense.
http://cloud.spring.io/spring-cloud-static/Finchley.RC2/single/spring-cloud.html#_git_ssh_configuration_using_properties

@spencergibb Ok I have changed the field type of proxyPort from int to Integer and added a null check in case the proxyHost is set. I added also a negativ test.

Ok, I'll do that. Since the properties are optional, I will not add them to the Example. How about:
proxyHost
Hostname for the ssh proxy connection. Is optional and used only when ignoreLocalSshSettings is true
proxyPort
Port for the ssh proxy connection. Must be set if proxyHost is also set

Sounds like a good start

Hi @ojhughes, in my case I required to have the proxy connection via http, since the proxy server did not support a SocksProxy connection. Its works fine. There is an example on the jsch page for doing a ssh session via http proxy: http://www.jcraft.com/jsch/examples/ViaHTTP.java.html . Maybe I can add the fact, that an http proxy connection is done to the desciption of the properties in the docs. But I would suggest to add additional properties (e.g. socksProxyHost and socksProxyPort) or a switch property (e.g. proxyConnectionType with the values http and socks) to create the connection either via http or a socket connection. What do you think?

Hi @spencergibb
How about your change requests? Are they now fullfilled?
Thank you and regards,
Christian


 For example, my terminal requires $LINES * $COLUMNS = 82 * 318 = 26076 of String allocations on heap to render an application with entire terminal screen.
Recently I found an awesome crate smol_str maintained by rust-analyzer team. This crate provides a string type SmolStr with small string optimization (SSO). Its size is always the same as String. So size of Cell does not change. And it can contain a string without heap allocation up to 22 bytes. I believe almost all unicode grapheme clusters fit to the size. So almost all heap allocations around Cell can be removed by simply replacing String with SmolStr.
This PR replaces the symbol field of Cell. Since the field is public, this change will lead to major version bump (v0.19.0?). But it is not so big problem because Cell is very implementation details and typically TUI application authors don't access it directly.
Thanks to carefully designed SmolStr's APIs, just replacing String with SmolStr almost worked and changes of this PR are very small. The difference between SmolStr and String is immutable or not. symbol field is now newly created instead of clearing its contents.
Testing guidelines

I ran all unit tests and confirmed they passed
I ran all examples and checked they were working fine manually

Checklist

[x] I have read the contributing guidelines.
[x] I have added relevant tests. (I believe current test is sufficient)
[x] I have documented all new additions.

Let me decline this PR because

smol_str only supports the latest stable Rust
I've seen some performance regressions in my tui-textarea micro benchmarks


Issue with getfullargspec()

Originally reported by: Anonymous

Hello,
Is there a way to use six to determine the proper function for getfullargspec().  In Python 3, you need to use inspect.signature(), but this is not back ported to PY2.  Is this function built-in to six?

Bitbucket: https://bitbucket.org/gutworth/six/issue/153

an inspect.getfullargspec() equivalent that works on both Python 2 and 3 would be a good addition to six.
getfullargspec() on Python 3 returns a named tuple with different names even though the tuple indices are the same.
getfullargspec() must be used on Python 3 if you might ever call it on a callable with annotations or keyword only arguments at times but you still want to work when running under Python 2.
I suggest just adding six.getfullargspec() that returns a Python 3 like FullArgSpec named tuple. The keyword only arguments, keyword only defaults, and annotations attributes would just be empty on Python 2.


WIP base indexer

wonder if we should merge this as a reference? could replace the hardcoded things with .env values and make it extra easy for anyone to spin up an indexer on render


problem with fight

when i want to fight some bandits, my character kneel and sumbit immediatly, (armor and nomal cloth chest) i've tryed to disable defeat for pc but it still the same i don't understand what i need to do

Lol