Enable a tree-sitter playground inside Emacs

This PR enables developers to execute tree-sitter queries and see what parts of source code they identify in a target buffer by highlighting. This extends the available code for debugging tree-sitter-query and friends.

Hope this doesn't come as unnecessary. This PR is also helping me grasp the available bindings to tackle #4

I think this is basically the start of a major mode for the query language, so it can be named tree-sitter-query.

was working on this, doing some testing, and the query I was passing made the bindings to panic:
Debugger entered--Lisp error: (rust-panic "called `Result::unwrap()` on an `Err` value: Synta...")
  ts--make-query(#<user-ptr ptr=0x556817714970 finalizer=0x7f1ddb96ab00> "91\n40\n99\n97\n108\n108\n95\n101\n120\n112\n114\n101\n115\n115...")
  (let ((source (cond ((sequencep patterns) (mapconcat #'(lambda ... ...) patterns "\n")) ((stringp patterns) patterns) (t (format "%S" patterns))))) (ts--make-query language source))
  ts-make-query(#<user-ptr ptr=0x556817714970 finalizer=0x7f1ddb96ab00> "[(call_expression function: (identifier) @function...")
  (let* ((query (ts-make-query tree-sitter-language patterns)) (root-node (ts-root-node tree-sitter-tree)) (matches (ts-query-captures query root-node nil nil))) (if (> (length matches) 0) (seq-do #'(lambda (match) (tree-sitter-query--highlight-node match)) matches) (message "[ERR] no matches found or invalid query")))
  (save-current-buffer (set-buffer tree-sitter-query--target-buffer) (remove-text-properties (point-min) (point-max) '(font-lock-face tree-sitter-query-match)) (let* ((query (ts-make-query tree-sitter-language patterns)) (root-node (ts-root-node tree-sitter-tree)) (matches (ts-query-captures query root-node nil nil))) (if (> (length matches) 0) (seq-do #'(lambda (match) (tree-sitter-query--highlight-node match)) matches) (message "[ERR] no matches found or invalid query"))))
  tree-sitter-query--eval-query("[(call_expression function: (identifier) @function...")
  (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil))
  (let ((pattern (buffer-substring-no-properties (point-min) (point-max)))) (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil)))
  (progn (let ((pattern (buffer-substring-no-properties (point-min) (point-max)))) (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil))))
  (if (or (eq this-command 'self-insert-command) (eq this-command 'insert-buffer)) (progn (let ((pattern (buffer-substring-no-properties (point-min) (point-max)))) (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil)))))
  tree-sitter-query--after-post-command()

maybe I should rebase and try again.

okay, did that and the error is almost the same except that I can see what query I was using:
Debugger entered--Lisp error: (rust-panic "called `Result::unwrap()` on an `Err` value: Syntax(1, \"[(call_expression function: (identifier) @function)]\\n^\")")
  ts--make-query(#<user-ptr ptr=0x7f55e37fe1e0 finalizer=0x7f55e161ac90> "[(call_expression function: (identifier) @function)]")
  (let ((source (cond ((stringp patterns) patterns) ((sequencep patterns) (mapconcat #'(lambda (p) (format "%S" p)) patterns "\n")) (t (format "%S" patterns))))) (ts--make-query language source))
  ts-make-query(#<user-ptr ptr=0x7f55e37fe1e0 finalizer=0x7f55e161ac90> "[(call_expression function: (identifier) @function)]")
  (let* ((query (ts-make-query tree-sitter-language patterns)) (root-node (ts-root-node tree-sitter-tree)) (matches (ts-query-captures query root-node nil nil))) (if (> (length matches) 0) (seq-do #'(lambda (match) (tree-sitter-query--highlight-node (elt match 1))) matches) (message "[ERR] no matches found or invalid query")))
  (save-current-buffer (set-buffer tree-sitter-query--target-buffer) (remove-text-properties (point-min) (point-max) '(face tree-sitter-query-match)) (let* ((query (ts-make-query tree-sitter-language patterns)) (root-node (ts-root-node tree-sitter-tree)) (matches (ts-query-captures query root-node nil nil))) (if (> (length matches) 0) (seq-do #'(lambda (match) (tree-sitter-query--highlight-node (elt match 1))) matches) (message "[ERR] no matches found or invalid query"))))
  tree-sitter-query--eval-query("[(call_expression function: (identifier) @function)]")
  (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil))
  (let ((pattern (buffer-substring-no-properties (point-min) (point-max)))) (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil)))
  (progn (let ((pattern (buffer-substring-no-properties (point-min) (point-max)))) (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil))))
  (if (or (eq this-command 'self-insert-command) (eq this-command 'insert-buffer)) (progn (let ((pattern (buffer-substring-no-properties (point-min) (point-max)))) (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil)))))
  tree-sitter-query--after-post-command()

I don't really understand why the bindings fail that critically :thinking:

That means the query has a syntax error.
;; [] are just the container for the patterns.
[(call_expression function: (identifier) @function)
 (impl_item type: (*) @type)]

;; They themselves should not be in the string representation.
"(call_expression function: (identifier) @function)
 (impl_item type: (*) @type)"

The error reporting is bad, as described in #22.

so avoiding the square brackets as container for the query should suffice to workaround this issue, interesting.

Just a heads-up: I reorganized the directory structure a bit, moving all Lisp code to lisp/.

@ubolonton good mornin'
Can you review my tree-sitter-query--eval-query function? suddenly tree-sitter-query--highlight-node is being passed something that triggers an exception:
Debugger entered--Lisp error: (wrong-type-argument listp #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>)
  elt(("name" . #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>) 1)
  (tree-sitter-query--highlight-node (elt match 1))
  (closure ((matches . [("name" . #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>)]) (root-node . #<user-ptr ptr=0x5655658aef10 finalizer=0x7efbf1e83950>) (query . #<user-ptr ptr=0x56555c8d1950 finalizer=0x7efbf1e83980>) (patterns . "(function_item (identifier) @name)") t) (match) (tree-sitter-query--highlight-node (elt match 1)))(("name" . #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>))
  mapc((closure ((matches . [("name" . #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>)]) (root-node . #<user-ptr ptr=0x5655658aef10 finalizer=0x7efbf1e83950>) (query . #<user-ptr ptr=0x56555c8d1950 finalizer=0x7efbf1e83980>) (patterns . "(function_item (identifier) @name)") t) (match) (tree-sitter-query--highlight-node (elt match 1))) [("name" . #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>)])
  seq-do((closure ((matches . [("name" . #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>)]) (root-node . #<user-ptr ptr=0x5655658aef10 finalizer=0x7efbf1e83950>) (query . #<user-ptr ptr=0x56555c8d1950 finalizer=0x7efbf1e83980>) (patterns . "(function_item (identifier) @name)") t) (match) (tree-sitter-query--highlight-node (elt match 1))) [("name" . #<user-ptr ptr=0x56555c81b680 finalizer=0x7efbf1e83950>)])
  (if (> (length matches) 0) (seq-do #'(lambda (match) (tree-sitter-query--highlight-node (elt match 1))) matches) (message "[ERR] no matches found or invalid query"))
  (let* ((query (ts-make-query tree-sitter-language patterns)) (root-node (ts-root-node tree-sitter-tree)) (matches (ts-query-captures query root-node nil nil))) (if (> (length matches) 0) (seq-do #'(lambda (match) (tree-sitter-query--highlight-node (elt match 1))) matches) (message "[ERR] no matches found or invalid query")))
  (save-current-buffer (set-buffer tree-sitter-query--target-buffer) (remove-text-properties (point-min) (point-max) '(face tree-sitter-query-match)) (let* ((query (ts-make-query tree-sitter-language patterns)) (root-node (ts-root-node tree-sitter-tree)) (matches (ts-query-captures query root-node nil nil))) (if (> (length matches) 0) (seq-do #'(lambda (match) (tree-sitter-query--highlight-node (elt match 1))) matches) (message "[ERR] no matches found or invalid query"))))
  tree-sitter-query--eval-query("(function_item (identifier) @name)")
  (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil))
  (let ((pattern (buffer-substring-no-properties (point-min) (point-max)))) (condition-case err (tree-sitter-query--eval-query pattern) ((debug error) (message "Error: %S" err) nil)))
  tree-sitter-query--after-change(1 35 0)
  insert-for-yank-1("(function_item (identifier) @name)")
  insert-for-yank("(function_item (identifier) @name)")
  yank-pop(0)
  counsel-yank-pop-action("(function_item (identifier) @name)")
  #f(compiled-function (x) #<bytecode -0x1d98955800ac363>)("(function_item (identifier) @name)")
  ivy-call()
  #f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS can be used to store collection-specific\nsession-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode 0x777e6436501b47>)("kill-ring: " ("(function_item (identifier) @name)" #("(add-to-list 'load-path \"/home/jorge/code/emacs-tr..." 0 1 (face (rainbow-delimiters-depth-1-face) fontified t) 1 24 (fontified t) 24 65 (face font-lock-string-face fontified t) 65 66 (face (rainbow-delimiters-depth-1-face) fontified t)) #("(add-to-list 'load-path \\\"$(PWD)/lisp\\\")" 0 28 (face (makefile-shell font-lock-string-face) fontified t) 28 31 (face (font-lock-variable-name-face makefile-shell font-lock-string-face) fontified t) 31 40 (face (makefile-shell font-lock-string-face) fontified t)) "(require 'tree-sitter-langs)" #("require-language" 0 16 (fontified t)) "https://www.youtube.com/watch?v=AQpIY5YCWys") :require-match t :preselect #("(add-to-list 'load-path \"/home/jorge/code/emacs-tr..." 0 1 (face (rainbow-delimiters-depth-1-face) fontified t) 1 24 (fontified t) 24 65 (face font-lock-string-face fontified t) 65 66 (face (rainbow-delimiters-depth-1-face) fontified t)) :action counsel-yank-pop-action :caller counsel-yank-pop :sort t)
  apply(#f(compiled-function (arg1 arg2 &rest rest) "Read a string in the minibuffer, with completion.\n\nPROMPT is a string, normally ending in a colon and a space.\n`ivy-count-format' is prepended to PROMPT during completion.\n\nCOLLECTION is either a list of strings, a function, an alist, or\na hash table, supplied for `minibuffer-completion-table'.\n\nPREDICATE is applied to filter out the COLLECTION immediately.\nThis argument is for compatibility with `completing-read'.\n\nWhen REQUIRE-MATCH is non-nil, only members of COLLECTION can be\nselected.\n\nIf INITIAL-INPUT is non-nil, then insert that input in the\nminibuffer initially.\n\nHISTORY is a name of a variable to hold the completion session\nhistory.\n\nKEYMAP is composed with `ivy-minibuffer-map'.\n\nPRESELECT, when non-nil, determines which one of the candidates\nmatching INITIAL-INPUT to select initially.  An integer stands\nfor the position of the desired candidate in the collection,\ncounting from zero.  Otherwise, use the first occurrence of\nPRESELECT in the collection.  Comparison is first done with\n`equal'.  If that fails, and when applicable, match PRESELECT as\na regular expression.\n\nDEF is for compatibility with `completing-read'.\n\nUPDATE-FN is called each time the candidate list is re-displayed.\n\nWhen SORT is non-nil, `ivy-sort-functions-alist' determines how\nto sort candidates before displaying them.\n\nACTION is a function to call after selecting a candidate.\nIt takes one argument, the selected candidate. If COLLECTION is\nan alist, the argument is a cons cell, otherwise it's a string.\n\nMULTI-ACTION, when non-nil, is called instead of ACTION when\nthere are marked candidates. It takes the list of candidates as\nits only argument. When it's nil, ACTION is called on each marked\ncandidate.\n\nUNWIND is a function of no arguments to call before exiting.\n\nRE-BUILDER is a function transforming input text into a regex\npattern.\n\nMATCHER is a function which can override how candidates are\nfiltered based on user input.  It takes a regex pattern and a\nlist of candidates, and returns the list of matching candidates.\n\nDYNAMIC-COLLECTION is a boolean specifying whether the list of\ncandidates is updated after each input by calling COLLECTION.\n\nEXTRA-PROPS can be used to store collection-specific\nsession-specific data.\n\nCALLER is a symbol to uniquely identify the caller to `ivy-read'.\nIt is used, along with COLLECTION, to determine which\ncustomizations apply to the current completion session." #<bytecode 0x777e6436501b47>) ("kill-ring: " ("(function_item (identifier) @name)" #("(add-to-list 'load-path \"/home/jorge/code/emacs-tr..." 0 1 (face (rainbow-delimiters-depth-1-face) fontified t) 1 24 (fontified t) 24 65 (face font-lock-string-face fontified t) 65 66 (face (rainbow-delimiters-depth-1-face) fontified t)) #("(add-to-list 'load-path \\\"$(PWD)/lisp\\\")" 0 28 (face (makefile-shell font-lock-string-face) fontified t) 28 31 (face (font-lock-variable-name-face makefile-shell font-lock-string-face) fontified t) 31 40 (face (makefile-shell font-lock-string-face) fontified t)) "(require 'tree-sitter-langs)" #("require-language" 0 16 (fontified t)) "https://www.youtube.com/watch?v=AQpIY5YCWys") :require-match t :preselect #("(add-to-list 'load-path \"/home/jorge/code/emacs-tr..." 0 1 (face (rainbow-delimiters-depth-1-face) fontified t) 1 24 (fontified t) 24 65 (face font-lock-string-face fontified t) 65 66 (face (rainbow-delimiters-depth-1-face) fontified t)) :action counsel-yank-pop-action :caller counsel-yank-pop :sort t))
  ivy-read("kill-ring: " ("(function_item (identifier) @name)" #("(add-to-list 'load-path \"/home/jorge/code/emacs-tr..." 0 1 (face (rainbow-delimiters-depth-1-face) fontified t) 1 24 (fontified t) 24 65 (face font-lock-string-face fontified t) 65 66 (face (rainbow-delimiters-depth-1-face) fontified t)) #("(add-to-list 'load-path \\\"$(PWD)/lisp\\\")" 0 28 (face (makefile-shell font-lock-string-face) fontified t) 28 31 (face (font-lock-variable-name-face makefile-shell font-lock-string-face) fontified t) 31 40 (face (makefile-shell font-lock-string-face) fontified t)) "(require 'tree-sitter-langs)" #("require-language" 0 16 (fontified t)) "https://www.youtube.com/watch?v=AQpIY5YCWys") :require-match t :preselect #("(add-to-list 'load-path \"/home/jorge/code/emacs-tr..." 0 1 (face (rainbow-delimiters-depth-1-face) fontified t) 1 24 (fontified t) 24 65 (face font-lock-string-face fontified t) 65 66 (face (rainbow-delimiters-depth-1-face) fontified t)) :action counsel-yank-pop-action :caller counsel-yank-pop)
  counsel-yank-pop(nil)
  funcall-interactively(counsel-yank-pop nil)
  call-interactively(counsel-yank-pop nil nil)
  command-execute(counsel-yank-pop)

Okay I was able to fix this https://github.com/ubolonton/emacs-tree-sitter/pull/15#issuecomment-598997099
now, I'm struggling with font-lock face property additions for the matches, I asked on StackExchange for help https://emacs.stackexchange.com/q/56143/690

Yes, it works, we have a tree-sitter playground inside Emacs. Please review the branch and notify me of any corrections you would like to happen

@shackra You have for a review on reddit, here's my 2c.

@shackra You have for a review on reddit, here's my 2c.

saw my post today but no comments, maybe you mispoke... I will address your feedback

I missed a word. I meant to say you asked for a review on reddit, so here's mine.

@Alexander-Miller made changes, you can re-review if you want (not sure why the button for requesting this does not work)

made changes, you can re-review if you want

Done.

(not sure why the button for requesting this does not work)

Probably because I didn't start a review. (Why am I even able to start one? This is not my repo.)


How to Get M365 Audit log for eDiscovery activities like create content search or view search via sentinel log query

Is your feature request related to a problem? Please describe.
Yes, We need use SIME to Close the incident for M365 audit log with  M365 activities like eDiscovery "create content search"  or "view search", not only alert from M365  activity alert for email notice.
Describe the solution you'd like
Via Sentinel log query to get the M365 activities like  eDiscovery "create content search"  or "view search" ... and make Analytics rule to create incident to close the internal risk.
Describe alternatives you've considered
M365 Defender for Office to create the custom alert for eDiscovery "create content search"  or "view search" ..., and sync the alert from MDO to sentinel. but just "eDiscovery search started or exported" one activities now
Additional context

any update?

Hi @angerfirecn we have tagged this as an enhancement and our team is working on adding the analytic rule you have requested for in "Expected Solution", thanks!

Great！ Hope Public preview ASAP

Hi we are still discussing this with team, will update you shortly, thanks!

Hi @angerfirecn can you please provide confirmation that these events are not created by

Since we have not received a response in the last 5 days, we are closing your issue as per our standard operating procedures. If you still need support for this issue, feel free to re-open at any time. Thank you for your co-operation.

hello. i m interess by to knmw how i can creat an alert hen a new e discovery case is created. do u have a solution? thnax

Can we please reopen this, we do not have an answer and I am stuck on the same issue, how can we Get M365 Audit log for eDiscovery activities like create content search or view search via sentinel log query

@cyberman6877

Can we please reopen this, we do not have an answer and I am stuck on the same issue, how can we Get M365 Audit log for eDiscovery activities like create content search or view search via sentinel log query

@linko7527

hello. i m interess by to knmw how i can creat an alert hen a new e discovery case is created. do u have a solution? thnax

It should be available through the CloudAppEvents table. An extensive list of all relevant ActionTypes to look for may be found in the docs here.


Update customization.md

Fixed an issue with the TOPT customization method.

Nice catch @erolabzait! Thank you!


You clicked messages added to MenuBar page

Adding to MenuBar page as requested in issue: 258
Description
Adds messages below saying which MenuFlyoutItem/RadioMenuFlyoutItem was clicked by the user. Also removed some "..."s for consistent formatting.
Motivation and Context
Issue highlighted here
How Has This Been Tested?
Building and testing different types of buttons: MenuFlyoutItem and RadioMenuFlyoutItem.
Screenshots (if appropriate):
Nothing shows when you click a MenuFlyoutItem/RadioMenuFlyoutItem
.
After:
Text below each control which shows which MenuFlyoutItem/RadioMenuFlyoutItem was clicked last

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ x ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

This is great! Now you can actually see the keyboard accelerators working.
Would it be possible to move the "you clicked" text to be above the sample markup? Some of the samples are long enough that the message is scrolled out of view.

In the AppBarButtonPage case, it puts the text inside the  content to make it show up alongside the buttons. Putting it on the side of a MenuBar would probably look odd though, since a MenuBar typically takes up the whole width. And putting it under the MenuBar but above the sample would create an ugly gap.
So I think the way you have it might be best.

In the AppBarButtonPage case, it puts the text inside the content to make it show up alongside the buttons. Putting it on the side of a MenuBar would probably look odd though, since a MenuBar typically takes up the whole width. And putting it under the MenuBar but above the sample would create an ugly gap.
So I think the way you have it might be best.

How does this look?

I like your first way better.

I like your first way better.

the issue with that way as you mentioned is that you can't see the text unless you scroll down, this removes the need to scroll down, I've modified the ControlsExample, so this can be applied to other pages as well, I will see how it looks on them.

I like your first way better.

The issue with that way, as you mentioned, is that you can't see the text unless you scroll down, this removes the need to scroll down, I've modified the ControlsExample, so this can be applied to other pages as well, I will see how it looks on them.

Here, this looks a lot cleaner now, tidied up the margins, removed the old gaps from before

That looks great!

made the changes on the CommandBarFlyout page, which was just a property change and the removal of the TextBlock since I changed the ControlExample itself, not sure if I should have waited for the PR of this first?

Okay, this is the current state:

My method of identifying the buttons may not be the most correct XAML way, do let me know how I can improve upon it, but it is more efficient thang going up the tree.

My method of identifying which example the MenuFlyoutButtons belong to may not be the most correct XAML way, do let me know how I can improve upon it, but it is more efficient thang going up the tree.

My method of identifying which example the MenuFlyoutButtons belongs to may not be the most correct XAML way, do let me know how I can improve upon it, but it is more efficient than going up the tree.

Thanks @salmanmkc!

Thanks @salmanmkc!

My pleasure Mike! 😇


[1311] Course details page with publish courses

Context
https://trello.com/c/p6yDzY9r/1311-l-course-details-page-with-publish-courses
Changes proposed in this pull request

Adds the summary field to courses (used for copy to help identify courses)
Adds a feature flag, which will how a list of courses to pick from rather than the manual form for entering course information. At the moment this just picks 10 random courses, needs to change when we are able to filter courses by route
When the course picker is submitted, it redirects to a confirmation page including the course code (this is also in progress)

Guidance to review

 [L] Course details page with publish courses


docs: describe exceptional behavior of onSuccess of useMutation.mutate

We've discussed in https://github.com/tannerlinsley/react-query/issues/241 and
still same in 3.5.11 when you use useMutation.mutate.onSuccess, but useMutation( , { onSuccess: ... }) doesn't.
I also made an example: https://codesandbox.io/s/sleepy-haze-s9p7z?file=/src/App.js
#1573

:tada: This PR is included in version 3.5.13 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 3.5.13 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Translation to Spanish: Verify and update translation of git.json

Working on this.

[X] Save your Code Revisions Forever with Git


Calling script cpane often fails with system perl

OKLAS/App-cpanexec-0.03.tar.gz pass to fail ratio is very low. My first glance into the test script reveals:
https://metacpan.org/source/OKLAS/App-cpanexec-0.03/t/01_execute.t#L15
system "$cwd/script/cpane", @args;

This will try to run the script with system perl, not the one you are trying to test. I'd suggest to change that to
system $^X, "$cwd/script/cpane", @args;

I have not tried whether this is enough, but it's a good first step towards more success.

Thank you! Good suggestion! Happy new year!


Dart process consumes lots of RAM

On my Mac it's currently consuming 6.14GB of RAM.
That seems like a lot. After restarting it the RAM usage seems to creep up quite quickly.

Totally agree. @bwilkerson, it would be good to get the analysis server's ram usage under a continuous benchmark.

This issue was moved to dart-lang/sdk#26442


The treatment of extensions

A draft of how to treat extensions. The main challenge is that the decoder assumes to be at particular states when calling next_frame_info, read_next_frame and read_into_buffer. Futhermore, the descriptor is returned as a struct but the image data is written into a buffer whose size must obey the size given by the descriptor. This is motivated by having some constraints on the order of chunks as seen in the spec:
The Grammar.

<GIF Data Stream> ::=     Header <Logical Screen> <Data>* Trailer

<Logical Screen> ::=      Logical Screen Descriptor [Global Color Table]

<Data> ::=                <Graphic Block>  |
                          <Special-Purpose Block>

<Graphic Block> ::=       [Graphic Control Extension] <Graphic-Rendering Block>

<Graphic-Rendering Block> ::=  <Table-Based Image>  |
                               Plain Text Extension
[note: these must be consecutive]
<Table-Based Image> ::=   Image Descriptor [Local Color Table] Image Data

<Special-Purpose Block> ::=    Application Extension  |
                               Comment Extension

There must be some amount of code flow to the caller between returning the desciptor and writing the data. And considering Rust's borrowing system it must allow the caller to prepare a mutable reference to a buffer. That is, it must not be borrow by the decoder when the transfer takes place.
Buffer extensions
Currently the interface of StreamingDecoder, but not really implemented or supported, has an option to store extensions and retrieve them later. This requires allocating some additional memory but any other interface is unchanged. We might make this a bit more precise by allowing specifying which extension to save, or a list of application identifiers. This does not require any change in control flow.
An iterator style
Implemented by gift. An iterator yields each block individually. This needs to be reconciled with the high-level interface that reads images into a buffer. We also need to either a) ensure that the input buffer contains a block fully or b) expose the partial block in the iterator or c) allocate all blocks as gift does. This essentially transfers control to the caller after every single sub-block or block.
The awkward thing is that we can not both borrow the target buffer and have the iterator be 'static. This effectively means we need to allocate image data as well.
The cursor style
Instead of yielding an independent item on iteration, produce items that reference into the decoder. This wouldn't be able to implement Iterator hence I call it cursor for now. The advantage is that we need not clone and allocate all items. Also all color tables and graphic blocks might be handled internally. It's somewhat questionable how this relates to the code flow transfer though. As said before we must yield to the caller after the desciptor.
Basically, the next method must somehow temporarily borrow any buffer it wants to write to. This currently refers to the image buffer so that we can effectively decode interlacing and maps. But what if we want to internally validate comments? Or the plain text extension? Both should contain ascii data, and it's mandatory for the latter.
The callback style
Store a Weak<dyn CallbackTrait + Send + Sync + 'static> and invoke those callbacks on fitting blocks. We need weak to ensure that there are no unwanted cycles, and the additional marker bounds to keep the current Send and Sync marker impls on the main decoder interface. We might combine this with the adaptor interface in giving the option for a temporary non-send or non-sync callback. The immediate drawback is that this requires an allocation.

The cursor style is the only for which I couldn't come up with any immediate drawbacks. It's also mostly compatible with existing interfaces as they could call it with or without an image buffer, and discard any unexpected result. That's what they currently do internally.


Fix typo in Country.json

This file not matter that much.
You can type anything to it doesn't matter, but thanks for the pr


Flutter crashing on Samsung S6 Edge running 5.1

I apologize had copied wrong info... This is for hello_services "flow" Works fine in development on Moto X.
Same issue as well on Xperia Z5 Premium (E6853) 4 running Android 6.0
I could imagine that the other library I create causes some sort of conflict? that library builds to the following targets: x86, arm64-v8a, x86_64, armeabi-v7a

java.lang.RuntimeException: Unable to create application org.domokit.sky.shell.SkyApplication: java.lang.RuntimeException: org.chromium.base.library_loader.ProcessInitException
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4809)
at android.app.ActivityThread.access$1600(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1452)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.RuntimeException: org.chromium.base.library_loader.ProcessInitException
at io.flutter.view.FlutterMain.initNative(FlutterMain.java:218)
at io.flutter.view.FlutterMain.startInitialization(FlutterMain.java:122)
at org.domokit.sky.shell.SkyApplication.onCreate(SkyApplication.java:19)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4806)
... 8 more
Caused by: org.chromium.base.library_loader.ProcessInitException
at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:262)
at org.chromium.base.library_loader.LibraryLoader.ensureInitialized(LibraryLoader.java:123)
at io.flutter.view.FlutterMain.initNative(FlutterMain.java:214)
... 12 more
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/harpsoft.bendometer.ui.android-2/base.apk"],nativeLibraryDirectories=[/data/app/harpsoft.bendometer.ui.android-2/lib/arm64, /data/app/harpsoft.bendometer.ui.android-2/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libsky_shell.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:250)
... 14 more

Can you tell us more about what you're trying to run?  Is this flutter run or the hello_services flow?  Looks like it's saying 'couldn't find "libsky_shell.so"'.  Maybe it's an arm64 device which doesn't know how to do armv7 fallback?

According to those specs it's an ARM7 device (32-bit) so I don't see why its saying anything about arm64 in the logs?

Sorry accidently deleted, but realized this was reported for a different device:
Galaxy S6 Edge (zerolte) 1
java.lang.RuntimeException: Unable to create application org.domokit.sky.shell.SkyApplication: java.lang.RuntimeException: org.chromium.base.library_loader.ProcessInitException
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4809)
at android.app.ActivityThread.access$1600(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1452)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.RuntimeException: org.chromium.base.library_loader.ProcessInitException
at io.flutter.view.FlutterMain.initNative(FlutterMain.java:218)
at io.flutter.view.FlutterMain.startInitialization(FlutterMain.java:122)
at org.domokit.sky.shell.SkyApplication.onCreate(SkyApplication.java:19)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1014)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4806)
... 8 more
Caused by: org.chromium.base.library_loader.ProcessInitException
at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:262)
at org.chromium.base.library_loader.LibraryLoader.ensureInitialized(LibraryLoader.java:123)
at io.flutter.view.FlutterMain.initNative(FlutterMain.java:214)
... 12 more
Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/harpsoft.bendometer.ui.android-2/base.apk"],nativeLibraryDirectories=[/data/app/harpsoft.bendometer.ui.android-2/lib/arm64, /data/app/harpsoft.bendometer.ui.android-2/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libsky_shell.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:250)
... 14 more

So that one: http://www.gsmarena.com/samsung_galaxy_s6_edge-7079.php is a 64-bit device.
Now we just need to know how you're running on that device? :)  Also flutter doctor output would be helpful.

[✓] Flutter (on Mac OS, channel master)
• Flutter at /Users/joel/dev_3rd/flutter
• Framework revision b7f8ec667c (3 weeks ago),
• Engine revision cea5ed2b9b
• Tools Dart version 1.21.0-dev.6.0
[✓] Android toolchain - develop for Android devices (Android SDK 25.0.0)
• Android SDK at /Users/joel/dev_3rd/android-sdk-macosx/
• Platform android-25, build-tools 25.0.0
• ANDROID_HOME = /Users/joel/dev_3rd/android-sdk-macosx/
• Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
[-] iOS toolchain - develop for iOS devices (Xcode 7.3)
• XCode at /Applications/Xcode.app/Contents/Developer/
• Xcode 7.3, Build version 7D175
x ideviceinstaller not available; this is used to discover connected iOS devices.
Install via 'brew install ideviceinstaller'.
x ios-deploy not available; this is used to deploy to connected iOS devices.
Install via 'brew install ios-deploy'.
[✓] IntelliJ IDEA Ultimate Edition (version 2016.3)
• Dart plugin installed
• Flutter plugin installed

Joels-MBP:android joel$ ./gradlew build
:buildSrc:compileJava UP-TO-DATE
:buildSrc:compileGroovy
:buildSrc:processResources UP-TO-DATE
:buildSrc:classes
:buildSrc:jar UP-TO-DATE
:buildSrc:assemble UP-TO-DATE
:buildSrc:compileTestJava UP-TO-DATE
:buildSrc:compileTestGroovy UP-TO-DATE
:buildSrc:processTestResources UP-TO-DATE
:buildSrc:testClasses UP-TO-DATE
:buildSrc:test UP-TO-DATE
:buildSrc:check UP-TO-DATE
:buildSrc:build UP-TO-DATE
Incremental java compilation is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:libraries:sp:preBuild UP-TO-DATE
:libraries:sp:preReleaseBuild UP-TO-DATE
:libraries:sp:checkReleaseManifest
:libraries:sp:preDebugAndroidTestBuild UP-TO-DATE
:libraries:sp:preDebugBuild UP-TO-DATE
:libraries:sp:preDebugUnitTestBuild UP-TO-DATE
:libraries:sp:preReleaseUnitTestBuild UP-TO-DATE
:libraries:sp:prepareComAndroidSupportAnimatedVectorDrawable2340Library UP-TO-DATE
:libraries:sp:prepareComAndroidSupportAppcompatV72340Library UP-TO-DATE
:libraries:sp:prepareComAndroidSupportSupportV42340Library UP-TO-DATE
:libraries:sp:prepareComAndroidSupportSupportVectorDrawable2340Library UP-TO-DATE
:libraries:sp:prepareReleaseDependencies
:libraries:sp:compileReleaseAidl UP-TO-DATE
:libraries:sp:compileLint UP-TO-DATE
:libraries:sp:copyReleaseLint UP-TO-DATE
:libraries:sp:compileReleaseRenderscript UP-TO-DATE
:libraries:sp:generateReleaseBuildConfig UP-TO-DATE
:libraries:sp:generateReleaseResValues UP-TO-DATE
:libraries:sp:generateReleaseResources UP-TO-DATE
:libraries:sp:mergeReleaseResources UP-TO-DATE
:libraries:sp:processReleaseManifest UP-TO-DATE
:libraries:sp:processReleaseResources UP-TO-DATE
:libraries:sp:generateReleaseSources UP-TO-DATE
:libraries:sp:incrementalReleaseJavaCompilationSafeguard UP-TO-DATE
:libraries:sp:compileReleaseJavaWithJavac UP-TO-DATE
:libraries:sp:extractReleaseAnnotations UP-TO-DATE
:libraries:sp:mergeReleaseShaders UP-TO-DATE
:libraries:sp:compileReleaseShaders UP-TO-DATE
:libraries:sp:generateReleaseAssets UP-TO-DATE
:libraries:sp:mergeReleaseAssets UP-TO-DATE
:libraries:sp:mergeReleaseProguardFiles UP-TO-DATE
:libraries:sp:packageReleaseRenderscript UP-TO-DATE
:libraries:sp:packageReleaseResources UP-TO-DATE
:libraries:sp:processReleaseJavaRes UP-TO-DATE
:libraries:sp:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
:libraries:sp:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
:libraries:sp:generateJsonModelRelease UP-TO-DATE
:libraries:sp:externalNativeBuildRelease
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/release/obj/x86/libSuperpoweredExample.so
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/release/obj/arm64-v8a/libSuperpoweredExample.so
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/release/obj/x86_64/libSuperpoweredExample.so
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/release/obj/armeabi-v7a/libSuperpoweredExample.so
:libraries:sp:mergeReleaseJniLibFolders UP-TO-DATE
:libraries:sp:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:libraries:sp:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
:libraries:sp:bundleRelease UP-TO-DATE
:app:prepareAndroidLibrariesSpUnspecifiedLibrary UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2340Library UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72340Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42340Library UP-TO-DATE
:app:prepareComAndroidSupportSupportVectorDrawable2340Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:flutterBuild
Building AOT snapshot in release mode (android-arm-release)... 8433ms
Built to /Users/joel/dev_3rd/flutter/examples/hello_services/android/app/build/intermediates/flutter/.
:app:mergeDebugShaders UP-TO-DATE
:app:compileDebugShaders UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:copyFlutterAssetsDebug
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:app:compileDebugJavaWithJavac UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources UP-TO-DATE
:app:transformClassesWithDexForDebug UP-TO-DATE
:app:mergeDebugJniLibFolders UP-TO-DATE
:app:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
:app:transformNative_libsWithStripDebugSymbolForDebug UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:app:validateSigningDebug
:app:packageDebug
:app:assembleDebug
:app:checkReleaseManifest
:app:prepareReleaseDependencies
:app:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig UP-TO-DATE
:app:mergeReleaseShaders UP-TO-DATE
:app:compileReleaseShaders UP-TO-DATE
:app:generateReleaseAssets UP-TO-DATE
:app:mergeReleaseAssets UP-TO-DATE
:app:copyFlutterAssetsRelease
:app:generateReleaseResValues UP-TO-DATE
:app:generateReleaseResources UP-TO-DATE
:app:mergeReleaseResources UP-TO-DATE
:app:processReleaseManifest UP-TO-DATE
:app:processReleaseResources UP-TO-DATE
:app:generateReleaseSources UP-TO-DATE
:app:incrementalReleaseJavaCompilationSafeguard UP-TO-DATE
:app:compileReleaseJavaWithJavac UP-TO-DATE
:app:compileReleaseNdk UP-TO-DATE
:app:compileReleaseSources UP-TO-DATE
:app:lintVitalRelease
:app:transformClassesWithDexForRelease UP-TO-DATE
:app:mergeReleaseJniLibFolders UP-TO-DATE
:app:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:app:transformNative_libsWithStripDebugSymbolForRelease UP-TO-DATE
:app:processReleaseJavaRes UP-TO-DATE
:app:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
:app:validateSigningRelease
:app:packageRelease
:app:assembleRelease
:app:assemble
:app:lint
Ran lint on variant release: 5 issues found
Ran lint on variant debug: 5 issues found
Wrote HTML report to file:///Users/joel/dev_3rd/flutter/examples/hello_services/android/app/build/outputs/lint-results-debug.html
Wrote XML report to file:///Users/joel/dev_3rd/flutter/examples/hello_services/android/app/build/outputs/lint-results-debug.xml
:app:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE
:app:preDebugUnitTestBuild UP-TO-DATE
:app:prepareDebugUnitTestDependencies
:app:compileDebugUnitTestJavaWithJavac UP-TO-DATE
:app:processDebugUnitTestJavaRes UP-TO-DATE
:app:compileDebugUnitTestSources UP-TO-DATE
:app:mockableAndroidJar UP-TO-DATE
:app:assembleDebugUnitTest UP-TO-DATE
:app:testDebugUnitTest UP-TO-DATE
:app:incrementalReleaseUnitTestJavaCompilationSafeguard UP-TO-DATE
:app:preReleaseUnitTestBuild UP-TO-DATE
:app:prepareReleaseUnitTestDependencies
:app:compileReleaseUnitTestJavaWithJavac UP-TO-DATE
:app:processReleaseUnitTestJavaRes UP-TO-DATE
:app:compileReleaseUnitTestSources UP-TO-DATE
:app:assembleReleaseUnitTest UP-TO-DATE
:app:testReleaseUnitTest UP-TO-DATE
:app:test UP-TO-DATE
:app:check
:app:build
:libraries:sp:checkDebugManifest
:libraries:sp:prepareDebugDependencies
:libraries:sp:compileDebugAidl UP-TO-DATE
:libraries:sp:copyDebugLint UP-TO-DATE
:libraries:sp:compileDebugRenderscript UP-TO-DATE
:libraries:sp:generateDebugBuildConfig UP-TO-DATE
:libraries:sp:generateDebugResValues UP-TO-DATE
:libraries:sp:generateDebugResources UP-TO-DATE
:libraries:sp:mergeDebugResources UP-TO-DATE
:libraries:sp:processDebugManifest UP-TO-DATE
:libraries:sp:processDebugResources UP-TO-DATE
:libraries:sp:generateDebugSources UP-TO-DATE
:libraries:sp:incrementalDebugJavaCompilationSafeguard UP-TO-DATE
:libraries:sp:compileDebugJavaWithJavac UP-TO-DATE
:libraries:sp:extractDebugAnnotations UP-TO-DATE
:libraries:sp:mergeDebugShaders UP-TO-DATE
:libraries:sp:compileDebugShaders UP-TO-DATE
:libraries:sp:generateDebugAssets UP-TO-DATE
:libraries:sp:mergeDebugAssets UP-TO-DATE
:libraries:sp:mergeDebugProguardFiles UP-TO-DATE
:libraries:sp:packageDebugRenderscript UP-TO-DATE
:libraries:sp:packageDebugResources UP-TO-DATE
:libraries:sp:processDebugJavaRes UP-TO-DATE
:libraries:sp:transformResourcesWithMergeJavaResForDebug UP-TO-DATE
:libraries:sp:transformClassesAndResourcesWithSyncLibJarsForDebug UP-TO-DATE
:libraries:sp:generateJsonModelDebug UP-TO-DATE
:libraries:sp:externalNativeBuildDebug
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/debug/obj/x86/libSuperpoweredExample.so
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/debug/obj/arm64-v8a/libSuperpoweredExample.so
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/debug/obj/x86_64/libSuperpoweredExample.so
building /Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/intermediates/cmake/debug/obj/armeabi-v7a/libSuperpoweredExample.so
:libraries:sp:mergeDebugJniLibFolders UP-TO-DATE
:libraries:sp:transformNative_libsWithMergeJniLibsForDebug UP-TO-DATE
:libraries:sp:transformNative_libsWithSyncJniLibsForDebug UP-TO-DATE
:libraries:sp:bundleDebug UP-TO-DATE
:libraries:sp:compileDebugSources
:libraries:sp:assembleDebug
:libraries:sp:compileReleaseSources
:libraries:sp:assembleRelease
:libraries:sp:assemble
:libraries:sp:lint
Ran lint on variant debug: 2 issues found
Ran lint on variant release: 2 issues found
Wrote HTML report to file:///Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/outputs/lint-results-debug.html
Wrote XML report to file:///Users/joel/dev_3rd/flutter/examples/hello_services/android/libraries/sp/build/outputs/lint-results-debug.xml
:libraries:sp:incrementalDebugUnitTestJavaCompilationSafeguard UP-TO-DATE
:libraries:sp:prepareDebugUnitTestDependencies
:libraries:sp:compileDebugUnitTestJavaWithJavac UP-TO-DATE
:libraries:sp:processDebugUnitTestJavaRes UP-TO-DATE
:libraries:sp:compileDebugUnitTestSources UP-TO-DATE
:libraries:sp:mockableAndroidJar UP-TO-DATE
:libraries:sp:assembleDebugUnitTest UP-TO-DATE
:libraries:sp:testDebugUnitTest UP-TO-DATE
:libraries:sp:incrementalReleaseUnitTestJavaCompilationSafeguard UP-TO-DATE
:libraries:sp:prepareReleaseUnitTestDependencies
:libraries:sp:compileReleaseUnitTestJavaWithJavac UP-TO-DATE
:libraries:sp:processReleaseUnitTestJavaRes UP-TO-DATE
:libraries:sp:compileReleaseUnitTestSources UP-TO-DATE
:libraries:sp:assembleReleaseUnitTest UP-TO-DATE
:libraries:sp:testReleaseUnitTest UP-TO-DATE
:libraries:sp:test UP-TO-DATE
:libraries:sp:check
:libraries:sp:build
BUILD SUCCESSFUL

In the above log I see superpowered building for 4 variants, and flutter (expectedly) only building for ARMv7.  It's possible that the resulting APK is partially-fat.  It has an arm64 directory, but that only contains libSuperpowered.so and not libsky_shell.so.  It's possible to build Flutter for all these variants, but you'll need to build flutter/engine yourself, since we currently only provide the ARMv7 flavor for the hello_services workflow.  https://github.com/flutter/engine/blob/master/CONTRIBUTING.md are the instructions for building your own flutter/engine artifacts.

One way to work around this would be to strip out all the non-armv7 directories from the APK, then the APK wouldn't be confused into thinking it supports arm64 when it doesn't. :)

this theory sounds correct, i just didn't know much about how it functioned.

@jakobr-google this may have been fixed by the gradle work?

@jtrunick Over the past year we have changed our build system substantially so we believe this has probably been resolved in the meantime. Please do let us know (by filing a new bug) if it is still affecting you.


Aruha 2614 remove appliance

In order to make it easier to change configurations for Kafka in a single repository we are going to discontinue bubuku-appliance repository. That repository was reponsible for building the docker image that would be ultimately deployed on our staging and production environment. It did so by installing bubuku pip library as well as kafka and overwriting its configurations.
I did my best to identify where configuration have diverged between both repos with regards to versions and server.properties.

@adyach I changed the delivery.yaml to push docker image to bubuku-appliance in this pr. The links you provided are also pointing to bubuku-appliance. What do you mean by different? Maybe I missed something but I cannot see.

@adyach I changed the delivery.yaml to push docker image to bubuku-appliance in this pr. The links you provided are also pointing to bubuku-appliance. What do you mean by different? Maybe I missed something but I cannot see.

we push to registry-write.opensource.zalan.do/aruha, but pull from registry.opensource.zalan.do/aruha/, I am not sure this is the issue.

👍

@adyach if I'm not mistaken this is supposed to be like this. Other oss projects write to this different subdomain. I don't know the exact reason as well. I'll try like this and if it doesn't work I change it to be equal. But I think this is right.

👍


Dll was injected at (nil).

Hello,
I can't inject my library. Command used (as root) : hotpatcher -v -l hook.so -s start_here $$. Here is the stdout :
Options Given:
Verbose Level: 1
Process PID: 4324
Symbol name: start_here
Library name: hook.so
Dry run: false
[ld_load_maps:278] Max number of mappings present: 48
[ld_find_library:440] Found entry /lib/x86_64-linux-gnu/ld-2.23.so matching /lib64/ld-linux-x86-64.so.2
[ld_find_library:376] Doing best substring search for libc.
[ld_find_library:440] Found entry /lib/x86_64-linux-gnu/libc-2.23.so matching libc
[ld_find_library:376] Doing best substring search for libdl.
[ld_find_library:440] Found entry /lib/x86_64-linux-gnu/libdl-2.23.so matching libdl
[ld_find_library:376] Doing best substring search for libpthread.
[ld_find_library:447] Library libpthread not found in procmaps
[hotpatch_gather_functions:104] libpthread not mapped.
[hotpatch_gather_functions:106] Found malloc at 0x7f062f3f0550 in libc
[hotpatch_gather_functions:107] Found realloc at 0x7f062f3f0c40 in libc
[hotpatch_gather_functions:108] Found free at 0x7f062f3f0a70 in libc
[hotpatch_gather_functions:122] Found dlopen at 0x7f062f736f70 in libdl
[hotpatch_gather_functions:123] Found dlclose at 0x7f062f736fe0 in libdl
[hotpatch_gather_functions:124] Found dlsym at 0x7f062f737040 in libdl
[hotpatch_inject_library:620] Allocating 1024 bytes in the target.
[hotpatch_inject_library:741] Dll opened at 0x0
Dll was injected at (nil)
Invocation of start_here() returned (nil)

In case it's needed, the source code of hook.cpp (I compiled with g++ -shared -fPIC -nostartfiles -o hook.so hook.cpp) :
#include <stdio.h>

int start_here() {
    printf("Starting to hook...\n");
    return 0xff;
}

I suspect the libpthread not mapped to be the source of the problem.

Hello.
Your code is C++. That means start_here is not a C symbol. You have to
use the mangled symbol name for start_here that g++ has generated for you.
$ nm hook.so | grep start_here
Otherwise, compile your program as C using gcc or use "extern C" to
declare start_here so that the symbol name is C-style and not C++ style.
The pthread search is done regardless. It is useful to know whether your
target program has pthread loaded or not.
If your custom hook DLL needs pthread and the target doesn't have
pthread loaded, then you need to inject pthread as well.
--Vikas
On 05/24/2016 09:36 AM, Kadriles wrote:

Hello,
I can't inject my library. Command used (as root) : |hotpatcher -v -l
hook.so -s start_here $$|. Here is the stdout :
|Options Given: Verbose Level: 1 Process PID: 4324 Symbol name:
start_here Library name: hook.so Dry run: false [ld_load_maps:278] Max
number of mappings present: 48 [ld_find_library:440] Found entry
/lib/x86_64-linux-gnu/ld-2.23.so matching /lib64/ld-linux-x86-64.so.2
[ld_find_library:376] Doing best substring search for libc.
[ld_find_library:440] Found entry /lib/x86_64-linux-gnu/libc-2.23.so
matching libc [ld_find_library:376] Doing best substring search for
libdl. [ld_find_library:440] Found entry
/lib/x86_64-linux-gnu/libdl-2.23.so matching libdl
[ld_find_library:376] Doing best substring search for libpthread.
[ld_find_library:447] Library libpthread not found in procmaps
[hotpatch_gather_functions:104] libpthread not mapped.
[hotpatch_gather_functions:106] Found malloc at 0x7f062f3f0550 in libc
[hotpatch_gather_functions:107] Found realloc at 0x7f062f3f0c40 in
libc [hotpatch_gather_functions:108] Found free at 0x7f062f3f0a70 in
libc [hotpatch_gather_functions:122] Found dlopen at 0x7f062f736f70 in
libdl [hotpatch_gather_functions:123] Found dlclose at 0x7f062f736fe0
in libdl [hotpatch_gather_functions:124] Found dlsym at 0x7f062f737040
in libdl [hotpatch_inject_library:620] Allocating 1024 bytes in the
target. [hotpatch_inject_library:741] Dll opened at 0x0 Dll was
injected at (nil) Invocation of start_here() returned (nil) |
In case it's needed, the source code of |hook.cpp| (I compiled with
|g++ -shared -fPIC -nostartfiles -o hook.so hook.cpp|) :
|#include <stdio.h> int start_here() { printf("Starting to hook...\n");
return 0xff; } |
I suspect the |libpthread not mapped| to be the source of the problem.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/vikasnkumar/hotpatch/issues/13

Thank you for your reactivity and your help @vikasnkumar.
I tried your 3 proposed solutions but none of them worked !
I get the same stdout everytime...
To clarify I tried :

The same code compiled with gcc : gcc -shared -fPIC -nostartfiles -o hook.so hook.cpp.

To add extern "C" around my main() function (then compiled with g++).

The same code, and then to pass the symbol of start_here generated with C++.
First, I ran nm hook.so | grep start_here which gave me this :<PHONE_NUMBER>000380 T _Z10start_herev.
Then I tried to inject with : hotpatcher -v -l hook.so -s _Z10start_herev $$.

You need to use the full path and not just hook.so. So it should be
"/path/to/hook.so".
Can you test with the test hook library libhotpatchtest.so that comes
with hotpatch first ?
If that works, then hotpatch works on your system by itself.
Also, what kind of Linux are you running on ?
--Vikas
On 05/24/2016 01:15 PM, Kadriles wrote:

Thank you for your reactivity and your help @vikasnkumar
https://github.com/vikasnkumar.
I tried your 3 proposed solutions but none of them worked !
I get the same stdout everytime...
To clarify I tried :

The same code compiled with gcc : |gcc -shared -fPIC -nostartfiles
-o hook.so hook.cpp|.

To add |extern "C"| around my |main()| function (then compiled
with g++).

The same code, and then to pass the symbol of |start_here|
generated with C++.
First, I ran |nm hook.so | grep start_here| which gave me this :
|0000000000000380 T _Z10start_herev|.
Then I tried to inject with : |hotpatcher -v -l hook.so -s
_Z10start_herev $$|.

—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/vikasnkumar/hotpatch/issues/13#issuecomment-221339510

./hook.so worked !!! :+1:
Even is the project is really old, I can suggest to add an error && exit when the injected library wasn't located.
Anyway, thank you for having took the time to answer me.


Minor typo in example.

@Narcolapser thanks! Can you sign the CLA?

Just did. Will probably take a minute to process through. Cheers.


Invalid image size rendering in README's

deno.land/x seems to overwrite height of images to auto which breaks images in README that specify width or height attributes.
On the top how it's supposed to look like (how github renders it) and on the bottom how it looks like.

last


Rapid execution of split_recording having unpredictable behaviour

I am having some issues with the split streaming option, in the sense it doesn't always work
see below for code
import picamera,time, io

with picamera.PiCamera() as camera:

    camera.resolution = (1280, 720)
    camera.framerate = 30

    camera.start_preview()
    camera.start_recording('throwaway.h264', splitter_port=1, format='h264', bitrate=17000000, intra_period=int(30))

    try:
        while True:
            current_second = time.strftime('%S')
            what_file_name = '/mnt/ramdisk/' + current_second + '.h264'
            camera.split_recording(what_file_name, splitter_port=1)

I know this is an ugly hack (generating rotating 1 second clips of the last minute), but works fine, UNTIL you up the bitrate or  or other like multiple streams. then it ends up with a file every 2 seconds (with 60frames) most of the time, apart from when it get just one.
Is there some sort of minimum time in split_recording that I am running up against. For reference the time to write to the file like object is << 1 second, so its not that....
i see in encoders.py
 def split(self, output, motion_output=None):
        """
        Called to switch the encoder's output.
        This method is called by :meth:`~PiCamera.split_recording` and
        :meth:`~PiCamera.record_sequence` to switch the encoder's
        :attr:`output` object to the *output* parameter (which can be a
        filename or a file-like object, as with :meth:`start`).
        """
        with self.outputs_lock:
            outputs = {}
            if output is not None:
                outputs[PiVideoFrameType.frame] = output
            if motion_output is not None:
                outputs[PiVideoFrameType.motion_data] = motion_output
            self._next_output.append(outputs)
        # intra_period / framerate gives the time between I-frames (which
        # should also coincide with SPS headers). We multiply by three to
        # ensure the timeout is deliberately excessive, and clamp the minimum
        # timeout to 1 second (otherwise unencoded formats tend to fail
        # presumably due to I/O capacity)
        timeout = max(1.0, float(self._intra_period / self.parent.framerate) * 3.0)
        if not self.event.wait(timeout):
            raise PiCameraRuntimeError(
                'Timed out waiting for a split point')
        self.event.clear()

which seems to set a max timeout, not a minimum to execute? So a little puzzled as to why I Frames get missed?

I've tried the example script which, as you've mentioned, works happily. I tried raising the bitrate of the encoder to 25Mbps (which is the maximum for the H.264 encoder) but it still happily ran with split points every second. There were odd occasions where it skipped a few seconds, but these turned out to be IO related (probably Linux deciding to flush the write cache at that point) and that's not really surprising given the amount of data being written.
You've mentioned "other streams". Do you mean simultaneously recording to other streams? I tried the following script which records two streams simultaneously, but it also managed to split the first one each second with trouble:
import picamera,time, io

with picamera.PiCamera() as camera:

    camera.resolution = (1280, 720)
    camera.framerate = 30

    camera.start_preview()
    camera.start_recording(
            'throwaway.h264',
            splitter_port=1, format='h264', intra_period=30)
    camera.start_recording(
            'stream2.h264',
            splitter_port=2, format='h264', intra_period=30)

    while True:
        current_second = time.strftime('%S')
        what_file_name = current_second + '.h264'
        camera.split_recording(what_file_name, splitter_port=1)

In short, I can't seem to reproduce the issue.

not sure if this is related, but I just ran into this error which sounds the same as @paulhothersall was talking about:
Traceback (most recent call last):
  File "mypmd.py", line 309, in <module>
    camera.split_recording(motion_filename + '-after.h264', splitter_port=1)
  File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 1301, in split_recording
    encoder.split(output, options.get('motion_output'))
  File "/usr/lib/python2.7/dist-packages/picamera/encoders.py", line 1266, in split
    'Timed out waiting for a split point')
picamera.exc.PiCameraRuntimeError: Timed out waiting for a split point

this is the code I'm using at the line where it's failing:
https://gist.github.com/spikedrba/aecb82d8b51e991dbd01#file-pmd-py-L308
the one that was actually running at fps set to 45 from the usual 30 and ran for about 6 hours recording  70 videos on motion detection before failing.

?Please remove me from this mailing list.
Thanks,
Lee

From: spikedrba<EMAIL_ADDRESS>Sent: Wednesday, April 15, 2015 4:10 PM
To: waveform80/picamera
Subject: Re: [picamera] Rapid execution of split_recording having unpredictable behaviour (#192)
not sure if this is related, but I just ran into this error which sounds the same as @paulhothersallhttps://github.com/paulhothersall was talking about:
Traceback (most recent call last):
File "mypmd.py", line 309, in
camera.split_recording(motion_filename + '-after.h264', splitter_port=1)
File "/usr/lib/python2.7/dist-packages/picamera/camera.py", line 1301, in split_recording
encoder.split(output, options.get('motion_output'))
File "/usr/lib/python2.7/dist-packages/picamera/encoders.py", line 1266, in split
'Timed out waiting for a split point')
picamera.exc.PiCameraRuntimeError: Timed out waiting for a split point
this is the code I'm using at the line where it's failing:
https://gist.github.com/spikedrba/aecb82d8b51e991dbd01#file-pmd-py-L308
the one that was actually running at fps set to 45 from the usual 30 and ran for about 6 hours recording 70 videos on motion detection before failing.

Reply to this email directly or view it on GitHubhttps://github.com/waveform80/picamera/issues/192#issuecomment-93583714.

@LeeKnudtson13 - I can't remove you from notification list. You can easily do this yourself simply by visiting the picamera project on GitHub and clicking on "Unwatch" at the top (you added yourself to the watchers list which is why you're seeing notifications for everything going on).

Minimum timeout for the split-point is raised to 10 seconds in 1.11; so far I haven't seen a recurrence of this issue in the test suite (used to be an occasional thing on slower platforms like the 1B).

I’m facing the same issue on my project. Using a raspberry pi zero w. Is my settings bad?


Container App Deployment

Please provide us with the following information:

This issue is a: (mark with an x)

[ ] bug report -> please search issues before submitting
[X] documentation issue or request
[ ] regression (a behavior that used to work and stopped in a new release)

Issue description
I am working building a pipeline in Azure DevOps to deploy a container app. Deployment to the Azure Container Registry works flawlessly but I am having issues with creating/updating the revision to reflect the new container
Steps to reproduct

Deploy docker image to azure container registry
Using the az containerapps create command, create a revision.
Observe that you get the UNAUTHORIZED error

Expected behavior [What you expected to happen.]
Revision is updated/created
Actual behavior [What actually happened.]
Release pipeline fails with UNAUTHORIZED error
Screenshots

2022-08-02T18:40:14.0446365Z [command]/usr/bin/bash /home/vsts/work/_temp/azureclitaskscript1659465610495.sh 20299
2022-08-02T18:40:14.1986217Z WARNING: Command group 'config' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
2022-08-02T18:40:15.8944558Z WARNING: The command requires the extension containerapp. It will be installed first.
2022-08-02T18:40:30.3230598Z WARNING: The installed extension 'containerapp' is in preview.
2022-08-02T18:40:33.3084057Z ERROR: The following field(s) are either invalid or missing. Invalid value: "myacr.azurecr.io/activities-api:20299": GET https:?scope=repository%3Aactivities-api%3Apull&service=myacr.azurecr.io: UNAUTHORIZED: authentication required, visit https://aka.ms/acr/authorization for more information.: template.containers.activities-api.image.

Command being ran:
az config set extension.use_dynamic_install=yes_without_prompt

az containerapp create -n activities-api -g activity-service \
    --image myacr.azurecr.io/activities-api:$1 --environment activity-service \
    --ingress external --target-port 80

Additional context
The same command produces the same error within the Release Pipeline, and locally.
I am running a similar command in another Realese pipeline that should go through the same authentication process, but it works as expected. That command is this:
az acr import --name myCompany --source myacr.azurecr.io/myCompany-stem-dev:$(Release.Artifacts._myCompany.Stem.BuildId) -t myCompany-stem:latest -t myCompany-stem:$(Release.Artifacts._myCompany.Stem.BuildId) --force
A couple of questions:

What needs to be in place for the container apps to successfully pull an image from the Azure Container Registry?
Is the az cli the correct path to take when wanting continuous deployment to container apps?
Is there any "native" tasks in the roadmap for Azure DevOps that make it a little easier to work with (not using the CLI commands directly)?

After changing my command to have the appended --registry-server myAcr.azurecr.io, it worked like a charm. So I think my original question is about an issue between the chair and keyboard.
I would like to get some direction/guidance on what is recommended for deploying Container Apps using Azure DevOps, however.

The exact pipeline will vary but here's an example. We're working on adding documentation on how to set up a DevOps pipeline.
trigger:
  branches:
    include:
    - main

pool:
  vmImage: ubuntu-latest

stages:

- stage: Build

  jobs:
  - job: build
    displayName: Build app

    steps:
    - task: Docker@2
      inputs:
        containerRegistry: 'myreg-service-connection-name'
        repository: 'hello-aca'
        command: 'buildAndPush'
        Dockerfile: 'hello-container-apps/Dockerfile'
        tags: '$(Build.BuildId)'

- stage: Deploy

  jobs:
  - job: deploy
    displayName: Deploy app

    steps:
    - task: AzureCLI@2
      inputs:
        azureSubscription: 'my-subscription-service-connection-name'
        scriptType: 'bash'
        scriptLocation: 'inlineScript'
        inlineScript: |
          # automatically install Container Apps CLI extension
          az config set extension.use_dynamic_install=yes_without_prompt

          # ensure registry is configured in container app
          az containerapp registry set \
            --name hello-aca \
            --resource-group mygroup \
            --server myreg.azurecr.io \
            --identity system

          # update container app
          az containerapp update \
            --name hello-aca \
            --resource-group mygroup \
            --image myreg.azurecr.io/hello-aca:$(Build.BuildId)


API for Broadcast notification description

Need backend API to get what's new in this release.
Request. parameters would be
"iOSBuild": 34,
"androidBuild": 34,
Response:
{
"iOSReleaseNotes": "",
"androidReleaseNotes": ""
{

Now available as a part of Relay service.


Fix JSON Schema

https://github.com/stac-extensions/alternate-assets/blob/58aa16a4f9bd04903a46d81fa91ab7e080680c44/json-schema/schema.json#L97
I'd avoid the above as it would only allow the extension to be used in 1.0.0. If there's STAC 1.0.1 once the validation would fail.
Also, there are some other flaws in the schema:

different schema for item_assets and assets?!
requiring alternate requires them for ALL assets. Is that the desired behavior?

Ah good point, they wouldn't necessarily be required for all assets.
item_assets is different than assets because href is not required.
Without linking to asset in stac-spec, how can we validate that this is an asset?  Just duplicate all the fields from asset?  Do you think it would be worthwhile to publish "latest" JSON schemas so we could link to the latest version?

We should duplicate, yes.

It's an awful lot of duplication, and requires pulling in info from item.json, basics.json, datetime.json, instrument.json, licensing.json, provider.json.

I'm duplicating the fields, but not doing everything, like all the common metadata, because those are fields that would not belong in alternate anyway.

Now that I redid the schema, I'm wondering if it's worth explicitly laying out which fields can go in 'alternate'...basically it's href, title.   type and roles should not be changed.   So that suggests this object should not technically be an "asset", but something new.
'storage' extension fields should be allowed, but if the 'alternate' object is not an Asset that means explicitly specifying storage extension fields.
Not sure the best approach. Currently it's flexible by saying that alternate is just an asset, but in the text describes that not all fields are allowed.  It's a bit nebulous and hand-wavy.   Locking it down to specified fields is more precise but won't allow the flexibility of automatically allowing new extensions to be used in 'alternate'.

What use case is there for title, type and roles? I could see some kind of value for title and roles, but if the type is different, it should be a different asset.

That's what I trying to get at. @lossyrob suggested that alternate objects be Asset rather than a new type AlternateAsset, which means that according to the JSON schema anything in an Asset can be in an alternate object.
However, according to the README text no fields are allowed that alter the asset itself.   I can see title and description, if it were to describe the different location, e.g., "S3 Access", but role and type should not change.
I was thinking that by making it an Asset then other extensions could be used in the object. However it's a bit of a meaningless point since those will not be validated unless that extension specifically checks for the alternate extension.  So I can actually use storage in alternate, but no existing schemas will validate it.
So maybe the ideal solution is to explicitly allow specific fields: href (required?), title, description.  Then if another extension is able to be used here, such as storage it can be updated in a future version to validate alternate assets.   Validating fields from other extensions within an extension is not unprecedented since we have "item_assets" built into all the other extensions already.

@m-mohr is the thumbs up mean you are in favor of not having the object be an Asset but rather an AlternateAsset with limited fields?

Yes, I think having it as an Asset would be pretty confusing.

PR up that uses a new AlternateAsset object: https://github.com/stac-extensions/alternate-assets/pull/7


Add GH Pages

You should have a gh-pages branch that demonstrates SimplicityCSS in action. You would be able to visit it as a real site at https://jaydendev.github.io/simplicitycss.

You should have a gh-pages branch that demonstrates SimplicityCSS in action. You would be able to visit it as a real site at https://jaydendev.github.io/simplicitycss.

I currently already have a website I could add it to. https://jaydendev.repl.co
Also, the css framework is in beta. And doesn't look all that great yet.


CupertinoIcons create icon is buggy

CupertinoIcons.create looks wrong. It is filled with an odd offset, when it should be an outline.

Logs

doctor_output.txt

Expected for create:

Reality (found here; same behavior in app)

create is filled when it shouldn't be, and the fill has a weird offset.
create_fill is filled properly, but still has weird offset.

return Center(
      child: Icon(
        CupertinoIcons.create
      )
    );

 stable, master flutter doctor -v
[✓] Flutter (Channel stable, 3.3.9, on macOS 12.2.1 21D62 darwin-x64, locale
    en-GB)
    • Flutter version 3.3.9 on channel stable at
      /Users/dhs/documents/fluttersdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b8f7f1f986 (12 days ago), 2022-11-23 06:43:51 +0900
    • Engine revision 8f2221fbef
    • Dart version 2.18.5
    • DevTools version 2.15.0

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[!] Flutter (Channel master, 3.7.0-3.0.pre.57, on macOS 12.2.1 21D62 darwin-x64,
    locale en-GB)
    • Flutter version 3.7.0-3.0.pre.57 on channel master at
      /Users/dhs/documents/fluttersdk/flutter
    ! Warning: `flutter` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/flutter, which is not inside
      your current Flutter SDK checkout at
      /Users/dhs/documents/fluttersdk/flutter. Consider adding
      /Users/dhs/documents/fluttersdk/flutter/bin to the front of your path.
    ! Warning: `dart` on your path resolves to
      /Users/dhs/Documents/Fluttersdk/flutter/bin/dart, which is not inside your
      current Flutter SDK checkout at /Users/dhs/documents/fluttersdk/flutter.
      Consider adding /Users/dhs/documents/fluttersdk/flutter/bin to the front
      of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ef6ead4401 (44 minutes ago), 2022-12-06 23:15:24 -0500
    • Engine revision 67254d6e4b
    • Dart version 2.19.0 (build 2.19.0-467.0.dev)
    • DevTools version 2.20.0
    • If those were intentional, you can disregard the above warnings; however
      it is recommended to use "git" directly to perform update checks and
      upgrades.

[!] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] VS Code (version 1.62.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.21.0

[✓] Connected device (5 available)
    • SM G975F (mobile)       • RZ8M802WY0X • android-arm64   • Android 11 (API 30)
    • Darshan's iphone (mobile)  • 21150b119064aecc249dfcfe05e259197461ce23 •
      ios            • iOS 14.4.1 18D61
    • iPhone 12 Pro Max (mobile) • A5473606-0213-4FD8-BA16-553433949729     •
      ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-3 (simulator)
    • macOS (desktop)            • macos                                    •
      darwin-x64     • Mac OS X 10.15.4 19E2269 darwin-x64
    • Chrome (web)               • chrome                                   •
      web-javascript • Google Chrome 98.0.4758.80

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

Is this the same as https://github.com/flutter/flutter/issues/106065?

Yes it is. Now about 6 months old

Closing as duplicate of https://github.com/flutter/flutter/issues/106065


[build] gulp build command not working

gulp build can't complete the 'build-assets' phase due to the following error:
GulpUglifyError: unable to minify JavaScript
Caused by: DefaultsError: `preserveComments` is not a supported option
semantic/tasks/config/tasks.js:96
          if(error.filename.match(/theme.less/)) {
                           ^
TypeError: Cannot read property 'match' of undefined

And is NOT fixed by commenting the following lines:
./tasks/config/tasks.js:148:      preserveComments : 'some'
./tasks/config/tasks.js:162:      preserveComments : false

Steps to reproduce it:
npm install semantic-ui --save
cd semantic/
gulp build

would also like to see this answered as i am having the same issue. ⌛

i tried to resolve this by downloading the semantic zip from the website.
although this zip does not contain everything and will still error out giving the following
This relative module was not found:  *./themes/default/assets/images/loader-large.gif in ./~/css-loader?{"minimize":false,"sourceMap":false}!./semantic/dist/semantic.min.css

@simoncarbajal i fixed this by completely removing semantic and reinstalling it. not sure where the cause lies. :man_shrugging:

Fix is to change filename to fileName in line 96 of semantic/tasks/config/tasks.js
e.g. if(error.fileName.match(/theme.less/)) {

@tarkwyn Can you make a pull request to fix this?

I can confirm that @tarkwynl 's change worked for me.

The camelCase issue didn't cause any problems, however I was unable to successfully gulp build until I commented out the two preserveComments tags in /semantic/tasks/config/tasks.js

@neokio I also received the perserveComments error, but I had to upgrade my version of node to the latest, to get pass that.
I will not very experienced with gulp/node so take my inputs with a grain of salt.

Interesting! Good advice in general, so I updated node from 7.7.1 to the latest (8.1.3), and reinstalled npm (npm install -g npm) just to be sure.
The above error still appears, unless I remove both perserveComments.

The error persists in 2.2.11 ... unable to successfully gulp build until I removed both perserveComments lines from /semantic/tasks/config/tasks.js.

@neokio could be unrelated, but when I said I updated to the latest for Node Js I actually went for  LTS, not current. https://nodejs.org/en/ so I went on version 6.11.1

I think I found the problem. This issue ... https://github.com/terinjokes/gulp-uglify/issues/265 ... and the latest gulp-uglify release notes reveal that release v3.0.0 of gulp-uglify REMOVED the custom option preserveComments :)
In other words, preserveComments is now deprecated.

Yep, can confirm the issue. Commenting out L148 & L162 solves it.
Tried with older version of Node / npm & latest version too.
It's not camelCase related or node version related

After all, what will be done in the semantic ui ? To remove the option or comment and wait for uglify downgrade ?

I'll fix the dependencies so that we dont use this version of uglify. Sorry about this guys.

I also encountered the same problem, the solution
require('semantic-ui/dist/semantic.min.js')
require('semantic-ui/dist/semantic.min.css')

I'm a little late to the party, but I figure another confirmation can't hurt. Commenting out L148 & L162 worked for me as well. Thanks!

Commenting out L148 & L162. It worked for me too.

Commenting out L148 & L162. It worked for me too.

Commenting out only worked , can't find out if issue is in gulp-uglify or semantic ui.

Will get fix in over weekend. Thanks for patience.

Commenting worked for me, too. Glad I wasn't the only one with this problem, since I'm new to semantic ui and gulp--and I'm on a time crunch! Thanks guys!

Hi, I found that Uglify plugin changed its options and now preserveComments is obsolete:
https://github.com/gruntjs/grunt-contrib-uglify#deprecated-options-from-2x
Option           | Replacement
preserveComments | output.comments

So, just replacing in these 2 lines in semantic/tasks/config/tasks.js:
./tasks/config/tasks.js:148:      preserveComments : 'some'
./tasks/config/tasks.js:162:      preserveComments : false

with:
output: {
    comments: 'some'
}

output: {
    comments: false
}

worked for me.

@sergiomar73 Thanks this fixed it

@sergiomar73 Thanks man, I can confirm this fixes it.

@sergiomar73 I confirm it too.

@sergiomar73 It worked. Thanks!

A weekend late but pushing this now.

What's the timeline for releasing 2.2.12, @jlukic?

It's kind of too bad that we have to wait until v2.2.12 is released to see this bug fixed :/
This is a blocking issue for the one who doesn't patch manually and needs to use gulp (sometimes you have to). Wouldn't a v<IP_ADDRESS> be a better solution? Just asking.

Later tonight

Hmm, still getting this error with v2.2.12:
[15:23:13] Plumber found unhandled error:
 GulpUglifyError: unable to minify JavaScript
Caused by: DefaultsError: `comments` is not a supported option
File: /home/axper/project/semantic/dist/components/sticky.js

Hi @jlukic , I tried build a test of semantic and the same problem occured. The file tasks.js
already in the new version, with your last commit. I had to apply the solution that @sergiomar73 showed.
I tried build in 2.2.11 and 2.2.12.

Patch incoming

And out 2.2.13

Hi, @jlukic
I have installed de last updates (2.2.13) of semantic and tried build the project.
The fix worked succefully.
Thanks a lot.

Sorry about mistakes with the first fix.

v2.2.13 works on my side. Thanks a lot @jlukic !

Hi, I've been having the exact same issue with 2.2.13.
To solve it, I've had to update Node.js & NPM.
It might be obvious... but it wasn't for me :)

Yes, can confirm that default version of nodejs 4.2.6 for ubuntu 16.04 won't work.  Needed to upgrade to 6.x.x.  Thanks.

Confirmed that it's a problem related to nodejs version. Fixed with:
export NODE_VERSION="node-v8.11.1-linux-x64"
cd /opt
# LTS version
wget https://nodejs.org/dist/v8.11.1/$NODE_VERSION.tar.xz
# decompress it
tar xvf $NODE_VERSION.tar.xz
cd $NODE_VERSION

# put it in the executables defaults environment path
export PATH=$PATH:/opt/$NODE_VERSION/bin:$PWD/node_modules/bower/bin

then use node.js as usual.
Remember also to uninstall previous node.js installations

Plumber found unhandled error:
GulpUglifyError: unable to minify JavaScript
Caused by: SyntaxError: Unexpected token: punc ())
Any idea on this?


time support

Often running shell commands, it nice to now how long things take.
time find .
time tar cf . | dosomething

Is something already supported in "sh" that supports this?  or is this a feature request?

show me what you've tried so far

well based on what little I know about the sh module, I would
sh.time("docker build .")
sh.time("tar cf . | docker build -"), but what I know here would really be
sh.docker(sh.time("tar cf . "))
but time isn't really piped into anything.  it's the elapsed time of the commands, so think
time "exec | exec | exec"

why not just time it in python?

Currently that is the direction I'm going.  It would be nice if it was
supported by the module itself.
Together We Win!   Looking for cloud storage, try copy.com
https://copy.com?r=6BuEoY (20g free https://copy.com?r=6BuEoY)
Chad - Sisel Promoter
Take Your Life Back! http://choman.mysiselpro.com/
Creating A More Meaningful Life
Some people, when confronted with a problem, think "I know, I'll use
Windows."
Now they have two problems.
Some people claim if you play a Windows Install Disc backwards you'll hear
satanic Messages.
That's nothing, if you play it forward it installs Windows
On Tue, Nov 17, 2015 at 2:56 PM, Andrew Moffat<EMAIL_ADDRESS>wrote:

why not just time it in python?
—
Reply to this email directly or view it on GitHub
https://github.com/amoffat/sh/issues/287#issuecomment-157504411.

profiling functions is something i'd rather leave to the caller.  it's really as simple as
start = time.time()
# something
print(time.time() - start)

Thanks again
Together We Win!   Looking for cloud storage, try copy.com
https://copy.com?r=6BuEoY (20g free https://copy.com?r=6BuEoY)
Chad - Sisel Promoter
Take Your Life Back! http://choman.mysiselpro.com/
Creating A More Meaningful Life
Some people, when confronted with a problem, think "I know, I'll use
Windows."
Now they have two problems.
Some people claim if you play a Windows Install Disc backwards you'll hear
satanic Messages.
That's nothing, if you play it forward it installs Windows
On Tue, Nov 17, 2015 at 3:24 PM, Andrew Moffat<EMAIL_ADDRESS>wrote:

Closed #287 https://github.com/amoffat/sh/issues/287.
—
Reply to this email directly or view it on GitHub
https://github.com/amoffat/sh/issues/287#event-467221971.


add list.insert function to add elements at an arbitrary index of list

list->insert(index, value) should add a new element value to list at index index, or cause an error if the index is out of bounds.

I have a good idea of how I would go about implementing this one on a logic level but if you can describe what needs doing relative to this codebase it would be great

So, list methods are defined in interpreter/list_methods.c, you'll see examples for all the existing ones that should be what you need.
Methods are registered for the appropriate type in interpreter/builtins.c; There's a function list_builtins that handles lists.
In specialstrings.x:

Add an entry for insert: X(S_INSERT, "insert"). (I use X-macros in a few places in YASL, let me know if you're not familiar with the technique.)

In interpreter/list_methods.h:

Add a declaration int list_insert(struct YASL_State *S);

In interpreter/builtins.c:

Add table_insert_specialstring_cfunction(vm, table, S_INSERT, &list_insert, 3); to list_builtins. (S_INSERT is the name, list_insert is the function you'll create, 3 is how many parameters you expect (including the list itself.))

In interpreter/list_methods.c:

Implement list_insert. Hopefully the other functions in this file are enough to go off of, but let me know if you run into any trouble.
One thing to note when implementing is list_insert should specifically cause a YASL_VALUE_ERROR if the index is out of range.

(Optional):

Add tests for this. If you don't want to no worries, I can do this for you, I know writing tests isn't exactly fun.

looks good to me I will have a go at it

One question what behavior do you expect? Insert and shift all indexes after by +1, or replace at index. I imagine the former is the desired behavior but never hurts to ask

I'm going to copy the API of list___set for consistency if you don't mind

Insert and shift indices after by +1. Just replacing at index can already be done by ls[index] = value.

another question should I mutate the list or return a new copy functional style?

Mutate the list, most/all of the existing list functions do this.

I have a first prototype ready

Done on v0.11.3


How do I have two tests in the same file with PollyJS and Jest?

I'm having a strange issue with PollyJS and Jest. I have 2 tests in a single file -- the first one passes, and the second returns an error from the fetch in MyComponent: TypeError: Cannot read property 'status' of undefined"
It doesn't matter which one is second. Standalone each test passes, but together the second fails so it looks like Polly is just not doing the fetch from it's recordings.
I've tried various things like context.polly.flush() in afterEach but it doesn't seem to work. Any ideas? I think it's because setup-polly-jest calls context.polly.stop() but the examples show multiple tests running.
Polly config:
export const setupDefaultPolly = () => {
  const context = setupPolly({
    mode: process.env.POLLY_MODE,
    adapters: [require('@pollyjs/adapter-node-http')],
    persister: require('@pollyjs/persister-fs'),
    persisterOptions: {
      fs: {
        recordingsDir: path.resolve(__dirname, '../__recordings__'),
      },
    },
  })
  return context
}

My test file:
describe('MyComponent', () => {
  setupDefaultPolly()

  it('should render correctly', async () => {
    const fetchSpy = jest.spyOn(global, 'fetch')
    let wrapper

    await act(async () => {
      wrapper = mount(<MyComponent thing="exists" />)
    })

    expectLoadingPage(wrapper).toBeTruthy()
    await waitFor(() => {
      wrapper.update()
      expectLoadingPage(wrapper).toBeFalsy()
    })

    expect(wrapper.text()).toContain('exists')
    expect(withoutMuiID(wrapper)).toMatchSnapshot()
    expect(fetchSpy).toHaveBeenCalledTimes(3)
  })

  it('should display error when not found', async () => {
    let wrapper
    await act(async () => {
      wrapper = mount(<MyComponent thing="not-exists" />)
    })

    expectLoadingPage(wrapper).toBeTruthy()

    await waitFor(() => {
      wrapper.update()
      expectLoadingPage(wrapper).toBeFalsy()
    })

    expect(wrapper.text()).toContain('Not found: not-exists')
    expect(withoutMuiID(wrapper)).toMatchSnapshot()
  })
})

Hey @stbenjam as you correctly noticed we do run miltiple tests in one file and they are passing wihout any issues so unless you can create a minimal reproduction, there's not much I can do to help you figure it out


Change Log is Incomplete

Hi there,
I'm evaluating our node packages for upgrading and wanted to post that the changelog for this repo is incomplete and does not list changes for 3.0.1

+1


[BUG] Annotation with data providers

Environment:

PHP version: 7.4
Tachycardia version: v1.1.1

Description:
When using the @timeLimit annotation on a test with a data provider the new limit is not respected.
Steps to Reproduce:
Here's my actual test case (using ControllerTester):
	/**
	 * @dataProvider indexDataProvider
	 * @timeLimit 0.75
	 */
	public function testIndexHasCorrectJobs(string $method, array $expected)
	{
		$result = $this->execute($method);
		$result->assertOK();
		$result->assertStatus(200);

		// Check that each expected Job is present and others are not
		foreach (['staff', 'client', 'completed', 'deleted'] as $type)
		{
			if (in_array($type, $expected))
			{
				// Check for the Job name linked by its ID
				$result->see(anchor('jobs/show/' . $this->$type->id, $this->$type->name));
			}
			else
			{
				$result->dontSee($this->$type->name);
			}
		}
	}

	public function indexDataProvider(): array
	{
		return [
			['staff', ['staff']],
			['active', ['staff', 'client']],
			['archive', ['completed']],
			['all', ['staff', 'client', 'completed']],
			['trash', ['deleted']],
		];
	}

No matter what I set for @timeLimit I always get a warning:
Nexus\PHPUnit\Extension\Tachycardia identified this sole slow test:
+--------------------------------------------------------------+---------------+-------------+
| Test Case                                                    | Time Consumed | Time Limit  |
+--------------------------------------------------------------+---------------+-------------+
| JobsControllerTest::testIndexHasCorrectJobs with data set #2 | 00:00:00.68   | 00:00:00.50 |
+--------------------------------------------------------------+---------------+-------------+

Notice that "Time Limit" is 0.5.
Expected Output:
Each iteration of a data-provided test should use the limit override.

I have a hunch on this. I think the problem is in the getAnnotations method. I'm on mobile so probably will get back to PC by tomorrow.
Can you try this debug script?
use PHPUnit\Unit\Test as TestUtil;

$annotations = TestUtil::parseTestMethodAnnotations(JobsControllerTest::class, 'testIndexHasCorrectJobs with data set #2');

var_dump($annotations);
// this should have the timeLimit subkey for the method key

I'm suspecting TestUtil needs to parse only the test method name without the dataname.

Fixed in f9750f6.

Confirmed, override time limit now shows:
Nexus\PHPUnit\Extension\Tachycardia identified this sole slow test:
+--------------------------------------------------------------+---------------+-------------+
| Test Case                                                    | Time Consumed | Time Limit  |
+--------------------------------------------------------------+---------------+-------------+
| JobsControllerTest::testIndexHasCorrectJobs with data set #2 | 00:00:01.06   | 00:00:00.75 |
+--------------------------------------------------------------+---------------+-------------+


Problem iOS Notification Send Message to Topic

I am using the Firebase Unity SDK.
Topic works well for AOS but not for iOS Topic.
In iOS, if i send to user segment, I received a notification. If i send it to Topic, i did not be received.
and than I received a warning message as below.
"Can not subscribe to topic: / topics / *** with token: (null)"  like this
I did a check provisioning profile and re-Install but failed.
Firebase-unity version : 3.0.1
Unity version : 5.5.1f

Is this with a pristine download of the quickstart app, or did you make any changes to it? I can't reproduce the issue with a clean download of the quickstart messaging app. Are you able to send notifications to specific users using their registration token?

@JangT any updates on this?  Did you try following the setup instructions?

I'm assuming this is resolved.  We've been testing with topics with no issues.  If this is still a problem please reopen.
Cheers,
Stewart


Transaction sequence numbers not displaying correctly

Transaction sequence numbers are not being displayed correctly. It appears that instead of showing the sequence number, it is showing the first operation number minus one. For example, here is a transaction on Stellar Expert:
https://stellar.expert/explorer/public/tx/123426326316433408#123426326316433409
And here is the same transaction viewed using Stellar Laboratory:
https://laboratory.stellar.org/#explorer?resource=transactions&endpoint=single&values=eyJ0cmFuc2FjdGlvbiI6ImRlYmM4ZDVmZDEwZDM5NDc4ZGZlZjJhYmUzOGIzOGUxYmMzZTExMDU4ZTA3NzE5OWFhODM1M2IyMTJkNmI5M2EifQ%3D%3D&network=public
The sequence numbers do not match.

Looks like paging_token is used instead of source_account_sequence.

Fixed in v0.13.5


Add tls support for pgstac

Closes

#375

Description
This change moves the default TLS connection from NoTls to a configurable struct provided by a small TLS wrapper package from the tokio_postgres ecosystem. This makes rudimentary TLS the default encryption which is an approach taken by the widely used sqlx library.
I considered using generics, but things got hairy quite quickly. We could open up the new method into the public API or add a From implementation to make it possible for users to use their own configurations for the TLS struct.
I'd be open to adding a couple of extra tests if you could advise where.
Checklist
Delete any checklist items that do not apply (e.g. if your change is minor, it may not require documentation updates).

[x] Unit tests (ran the existing suite)
[x] Git history is linear
[x] Commit messages are descriptive
[x] (optional) Git commit messages follow conventional commits
[x] Code is formatted (cargo fmt)
[x] cargo test
[x] Changes are added to the CHANGELOG

Thanks @gadomski !


Add framework/library-specific debugging configurations to vscode-recipes repo

[ ] Watson
[ ] Scrapy
[ ] App Engine

We can consider moving the ones we remove to the vscode-recipes repo.

This issue seems to be ommited as one of the closed issues mentions a possibility to access the scrapy debug configuration through:

"Add configuration" -> use snippet
as it was specified by @DonJayamanne

currently only place that I found mentioning Scrapy debuggin settings is part of the VS Code documentation:
https://code.visualstudio.com/docs/python/debugging#_debugging-specific-app-types
It is also not available in the recipes mentioned by @brettcannon

Closing as out of date.


Collapsible semantic headings default and focus style issues

What is the context of this PR?

Changed default tag from div to h2 so the collapsible title is always a heading for a semantic structure.

This also fixes an alignment issue for when it was wrapped in a div.
Also removed  h2 titleTag settings from any examples as these are now not required

Fixed focus styles so chevron is always black and underline removed when collapsible title is in focus.

How to review

Check collapsibles and accordions to ensure titles are heading tags and can still be overridden.
Check focus/hover styles of collapsibles.

 Collapsible issues

Really small thing but the closed chevron looks like it needs to be moved to the right slightly when focused on


is_cartesian isolate X and Y behaviour

When running on cartesian machines, only home the relevant axes while validating endstop variance and while running the move tests.

Everything looks good. Haven't had a chance to test it yet. I'll try to do it today - won't be able to test with my printers for a couple weeks

@AdamLay
Only issue is DiagX and DiagY need isolate_xy in their Init method (even though they don't use it). After you add that I can merge. Thanks for this addition!
def Init(self, axis_limits, margin, isolate_xy):

Thanks @Anonoei - I've added the params as _, not sure if this is the done thing in Python to be honest but I wanted to indicate the params are being discarded (we have no use for DiagX and DiagY on cartesian/CoreXZ - would also probably good to remove these as valid axes)
Also added quick change to amend the default axes for isolate_xy printers as well due to above reason! :) thanks

@AdamLay thanks! I merged this PR.
_ is the correct name to indicate a variable that isn't used. It's typically used as an empty iterator, like 'for _ in range(0, 10)'
Thanks again for contributing!