Environment variables in openedge-project.json PROPATH not resolved

I'm using an openedge-project.json file that looks like this:
{
    "name": "my-project",
    "version": "1.0",
    "oeversion": "12.2",
    "graphicalMode": false,
    "charset": "utf-8",
    "buildPath": [
      { "type": "source", "path": "my-project/src" },
      { "type": "source", "path": "my-project/tests" },
      { "type": "propath", "path": "${DLC}/tty/netlib/OpenEdge.Net.pl" },
      { "type": "propath", "path": "${DLC}/tty/OpenEdge.Core.pl" }
    ],
    "buildDirectory": "build",
    "numThreads": 1
}

When I run some unit tests, I'm seeing the following error:
Error = Error (ExecExcetion)
   Command failed: c:/Progress/12.2/oe/bin/_progres -b -p c:/Users/chrisr/.vscode/extensions/kherring.ablunit-test-runner-0.2.1/resources/ABLUnitCore-wrapper.p -basekey INI -ininame progress.ini -T c:/Users/chrisr/git/data-management-api -profile profile.options -param "CFG=ablunit.json" 2>&1

Unable to build type info for MyTest.cls: Could not find class or interface OpenEdge.Net.HTTP.StatusCodeEnum. (12886)
Unable to build type info for MyTest.cls: Could not find class or interface OpenEdge.Net.HTTP.StatusCodeEnum. (12886)

If I change the buildPath in openedge-project.json to replace the ${DLC} reference with a fully qualified path, such as "C:/Progress/12.2" then this problem disappears. Looks like the environment variable is just not being resolved.

Thanks for the issue report, will look into it and report back.

I ran into this too ... even if I added DLC=/path/to/openedge into the ini file.


Miscellaneous small fixes

Fix spacing around brackets, and add a word I believe is missing.

#sign-off


Set up release pipeline for the next branch

We want to be able to make early access releases from the next branch. We still need to be able to make normal releases from the master branch, so it should not impact our current pipeline. If some of the setup in the existing pipeline can be reused, that would be great.
We also want to be able to make these pre-releases, to make it clear to users that these would not be stable releases. Eventually we obviously want to change that.

Related to this, installation docs need to be updated.

I think we should just keep releases from next only on github until we have something that can replace the existing releases from master.

When should a next release be triggered?
Is the intention to use a tagged release or would some derivative of the existing Cloud Build job we have that publishes the most recent master version work?
What artifacts should a next release include? Binaries for the different architectures? Containers?

I think we want releases to be triggered by tags, so the same strategy as we do now. No need to build artifacts on every push to the next branch, at least for now.
This is not fully decided yet, but if we end up setting a separate job, we can assume tags originating from the next branch start with v1. and tags originating from master starts with v0.. This should allow us to set up non-overlapping triggers.
We want to move away from binaries published through gcs (just use Github for this), so lets not do that for the next branch releases.
We want mostly the same artifacts as we create now. So binaries and tar files published as part of github releases, and build images for kpt that we publish to gcr.


RFC to allow self parameter be any type

Rendered

I am not completely opposed to this idea, but this RFC is extremely light on details.

What happens when I do this:
struct MyStruct;

impl MyStruct {
    pub fn len(self: &Vec<MyStruct>) -> usize { ... }
}

fn main() {
    let v: Vec<MyStruct> = Vec::new();
    v.len();   // which method is called?
}

Will this shadow Vec::len()? Will it not compile?

@steveklabnik I know but I can't figure out any more details.

The guarantee needs to be stronger, in order to be able to implement this in a meaningful way.
Last time I looked into this, Deref<Target=Self> seemed to be enough for inherent methods.
That means that the Self type is found when doing recursive dereferences of `
Trait methods, however, if they can be used in trait objects, require that typeof self is some X<Self> where X<Self>: CoerceUnsized<X<Trait>> where X<Self> and X<Trait> are structurally identical down to a matching pointer/reference to Self, and Trait, respectively.
Otherwise, associated types could be used to convert a pointer into a reference, in safe code.
cc @rust-lang/lang

@jonas-schievink It should be ambiguous code error.

@KalitaAlexey @jonas-schievink No, that method can't be in an impl MyStruct, at most impl [MyStruct]. It bears no direct relation to MyStruct, only to [MyStruct].

@eddyb As you wish it is an option also.

I believe this has previously been discussed in the context of UFCS, it would be good to dig up and reference that discussion.
This RFC is more at the 'feature request' stage rather than ready for an RFC PR. I would recommend the author close it for now and open either an issue on this repo or a thread on internals.rust-lang.org in order to gather the details required for an RFC.

As @nrc suggested I closed this PR and opened a thread on internals.rust-lang.org.


Remove status column from client libraries page

- What I did
Remove status column from client libraries page because they are all active. If they are not active, we should probably just remove them from the page.
Also updated the intro text to explain what the libraries are for.
- A picture of a cute animal (not mandatory but encouraged)

LGTM

LGTM 🐹


crippy bug: stdin buffer if "Rust Format On Save" is on

It is random, I have no idea how to reproduce it.
Time to time when I save current buffer with rust-mode, let's call it a.rs,
emacs does not save it, and instead it open buffer stdin, in other words I press
C-x s and current buffer change to "stdin" buffer. This buffer is empty,
and a.rs still in modified state. I switch back to a.rs, try to save it and again empty stdin instead of a.rs.
So actually I can not save my rust buffer,
I have to set "Rust Format On Save" to off to make possible save,
or change mode from rust-mode to text-mode.
This bug appear only recently, so I suppose it is related to last "rustfmt" changes in master.
GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.10) of 2019-08-29
rust-mode          20200229.1547

I will have a look. What version of the repo do you have installed?

@mookid

What version of the repo do you have installed?

I installed rust-mode via melpa and it is as I mentioned:

rust-mode 20200229.1547

I cloned current master<PHONE_NUMBER>7be0661feae32e294ff991c087ed4d) and seems it is completely match current master:
LANG=C diff -ur   ~/.emacs.d/elpa/rust-mode-20200229.1547/ rust-mode/
Only in rust-mode/: .git
Only in rust-mode/: .github
Only in rust-mode/: .gitignore
Only in rust-mode/: .travis.yml
Only in rust-mode/: LICENSE-APACHE
Only in rust-mode/: LICENSE-MIT
Only in rust-mode/: README.md
Only in rust-mode/: run_rust_emacs_tests.sh
Only in rust-mode/: run_rust_emacs_tests_docker.sh
Only in /home/evgeniy/.emacs.d/elpa/rust-mode-20200229.1547/: rust-mode-autoloads.el
Only in /home/evgeniy/.emacs.d/elpa/rust-mode-20200229.1547/: rust-mode-pkg.el
Only in rust-mode/: rust-mode-tests.el
diff -ur /home/evgeniy/.emacs.d/elpa/rust-mode-20200229.1547/rust-mode.el rust-mode/rust-mode.el
--- /home/evgeniy/.emacs.d/elpa/rust-mode-20200229.1547/rust-mode.el    2020-03-01 20:36:21.753564920 +0300
+++ rust-mode/rust-mode.el      2020-03-02 19:53:22.723344491 +0300
@@ -1,7 +1,6 @@
 ;;; rust-mode.el --- A major emacs mode for editing Rust source code -*-lexical-binding: t-*-

 ;; Version: 0.5.0
-;; Package-Version: 20200229.1547
 ;; Author: Mozilla
 ;; Url: https://github.com/rust-lang/rust-mode
 ;; Keywords: languages
Only in /home/evgeniy/.emacs.d/elpa/rust-mode-20200229.1547/: rust-mode.elc
Only in rust-mode/: test-by-cp
Only in rust-mode/: test-from-git
Only in rust-mode/: test-project

@Dushistov  I fail to reproduce it for now.  Can you please install the last version of master and try again?
Also, can I see your config somewhere?

@mookid

Can you please install the last version of master and try again?

I installed it. And I will wait for bug.

Also, can I see your config somewhere?

;; Rust
(require 'req-package)
(use-package rust-mode
    :mode "\\.rs\\'"
    :init
    (setq rust-format-on-save t)
    (setq-default indent-tabs-mode nil))

(require 'rust-mode)
(require 'lsp-mode)
(add-hook 'rust-mode-hook #'lsp)

(require 'cargo)
(setq cargo-process--command-check "check --release --all-targets")
(setq cargo-process--command-test "test --release")
(setq cargo-process--command-current-test "test --release")

(defun cargo-cmds-release-toggle ()
  (interactive)
  (if (equal cargo-process--command-check "check --release --all-targets")
      (progn
	(setq cargo-process--command-check "check --all-targets")
	(setq cargo-process--command-test "test")
	(setq cargo-process--command-current-test "test"))
      (progn
	(setq cargo-process--command-check "check --release --all-targets")
	(setq cargo-process--command-test "test --release")
	(setq cargo-process--command-current-test "test --release"))))

(add-hook 'rust-mode-hook
	  (lambda ()
	    (local-set-key "\C-cj" 'lsp-find-definition)
	    (local-set-key "\M-*" 'pop-tag-mark)
	    (local-set-key (kbd "C-<f7>") 'cargo-process-check)
	    (local-set-key (kbd "C-<XF86AudioPrev>") 'cargo-process-check)
	    (local-set-key (kbd "C-<f8>") 'cargo-process-test)
	    (local-set-key (kbd "C-<XF86AudioPlay>") 'cargo-process-test)
	    (local-set-key (kbd "C-<f9>") 'recompile)
	    (local-set-key (kbd "C-<XF86AudioNext>") 'recompile)
	    (local-set-key (kbd "C-<return>") 'cargo-process-current-test)
	    (column-enforce-mode)
	    ))

(defun rust-multiline-error-filter ()
  (save-excursion
    (let ((start compilation-filter-start)
          (end (point)))
      (goto-char start)
      (beginning-of-line)  ; is this necessary? should not harm ...
      (while (re-search-forward "^\\(error\\|warning\\)\\(?:\\[E[0-9]+\\]\\)?:[^\n]*[\n]" end t)
        (put-text-property (match-beginning 0) (match-end 0) 'compilation-multiline t)))))
(add-hook 'rust-mode-hook
          (lambda () (add-hook 'compilation-filter-hook #'rust-multiline-error-filter)))

;; Rust end

I have the same issue, and it seems to happen exactly when the file has a syntax error. Valid code will be formatted fine, but invalid code results in opening stdin.

What kind of syntax error are we talking about? An example would be super useful.
I tried for instance fn func( or "abcd and my file is saved normally.

I tried
fn main() {

    }

It saved fine and reformatted to fn main() {}.
But
fn main() {

opens stdin.
This happens for every syntax error I can think of, so likely there is some other difference between our setups.

In Messages I see:
rust--format-error-handler: End of buffer

I have rust-mode 20200303.932 from melpa and emacs 26.3.

Thanks for the repro! I still can't trigger it myself. What is (list rust-format-show-buffer rust-format-goto-problem)?
What if you redefine rust--format-error-handler  like so?
(defun rust--format-error-handler ()
  (condition-case nil
      (let ((ok nil))
        (when rust-format-show-buffer
          (display-buffer (get-buffer rust-rustfmt-buffername))
          (setq ok t))
        (when rust-format-goto-problem
          (rust-goto-format-problem)
          (setq ok t))
        ok)))

What is (list rust-format-show-buffer rust-format-goto-problem)?

(nil t)

What if you redefine rust--format-error-handler  like so?

Same behaviour.

Also maybe helpful -
[nix-shell:~/materialize]$ rustfmt --version
rustfmt 1.4.11-stable (1838235 2019-12-03)

Ok, this is different from what I have. And what is the content of rust-fmt?

*rust-fmt* doesn't seem to exist.

I have to head out now, but I'll see tomorrow if I can make repro with nix.

Closing for now, please repopen with other details if it reappears.

reappears

I just updated rust-mode to 20200322.1749 and I still consistently have this behavior on every save with invalid syntax.

@jamii  can you please add more details? what is the content of the rustfmt buffer?

*rustfmt* contains
error: this file contains an un-closed delimiter
 --> <stdin>:1:13
  |
1 | fn main() {
  |           - ^
  |           |
  |           un-closed delimiter

`Messages contains
Saving file /home/jamie/test.rs...
Quit

(The quit is me exiting the "save file" dialog)
Otherwise the behaviour I see is the same as before - when I hit save it switches to a buffer called '' and then asks where to save that buffer.

Debugging this is painful, but I got as far as this in the error handler so far:
  window-normalize-buffer-to-switch-to("<stdin>")
* switch-to-buffer("<stdin>")
* (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))
* (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point)))))
* (let ((target-buffer (save-current-buffer (set-buffer rustfmt) (save-excursion (goto-char (point-min)) (if (re-search-forward "--> \\([^:]+\\):" nil t) (progn (match-string 1)))))) (target-point (save-current-buffer (set-buffer rustfmt) (let ((regex "--> [^:]+:\\([0-9]+\\):\\([0-9]+\\)")) (if (or (re-search-forward regex nil t) (progn ... ...)) (progn (cons ... ...)))))) (target-problem (save-current-buffer (set-buffer rustfmt) (save-excursion (if (re-search-backward "^error:.+\n" nil t) (progn (forward-char ...) (let ... ...))))))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))) (message target-problem))
* (if (not rustfmt) (message "No *rustfmt*, no problems.") (let ((target-buffer (save-current-buffer (set-buffer rustfmt) (save-excursion (goto-char (point-min)) (if (re-search-forward "--> \\([^:]+\\):" nil t) (progn ...))))) (target-point (save-current-buffer (set-buffer rustfmt) (let ((regex "--> [^:]+:\\([0-9]+\\):\\([0-9]+\\)")) (if (or ... ...) (progn ...))))) (target-problem (save-current-buffer (set-buffer rustfmt) (save-excursion (if (re-search-backward "^error:.+\n" nil t) (progn ... ...)))))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))) (message target-problem)))
* (let ((rustfmt (get-buffer rust-rustfmt-buffername))) (if (not rustfmt) (message "No *rustfmt*, no problems.") (let ((target-buffer (save-current-buffer (set-buffer rustfmt) (save-excursion (goto-char ...) (if ... ...)))) (target-point (save-current-buffer (set-buffer rustfmt) (let (...) (if ... ...)))) (target-problem (save-current-buffer (set-buffer rustfmt) (save-excursion (if ... ...))))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))) (message target-problem))))
* rust-goto-format-problem()
* rust--format-error-handler()
* #f(compiled-function () (interactive nil) #<bytecode 0x17bb311>)()
* apply(#f(compiled-function () (interactive nil) #<bytecode 0x17bb311>) nil)
* rust-format-buffer()
  rust-before-save-hook()
  run-hooks(before-save-hook)
  basic-save-buffer(t)
  save-buffer(1)
  funcall-interactively(save-buffer 1)
  call-interactively(save-buffer nil nil)
  command-execute(save-buffer)

So it gets to
Debugger entered--returning value: 5
  1-(6)
* (forward-char (1- (cdr target-point)))
* (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))
* (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point)))))
* (let ((target-buffer (save-current-buffer (set-buffer rustfmt) (save-excursion (goto-char (point-min)) (if (re-search-forward "--> \\([^:]+\\):" nil t) (progn (match-string 1)))))) (target-point (save-current-buffer (set-buffer rustfmt) (let ((regex "--> [^:]+:\\([0-9]+\\):\\([0-9]+\\)")) (if (or (re-search-forward regex nil t) (progn ... ...)) (progn (cons ... ...)))))) (target-problem (save-current-buffer (set-buffer rustfmt) (save-excursion (if (re-search-backward "^error:.+\n" nil t) (progn (forward-char ...) (let ... ...))))))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))) (message target-problem))
* (if (not rustfmt) (message "No *rustfmt*, no problems.") (let ((target-buffer (save-current-buffer (set-buffer rustfmt) (save-excursion (goto-char (point-min)) (if (re-search-forward "--> \\([^:]+\\):" nil t) (progn ...))))) (target-point (save-current-buffer (set-buffer rustfmt) (let ((regex "--> [^:]+:\\([0-9]+\\):\\([0-9]+\\)")) (if (or ... ...) (progn ...))))) (target-problem (save-current-buffer (set-buffer rustfmt) (save-excursion (if (re-search-backward "^error:.+\n" nil t) (progn ... ...)))))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))) (message target-problem)))
* (let ((rustfmt (get-buffer rust-rustfmt-buffername))) (if (not rustfmt) (message "No *rustfmt*, no problems.") (let ((target-buffer (save-current-buffer (set-buffer rustfmt) (save-excursion (goto-char ...) (if ... ...)))) (target-point (save-current-buffer (set-buffer rustfmt) (let (...) (if ... ...)))) (target-problem (save-current-buffer (set-buffer rustfmt) (save-excursion (if ... ...))))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- (car target-point))) (forward-char (1- (cdr target-point))))) (message target-problem))))
* (lambda nil "Jumps to problem reported by rustfmt, if any.\nIn case of multiple problems cycles through them. Displays the\nrustfmt complain in the echo area." (interactive) (let ((rustfmt (get-buffer rust-rustfmt-buffername))) (if (not rustfmt) (message "No *rustfmt*, no problems.") (let ((target-buffer (save-current-buffer (set-buffer rustfmt) (save-excursion ... ...))) (target-point (save-current-buffer (set-buffer rustfmt) (let ... ...))) (target-problem (save-current-buffer (set-buffer rustfmt) (save-excursion ...)))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char (point-min)) (forward-line (1- ...)) (forward-char (1- ...)))) (message target-problem)))))()
* apply((lambda nil "Jumps to problem reported by rustfmt, if any.\nIn case of multiple problems cycles through them. Displays the\nrustfmt complain in the echo area." (interactive) (let ((rustfmt (get-buffer rust-rustfmt-buffername))) (if (not rustfmt) (message "No *rustfmt*, no problems.") (let ((target-buffer (save-current-buffer ... ...)) (target-point (save-current-buffer ... ...)) (target-problem (save-current-buffer ... ...))) (if (and target-buffer target-point) (progn (switch-to-buffer target-buffer) (goto-char ...) (forward-line ...) (forward-char ...))) (message target-problem))))) nil)
* rust-goto-format-problem()
  rust--format-error-handler()
  rust-format-buffer()
  rust-before-save-hook()
  run-hooks(before-save-hook)
  basic-save-buffer(t)
  save-buffer(1)
  funcall-interactively(save-buffer 1)
  call-interactively(save-buffer nil nil)
  command-execute(save-buffer)

At this point target-buffer is set to "<stdin>" and that buffer is open. If I hit next it jumps to:
Debugger entered--entering a function:
* format("rust-before-save-hook: %S %S" end-of-buffer nil)
  rust-before-save-hook()
  run-hooks(before-save-hook)
  basic-save-buffer(t)
  save-buffer(1)
  funcall-interactively(save-buffer 1)
  call-interactively(save-buffer nil nil)
  command-execute(save-buffer)

It doesn't ever reach (message target-problem) on L1541 of rust-mode.el, so I assume this jump was some kind of error handler? I'm not really sure how to follow the jump in the debugger.

At this point the <stdin> buffer is empty, so that forward-char will result in an "end of buffer" error.

The numbers in target-point seem to be correct for the syntax error in test.rs, so perhaps target-buffer is just wrong.

Oh I see why you're asking about *rustfmt* now - it does have the wrong filename.
I put a breakpoint on rust--format-fix-rustfmt-buffer and it doesn't seem to get triggered.

@jamii  can you try https://github.com/rust-lang/rust-mode/commit/e4bdc1defc8b215835d5e7de5c7f2b4137187455 ?
I believe that for some reason rust--format-fix-rustfmt-buffer fails to replace the stdin markers, it might be because because of some ansi-color thing (it might explain why it's different across machines as well). The content of rustfmt is supposed to be
error: this file contains an un-closed delimiter
 --> foo.rs:1:13
  |
1 | fn main() {
  |           - ^
  |           |
  |           un-closed delimiter

after rust--format-fix-rustfmt-buffer.

Oh I see why you're asking about *rustfmt* now - it does have the wrong filename.
I put a breakpoint on rust--format-fix-rustfmt-buffer and it doesn't seem to get triggered.

interesting! and what if ret in rust--format-call`?

ret is 1.
It seems to skip straight past the call to fix, so I'm suspicious that I have old cached bytecode or something. If I evaluate the source for rust--format-call I stop seeing this bug until I restart.

Cool. So I guess it can be closed?

Yeah, force-recompiling bytecode fixes it. Sorry for wasting your time :S

no worries.


How to disable scrolling on each step?

Hi, I want to disable the window scroll on each step. Is this possible currently? Ideally I would like to pass in as a component prop or plugin option.

I just wanted to ask the same thing. It keep scrolling down even though the tour target fits on screen already which I find annoying behavior
Any way to disable this? Or even better, dont scroll unless target is outside viewport

Okay I had to dig through the source for this but the option does exist. Just add this to every tour step and it won't scroll there:
      params: {
        enableScrolling: false
      }

Nice, thanks for digging man! Wish you could pass it in once (as a prop on the tour component) instead of a million times in the steps though.
But I agree, scrolling no matter what is a poor UX, and is quite jarring when the element you're highlighting is in plain sight on the page.

@dylanmcgowan data is code is code is data.
function procSteps(steps) {
  return _.map(steps, function(s) {  // note: _ is lodash
    return {
      ...s,   // node: ES6 spread operator
      params: {
        enableScrolling: false,
      },
    };
  });
}

... steps: procSteps([ ... ])

Thanks for the help. Agree, would be better to be able to disable scroll globally and/or for a whole group of steps, and not only individually.

It'd be great to document all available options of a step in the wiki, e.g. on https://github.com/pulsardev/vue-tour/wiki/Features - enableScrolling (and maybe other options) are not described in the README.md file or in the wiki.

You're right @fonfon! It's in the Wiki now https://github.com/pulsardev/vue-tour/wiki/Features#disable-scroll-between-steps


Switch underlying driver to mongodb_driver for MongoDB 6.0+ support

This PR switches the adapter over to https://github.com/zookzook/elixir-mongodb-driver .
Currently, the mix.exs/mix.lock file is pointed at our fork at https://github.com/hundio/elixir-mongodb-driver until a Hex release is made with the required adapter compatibility changes. The mix.exs file now points to mongodb_driver 1.4.0, rather than our own repository.
Upgrading from one driver to the other is fairly transparent for users of the Ecto adapter (unless direct calls to the driver are made outside the adapter):

Some Repo module config options are no longer used and can be simply deleted: pool, pool_overflow, pool_timeout.
If an application makes calls to the driver directly, then some modifications are required when using the new driver:

The pool option is no longer accepted by Mongo database command functions
Any command function called from the Mongo module cannot be passed a Pool module from the Repo any longer; instead, a pool PID is expected:

alias MyApp.Repo

# Old driver call
Mongo.find(Repo.Pool, "my_coll", %{"id": id}, projection: %{"field": 1}, pool: db_pool())

# New driver call
Mongo.find(Repo.pool(), "my_coll", %{"id": id}, projection: %{"field": 1})

# repo.ex
# Provided the following function is defined in MyApp.Repo:
defmodule MyApp.Repo do
  use Ecto.Repo, otp_app: :my_app, adapter: Mongo.Ecto

  def pool() do
    Ecto.Adapter.lookup_meta(__MODULE__).pid
  end
end

Thanks so much, @brennana! I'm excited to review this. In looking over the commits, it seems like there's shockingly little to change. Exciting!

The MongoDB driver 1.4.0 contains the changes needed for this PR.

Thank you @zookzook!

Hey @brennana, I'll be testing out the PR this week! Could you allow changes to your branch? I'll push fixes for the CI and make any revisions if needed.

Hi @mweidner037, I have added you for write access to our fork of the repo. Let me know if you need anything else.
For whatever reason, there does not seem to be an option to allow collaborators access to our fork through this PR, as per the GitHub documentation you linked. Perhaps it's because the fork is owned by my organization, not sure.

Thanks! I've tested this out in our app and found no issues.
For apps that call the Mongo driver directly, some other migration changes to note:

Mongo.ReadPreference.defaults -> Mongo.ReadPreference.merge_defaults
Mongo.command: Pass the command as a keyword list instead of a struct (as done in this PR).
When passing a hint to Mongo.find_one (etc.?), if the index does not exist, an error is now returned. This is Mongo's intended behavior, but apparently it was not happening with the old driver (perhaps the hint was not passed properly?).

I'll merge this and start on a migration guide for the next release.

Thank you for your work, everybody. I'm going through this upgrade because of Atlas's force upgrade EOM. this is well appreciated. The cut over on the ecto queries was super smooth.  I find myself only needing to update the direct Mongo aggregation queries.


support for svelte 4?

Hi there, it's been a while since I worked on this project (last commit was 3 years ago, time flies!)
From what I gathered there shouldn't be too many issues with porting it to svelte 4, but with svelte 5 around the corner a lot would need to be refactored to accomodate for the new architecture, and I'm not as invested in this project anymore.
I'll also add that with sveltekit the community pretty much standardized around the simpler approach of treating pages as disposable documents, rather than the stack approach used in mobile apps.
Please, feel free to fork it if you have the time to update it. If you like the animations you can probably port them to a svelte transition or some custom vanilla transition, the code that implements them is not svelte-specific


openfpga visualization

The VPR in openfpga does not seem to support visualization, so can we use the original VPR in the VTR to generate the placement and routing results, as well as the routing resource map, and then use openfpga to generate the corresponding HDL code?

@narutozxp Yes. You can use the original VPR to visualize the results. The HDL codes of FPGA fabrics generated by FPGA-Verilog are consistent (unless you change your architecture description).
We will bring the visualization back to OpenFPGA shell.

The problem now is that I first generate the RTL file of the FPGA through openfpga, and the layout and routing results of the corresponding benchmark. But we found that vpr's performance evaluation results are far more optimistic than DC, so we want to locate the problem by observing the routing results of simple circuits, but openfpga cannot be visualized, so we use VTR to achieve our purpose, but this method also has a problem, Because we want VTR to visualize our previous place and route results (instead of re-running the place and route process), we use the --analysis method, but since the architecture files used by openfpga and VTR are not exactly the same, and --analysis will Check the hash value of the architecture file, so even modifying the architecture file will not achieve our purpose


AssertionError: deps/statistics_amass_circle_smplx.npy stats file does not exist

Hello,
Thank you for your great work.
I encountered an error while running the demo.py, which seems to be related to a missing file. Here are the details:
Error Message:
AssertionError: deps/statistics_amass_circle_smplx.npy stats file does not exist
It looks like this file is not included in the repository. Could you please confirm if this is intentional or if the file is missing? If it is missing, could you provide guidance on how to obtain this file?
Any help in resolving this issue would be greatly appreciated.
Thank you.

Hi eunjong, thanks for trying my code.
You are right, there was a problem with the .gitignore.
Try pulling again and let me know if it is fixed.
Cheers!

Thank you so much for your response and for addressing my question regarding the missing files. Your assistance is greatly appreciated.


[HIVEMALL-96-2] Added Geo Spatial UDFs

What changes were proposed in this pull request?
This PR added 5 Geo Spatial UDFs:  lat2tiley, lon2tilex, tilex2lon, tileytolat, and haversine_distance.
What type of PR is it?
Feature
What is the Jira issue?
https://issues.apache.org/jira/browse/HIVEMALL-96
How was this patch tested?
Unit tests and manual tests
How to use this feature?
WITH data as (
  select 51.51202 as lat, 0.02435 as lon, 17 as zoom
  union all
  select 51.51202 as lat, 0.02435 as lon, 4 as zoom
  union all
  select null as lat, 0.02435 as lon, 17 as zoom
)
select
   lat, lon, zoom,
   tile(lat, lon, zoom) as tile,
   (lon2tilex(lon,zoom) + lat2tiley(lat,zoom) * cast(pow(2, zoom) as bigint)) as tile2,
   lon2tilex(lon, zoom) as xtile,
   lat2tiley(lat, zoom) as ytile,
   tiley2lat(lat2tiley(lat, zoom), zoom) as lat2,  -- tiley2lat returns center of the tile
   tilex2lon(lon2tilex(lon, zoom), zoom) as lon2 -- tilex2lon returns center of the tile
from
   data;

select
  haversine_distance(35.6833, 139.7667, 34.6603, 135.5232) as km,
  haversine_distance(35.6833, 139.7667, 34.6603, 135.5232, true) as mile;

Coverage increased (+0.2%) to 40.19% when pulling 6c391786cf877ef3080db9403192c55700491bae on myui:HIVEMALL-96-2 into c06378a81723e3998f90c08ec7444ead5b6f2263 on apache:master.


Better intermediate representation for types

Translated.type_  lose the information whether the type is a core type, a variant or a record.
This information is useful when deriving equality, comparison, printer...

Closing as this is not relevant anymore.


Fixs issues in associate a backtrace to erroneous status.(v6d-io#326)

What do these changes do?
Associate a backtrace to erroneous Status.

Add a std::string backtrace_ field into the class Status
Add a getter const std::string Status::Backtrace() const {} to class Status
In constructor of Status, when the status code is not “OK", initialize the backtrace_ field by calling vineyard::backtrace_info::backtrace().

Related issue number
Fixes #326

Hi @peilii, please sign-off you commit: https://github.com/v6d-io/v6d/pull/335/checks?check_run_id=2880965191

Hi @peilii, please sign-off your commit: https://github.com/v6d-io/v6d/pull/335/checks?check_run_id=2880965191

I think it is done now.

Merged, thank you @peilii !

Merged, thank you @peilii !

No problem! Thank you for your guidance!


vagrant ssh command not work

Hi,
Did you test with vagrant ssh command ?

yes, vagrant ssh works

I got it to work with
Vagrant.configure("2") do |config|
  config.vm.box = "generic/alpine316"
  config.vm.provider "qemu" do |qe|
    qe.arch = "x86_64"
    qe.machine = "q35"
    qe.cpu = "max"
    qe.net_device = "virtio-net-pci"
  end
end

but not
Vagrant.configure('2') do |config|
  config.vm.define "vm" do |config|
    config.vm.synced_folder '.', '/vagrant', disabled: true
    config.vm.box = "debian/bullseye64"
    config.vm.provider "qemu" do |qe|
      qe.arch = "x86_64"
      qe.machine = "q35"
      qe.cpu = "max"
      qe.net_device = "virtio-net-pci"
    end
  end
end

does it depend on the box? any way to make it work for Debian and not Alpine only?

https://github.com/ppggff/vagrant-qemu/issues/5#issuecomment-1118158687 probably related to this

Notes, you also need add config.vm.synced_folder ".", "/vagrant", type: "smb", smb_host: "<IP_ADDRESS>"
to the Vagrantfile due to a know issue.


compiler: allow to use init function

Process init() functions after global variables has been processed.
It's body is saved into the _initialize method where all
initialization is performed.
Close #1253.

Don't we need to include _initialize method in manifest?

@AnnaShaleva we already include it in the manifest. This was done in #1228. There can be many init functions and body of all of them must be contained in the _initialize method.

@AnnaShaleva we already include it in the manifest. This was done in #1228. There can be many init functions and body of all of them must be contained in the _initialize method.

Perhaps something is wrong. I'm trying to compile the following code:
package main

import (
	"github.com/nspcc-dev/neo-go/pkg/interop/runtime"
)

func init() {
	runtime.Log("Init")
}

func Five() {
	runtime.Log("Five")
}

And I expect _initialize with proper offset to be in contract manifest file and corresponding byte-code to be presented in .nef file.
However, the result byte-code is the following:
INDEX    OPCODE       PARAMETER
0        PUSHDATA1    46697665 ("Five")    <<
6        SYSCALL      "\xcf\xe7G\x96"
11       NOP
12       RET

And there's no _initialize method in manifest.

@AnnaShaleva nice catch! This is because there are no globals present. Fixed this and added a test.


[flutter_tools] warn if flutter/bin/cache/dart-sdk/bin/dart appears in path

After https://github.com/flutter/flutter/pull/57257, a user with /path/to/flutter/bin on their path will have a bash wrapper named dart on their path, which will ensure the version of the dart-sdk in the flutter cache is in sync with the checked out flutter version, and then invoke the dart binary. If users already specifically have the cached binary on their path, we should detect and warn that they should use instead the bash wrapper to ensure that we clean old cached SDKs before invoking dart.

cc @jonahwilliams

This is obsolete, as instead we now validate the "correct" dart bin is first on path.


Fix #41 and #42

Fixes #41
Fixes #42
Now, in case of an accidental misuse like in https://forum.uavcan.org/t/dsdl-compilation-error/904/2, the error message will contain a helpful suggestion:
/home/pavel/test/demo/dsdl/my_namespace/Trajectory.1.0.uavcan:1: Data type my_namespace.PointXY.1.0 could not be found in the following root namespaces: {'dsdl'}.  Did you mean to use the directory '/home/pavel/test/demo/dsdl/my_namespace' instead of '/home/pavel/test/demo/dsdl'?

Pull Request Test Coverage Report for Build 34690998

28 of 28 (100.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 34690396:
0.0%

Covered Lines:
2964

Relevant Lines:
2964

💛  - Coveralls


Implement load keystores on the fly on web3signer

Move complexity from the client to the web3signer

Deppends on https://github.com/dappnode/DAppNodePackage-web3signer-prater/pull/44


AuthorizedAlways replaces Authorized in latest iOS release.

I believe this is all that is required to support the latest iOS release. Authorized is no longer available on CLAuthorizationStatus, AuthorizedAlways appears to be favored.
I'm not positive the demo app is running as expected with this change, so it may not be merge worthy. Nonetheless, this is the only change I needed to make to get this working in my iOS project.

Also, this should address issue #4

Thats right @caselas :+1:  I was about to upload the fix..... you beat me by few mins.


add "definition" to the article

[ x] I have read freeCodeCamp's contribution guidelines.
[x ] My pull request has a descriptive title (not a vague title like Update index.md)
[x ] My pull request targets the master branch of freeCodeCamp.
[x ] None of my changes are plagiarized from another source without proper attribution.
[x ] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

@baskaodo Awesome! Thanks! Congrats on your first open source contribution to this repository!


callback is not a function

Hy! Your tutorial was just nice. Buy some site give some errors like "callback is not a function".
How can I solve this any idea?

You have to get the callback function, yes must of the site always say so
at first you might not see the callback but if you keep looking you will
find it
On Tue, Jun 22, 2021, 6:38 AM Lia Habib @.***> wrote:

Hy! Your tutorial was just nice. Buy some site give some errors like
"callback is not a function".
How can I solve this any idea?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Arinze1020/Auto/issues/1, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AICE5XECFSQRNEVEBYA6WJLTUAOWRANCNFSM47C55GOQ
.

Thanks! It works now...
Your tutorial was awsam.

Awesome, thanks!, am glad it helped you
On Wed, Jun 23, 2021, 11:22 AM Lia Habib @.***> wrote:

Thanks! It works now...
Your tutorial was awsam.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Arinze1020/Auto/issues/1#issuecomment-866717630, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AICE5XCSCLMKK7CGYWV6KCLTUGYWHANCNFSM47C55GOQ
.


Mulching turns Grass field to Turnips

This is an odd one. I've got three fields on the Chipping Norton map that started out as Meadow, which I've ploughed to created fields and sown with Grass. I never got into using grass rollers as it's just another implement to store, what I do is mulch after harvest regardless of the crop. I get the mulched bonus and with grass I get instant growth stage 1. This time around, on mulching the harvested field the Grass was converted to Parsnip. I disabled the ConservationAg mod and on resuming the field it's staying as Grass.

Thanks for the detailed description, I'll try to reproduce it as soon as I get a chance (will take a bit for to Christmas).
Mulching a harvested field is supposed to not trigger anything my mod does, so there's definitely an error somewhere.

Thanks! No hurry obviously, but I knew you were keen for feedback. In case it makes any difference, the mulcher is the Cultro 9 TC from the Horsch Agrovation Pack. Have a great Christmas break.

Hm, I tried the following but could not reproduce it:

Start a new save on Chipping Norton on easy
Use the direct seeder which comes with the save, and field creation turned on, to sow grass into the nearby meadow
Advance to november
Buy a Big M and mow the grass
Buy a Horsch Cultro 9 TC and mulch the mowed grass

Is there anything you're doing differently, or can you zip your savegame and upload it here?

I must confess I do have ~2800 mods installed, almost all activated, so the possibility of a conflict is fairly high. I'll do some testing and get back to you. I'm in the midst of holiday stuff myself, so please bear with me. ;)

@ZincStoat Take as much time as you need. Note that I just added a new release which allows turning features on or off in the game settings, so if you can still reproduce that effect with the new version it would be cool if you could turn some options off and see if you can narrow it down

@Timmeey86 I'll do my testing with the new version sure. I'll probably go with my "essential" mods first, and if it doesn't manifest with those, enable others 'til it does. I am a software developer myself, but while I'm a demon in my chosen field, with lua and game mods I can just about work out what the code's intended to do but wouldn't know where to start building one from scratch. I know a bit about testing though, so I'll keep you posted.

To be honest I changed so much in the mod you might be better off just adding it to the full list of mods and see if the issue occurs at all. If it does, you can still try with less mods afterwards.

@Timmeey86 one of those revisions eh? Well played, I'll do that, thanks.

Whoops, looks like I had an upper/lower case issue in v<IP_ADDRESS> which would only be an issue once zipped. Release v<IP_ADDRESS> should fix that

This should be fixed, see #21


Cannot export xd to flutter

I guess this is not new issue, but this is basically it.  I click export all widgets and nothing happend.
Can devs take it seriosly? My job and not mine only depend on that stuff.
Plugin TypeError: Cannot read property 'parsed' of null
at E (\plugins\6eaf77ea\main.js:1:72579)
at P (\plugins\6eaf77ea\main.js:1:73861)
at E (\plugins\6eaf77ea\main.js:1:72805)
at e.parse (\plugins\6eaf77ea\main.js:1:72090)
at Object.exportAll (\plugins\6eaf77ea\main.js:1:70488)
at async e.exports.exportAll (\plugins\6eaf77ea\main.js:1:47406)

This is a duplicate of #78 .
Any chance you can share the XD file that's causing this (ideally simplified as much as possible)? I can dig into why this might be happening, but having a file that concretely reproduces it would be very helpful.
Thanks!

Closing in favour of #78.


How to return a JavaScript Promise object to Blazor

Good people, help is needed here:
I'm returning a JavaScript Promise object from a JavaScript function, and this works well:
--- shorten for brevity ----
if (this.status >= 200 && this.status < 300) {         resolve(xhr.response);  }

But when I call the function from Blazor, the variable data is not populated with the expected value.
`
var data = await JSRuntime.InvokeAsync("methods.submit");
Is this the way to call a JavaScript function that returns a Promise ?
Do I have to do something additional to get the data variable populated ?
Thanks...
`

Can you post the full methods.submit function ? xhr.response might be of many type (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/response), you should use responseText  if you want to get the text.

Most certainly:
window.methods={
submit: function () {
return new Promise((resolve, reject) => {
var form = document.getElementById("newTestForm");
var data = new FormData(form);
var xhr = new XMLHttpRequest();
            var method = form.getAttribute('method');
            var action = form.getAttribute('action');
            xhr.open(method, action);
            xhr.onload = function () {
                if (xhr.status == 200) {
                    resolve(xhr.response); //data gets here in correct format !!!!!!!
                }
                else if (xhr.status != 200) {
                    reject("Failed to submit form with status" + xhr.status);
                }
            }
            xhr.send(data);
        });
    }

}
thanks...

You should use responseText, the type of response is dynamic.
BTW you can do all that (getting value from form, sending ajax query, reading result) without using JSInterop as all. Look at this example https://github.com/aspnet/AspNetCore/blob/master/src/Components/Blazor/testassets/StandaloneApp/Pages/FetchData.razor

Thanks a lot, @RemiBou !!!


Some tokens have different background color

Information

Language: python
Plugins: Line Numbers, Show Language, Autoloader, Normalize Whitespace, Toolbar, Copy to clipboard

Description
Some tokens have background color that is different from the background color of the page proper which does not make for a good reading experience
Code snippet
import functools
import time
from typing import Callable, Any
</br>
def async_timed():
	def wrapper(func: Callable) -> Callable:
	@functools.wraps(func)
		async def wrapped(*args, **kwargs) -> Any:
			print(f'starting {func} with args {args} {kwargs}') start = time.time()
			try:
				return await func(*args, **kwargs) finally:
				end = time.time()
				total = end - start
				print(f'finished {func} in {total:.4f} second(s)')
			return wrapped
		return wrapper

Test page

This is from the test page.
As you can see some tokens have background color that is different the page background color

This is my own local installation, and also some tokens have their own background color

I tried to tinker with prism.css but I could not solve this problem

Hello,
The default theme indeed uses a background-color for some tokens: https://github.com/PrismJS/prism/blob/master/themes/prism.css#L109-L110
You should be able to easily override that CSS rule to remove the background on your end.


Add link to download built application from website

Avoid duplicates

[x] This enhancement request has not already been raised before
[x] Enhancement request is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in CWA-Wishlist
[x] If you are proposing a new feature, please do so in CWA-Wishlist

Current Implementation

Currently, the CWA application is available for download from the Google Play Store and the Apple App Store and can be built from source on GitHub. Unfortunately, I have not been able to download the CWA application from the Play Store despite living in Germany as my Google Account was created in South Africa and I have not been able to change it's location (as that requires connecting my account to a German bank account). I imagine that other people in my situation would benefit from being able to download a compiled version of this application in the APK format directly from the CWA website as this would mean that we would not need to rely on Google Play for distribution.
Suggested Enhancement

I would like to suggest that a system could be put in place to automatically build the application and serve the compiled app from the CWA website.
Expected Benefits

Users who have Android devices who cannot download the CWA application from Google Play should now be able to do so.

Looks like I missed https://github.com/corona-warn-app/cwa-app-android/issues/477#issuecomment-644547480


GitHub action to merge PR from all-contributors bot and dependabot

Feature request
Set GitHub action to automatically merge pull-requests from all-contributors bot and dependabot.

I would like to work on this issue.

@Pranav016 I would like to take this up.

I would like to take this up @Pranav016

I would like to take this up @Pranav016

I was going to work on this but if you want to work on this go ahead. What labels should I add ?

MWOC

I am thinking of making use of this GitHub action: https://github.com/marketplace/actions/auto-merge-dependency-updates , is this okay?
But I think it won't merge the all-contributors pr's. Do you know any good action which would do this?

@Pranav016 I have pinged you on discord regarding this.

@Pranav016 I have pinged you on discord regarding this.

Replied 👍

I tested it in my repo, doesn't seem like it's working.
Here is the test repo : https://github.com/m-code12/Test_repo
It will only merge the dependabot pr's.

I tested it in my repo, doesn't seem like it's working.
Here is the test repo : https://github.com/m-code12/Test_repo
It will only merge the dependabot pr's.

Try change allowed actors for these two options-
allcontributors[bot] and all-contributors-preview[bot].
I was looking for official name for the bot to put in the allowed actors and I think this might work.

I tested it in my repo, doesn't seem like it's working.
Here is the test repo : https://github.com/m-code12/Test_repo
It will only merge the dependabot pr's.

Try changing allowed actors and play around with these two options-
allcontributors[bot] and all-contributors-preview[bot].
I was looking for official name for the bot to put in the allowed actors and I think this might work.

I tried but it isn't working out, it is mentioned in the GitHub action that it will automatically approve and merge a PR that only contains dependency updates, based on some rules.

@m-code12 you can make a PR to add action to merge dependabot PRs, I'll work on merging all-contributors bot PRs.
(points will be given accordingly)


add shift functionality for !INCLUDE directives.

Addresses #15. Passes all tests in the proposed test suite.

Two things:

Please make sure  the readme is updated to cover the new functionality
I know it's more difficult, but Markdown also supports underlining headings with --- or ===, and it would be great to support that as well, even if it meant blanket replacing the underlines with ## style headers.

TODO: add a test as soon as test branch is merged.

@jreese just realized the latest python on travis is 3.4. Time to add 3.5?

Looks great!  And yes, let's add 3.5 to the build list.  Care to submit a PR for that?


Implement custom collection parser

This is basically the provider side of what has already been done on the get side.
Make the core independent of the notion of a collection. This allows the following things:

people can use existing dag-cbor data as collections, provided that it contains only blake3 hashes.
experiment with things like "a collection is just an array of links" / "metadata is in the first child"
allow users such as @fabricedesre to customise the notion of a collection without having to fork the entire repo

This is written in "callback style". I wonder if we should rewrite the entire provider in fsm style as well to be super flexible, but I would prefer to do that in a separate PR. https://github.com/n0-computer/iroh/issues/975
Todo:

[x] add demo how to use this with collections as just links

After merge:

move our current notion of a collection outside the core
add format field to request so this can be used with multiple formats

@fabricedesre can you check if this would allow you to add metadata such as a mime type to collections without having to fork it?

@fabricedesre can you check if this would allow you to add metadata such as a mime type to collections without having to fork it?

I think I understand the parsing side (eg. moving from let collection = postcard::from_bytes::<Vec<Hash>>(&data)?; to something like let collection = postcard::from_bytes::<Vec<(Hash, MimeType)>>(&data)?;) but I could not see clearly what changes are needed when creating the collection.

@fabricedesre can you check if this would allow you to add metadata such as a mime type to collections without having to fork it?

I think I understand the parsing side (eg. moving from let collection = postcard::from_bytes::<Vec<Hash>>(&data)?; to something like let collection = postcard::from_bytes::<Vec<(Hash, MimeType)>>(&data)?;) but I could not see clearly what changes are needed when creating the collection.

Right. There is something missing. There is a database refactor still to be done to fully decouple us from the notion of a collection. It is already open since before ipfs thing, but put on the back burner due to the current hole punching focus.
What you would do is to define a custom collection and add it as a blob, like the fn I added to enable my test. However this requires you to write the collection to a file first, since blobs are always files atm.
E.g. like this:
#[derive(Serialize, Deserialize)]
struct Entry {
  hash: Hash,
  name: String,
  mine_type: String,
}

Then to add a collection, add the files as blobs and then add the collection itself as a blob.
fn add_collection(entries: Vec<Entry>, db: Database) -> anyhow::Result<()> {
   let collection_bytes = postcard::to_stdvec(&entries)?;
   // wriite to file and get path
   db.put_blob(path)?; // this is currently cfg(test), but could be made pub
   Ok(())
}

We will do the db refactor first thing once we come out of the hole punching sprint...

Two remarks:

there is an entire can of worms with custom collections involving the format int. Currently we just don't transfer it via the protocol at all, but if you wanted to write a node that supports different kinds of collections you would have to.

I vote we postpone dealing with this, since we are not promising stable protocol for this release.

with this the Collection (in iroh-bytes/blobs/) becomes less and less important. I did a quick test to entirely get rid of it and only specify the concrete collection type in the iroh crate. Probably doable, but also a major refactoring that we should probably do later and not in this PR.


Allow defaultColors to be changed dynamically

Description
Currently, defaultColors is static and cannot be changed for each project. By using the Yamada CLI, it's possible to dynamically generate defaultColors to adapt to the design of each project.
Problem Statement/Justification
If defaultColors is static, can't customize colorScheme for each project.
Proposed Solution or API
No response
Alternatives
No response
Additional Information
No response

Closing this issue as the defaultColors mechanism has been deprecated.


Git integration

Hi  there, thanks for the great work,
The documentation states that the URL, commit and 'dirty' state can be logged using the GitPython package. However, I can't find any such function in code. Am I missing something? Otherwise, I'd be happy to spend a bit of time working on that.
Cheers,
Romain
EDIT: nevermind, just found that it will be released in 0.7.0. :-)

Hi, indeed it will be part of 0.7. There is a beta release on pip if you want to try:
pip install sacred==0.7b2


Added support for BosonOperator and BoseHubbard models

This pull request addresses issue #151, and begins adding bosonic support to OpenFermion.
I've tried to keep the changes minimal, and just introduce the base structure of bosonic operators. This has led to some weird naming conventions, such as normal_ordered_boson and normal_ordered_quad, so as not to effect the already existing normal_ordered function which acts on fermion operators - this should probably be modified at some point to bring them into alignment.
Among the changes in this pull request:

BosonOperator has been added, which allows the creation of bosonic ladder operators satisfying the bosonic commutation relations. In addition, it supports the methods is_boson_preserving and is_normal_ordered, to bring it inline with the FermionOperator.

QuadOperator has been added, which allows the creation of the canonical position and momentum quadrature operators. This supports the method is_gaussian, which returns True if the resulting operator transforms the bosonic systems via a Gaussian symplectic transformation. In addition, normal_ordered_quad uses the canonical commutation relation [q,p]=i hbar to rewrite the operator such that all instances of q appear to the left of p.

get_boson_operator and get_quad_operator conversions have been added, to allow the user to transform between these two representations.

weyl_polynomial_quantization allows the user to use Weyl quantization to find the quadrature operator representation of a polynomial in the bosonic phase space, using McCoy's formula.

symmetric_ordering is a transformation that returns the symmetric ordering of a BosonOperator or QuadOperator, important if working with Wigner pseudo-probability distributions.

Sparse operator methods have been added, for easily converting the BosonOperator or QuadOperator into sparse matrix form.

The BoseHubbard model has been added to Hamiltonians, allowing the user to quickly generate Bose-Hubbard systems with optional on-site or dipole interactions.

A Jupyter notebook tutorial for bosonic systems (based on the fermionic notebook) has been added to the examples folder.

Tests have been added for each of these new objects, and it has been linted against PEP8. This is a preliminary pull request - once a structure exists for bosonic Hamiltonians, we can start to look at methods for constructing qubit representations (see https://arxiv.org/abs/1802.07347).

Thank you for this excellent looking contribution! Due the unusually large size of this pull request, it may take us a few days to review. But don't worry, we're on it!

Thanks for the feedback, it was super fast considering the number of changes!
I'll start fixing the import orderings, and merge the flagged duplicated functionality (namely, bose_hubbard+fermi_hubbard, number operators).
I'm a bit more hesitant to merge and move all the normal_ordered functions into utils (although, in the long run it might make more sense), just because it might affect existing files/tutorials/documentation which include the import
from openfermion.ops import normal_ordered

but I'm happy to start the migration if you'd like it contained to the pull request.

I think in this case it makes sense to move forward with the migration now. We can make a version bump sometime soon. But yes, if you wouldn't mind, please go ahead with this and update the tutorials, etc.

Done! I've refactored the pull request to take into account the code duplication. I've split the refactor into four commits:

Merged the number operators
Merged bose_hubbard and fermi_hubbard so that they share the same underlying function
Merged all the normal_ordered functions and moved them to utils.

This last commit is quite large, as I had to go and update the source code everywhere that normal_ordered was imported, fix a couple of newly created circular dependencies, and update all the examples and tutorials.

:+1:


cursor: text for all texts in reactboilerplate.com

Before opening a new issue, please take a moment to review our community guidelines to make the contribution process easy and effective for everyone involved.
Description
Texts in https://reactboilerplate.com has no cursor:text
Steps to reproduce
Steps to reproduce the behavior:
(Add link to a demo on https://jsfiddle.net or similar if possible)
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Versions

React-Boilerplate:
Node/NPM:
Browser:

Yeah, I noticed that, too. Is that strange?

cursor: text won't be there when site hasn't loaded yet.
Makes your site look like it's still loading

Hello @nainardev have you figured it out yet?
I've been thinking about CS, but I can't find anything.

Sorry for opening this issue, bye :

have you figured out how to solve the cursor problem?


Compatibility mode does not work

With compatibility mode turned on for a web page, the module tries to connect to a web address starting with https://cors-anywhere.ardittristan.xyz:9123/vtt/INTENDED-WEB-PAGE, and that does not work.

the cors-anywhere proxy only works inside foundry, so going to there in your normal browser shouldn't work.
It might be that the site still won't work with the proxy, in which case https://github.com/ardittristan/FoundryVTT-Inline-Webviewer-Extension could work.
if you're fine with sending the intended url I can check if this is the case (even if it's just the url of the home page of the site)

Thanks for your quick response.
It's kind of weird because the site worked inside Foundry until the last update. Unfortunately, I also updated lots of other modules, so maybe it's one of those who causes the issue.
URL is https://ulisses-regelwiki.de/start.html
When trying to connect I get the message, that the site may be temporarily unavailable or may have been permanently moved to a new web address.
Any help appreciated.

The proxy crashed, restarted and made it automatically restart once/day, should be fixed now!

Thanks a lot!


added file for fsdm fes morocco (name: anass dabaghi)

added file for faculty of science "dhar elmehraz" (fsdm), France, morocco
it's a faculty of university, sidi mohammed ben abdellah (usmba)

@Dabaghi-Anass I have to close this request without merging, because you requested to add a non-existent domain to this repository: Host fsdm.ac.ma not found: 3(NXDOMAIN) Please ensure that you are familiar with this repository rules located at the bottom of this page and submit a new request with the correct information. Thank you for your understanding!


devel should auto-upgrade if needed, like stable does

Unfortunately the devel spec won't auto-upgrade itself for some reason when it's fulfilling the go dependency, so the Sierra failure came back as soon as core upgraded rc5 -> rc6. (simulated on El Capitan by setting :yosemite)
iMac-TMP:homebrew-core joe$ brew install -s godep
go: This formula either does not compile or function as expected on OS X
versions newer than Yosemite due to an upstream incompatibility.

I'm not the one who favors this solution ;)

upgrade --devel upgrades this, right?

@vladshablinsky Did you end up fixing this?

I'm not sure how I reproduce this one now.

This is on 10.11 (so please forgive the perl):
bash-4.4$ pwd
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
bash-4.4$ git reset --hard origin/master
HEAD is now at e420e60034 gtk-vnc: update 0.7.0 bottle.
bash-4.4$ brew uninstall go godep --ignore-dependencies -f
bash-4.4$ git checkout 9476215 -- Formula/go.rb Formula/godep.rb
bash-4.4$ perl -p -i -e 's/(MaximumMacOSRequirement => ):el_capitan/\1:yosemite/' Formula/go.rb
bash-4.4$ brew instal -s godep
go: This formula either does not compile or function as expected on macOS
versions newer than Yosemite due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
bash-4.4$ brew instal -s go
go: This formula either does not compile or function as expected on macOS
versions newer than Yosemite due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
bash-4.4$ brew instal --devel go
==> Using the sandbox
==> Downloading https://storage.googleapis.com/golang/go1.7rc5.src.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/go-1.7rc5.tar.gz
==> Downloading https://storage.googleapis.com/golang/go1.7rc5.darwin-amd64.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/go--gobootstrap-1.7rc5.tar.gz
==> ./make.bash --no-clean
==> /usr/local/Cellar/go/1.7rc5/bin/go install -race std
==> Cloning https://go.googlesource.com/tools.git
Updating /Users/joe/Library/Caches/Homebrew/go--gotools--git
==> Checking out branch release-branch.go1.7
==> go build
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
  https://golang.org/doc/code.html#GOPATH

You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin
==> Summary
🍺  /usr/local/Cellar/go/1.7rc5: 6,435 files, 250.6M, built in 37 seconds
bash-4.4$ brew instal -s godep
==> Using the sandbox
==> Downloading https://github.com/tools/godep/archive/v74.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/godep-74.tar.gz
==> go build -o /usr/local/Cellar/godep/74_1/bin/godep
🍺  /usr/local/Cellar/godep/74_1: 3 files, 8.6M, built in 1 second
bash-4.4$ brew uninstall godep
Uninstalling /usr/local/Cellar/godep/74_1... (3 files, 8.6M)
bash-4.4$ git checkout f98619c -- Formula/go.rb Formula/godep.rb
bash-4.4$ perl -p -i -e 's/(MaximumMacOSRequirement => ):el_capitan/\1:yosemite/' Formula/go.rb
bash-4.4$ brew instal -s godep
go: This formula either does not compile or function as expected on macOS
versions newer than Yosemite due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
bash-4.4$ brew outdated go
go (1.7rc5) < 1.7rc6
bash-4.4$ brew upgrade go
==> Upgrading 1 outdated package, with result:
go 1.7rc6
==> Upgrading go
==> Using the sandbox
==> Downloading https://storage.googleapis.com/golang/go1.7rc6.src.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/go-1.7rc6.tar.gz
==> Downloading https://storage.googleapis.com/golang/go1.7rc6.darwin-amd64.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/go--gobootstrap-1.7rc6.tar.gz
==> ./make.bash --no-clean
==> /usr/local/Cellar/go/1.7rc6/bin/go install -race std
==> Cloning https://go.googlesource.com/tools.git
Updating /Users/joe/Library/Caches/Homebrew/go--gotools--git
==> Checking out branch release-branch.go1.7
==> go build
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
  https://golang.org/doc/code.html#GOPATH

You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin
==> Summary
🍺  /usr/local/Cellar/go/1.7rc6: 6,436 files, 250.6M, built in 37 seconds
bash-4.4$ brew instal -s godep
==> Using the sandbox
==> Downloading https://github.com/tools/godep/archive/v74.tar.gz
Already downloaded: /Users/joe/Library/Caches/Homebrew/godep-74.tar.gz
==> go build -o /usr/local/Cellar/godep/74_1/bin/godep
🍺  /usr/local/Cellar/godep/74_1: 3 files, 8.6M, built in 1 second
bash-4.4$

First of all let's take a look at the stack trace.
go: This formula either does not compile or function as expected on macOS
versions newer than El Capitan due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:390:in `check_requirements'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:349:in `compute_dependencies'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:134:in `verify_deps_exist'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:127:in `prelude'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:305:in `install_formula'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:199:in `block in install'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:199:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:199:in `install'
/usr/local/Homebrew/Library/Homebrew/brew.rb:94:in `<main>'

The reason this bug occurs is that we don't care about specs while checking for requirements and dependencies. In the specific case in the comment above we don't take in account that it's devel version which is installed and try to check requirements for stable spec of go which is not satisfied on sierra. If devel go is up-to date, we skip the requirement check for it because Formula#installed? handles all the specs and returns true for up-to-date go. For outdated go we don't skip check and end up checking the requirement of stable even though having devel installed. So, this is the reason.

Check that fails for outdated formula (any spec) https://github.com/Homebrew/brew/blob/master/Library/Homebrew/formula_installer.rb#L377

Here we call FormulaInstaller#expand_requirements

def expand_requirements
    unsatisfied_reqs = Hash.new { |h, k| h[k] = [] }
    deps = []
    formulae = [formula]

    while f = formulae.pop
      f.recursive_requirements do |dependent, req|
        build = effective_build_options_for(dependent)

        #... several ifs
        #
        #...
        else
          unsatisfied_reqs[dependent] << req
        end
      end
    end

    deps = Dependency.merge_repeats(deps)
    [unsatisfied_reqs, deps]
end

and recursive_requirements don't care about installed spec's while calling recursive_dependencies to get requirements.
So, right now we only use stable spec for requirements of dependents for some formula we install.
One more tricky thing caused by this behaviour happens when there are no unsatisfied requirements for devel outdated dependent formula. Let's suppose we install godep that depends on go and have go-1.7rc5 installed and outdated (go-1.7rc6 is the latest devel and go-1.6.3 is the latest stable). Guess what Homebrew does. Well, it thinks that go dependency is not satisfied and installs us stable go. So after that we're left with downgraded go.
After we discussed this with @ilovezfs there we came up with some ideas, but let's discuss them a bit more before writing code -- there still are tricky cases.
Basically we should not downgrade dependencies. But how do we achieve that?

What if we have devel version installed and outdated, but stable is still too outdated so it's less than old devel:

go-stable : 1.6.3
go-devel : 1.7rc6
go-devel outdated: 1.7rc5 <-- installed

There are two possible options when we install godep. For now if we skip sierra requirements check, we get stable go installed and linked, however we might want to have devel version instlalled. We can either upgrade go-devel or leave it as it is. Which one is better?

Supposing devel is always greater than stable what should we do in this situation:

go-stable : 1.7.6
go-devel : 1.8rc1
go-devel outdated: 1.7rc5 <-- installed.

Do we install stable or devel to satisfy dependency?

What do we do with requirements for different specs? It's good to know which requirement we will use: stable or devel. So we need to know the answer to the two questions above and resolve requirements according to what spec we choose to install fulfilling some dependency.

@MikeMcQuaid maybe you leave some thoughts when you have spare time?

We can either upgrade go-devel or leave it as it is. Which one is better?

I'd say upgrade go-devel. That's more consistent with how stable is handled.

Do we install stable or devel to satisfy dependency?

I think either is fine but I'd probably lean towards upgrading to stable for binary packages and, well, stability.

What do we do with requirements for different specs? It's good to know which requirement we will use: stable or devel. So we need to know the answer to the two questions above and resolve requirements according to what spec we choose to install fulfilling some dependency.

I think we'd ideally autoinstall devel (or even HEAD) if there's stable-only requirements that prevent installation but not devel. That said, I think manual intervention is fine for this case as long as the main issue noted in here (1) is addressed.

There's been no activity on this for over a year so I'm going to close this out.


Unable to import any github repository in Snack

Summary
Unable to import any github repository, which previously was able to do easily in Snack. Error coming is
An error occurred during import. This could be because the data provided was invalid, or because the repository referenced is not a properly formatted Expo project.
Failed to create snack: Error getting latest hash: Failed to get latest commit hash for https://github.com/procodingclass/PRO-C137-Project_Solution with error: spawn git ENOENT
What platform(s) does this occur on?
Web
SDK Version
No response
Reproducible demo or steps to reproduce from a blank project
Unable to import any github repository, which previously was able to do easily in Snack.

I encountered this error as well. From the message (spawn git ENOENT), it appears there might be an issue with the platform's backend attempting to execute Git commands. I hope there's a resolution soon.

Same issue. I've tried with several repositories.

Same

Same issue here

I faced the same issue ,I hope to get a resolution soon.

While looking at "Can it be done in React Native" videos and source code, I stumbled on this link:
https://snack.expo.dev/@git/github.com/wcandillon/can-it-be-done-in-react-native:season5
Turns out you can import a repo by tapping its URL after https://snack.expo.dev/@git/

While looking at "Can it be done in React Native" videos and source code, I stumbled on this link: https://snack.expo.dev/@git/github.com/wcandillon/can-it-be-done-in-react-native:season5
Turns out you can import a repo by tapping its URL after https://snack.expo.dev/@git/

I tried this but still not not imported.

This is still an issue after multiple months, what is going on at Expo? 😐

This is still an issue

lol still an issue :/ eeek

Still an issue here with the Expo router boilerplate, repo set to public :/

No response from Expo till now.
My project is using the expo-router boilerplate and everything code related moved into src folder.

The issue remains unresolved.
No response from Expo till now.


[Token] Improve fetching tokens across different networks

Summary of Bug

Currently fetching tokens for many networks (https://github.com/trustwallet/blockatlas/pull/1056) not very effective and computationally expensive, as 1 request generates fetch for over 10 different blockchains.
There is couple of things to improve:

Split tokens fetch into separate micro service to avoid any bugs/crashes that could be caused
Provide caching mechanism to better handle getting tokens

Expected Behavior

Steps to Reproduce

More Info (for devs / optional)
Request details:
{}

Response details:
{}

I suggest to create routing api service that will route all the requests to the necessary containers.
Example 1: /v1/ethereum will go to the eth container
Example 2: batch request for eth, bnb will be splited to the 2 requests for bnb and eth BUT anyone who will request it - will have 1 http request
So, we will have all routing rules in code. Basically we will rewrite current ingress controller logic

Closing in favor of: https://github.com/trustwallet/blockatlas/issues/1172


feat: increase EDR token validity

WHAT
Increase EDR token validity to 7 days
WHY
Lowering down the number of transfer process for data transfers
Closes #927

Ah right, let me change it


Fix #135 issue: pg_stat_statements.total_time pg13

Quick fix of the query in  dump_pgstatstatements sub, so that under PostgreSQL 13 (and higher) total_time = total_plan_time + total_execution_time

Works for me (v12 & v14)

Thanks Nicolas!


Update table of 'other sources of sum stats'

Updated contents of
'Additional sources of summary statisitics' table here: https://www.ebi.ac.uk/gwas/downloads/summary-statistics
per these instructions
https://www.ebi.ac.uk/seqdb/confluence/display/GOCI/How+to+edit+our+external+facing+documentation

@sprintell these changes need releasing


Created Python Code for implementing Binary Search Tree

Write filename correctly without space and don't forget to add file extension at the end. For python write file.py.


is there anyway that we can disable the falling damage fix? it is so buggy for some mod

it seem it is so buggy for some mod like Galacticraft's Hydraulic platform.
if you try to use this platform to get up or get down
The falling system will treat you as falling and give you damage.
It is work fine if you running the server without vanillafix
i think it also maybe incompatible with other mods.
So is there any option that we can disable the falling damage fix

This seems to happen when I nerd pole too, when I pole up some blocks aren't registered and I get double fall damage or some sort?

@Jacky10X We'll see about maybe adding a config, but for now, can you use this build and see if you still take damage? We've done some more fixing to the system to make it a little better, and if it is still there, please let us know and we'll fix some more things. As for incompatibilities with other mods, we haven't heard of any issues thus far, only damage issues with running and jumping so far.
@Rongmario I'll do some testing with nerd poling to see if the latest code base experiences this issue, cause I think we may have already fixed this by accident when changing one bit of code.

@ZombieHDGaming i found this bug while i am using VanillaFix-1.0.7-68 version So i can sure it still take damage even if you using VanillaFix-1.0.7-68 version

@Jacky10X What exactly does the Galacticraft Hydraulic platform do? Cause unless it is a new block or machine, I've never heard of it before

@ZombieHDGaming It is elevator, you can move up(press jump) and move down(press sneak), not just teleport. (Actually you can really move up and down)
maybe this can explain it better:
https://wiki.micdoodle8.com/wiki/Hydraulic_Platform

@Jacky10X I haven't tested with Galacticraft just yet, but I have a feeling that Micdoodle may be doing some janky stuff to make the platform work. I did some testing with the RFTools elevator (Ik it's not the same, but hear me out), it seems that works with no issue even though I had thought it would cause damage. I'll do testing with Galacticraft next, but I have a feeling that Micdoodle may need to change the way he handles the movement for the platform.

@ZombieHDGaming Forgot to say also this mod also cause the mekanism teleporter also weird
the player will teleport to the teleporter below( it will cause the player suffocated the wall)
i can confirm it is also vanillafix problem because when we are not using this mod
It is work fine

Fixed in latest version. I disabled anti-cheat features until I have some more time to properly implement those.

@Runemoro
I just tested it and it is still get damaged when you get up or get down
i am using Vanillafix-1.0.8-74 version
the problem still has not fixed and it make worse
Sometimes when you get up and you may suddenly fall down to the lower floor

@Jacky10X Could you upload your debug.log file? This is probably an issue with Galacticraft which VanillaFix triggers by disabling anticheat, and no longer checking that movements are valid.

debug.log
latest.log
Here it is, Hope you can fix these problem
Also, there is a little glitch but it won't effect the gameplay
it seem when you use mekanism teleporter
it will spam the player move into a block
(it is still work fine nothing effect but maybe you can check it and test to make it smoother?
[when you teleport the player will inside the teleporter block and then it will correct you back to the teleporter block above(right position)])

@ZombieHDGaming
Just found out it is really similar to these issues
https://github.com/DimensionalDevelopment/VanillaFix/issues/44
https://github.com/DimensionalDevelopment/VanillaFix/issues/32
https://github.com/DimensionalDevelopment/VanillaFix/issues/29


Sadie/test hotfix

destroy buyTokens is still required. Without it we get the follow error - I believe because it is not being handled?
 --><PHONE_NUMBER>c156bdf5e5f6215c6f574beb1908dfcf11a25249cc91f3c7ef02cf:4:2
 |
4 | signer.contracts.add(name: name, code: code.decodeHex())
 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: loss of resource
 --> 120e725050340cab.TopShotMarketV3:197:42
 |
197 | pub fun purchase(tokenID: UInt64, buyTokens: @FungibleToken.Vault): @TopShot.NFT {

@EricLin2004 I may need your help to override the code owner approval check since Josh is on vacation now until the 25th


Tell mac that the key_down event is handled?

I'm making a game controlled by keyboard using scrolling_area. I use this syntax:
scrolling_area {
    on_key_down do |key_event|
      if key_event[:ext_key] == :escape
        LibUI.quit
      else
        case key_event[:key]
        when "a", "b" then controller.check_answer(key_event[:key])
        when "\n" then controller.toggle_game_mode!
        end
      end

      nil
    end
}

This works fine, but my mac keep producing the "fonk" sound whenever the key is pressed. Return either true, false, nil from the on_key_down event doesn't change anything. I wonder how can I tell that my scrolling_area already handle the keydown event and there is no need for my Mac OSX to produce "fonk" sound?

Thank you for reporting.
I know what you're talking about. I get that "fonk" sound in examples/tetris.rb too.
Right now, I believe that is just a glitch in the underlying libui C library.
I just reported this as a bug to libui:
https://github.com/libui-ng/libui-ng/issues/204
Once they fix it, and I update Glimmer DSL for LibUI to use their fix, I will notify you over here about it.

It just occurred to me that it would be useful to offer the library user the option to specify if a key event is handled or not in addition to the smart default automation. I am going to work on that and report back here once I have another release that enables it.

Version 0.7.7 just got released with the ability to return an explicit boolean value for whether a key event has been handled or not if needed (or otherwise if nothing (nil) or non-boolean non-1/0 value was returned, the assumption is the key event was handled):
https://rubygems.org/gems/glimmer-dsl-libui/versions/0.7.7
Change Log:
0.7.7

Support ability for area on_key_event/on_key_down/on_key_up listeners to return a boolean value indicating whether they handled a key event or not in case some key events need to be left to other operating system key handlers like COMMAND+Q for the Mac quit menu item
Update examples/tetris.rb to return false in its on_key_down listener for unhandled events
Update examples/area_gallery.rb to return false in its on_key_event/on_key_down/on_key_up listeners for unhandled events

Example code from Tetris:
      on_key_down do |key_event|
        handled = true # assume it is handled for all cases except the else clause below
        case key_event
        in ext_key: :down
          if OS.windows?
            # rate limit downs in Windows as they go too fast when key is held
            @queued_downs ||= 0
            if @queued_downs < 2
              @queued_downs += 1
              Glimmer::LibUI.timer(0.01, repeat: false) do
                @game.down! if @queued_downs < 2
                @queued_downs -= 1
              end
            end
          else
            @game.down!
          end
        in key: ' '
          @game.down!(instant: true)
        in ext_key: :up
          case @game.up_arrow_action
          when :instant_down
            @game.down!(instant: true)
          when :rotate_right
            @game.rotate!(:right)
          when :rotate_left
            @game.rotate!(:left)
          end
        in ext_key: :left
          @game.left!
        in ext_key: :right
          @game.right!
        in modifier: :shift
          @game.rotate!(:right)
        in modifier: :control
          @game.rotate!(:left)
        else
          # returning false explicitly means the key event was not handled, which
          # propagates the event to other handlers, like the quit menu item, which
          # can handle COMMAND+Q on the Mac to quit an application
          handled = false
        end
        handled
      end

Cheers!


DRAFT: Cleanup secho

Working on reusing rich from pipenv, so we can reuse vendored libs from it.

Does rich already handle the NO_COLOR env var?

Yes. It does:
https://rich.readthedocs.io/en/stable/console.html?highlight=NO_COLOR#environment-variables


Need support trace id export

Please answer these questions before submitting your issue.

Why do you submit this issue?
[ ] Question or discussion
[ ] Bug
[x] Requirement
[ ] Feature or performance improvement

Requirement or improvement

Please describe your requirements or improvement suggestions.
Whether exporter module support  trace 、Segment or their id export ?
Or can we subscribe the messages ?
If has not now , do we have some plan about it?

No, we are not going to do that. This feature requires the target system as powerful as SkyWalking OAP cluster, which on most cases is impossible.
If you ask for something, SkyWalking requires your use cases.

No, we are not going to do that. This feature requires the target system as powerful as SkyWalking OAP cluster, which on most cases is impossible.
If you ask for something, SkyWalking requires your use cases.


Feature Request - HOTAC specific builder

I may be putting this feature request in the wrong spot - if so I apologize. But I was wondering if there could be a tab created for "freeform" squad building. Something that aligns with Heroes of the Aturi Cluster comes to mind specifically, but maybe instead of trying to apply a specific system's logic and rules it could just be a tab that allows building without restrictions. For example, create an X-wing and associate 2 elite talents and 3 modifications to it, then sum up the points and have a nice printable to help collect all the card text in one output. Even just doing this for a single ship at a time would be nice, and I can't find another squad builder that does anything like this. Appreciate all the hard work you put into this builder - it's really a great tool!

This actually would require writing and reimplementing a completely separate builder; I am not planning to support that (or other freeform/differently-restricted rulesets).


How to make a menu character

Describe your problem here.
How to make a menu character
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No

https://github.com/ShadowMario/FNF-PsychEngine/wiki/Adding-a-New-Week 😐


[suggestion] [5.2] Add units type to new generic rate limiter middleware

Hay
Maybe The new generic rate limiter middleware  should be also with unit type argument ?
to force developers  to do less mistakes ? :)
Route::get('/somthing/{something',[ 'middleware' => 'rate:3,1,m'', function(){}

Route::get('/somthing/{something',[ 'middleware' => 'rate:3,30,s'', function(){}

rate: request ,number of times  , unit type

:-1: Very clunky IMO.

Okay i tried ...


Rotating layout on a per screen basis

Is your feature request related to a problem? Please describe.
I use a 3 monitor setup where one screen is rotated vertically in portrait orientation for reading documents, etc. the normal layout of vertically split tiles is great for the normal screens, but makes tiles too thin to be usable on vertical monitors.
Describe the solution you'd like
To set rotation on a per screen basis.
Describe alternatives you've considered
Just floating screens on that monitor or a single window on that screen.
Additional context
This might not be possible or hard to implement, and certainly not a huge issue, just throwing out the idea as a "nice to have" feature. Thanks!

Have you tried using the per-desktop settings menu?

@zeroxoneafour I have to admit, I have no idea which menu you are talking about... I don't see anything about desktops in polonium settings, and opening the polonium settings popup will show the same setting on any screen I open it in (e.g.: I open the polonium settings popup on my vertical monitor, check rotate layout, now open polonium settings in the other screen, also shows checked)

The layout opened by Meta+\ shouldn't be the same in every desktop. There is an individual checkbox for rotate layout that shouldn't apply to other screens. You will have to set this for each desktop or activity on that screen, but the changes should preserve after logout if you install the dbus saver.

Just tested again to be sure, but it is definitely applying the same settings to all screens on all activities. You only notice when a something is retiled/moved, but yeah. I wasn't  using extra desktops, just activities, but I added a virtual desktop to test and same thing.
Are you saying the dbus saver is required for this to work in the first place, or just to persist after logout?
Any other useful output I can offer for you to see?

Very strange. Can I get a log?

yeah, sorry - not sure why I didn't do that in the first place. Here's one attached, with the "Polonium DBG: true" lines removed for convenience. It's a few minutes of me changing the setting in different screens over two separate activities, and moving windows between displays to test the layout (using the kwin move to screen shortcut
poloniumlog.txt
)

Adding some more info in case it's helpful:
kscreen-doctor -o
Output: 1 DP-2
enabled
connected
priority 3
DisplayPort
Modes:  0:1680x1050@60*!  1:1280x1024@75  2:1280x1024@60  3:1440x900@60  4:1280x800@60  5:1152x864@75  6:1280x720@60  7:1024x768@75  8:1024x768@70  9:1024x768@60  10:800x600@75  11:800x600@72  12:800x600@60  13:800x600@56  14:640x480@75  15:640x480@73  16:640x480@60
Geometry: 6058,0 1313x2100
Scale: 0.8
Rotation: 8
Overscan: 0
Vrr: incapable
RgbRange: unknown
HDR: incapable
Wide Color Gamut: incapable
ICC profile: none
Output: 2 DP-3
enabled
connected
priority 1
DisplayPort
Modes:  0:3840x2160@60*!  1:2560x1440@60  2:1920x1200@60  3:1920x1080@60  4:1920x1080@60  5:1920x1080@60  6:1920x1080@50  7:1920x1080@24  8:1600x1200@60  9:1680x1050@60  10:1280x1024@75  11:1280x1024@60  12:1280x800@60  13:1152x864@75  14:1280x720@60  15:1280x720@60  16:1280x720@50  17:1024x768@75  18:1024x768@60  19:800x600@75  20:800x600@60  21:720x576@50  22:720x480@60  23:640x480@75  24:640x480@60  25:640x480@60
Geometry: 2400,21 3658x2058
Scale: 1.05
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: unknown
HDR: incapable
Wide Color Gamut: incapable
ICC profile: none
Output: 3 DP-4
enabled
connected
priority 2
DisplayPort
Modes:  0:1920x1080@60*!  1:1600x900@60  2:1280x1024@75  3:1280x1024@60  4:1152x864@75  5:1024x768@75  6:1024x768@60  7:800x600@75  8:800x600@60  9:640x480@75  10:640x480@60
Geometry: 0,330 2400x1350
Scale: 0.8
Rotation: 1
Overscan: 0
Vrr: incapable
RgbRange: unknown
HDR: incapable
Wide Color Gamut: incapable
ICC profile: none
trimmed  inxi output:
System:
Host: hal9000 Kernel: 6.8.1-arch1-1 arch: x86_64 bits: 64
Desktop: KDE Plasma v: 6.0.2 Distro: EndeavourOS
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial:
Mobo: ASUSTeK model: PRIME B650-PLUS v: Rev 1.xx
serial:  UEFI: American Megatrends v: 0809
date: 10/23/2022
Battery:
ID-1: hidpp_battery_0 charge: 100% condition: N/A
CPU:
Info: 12-core model: AMD Ryzen 9 7900X bits: 64 type: MT MCP cache:
L2: 12 MiB
Speed (MHz): avg: 5080 min/max: 400/5733 cores: 1: 5147 2: 5147 3: 5147
4: 5147 5: 5147 6: 5147 7: 5014 8: 5014 9: 5014 10: 5014 11: 5014 12: 5014
13: 5147 14: 5147 15: 5147 16: 5147 17: 5147 18: 5147 19: 5014 20: 5014
21: 5014 22: 5014 23: 5014 24: 5014
Graphics:
Device-1: NVIDIA TU104 [GeForce RTX 2070 SUPER] driver: nvidia v: 550.67
Device-2: AMD Raphael driver: amdgpu v: kernel
Device-3: Logitech Webcam C930e driver: snd-usb-audio,uvcvideo type: USB
Display: wayland server: X.org v: <IP_ADDRESS> with: Xwayland v: 23.2.4
compositor: kwin_wayland driver: X: loaded: amdgpu,nvidia
unloaded: modesetting dri: radeonsi gpu: nvidia,amdgpu resolution:
1: 1313x2100 2: 3657x2057 3: 2400x1350
API: EGL v: 1.5 drivers: nvidia,radeonsi,swrast,zink
platforms: gbm,wayland,x11,surfaceless,device
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.67
renderer: NVIDIA GeForce RTX 2070 SUPER/PCIe/SSE2
API: Vulkan v: 1.3.279 drivers: nvidia surfaces: xcb,xlib,wayland

According to the log, you tried to set the engine config for the DP-2 display once and the DP-3 display 3 times. Can you take another log using the latest v1.0b2 release and attempt to individually set settings once for each monitor? The Polonium DBG: true lines should be removed in the latest release and there is a bit of change to the handling of the settings.
Also, is it just the rotation setting that isn't sticking, or are other settings such as window layout and insertion also not staying on desktops?

Ok, so I did testing before and after updating to v1.02b, attaching both logs.
I tried to be consistent in the testing of how I changed the settings in each monitor, but I am pretty much falling asleep and probably wasn't (I just now saw you said once, I went back and changed each monitor twice in I think in the same order - again, sleep lol)
Rotation behavior: same after update.
As for other settings - only one setting sticks on a per screen basis: the engine. I was able to keep that for each monitor.
But rotate layout, and insertion point get changed across all screens when I change in one screen.
Let me know what else I can do to help with further info.
PS.: saw the shout-out on the release, thanks haha
polonium_beforeupdate.txt
polonium_afterupdate.txt

PS.: What is the KWin Engine? Just no tiling?

I think I fixed it. There was an issue with the rotating checkbox not updating properly which has been fixed, but there were also some other issues with the configs not applying. Try the latest commit and see if it works. If you don't want to set these changes after each logout, I highly recommend using the dbus-saver systemd service.
The KWin engine is the default Plasma fancy zones-esque tiling, just modded a bit to make it more useable (per-desktop tiles, engine integration, etc.)

Yes! fixed for me! Both rotation and insertion point settings stick on a per screen, per activity basis. Thank you! I was going to close the issue, but I will leave it up to you, not sure if you wait for general release for that.
Thanks again!

The per monitor savings did the trick.  Thank you.
But having those settings visible in the main settings page would be helpful.  At least have some text mentioning the per monitor solution would save the users some time.


add openvino

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: will-jl944:x: dltp-sz-windowsdltp-sz-windows seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


[MM-1025]: Fixed the infinite loading state of tooltip modal

Summary
Fixed the infinite loading state of the tooltip modal
Screenshots
Existing

Updated

Created a PR on mattermost remote with all these changes hence closing this one