Add tree

Fixes https://github.com/alimanfoo/zarr/issues/82
Adds a tree method to Group that constructs a pretty-printed hierarchy listing of everything below that group. Similar in nature to the Unix tree command. Borrowed the styling from @alimanfoo's example.

Thanks for this, big thumbs up!
I'm happy to merge this in then do some work on it. For my own reference, three things worth considering: (1) show root node as "/" as suggested; (2) expose a style argument so output can be customised; (3) consider moving get_tree out as first class method.

Oh, and one other thing: (4) add an option to include some indicator showing whether a node is a group or a dataset.

Glad you like it.

(1) show root node as "/" as suggested;

SGTM.

(2) expose a style argument so output can be customised

Was thinking about giving kwargs that just get forwarded to that function. Maybe could allow user to pass the argument to draw. Whatever works really. 👍

(3) consider moving get_tree out as first class method.

How do you mean? Like a function instead?

(4) add an option to include some indicator showing whether a node is a group or a dataset.

Good call. Does the tree command have some way of showing this? If so, maybe we could mimic it. If not, putting say [] around the name is easy.

On Fri, Mar 3, 2017 at 2:35 PM, jakirkham<EMAIL_ADDRESS>wrote:

Glad you like it.
(1) show root node as "/" as suggested;
SGTM.
(2) expose a style argument so output can be customised
Was thinking about giving kwargs that just get forwarded to that
function. Maybe could allow user to pass the argument to draw. Whatever
works really. 👍
(3) consider moving get_tree out as first class method.
How do you mean? Like a function instead?

I was just thinking that get_tree could be a method on the Group class,
rather than being an inner function, which would make the code a bit more
straightforward.

(4) add an option to include some indicator showing whether a node is a
group or a dataset.
Good call. Does the tree command have some way of showing this? If so,
maybe we could mimic it. If not, putting say [] around the name is easy.

Yes some simple convention for adding something to the label would be good.
--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721

I was just thinking that get_tree could be a method on the Group class, rather than being an inner function, which would make the code a bit more straightforward.

Good point. Actually we could even skip the stylizing with asciitree altogether and leave that for the examples. Alternatively if we keep it, we could have a function or two for particular styles and let users either take those or make their own.

I think it would be nice to keep something that allows printing of a
default ascii tree with minimal typing. I imagine this is something I'll do
a lot while exploring datasets, so I liked the short and sweet 'tree()'. I
almost wondered if calling 'tree()' should actually do the printing as well
as generating the ascii text, so I could just write 'g.tree()' rather than
'print(g.tree())' to see the output.
On Tue, Mar 7, 2017 at 4:14 PM, jakirkham<EMAIL_ADDRESS>wrote:

I was just thinking that get_tree could be a method on the Group class,
rather than being an inner function, which would make the code a bit more
straightforward.
Good point. Actually we could even skip the stylizing with asciitree
altogether and leave that for the examples. Alternatively if we keep it, we
could have a function or two for particular styles and let users either
take those or make their own.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alimanfoo/zarr/pull/140#issuecomment-284768995, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAq8QrCZ1zoUW5hHpt2GX3dKzyLyy2x4ks5rjYJggaJpZM4MRuec
.

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721

Just to clarify my suggestion, what I think we should do is have g.tree() (or possibly a different name) just return the dictionary representation not even the string. Then we can have some function like show_tree(g) call g.tree() and feed it to asciitree with this configuration to get the string. That way we don't need to muck with exposing asciitree parameters as users can roll their own with a few lines. The net result is this is less brittle for testing and more flexible for displaying without increasing the maintenance burden much.

Have updated to address points 1 and 4. As point 1 is straightforward, this likely not much to say there. Point 4 I opted to add [...] to the end of a dataset. We could probably add a flag to control whether this is added or not.

Hi @jakirkham, thinking about this some more, how about the following API...
The Group class gets a hierarchy() method. This method returns a nested dictionary data structure representing the hierarchy, of the kind that can be used as input to asciitree.
The hierarchy() method accepts a depth argument which is None by default but can be an integer specifying the maximum depth.
The hierarchy() method also accepts a label argument which is None by default but can be a function that returns a label given a group or dataset, to allow user customisation of how the text labels for each node in the hierarchy are constructed. If None the default label for groups is the name of the group (i.e., last path segment, e.g., 'foo') and the default label for arrays is the name plus dtype and shape (e.g., 'bar int64 (200, 10)').
This is enough to allow users to roll their own display function via asciitree. However, as a user I would very much like a convenience method which can allow me to visualise the hierarchy when working in an interactive terminal or jupyter notebook with minimal typing on the keyboard, and with some reasonable defaults regarding visual representation. The minimal typing is important, because I anticipate I will use this quite a lot. To satisfy this I propose the following.
The Group class also gets a tree() method. This method returns an instance of a new Tree class. The Tree class implements __repr__ which constructs a text representation of the tree via asciitree with some defaults matching the output of the command line tree utility. The Tree class could also implement _repr_html_() and/or _repr_svg_() to generate a representation for the jupyter notebook, although we could leave implementing this for a future release. I particularly like the idea that we could in future generate an HTML representation that had some simple dynamic behaviour where tree nodes can be expanded or collapsed, allowing exploration of the tree without having to view the entire expanded tree.
The Tree class would accept the hierarchy data in the constructor. So the implementation of the Group.tree() method would just be something like:
class Group(object):

    ...

    def hierarchy(self, depth=None, label=None):
        # build dictionary data structure
        ...
        return data

    def tree(self, depth=None, label=None):
        data = self.hierarchy(depth=depth, label=label)
        return Tree(data)

class Tree(object):

    def __init__(self, data):
        self.data = data

    def __repr__(self):
        # pass self.data to asciitree and return

    def _repr_html_(self):
        # for future work, use self.data to construct an HTML representation

This API would mean that all a user has to do is type mygrp.tree() at the terminal or last line of a notebook cell to view the tree.
What do you think?

Unfortunately I have to run to a meeting soon. So don't have lots of time to think/respond to this ATM, but to plan on giving it more thought. Can give some gut reactions though.
Having an object with repr methods sounds like a great idea.
Any thoughts on having this same object also expose a dict-like interface as well? Doing this would allow us to pass the object to asciitree directly. Also this saves us having two similar methods in the Group interface. Can add some methods to it for changing the Group/Dataset representation as well.

Cool. Re exposing a dict-like interface, I would say whatever is simplest,
happy if you want to try something out and see how it goes.
On Wednesday, April 26, 2017, jakirkham<EMAIL_ADDRESS>wrote:

Unfortunately I have to run to a meeting soon. So don't have lots of time
to think/respond to this ATM, but to plan on giving it more thought. Can
give some gut reactions though.
Having an object with repr methods sounds like a great idea.
Any thoughts on having this same object also expose a dict-like interface
as well? Doing this would allow us to pass the object to asciitree
directly. Also this saves us having two similar methods in the Group
interface. Can add some methods to it for changing the Group/Dataset
representation as well.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/alimanfoo/zarr/pull/140#issuecomment-297474103, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAq8QsyeZ_e4C5nfR4lwvI8fqU6my6zBks5rz3bCgaJpZM4MRuec
.

--
Alistair Miles
Head of Epidemiological Informatics
Centre for Genomics and Global Health http://cggh.org
The Wellcome Trust Centre for Human Genetics
Roosevelt Drive
Oxford
OX3 7BN
United Kingdom
Email<EMAIL_ADDRESS>Web: http://purl.org/net/aliman
Twitter: https://twitter.com/alimanfoo
Tel: +44 (0)1865 287721

Do we want to try and clean this up for the next release or do we want to table it for after? I'm ok with either.

On the HTML front, there are not any libraries that I see that meet our constraints (e.g. Python, not GPL'd, etc.), but maybe one could use a strategy like this one to roll their own.

I think it would be great to get this into 2.2 if possible.
The HTML example you link to looks great. I don't know enough about jupyter notebook to know how easy it is to have objects with html repr with javascript dependencies. FWIW I'd be happy with an ascii implementation for now if adding html is not trivial.

Ok, so I tried to update this roughly based on what we talked about before. We now have an object with a __repr__ method. The object takes arguments to configure how it may be viewed. One can also tweak the view after the fact using update_ascii_kwargs, which returns the object. This allows one to use the REPL to tweak the view on the fly as well. Names are rough and am open to suggestions for them. The tests need tweaking, but the general idea seems ok and works fine in IPython.

I tried the HTML formatting in another branch, but I'm running into issues trying to get what I want from CSS. Not sure if I'm just missing something or if the notebook is overriding some CSS values in such a way that it is messing up my rendering.

Also the code here has seen a lot of changes in the past 24-hrs. Namely we override what asciitree calls a Traversal to specify how to iterate through a Zarr Group instead of creating a dict from the Zarr Group. Simplifies the code a bit and should make it easier to customize the tree generated.

Now with an HTML representation and tests! 🎉
Given some code like that below, we can see the regular output and a screenshot of the HTML output. Basically we use an HTML list and apply a specialized CSS to get a tree looking layout.
Code:
import zarr

g1 = zarr.group()
g3 = g1.create_group('bar')
g3.create_group('baz')
g5 = g3.create_group('quux')
g5.create_dataset('baz', shape=100, chunks=10)

Vanilla __repr__:
bar
 +-- baz
 +-- quux
     +-- baz[...]

...then _html_repr_:

Note: The CSS probably still needs tweaking, but I'm hardly an expert on that front. Pretty happy to have this mostly working. 😄

Added a notebook demonstrating how this works.

Should add that GitHub blocks CSS when rendering things like Jupyter Notebooks'. So one needs to either look locally or take a look via the nbviewer webservice. Here's the link to new notebook generated with the nbviewer webservice based off of commit ( https://github.com/alimanfoo/zarr/commit/3f6dd5908b955a5b7a7802a037dd50b3079b460c ).

Made some improvements and simplifications to the CSS. Have updated the comments above to reflect the new state. To my eyes this looks pretty good, but would welcome feedback from others.

Here's what I see via nbviewer as at 017de3f917668da3fa4ea5ff087fef8a8533301b:

Would it be possible to tweak CSS so the list aligns to the left of the output area?
Also, there's quite a bit of vertical space between parent and sublist. Could we make this more compact?
E.g. something like:

Just to see what it would look like, here's a version reporting shape and dtype to indicate array nodes:

I think I like this better than using '[...]'?

The CSS suggestions seem reasonable. Though if you have CSS changes in mind, would you be able to share them in code? Was having an awful time getting the current format. Expect that will be much faster than me trying to bumble around with the CSS again. :)

Fixed some of the issues raised. Others will need to be addressed at a later time.
Also added in a nicer unicode tree for Python 3. Falls back to the ASCII tree for Python 2. Both are accessible on either Python by calling bytes/str or str/unicode as appropriate on the respective Python version. Newest notebook demonstrates both behaviors.

 I used to do web development and waayyy too much of my life got spent endlessly tweaking CSS! I will have a crack at the latest and see if I can come up with some rule changes...

Thanks for offering to take a look. May look again later. Just need to do some other things first.
Have to agree. I'm not sure whether creating figures for a paper or tweaking CSS is worse.
Side note: Any idea what is up with Coveralls? The if in question should be covered by the full CI matrix, but it seems to only show results from one of the builds in the matrix. 😕

After a bit of thrashing I have an example working with jstree providing styling and interactive expand/collapse of groups. Here's a screenshot from jupyter notebook:

Here's the notebook with example code. This also works in nbviewer.
What do you think @jakirkham, would you be happy to update your PR to use jstree? It seems worth it to me.
As a side note I think that nbviewer has a problem in that it loads jquery but not via require, and so I had to make sure it was defined because jstree declares a dependency on jquery. Probably worth raising this with the nbviewer folks.

xref https://github.com/jupyter/nbviewer/issues/736

Hi @jakirkham, I'm getting near done with other work for the 2.2 release, I'd like to include this too. I think we should go for the jstree implementation for _repr_html_(), I figure if we're going to do _repr_html_() we might as well provide the user with something over and above what you can get from __repr__(). If you're busy I'm happy to merge this PR as-is and go from there, but let me know what you'd prefer.

Sorry. The past few weeks have been a bit busy and am now getting over a cold. So might not be super helpful. Have tried to resolve the merge conflicts here at least.
Using jstree sounds nice. Saw it before, but was trying to start simple to begin with. Happy to switch over to jstree. The one with the "spreadsheet" icons is a nice touch. Might be worth thinking about whether we still want depth if we can collapse layers. Though it may still make sense if we expect the HTML to get unwieldy with the number of items added to it. Otherwise I trust your judgement.

Thank you, I'll merge now and add in the jstree implementation. I think we can leave the depth option for now. Hope you feel better!

SGTM. Thanks.


REF only build linux and osx

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin rerender

We were building osx cross compilers for use on aarch64 and ppc64le. These are not use cases we currently need and those builds are adding to the loads on those services which are already quite limited. Thus I am removing the builds for now.
cc @isuruf

Let's keep those for now. I sometimes use them


Logger input Environment variables

Code implements depresolver part - logger inputs
Input variables define how logger acts.

LOGGER_DEBUG_MODE,LOGGER_JSON_MODE used as initial logger input
covered by unit-tests
LOGGER_DEBUG_MODE,LOGGER_JSON_MODE are true only in case that are configured as true.
Any other input value, including an empty string sets variables to default => false

Related to #331

@ytsarev, true, that's just config propagation, nothing else.
Logger is not there yet, will be part of next PR (or should I extend this one?). I'm splitting into multiple PR's to make it more clear for reviewers, because final implementation affects almost everything.
The plan for PR was

extend configuration (doesn't affect k8gb)
bring new logger, but keep old one (still wouldn't affect k8gb)
remove old logger and including all log messages (affect)
adding debug, move some info messages into debug (affect)

I suggest to discuss possible logging solutions conceptually before we proceed with PRs

@somaritane Actually, an interesting idea. I can change:
zerolog allows for logging at the following levels (from highest to lowest), so I can take over
panic (zerolog.PanicLevel, 5)
fatal (zerolog.FatalLevel, 4)
error (zerolog.ErrorLevel, 3)
warn (zerolog.WarnLevel, 2)
info (zerolog.InfoLevel, 1)
debug (zerolog.DebugLevel, 0)
trace (zerolog.TraceLevel, -1)

LOGGER_DEBUG_MODE  will be removed, while LOG_LEVEL will come and will support following values:

panic, fatal, error,warn,info,debug,trace
invalid value except undefined LOG_LEVEL will lead to fail
default value  (LOG_LEVEL is undefined) -> info

I removed LOGGER_JSON_MODE and extract LOGGER_OUTPUT_FORMAT saying how are log records printed.  It accepts values ['','json','mono','color']. Default value mono; see: PR description ⬆ .

@kuritka, what about helm chart, is it out of scope for this change?

@somaritane  amended


Enable output batches metric for GpuShuffleCoalesceExec by default

@revans2 recently noticed that GpuShuffleCoalesceExec nodes in the query plan did not report the number of output batches.  Given the whole point of this node is to coalesce many input batches into fewer output batches, it's typical to want to know how many output batches were produced.  This changes GpuShuffleCoalesceExec to upgrade the metric to MODERATE_LEVEL, which will enable the metric by default and matches the behavior of other execs that want to report output batch counts.

build


Data Chain Kit Documentation Markdown Linting Issues

As ... ,
I want ... ,
so that ... .
Hints / Details

Markdown linting for KIT docs was not working correctly. This is fixed now and a couple of linting issues for the Data Chain Kit were found.
https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/issues/693

Acceptance Criteria

[ ] Markdown linting issues are fixed

Out of Scope

...

Fixed in https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/pull/739


create "placeholder" frame

It would be useful to have a kind of frame that exists only to handle layout (as opposed to creating a label).
Inspired by Mudlet/Mudlet#764.

fixed in v4.1.0


@link_mentions type link is not added in Work Item Command Line tool 5.2 in ELM 6061

When I run a command similar to the below, it makes the Web UI dirty for the work item, indicating some change has happened, but I don't see any link created. There is no error.
wcl -update repository="https://clm.testenvironment.com:9443/ccm" user=xxxx password=yyyy id=129 @link_mentions:add=85
If I change that command to a different link type:
wcl -update repository="https://clm.testenvironment.com:9443/ccm" user=xxxx password=yyyy id=129 @link_depends_on:add=85
It works as expected.

The mentions link is not directly supported because it is internally implemented when certain things are mentioned in the description or comments.    You would have to look at the history of the work item to see what actually happened.

Kirk WoodsSenior Managing ConsultantCognitive Applications Expert Lab Services+1<PHONE_NUMBER> Mobile

----- Original message -----From: iswark<EMAIL_ADDRESS>jazz-community/work-item-command-line<EMAIL_ADDRESS>Subscribed<EMAIL_ADDRESS>[EXTERNAL] [jazz-community/work-item-command-line] @link_mentions type link is not added in Work Item Command Line tool 5.2 in ELM 6061 (#29)Date: Mon, Jun 1, 2020 12:13 AM

When I run a command similar to the below, it makes the Web UI dirty for the work item, indicating some change has happened, but I don't see any link created. There is no error.wcl -update repository="https://clm.testenvironment.com:9443/ccm" user=xxxx password=yyyy id=129 @link_mentions:add=85
If I change that command to a different link type:
wcl -update repository="https://clm.testenvironment.com:9443/ccm" user=xxxx password=yyyy id=129 @link_depends_on:add=85
It works as expected.
—You are receiving this because you are subscribed to this thread.Reply to this email directly, view it on GitHub, or unsubscribe.

@kirkwoods explanation makes a lot of sense. Please note that I don't make a difference in the code. The code does try to create the mentions link using the same code that is used for any other work item to work item link. Apparently the server does not allow to create that link type. The work item is saved, which is why the refresh is triggered, but there is no change done in the work item and also no new history record created.
@iswark sorry, but it appears that the mentions link can only be exported/read, but not be created like other link types. To get a mentions link, it appears you have to create a comment that mentions the work item. Can I close this request?
Note that a mentions link can also point to a user, which I think is not handled in my code at all.

OK. It might be good to indicate in the help somewhere that you cannot create the mentions link except by adding a comment etc.. Thanks.

I updated the readme.md and the internal documentation.


Powerline9k not working properly on terminator

Describe Your Issue
What is happening?

Icons not displayed properly despite having nerd-font-complete install, powerlinefont install , awesome terminal font

No umlauts displayed

Most issues are best explained with a screenshot. Please share one if you can!
I have this:

I should have this (this is from VS code terminal)

Have you tried to debug or fix it?
I have no clue of why I have this issue ...It used to work....
Environment Information
This information will help us understand your configuration.

What version of ZSH are you using? zsh 5.7.1 (x86_64-pc-linux-gnu)
Do you use a ZSH framework (e.g., Oh-My-ZSH, Antigen)? Oh-My-ZSH
How did you install P9k (cloning the repo, by tarball, a package from your OS, etc.,)? cloning the repo
What version of P9k are you using? latest
Which terminal emulator do you use? terminator

Issues with Fonts & Icons
I'm using V1rgul's theme.

Which font configuration mode are you using? You can check this with (echo $POWERLEVEL9K_MODE). awesome-fontconfig

Comments
I noticed since the last update of OMZ, I had 2 plugin which was not found anymore (z, colored-man) and it ask me to install auto-jump. I didn't have this issue before. To fix this, I removed them :)
Here is my .zshrc
# Path to your oh-my-zsh installation.
export ZSH="/home/anthony/.oh-my-zsh"

PATH=$PATH:/home/anthony/bin
export PATH="$HOME/.config/composer/vendor/bin:$PATH"
export TERM="xterm-256color"
export VISUAL="emacs -nw"

# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
#ZSH_THEME="robbyrussell"

ZSH_THEME="powerlevel9k/powerlevel9k"

POWERLEVEL9K_MODE="awesome-fontconfig"
POWERLEVEL9K_FOLDER_ICON=""
#POWERLEVEL9K_HOME_SUB_ICON="$(print_icon "HOME_ICON")"
#POWERLEVEL9K_DIR_PATH_SEPARATOR=" $(print_icon "LEFT_SUBSEGMENT_SEPARATOR") "

POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0

POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true

POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND='black'
POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND='178'
POWERLEVEL9K_NVM_BACKGROUND="238"
POWERLEVEL9K_NVM_FOREGROUND="green"
POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND="blue"
POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_FOREGROUND="015"

POWERLEVEL9K_TIME_BACKGROUND='255'
#POWERLEVEL9K_COMMAND_TIME_FOREGROUND='gray'
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='245'
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='black'

POWERLEVEL9K_TIME_FORMAT="%D{%H:%M}"
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(root_indicator context dir dir_writable vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(ram status background_jobs)
POWERLEVEL9K_SHOW_CHANGESET=true
POWERLEVEL9K_PROMPT_ON_NEWLINE=true

HYPHEN_INSENSITIVE="true"
COMPLETION_WAITING_DOTS="true"
# /!\ do not use with zsh-autosuggestions

plugins=(tig gitfast colorize command-not-found cp dirhistory sudo zsh-syntax-highlighting)
# /!\ zsh-syntax-highlighting and then zsh-autosuggestions must be at the end

source $ZSH/oh-my-zsh.sh

ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)
ZSH_HIGHLIGHT_STYLES[cursor]='bold'

ZSH_HIGHLIGHT_STYLES[alias]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[command]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[precommand]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green,bold'
rule () {
        print -Pn '%F{blue}'
        local columns=$(tput cols)
        for ((i=1; i<=columns; i++)); do
           printf "\u2588"
        done
        print -P '%f'
}

function _my_clear() {
        echo
        rule
        zle clear-screen
}
zle -N _my_clear
bindkey '^l' _my_clear

# Ctrl-O opens zsh at the current location, and on exit, cd into ranger's last location.
ranger-cd() {
        tempfile=$(mktemp)
        ranger --choosedir="$tempfile" "${@:-$(pwd)}" < $TTY
        test -f "$tempfile" &&
        if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then
        cd -- "$(cat "$tempfile")"
        fi
        rm -f -- "$tempfile"
        # hacky way of transferring over previous command and updating the screen
        VISUAL=true zle edit-command-line
}
zle -N ranger-cd
bindkey '^o' ranger-cd

plugins=(
    git
    zsh-autosuggestions
    zsh-syntax-highlighting
#    fast-syntax-highlighting
)

source $ZSH/oh-my-zsh.sh

Thanks in advance

I don't know what is causing this but just to add some comments, this is working fine on my terminator being used in KDE Neon

same issue

installing nerd-fonts did the thing for me, the current font you are using does not support special symbols

here, this helped me, just download a font. (I've downloaded hack)
right-click terminator -> preferences -> profiles -> general -> uncheck "Use the system fixed width font" and change it to the one you've downloaded.


After deprotected still getting this error

How can i fix ?

Please give me the full name of the map file you're trying to deprotect.

Thanks for your reply, the name is vampirisim speed v4.0.3

I downloaded from this link https://www.epicwar.com/maps/307430/
Is this correct? If not, please send me a link.
When I test on my machine, I don't see this error. Can you give me more details on how to reproduce? For example, are you deprotecting triggers as text or gui? Is this when you first open the map in worldedit? Or does it open fine, but crash when clicking a specific button?

Yes it is correct map,
First when deprotect with your tool "WC3MapDeprotector" and it created Vampirism SPEED X v4.03_deprotected.w3x
after that I opened worldedit.exe and try to opens the map but it gives this error.

my WC3MapDeprotector version is 1.16

Yes it is the correct map.
I opens the tool "WC3MapDeprotector <IP_ADDRESS>"

and clicked the rebuild.

and this popup shows.

after the new map named *_deprotected.w3x "D:\Game\Warcraft III\Maps\Deprotect test\deprotected\Vampirism SPEED X v4.03_deprotected.w3x" i try to open with worldedit.exe
then the error shows.

also i try open with "mpqeditor" the *_deprotected map is opened.

That's very strange, because it's working fine for me.
I wonder if you're using a different version of warcraft 3 than me? I'm on the latest version of reforged.

Aah i see, my version of warcraft is 1.26 😅😅 thanks for your kind support.. any ways do you have linkedin?

https://www.linkedin.com/in/devin-garner/

You could try this tool to downgrade the deprotected reforged map down to older versions of warcraft.
https://www.hiveworkshop.com/threads/map-adapter.326456/


Test with "external" elasticsearch

Strip all ES config except "enable" (for forwarding)
Create ECK subscription no matter the observability_strategy
Deploy ES from CI for events testing (Code copied/trimmed from STO)
Default to use_redhat for CI

I haven't tested this. I was having trouble with the CatalogSources in my test cluster, so I'm sending it to the CI system instead. I don't really expect it to work yet, but maybe?

test

test

This looks like it's working. I checked the smoketest logs and saw this:
*** [INFO] Get documents for this test from ElasticSearch...
*** [INFO] Found 34 documents

4.12 CI testing passed
4.10 is failing to even build with this error
{"changed": false, "cmd": "/usr/bin/git checkout --force csibbitt/STF-1386_move_es_into_CI", "msg": "Failed to checkout csibbitt/STF-1386_move_es_into_CI", "rc": 1, "stderr": "error: pathspec 'csibbitt/STF-1386_move_es_into_CI' did not match any file(s) known to git\n", "stderr_lines": ["error: pathspec 'csibbitt/STF-1386_move_es_into_CI' did not match any file(s) known to git"], "stdout": "", "stdout_lines": []}

That's a bit weird, n'est ce pas?
Here it is working on my machine
$ git checkout --force csibbitt/STF-1386_move_es_into_CI
Switched to branch 'csibbitt/STF-1386_move_es_into_CI'
Your branch is up to date with 'origin/csibbitt/STF-1386_move_es_into_CI'.

Will recheck.

4.10 built this time but ES is crashing on start with this error:
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/elasticsearch.log

This is unexpected. I can see that value being set for minishift in an old test script [1] but I don't see anything in our main code that would have been setting this.
We explicitly enable mmap in our config[2][3], but never set this limit.
I'm tempted to force mmap off (node.store.allow_mmap: false) for CI testing purposes. We don't support the deployment or operation of Elasticsearch, so whether it's running without or without mmap optimizations isn't something I think should matter for our testing.
[1] https://github.com/infrawatch/service-telemetry-operator/blob/master/tests/infrared/13/baremetal-scripts/install-and-run-minishift.sh#L23
[2] https://github.com/infrawatch/service-telemetry-operator/blob/master/roles/servicetelemetry/templates/manifest_elasticsearch.j2#L26
[3] https://github.com/infrawatch/service-telemetry-operator/pull/441/files#diff-d8bb56aeb8cb496de1440f1d6ff33b7d35310db46cdf66df040c2f958936efffR25

According to our docs[1], the label[2] included in our pod template is supposed to take care of this. I suspect disruption in the CI cluster may be preventing this from working, but not sure yet.
[1] https://github.com/infrawatch/documentation/blob/master/doc-Service-Telemetry-Framework/modules/con_node-tuning-operator.adoc#L29
[2] https://github.com/infrawatch/service-telemetry-operator/pull/441/files#diff-d8bb56aeb8cb496de1440f1d6ff33b7d35310db46cdf66df040c2f958936efffR29

4.10 CI passed on retry with no changes.
This should be ready to go now.


Class "Faker\Factory" not found

after run php artisan migrate --seed
I got this error. it seems fakerphp/faker is missing.

The error above is thrown by the UserSeeder. I have tested the seeders on my end and are working correctly. If you have modified the UserSeeder, then it means the error is thrown by the changes you made. Check and make sure that the UsersSeeder and UserFactory(inside database/factories) are exactly as they are in the repo.  If you want to keep your changes, share the code in your UserSeeder.php and I might help you debug the error

after run php artisan migrate --seed I got this error. it seems fakerphp/faker is missing.

You should run composer install without --no-dev flag since fakerphp is installed as a dev dependency. The readme file should mention this.


Uncaught InterngraphError: InterngraphError:

[Enter steps to reproduce:]

...
...

Atom: 1.26.1 x64
Electron: 1.7.11
OS: Mac OS X 10.13.3
Thrown From: Atom Core
Stack Trace
Uncaught InterngraphError: InterngraphError:
At /opt/facebook/nuclide/0.293.101469180/nuclide/node_modules/rxjs/bundles/Rx.min.js:34

InterngraphError: InterngraphError:
    at /opt/facebook/nuclide/0.300.105091723/nuclide/pkg/commons-node/fb-interngraph.js:123:13
    at Generator.next (<anonymous>)
    at step (/opt/facebook/nuclide/0.293.101469180/nuclide/node_modules/async-to-generator/async-to-generator.js:11:30)
    at _next (/opt/facebook/nuclide/0.293.101469180/nuclide/node_modules/async-to-generator/async-to-generator.js:24:9)
    at <anonymous>

Commands

Non-Core Packages
file-icons 2.1.16
highlight-selected 0.13.1
language-babel 2.81.1
language-capirca 0.2.0
language-graphql 0.9.0
language-haskell 1.17.3
language-ini 1.19.0
language-kotlin 0.5.0
language-lua 0.9.11
language-ocaml 1.9.5
language-rust 0.4.12
language-scala 1.1.9
language-swift 0.5.0
language-thrift 1.0.2
MagicPython 1.0.12
nuclide 0.302.107228528
nuclide-format-js 0.0.43
set-syntax 0.4.0
sort-lines 0.18.0
tool-bar 1.1.4

Thanks for contributing!
It appears that this is being caused by the nuclide package, not Atom itself. It may be that there is still a bug in Atom. If so, we'll need the maintainer of the package that is causing the problem to help track that down. You should file this issue on their repository so they can either fix the problem or tell us where the problem is coming from. The Atom FAQ has information on how to contact the maintainers of any Atom community package or theme.


Fixes the login plugin event trigger and adds default login success event listener.

This fixes the login success process so login works out of the box.
This should be backwards compatible, but a test against your code base is recommended.

Ping @jerv13  @rodmcnew

@rodmcnew - Good Catch!   I have added a filter to check for that and reworked the logic a bit.  See if that's more to your liking.

This has been tagged in 0.5.0


ci: reflect local database for tests in trunk github actions workflow

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

npm package (@next-major dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


[SP-2883] Backport of PDI-15520 - Settings for Excel Input step is lost after export/import to a repository (6.1 Suite)

Added getValueOrEmptyIfNull() function for fileName, sheetName and field.getName() to make countNrStepAttributes() function working correctly.
Added appropriate unit test.

@pedrofvteixeira, @mbatchelor, @lucboudreau, @pamval could you please review.

Build Completed
:x: This pull request has errors. They will need to be addressed before it can be accepted. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/excelinput/ExcelInputMeta.java
  engine/test-src/org/pentaho/di/trans/steps/excelinput/ExcelInputMetaTest.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory

Branch Change:  + 7.14%
Complexity Change:  + 7.69%

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change:  + 1.64%
Line Change:  + 1.97%

org.pentaho.di.repository.kdr.KettleDatabaseRepositoryCreationHelper

Branch Change: -1.64%:small_red_triangle_down:
Complexity Change: -.69%:small_red_triangle_down:
Instruction Change: -2.43%:small_red_triangle_down:
Line Change: -2.95%:small_red_triangle_down:

org.pentaho.di.trans.step.StepMeta

Instruction Change:  + .19%
Line Change:  + .27%

org.pentaho.di.trans.steps.excelinput.ExcelInputField

Complexity Change:  + 41.94%
Instruction Change:  + 29.61%
Line Change:  + 40.00%
Method Change:  + 43.33%

org.pentaho.di.trans.steps.excelinput.ExcelInputMeta

Branch Change:  + 7.79%
Complexity Change:  + 4.60%
Instruction Change:  + 14.48%
Line Change:  + 8.71%
Method Change:  + 2.08%

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -1.18%:small_red_triangle_down:
Complexity Change: -1.35%:small_red_triangle_down:
Instruction Change: -.18%:small_red_triangle_down:
Line Change: -.53%:small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change:  + .07%

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change:  + .18%

License header violations

:heavy_exclamation_mark: Copyright year is not the current year on engine/src/org/pentaho/di/trans/steps/excelinput/ExcelInputMeta.java. Found 2013. Was expecting 2016

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f engine/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f engine/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  engine/src/org/pentaho/di/trans/steps/excelinput/ExcelInputMeta.java

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.auth.core.impl.DefaultAuthenticationConsumerFactory

Branch Change:  + 7.14%
Complexity Change:  + 7.69%

org.pentaho.di.core.lifecycle.KettleLifecycleSupport

Branch Change: -8.33%:small_red_triangle_down:
Complexity Change: -9.09%:small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change:  + 1.64%
Line Change:  + 1.97%

org.pentaho.di.repository.kdr.KettleDatabaseRepositoryCreationHelper

Branch Change:  + 1.64%
Complexity Change:  + .69%
Instruction Change:  + 2.43%
Line Change:  + 2.95%

org.pentaho.di.trans.step.StepMeta

Instruction Change:  + .19%
Line Change:  + .27%

org.pentaho.di.trans.steps.excelinput.ExcelInputField

Complexity Change:  + 41.94%
Instruction Change:  + 29.61%
Line Change:  + 40.00%
Method Change:  + 43.33%

org.pentaho.di.trans.steps.excelinput.ExcelInputMeta

Branch Change:  + 7.79%
Complexity Change:  + 4.60%
Instruction Change:  + 14.48%
Line Change:  + 8.71%
Method Change:  + 2.08%

org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta

Branch Change: -1.28%:small_red_triangle_down:
Complexity Change: -.79%:small_red_triangle_down:
Instruction Change: -.04%:small_red_triangle_down:

org.pentaho.di.trans.steps.symmetriccrypto.symmetriccryptotrans.SymmetricCryptoTransMeta

Branch Change: -3.33%:small_red_triangle_down:
Complexity Change: -1.85%:small_red_triangle_down:
Instruction Change: -.28%:small_red_triangle_down:

org.pentaho.di.trans.Trans

Branch Change: -.10%:small_red_triangle_down:
Complexity Change: -.14%:small_red_triangle_down:
Instruction Change: -.09%:small_red_triangle_down:
Line Change: -.11%:small_red_triangle_down:

Integration test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.trans.step.BaseStep

Branch Change: -.30%:small_red_triangle_down:
Complexity Change: -.18%:small_red_triangle_down:
Instruction Change: -.13%:small_red_triangle_down:
Line Change: -.24%:small_red_triangle_down:

@pedrofvteixeira, @mbatchelor, @lucboudreau, @pamval could you please review.


Do not remove openshift monitoring

Latest POC has all deployments and pods removed from openshift-monitoring namespace and the namespace itself is in terminating state and never seems to terminate - its stuck.
Could you please just scale the deployments to 0 and not remove them for next release ?

@rawagner with the new POC we are now not removing the openshift monitoring now, can you try the new tarball which is shared to aos-devel internally (based on 0.16.1 tag) and let us know if still some issue?

We do not remove, but we have to 'disable' as default.


Use custom solidity errors

Description
Uses solidity's new custom errors instead of reason strings, this approach saves gas and IMO is cleaner.
This PR builds on #108, otherwise they would conflict.

Sounds good to me!


[ Monitoring v2 ] Pod: prometheus-rancher-monitoring-prometheus-0 CrashLoopBackOff if "Persistent Storage for Prometheus" option enabled

Rancher Server Setup

Rancher version: 2.5.9
Installation option Docker install:

Information about the Cluster

Kubernetes version: v1.20.9
Cluster Type (Local/Downstream): Downstream
Provider: Imported (RKE)

Describe the bug
Pod prometheus-rancher-monitoring-prometheus-0 (container: prometheus) goes to CrashLoopBackOff with err="open /prometheus/queries.active: permission denied" if "Persistent Storage for Prometheus" (NFS type in my case) is enabled in Prometheus installation settings.
To Reproduce

setup RKE cluster
setup rancher using docker
import cluster to Rancher
go to Cluster Exploer -> Apps & Marketplace
install Monitoring Application with "Persistent Storage for Prometheus" enabled

Result
docker logs k8s_prometheus_prometheus-rancher-monitoring-prometheus-0_cattle-monitoring-system_ae9efe99-65e5-4ba8-bf4a-cb194d794867_6

level=info ts=2021-08-20T13:12:39.507Z caller=main.go:364 msg="Starting Prometheus" version="(version=2.24.0, branch=HEAD, revision=02e92236a8bad3503ff5eec3e04ac205a3b8e4fe)"
level=info ts=2021-08-20T13:12:39.507Z caller=main.go:369 build_context="(go=go1.15.6, user=root@d9f90f0b1f76, date=20210106-13:48:37)"
level=info ts=2021-08-20T13:12:39.507Z caller=main.go:370 host_details="(Linux 5.4.0-74-generic    #83~18.04.1-Ubuntu SMP Tue May 11 16:01:00 UTC 2021 x86_64 prometheus-rancher-monitoring-prometheus-0 (none))"
level=info ts=2021-08-20T13:12:39.507Z caller=main.go:371 fd_limits="(soft=1048576, hard=1048576)"
level=info ts=2021-08-20T13:12:39.507Z caller=main.go:372 vm_limits="(soft=unlimited, hard=unlimited)"
level=error ts=2021-08-20T13:12:39.508Z caller=query_logger.go:87 component=activeQueryTracker msg="Error opening query log file" file=/prometheus/queries.active err="open /prometheus/queries.active: permission denied"
panic: Unable to create mmap-ed active query log

Expected Result

Screenshots

Additional context
Think it relates to "subPath in volumeMount is not writable for non-root users " bug https://github.com/kubernetes/kubernetes/issues/41638
POD settings:
  securityContext:
    fsGroup: 2000
    runAsGroup: 2000
    runAsNonRoot: true
    runAsUser: 1000
...
    - mountPath: /prometheus
      name: prometheus-rancher-monitoring-prometheus-db
      subPath: prometheus-db

prometheus-db folder is created on the volume with permissions as 755 nobody:nogroup
Changing prometheus-db folder permissions on NFS server side (chmod 777 /opt/share/rke01-monitoring/prometheus-db)  is workaround  (or chown 1000:2000) - queries.active file is created with 1000:2000 uid/gid then ...

I have the same error on Rancher version 2.6.0. When I try to create Monitoring stack enabling the Persistent Storage option for Prometheus using LocalPath prometheus container crashes. We tried to change the Helm options for example securityContext section but nothing worked for us.

@amorozkin  I was able to reproduce this in Rancher 2.5.9 on a downstream DO provisioned RKE1 cluster which used rancher/local-path-provisioner with Monitoring V2 using Prometheus Persistent Storage.
However, I was unable to reproduce this in a similar cluster that was using Longhorn instead.
So the issue here is likely not specific to k8s / Monitoring but has to do with the way that rancher/local-path-provisioner (or whatever solution you are using for your NFS server) is configuring the underlying subPath folder's permissions.

We dealt with a similar situation to this in Monitoring V1 in https://github.com/rancher/rancher/issues/29149, where the solution was to override prometheus.prometheusSpec.storageSpec.disableMountSubPath to true; I tested this out on my local-path-provisioner instance and it fixed the issue.
However, it should be noted that this field is deprecated based on Prometheus Operator's Storage spec and might be removed in a new API version in the future based on https://github.com/prometheus-operator/prometheus-operator/pull/3143#issuecomment-615144868 and https://github.com/prometheus-operator/prometheus-operator/issues/3932#issuecomment-806538626.
The other option, if you are able to fix the permissions on the subpath to be associated with a user / group instead of nobody:nogroup, would be would be to modify the securityContext in prometheus.prometheusSpec.securityContext to update Prometheus to use your pre-provisioned group; you could also allow Prometheus to run as root, but I would not recommend that.

Since this is environment-specific and a workaround exists for that type of environment, I have moved this issue toNeeds Info in case you want to provide more information if the suggested workaround does not work in your environment. But I do not believe there is a fix to be made to the Monitoring chart.

if u are using the longhorn v1.2.0 and enabled the V2 monitoring in rancher v2.6.0 it will encounter a similar issue, a temp workaround can be found via  https://github.com/longhorn/longhorn/issues/2964#issuecomment-910969543.

@guangbochen I believe this issue has been fixed with Longhorn v1.2.1-rcx, can you verify?

Verified it works with the longhorn v1.2.1-rc2, should be fine to remove the harvester-related dependency, thanks.
➜  harvester-installer git:(rke2) ks get po -n cattle-monitoring-system
NAME                                                     READY   STATUS    RESTARTS   AGE
prometheus-rancher-monitoring-prometheus-0               3/3     Running   1          2d20h
rancher-monitoring-grafana-7f54b7d8bc-qb8mk              3/3     Running   0          2d20h
rancher-monitoring-kube-state-metrics-744b9448f4-gcp49   1/1     Running   0          2d20h
rancher-monitoring-operator-754bcd8cb4-ct85s             1/1     Running   0          2d20h
rancher-monitoring-prometheus-adapter-77568b975-92q64    1/1     Running   0          2d20h
rancher-monitoring-prometheus-node-exporter-jdtld        1/1     Running   0          2d20h
rancher-monitoring-prometheus-node-exporter-rnzgz        1/1     Running   57         2d19h
➜  harvester-installer git:(rke2) ks get pvc -n cattle-monitoring-system
NAME                                                                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
prometheus-rancher-monitoring-prometheus-db-prometheus-rancher-monitoring-prometheus-0   Bound    pvc-98eb53d8-ae13-47a9-beb7-c5657b73762c   50Gi       RWO            longhorn       2d20h
rancher-monitoring-grafana                                                               Bound    pvc-b21988f1-df2b-4f2b-84ee-fc1e3261092a   10Mi       RWO            longhorn       2d20h

waiting on merge of  https://github.com/rancher/charts/pull/1766  to be able to install latest version of monitoring.

Verified this is working in 2.6-head Commit ID 93f3e13

Created downstream cluster k8s 1.22
Installed longhorn
Installed monitoring with persistent storage for prometheus option enabled
Referenced longhorn in the PS option for monitoring

Longhorn and monitoring functioned as expected. prometheus-rancher-monitoring-prometheus-0 did not error


Create a getBarAtEvent method

Fixes #547
Created getBarAtEvent for bar charts. This allows retrieving only the bar that was clicked on rather than all the bars at that index.
The return from getBarAtEvent can be one of the following

undefined if no bar matches the event point
an object containing the datasetIndex, barIndex, and the rectangle of the bar.

Love it. +1

Very cool. This would also be very useful for the other Chart Types as well.

PR this to the 2.0-dev branch.  This is awesome.

Closing since this has been incorporated into v2.0


Add stripQuotes in JavaNetCookieJar

@swankjesse

I spent an hour tonight studying the spec, the implementation, and the alternative implementations. Here’s what I learned:

Quotes aren’t special characters in modern cookies. It’s a bug in java.net.HttpCookie code that quotes are added.
Quotes are added if the cookie parser believes it’s looking at a version=1 cookie. In practice this is any cookie that has a max-age attribute. It’s also version=1 if you call new HttpCookie().
There’s no good way to know if quotes were added by java.net.HttpCookie of if they were already present in the cookie from the server.

I think our best long-term action is to ditch JavaNetCookieJar and write our own interface for storing cookies. The baggage in making the java.net.HttpCookie work well is just too high.
In the short term, this PR isn’t great. If we offer this option people will use it, and they won’t understand it. This is totally an expert option, and we have no good guidance on how to configure this. What would our Javadoc say, “Toggle this if your cookies aren’t working.” Especially since this setting might work for one origin server and not for another.
I’m going to reject this PR and recommend you use this replacement instead:
https://gist.github.com/swankjesse/e283f2ddf264abd9a0d45bc80e7ec2d8
We need to build a successor to JavaNetCookieJar that doesn’t have this problem. We’ll track that work here: https://github.com/square/okhttp/issues/2890

Using jetty 2.22.2 if I send a cookie with a single double quote I get an error 500
curl -v  http://localhost:8080/myApp/ -b A="""
Could you please confirm if this was fixed on a newer version?


Inability to CANCEL DATASET for some file names

Reported by Andrew Wittenberg on 16 Feb 2006 16:16 UTC
NOAA/PMEL TMAP
FERRET v5.81
Linux(g77) 2.4.18 - 07/14/05
16-Feb-06 11:08
yes? def sym f 0000_a.nc
yes? save/clobber/file="($f)" 1; use "($f)"; can dat "($f)"
!-> LIST/FORMAT=CDF/clobber/file="0000_a.nc" 1
LISTing to file 0000_a.nc
!-> SET DAT/FORM=CDF "0000_a.nc"
!-> can dat "0000_a.nc"
**ERROR: unknown data set: 0000_a.nc
can dat "0000_a.nc"
Command file, command group, or REPEAT execution aborted
See also unresolved bug 486, and "fixed" bug 677.  This bug is very strange --
sometimes I am able to cancel a certain file name, other times not!  Do you guys
reproduce this?
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/1392

Comment by<EMAIL_ADDRESS>on 16 Feb 2006 17:38 UTC
The code in XEQ_CANCEL.F can be improved to fix this bug.  It uses a call to
TM_DIGIT on the file name, which checks only whether the first digit of the
string is a digit.  It then reads an integer dataset number from the string,
with an ERR= intended to find cases where the string consists of more than
digits. This fixed the case of "cancel data 15.nc" but for some reason Fortran
happily reads the dataset 0 from the string "0000_a.nc"
So Ferret tries to cancel dataset 0 which does not exist.  The same test is done
in FIND_DSET_NUMBER which takes as its argument the filename string, so this
needs a stronger test on the string as well.
This is essentially the same as bug 677, whose fix wasn't enough for all cases.
But 486 has comments about its causes -- the convenience of naming files without
their path. I'll add a comment there.

Comment by<EMAIL_ADDRESS>on 28 Aug 2006 23:49 UTC
This bug appears to have been fixed in v6.00.


flightcontroller: ensure more security group rules

This PR refactors the EnsureKubernikusRuleInSecurityGroup to support reconciling more then one rule.
It now also creates the rule lazily only if no other broader rules are already covering the wanted rules.
In addition to the podCIDR rule we had, it now also added egress rules for ntp and the cluster apiserver.
This PR create the following rules lazily if there isn't already a rule allowing the traffic:
egress:

all, to same security group (pod-to-pod)
udp port 53 (dns)
udp port 123 (ntp)
port 443 keppel.$region.cloud.sap, objectstore-3.$region.cloud.sap, keppel.global.global.cloud.sap, objectstore-3.eu-de-1.cloud.sap (for pulling kube-proxy,kubelet, wormhole, flannel images)

ingress:

all, from same security group (pod-to-pod)
port 30000 - 32767, from private network (load balancer to members)

TODO:
Modify our e2e tests to use a fresh security group without any rules to make sure the e2e tests passes with our enforced rules only. Also we should probaply expand our network tests to include host <-> pod tests and also test the loadbalancer datapath

At least for NTP a customer had this issue today (not in a kubernikus environment) so I assume that the ingress rules are needed as well, but I haven't tested it myself. Here is the discussion: https://convergedcloud.slack.com/archives/C374AQJ3W/p1656505078940829


Added option that prevents token from being generated on model creation

When adding has_secure_token to a model, it might be useful in some cases to prevent the token from being generated when the model is created. I've added a `generate_on_create' option to has_secure_token, which is defaulted to true. When the option is set to false, the token will not be generated on the creation of the model.

:+1:

:+1:


Why does GMS require a Google Account for Matter device comissioning?

Curious if anyone can explain the rationale of requiring an Internet connection and a Google Account to commission Matter devices with GMS? Please see https://github.com/home-assistant/android/issues/3859#issuecomment-1714947989 for my problem
Is it trying to auth to Google to pull down a picture of the device to display at the end of the commissioning UI flow? I don't understand.

This is using the "Google Home Application" (GHA), right?
Have you tried with the sample app in this GitHub project?

This is using the "Google Home Application" (GHA), right?

@pierredelisle yes, Home Assistant is using the same com.google.android.gms.home.matter.* APIs for commissioning Matter (and Matter over Thread) devices just like this sample project is.

Have you tried with the sample app in this GitHub project?

I'm assuming this sample app only supports using a Google Nest? I ran through the sample app's Matter commissioning flow for the same Thread device that failed to commission in Home Assistant Companion (even though the sample app doesn't have a Matter controller or Thread border router to use). It failed to commission the device with the same exact error as Home Assistant, attempting to make an authenticated API request to Google's servers. I still don't understand why GMS/Google Home Mobile SDK is requiring you to have a Google account and Internet. This makes it impossible to use Matter on an offline network:
E  Vibration finished, cleaning up
E  E0000 00:00:1694735269.059198   23960 chip_logging.cc:15] CHIP: SPT: JavaVM is already set
E  E0000 00:00:1694735269.061944   23960 configuration_manager_impl.cc:232] Not implemented reached in virtual CHIP_ERROR chip::DeviceLayer::ConfigurationManagerImpl::GetFirmwareBuildChipEpochTime(System::Clock::Seconds32 &)
E  E0000 00:00:1694735269.061959   23960 chip_logging.cc:15] CHIP: TS: Failed to init Last Known Good Time: third_party/connectedhomeip/current/src/platform/google/configuration_manager_impl.cc:233: CHIP Error 0x000000A0: Value not found in the persisted storage
E  E0000 00:00:1694735269.065928   23960 chip_logging.cc:15] CHIP: FP: Failed to update pending Last Known Good Time: third_party/connectedhomeip/current/src/credentials/LastKnownGoodTime.cpp:173: CHIP Error 0x00000003: Incorrect state
E  E0000 00:00:1694735269.065957   23960 chip_logging.cc:15] CHIP: TS: Failed to commit Last Known Good Time: third_party/connectedhomeip/current/src/credentials/LastKnownGoodTime.cpp:192: CHIP Error 0x00000003: Incorrect state
E  E0000 00:00:1694735269.065964   23960 chip_logging.cc:15] CHIP: FP: Failed to commit Last Known Good Time: third_party/connectedhomeip/current/src/credentials/LastKnownGoodTime.cpp:192: CHIP Error 0x00000003: Incorrect state
E  E0000 00:00:1694735269.066863   24001 connectivity_manager_impl.cc:47] Not implemented reached in void chip::DeviceLayer::ConnectivityManagerImpl::_OnPlatformEvent(const chip::DeviceLayer::ChipDeviceEvent *)
E  [ERROR:l2c_ble.cc(326)] linkstate 0
E  BTM_SetBleDataLength failed, peer does not support request
E  bta_dm_acl_change new acl connetion:count = 1
E  [ERROR:bta_gattc_cache.cc(723)] bta_gattc_cache_load: can't open GATT cache file /data/misc/bluetooth/gatt_cache_b43a31e25843 for reading, error: No such file or directory
E  Category is disabled or Not satisfied with Action value
E  triggerId is null
E  btif_gattc_upstreams_evt: Unhandled event (8)!
 [CONTEXT service_id=336 ]
   m.fwx: RPC GetDeviceSetupData returned code UNAUTHENTICATED; Sherlog for GetDeviceSetupData is needed to diagnose.
   	at m.fyb.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):314)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
   	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
   	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
   	at aifk.run(:com.google.android.gms<EMAIL_ADDRESS>(100400-560151436):8)
   	at java.lang.Thread.run(Thread.java:919)
   Caused by: m.plu: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
   	at m.dsn.m(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):17)
   	at m.dsn.l(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):170)
   	at m.fwb.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):162)
   	at m.fyb.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):166)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
   	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
   	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
   	at aifk.run(:com.google.android.gms<EMAIL_ADDRESS>(100400-560151436):8)
   	at java.lang.Thread.run(Thread.java:919)
E  bta_gattc_process_indicate, ignore HID ind/notificiation
E  bta_gattc_process_indicate, ignore HID ind/notificiation
E  Commissioning failed with state Failure obtaining credentials. [CONTEXT service_id=336 ]
   m.evt: Failed to retrieve nonces.
   	at m.ewx.h(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):101)
   	at m.ews.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):12)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):106)
   	at android.os.Handler.handleCallback(Handler.java:883)
   	at android.os.Handler.dispatchMessage(Handler.java:100)
   	at android.os.Looper.loop(Looper.java:214)
   	at android.app.ActivityThread.main(ActivityThread.java:7615)
   	at java.lang.reflect.Method.invoke(Native Method)
   	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
   	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
   Caused by: m.fwx: RPC GetCommissioningNonce returned code UNAUTHENTICATED; Sherlog for GetCommissioningNonce is needed to diagnose.
   	at m.fyb.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):314)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
   	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
   	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
   	at aifk.run(:com.google.android.gms<EMAIL_ADDRESS>(100400-560151436):8)
   	at java.lang.Thread.run(Thread.java:919)
   Caused by: m.plu: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
   	at m.dsn.m(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):17)
   	at m.dsn.l(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):170)
   	at m.fvn.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):37)
   	at m.fvz.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):49)
   	at m.fyb.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):166)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
   	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
   	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
   	at aifk.run(:com.google.android.gms<EMAIL_ADDRESS>(100400-560151436):8)
   	at java.lang.Thread.run(Thread.java:919)
E  [ERROR:bta_gattc_utils.cc(458)] bta_gattc_mark_bg_conn unable to find the bg connection mask for bd_addr=XXX
E  Showing error status. [CONTEXT service_id=336 ]
   m.gin: Failed to retrieve nonces.
   	at m.gpo.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):401)
   	at m.qxc.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):84)
   	at m.qzg.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):3)
   	at m.qzf.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):137)
   	at m.ele.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):362)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):106)
   	at android.os.Handler.handleCallback(Handler.java:883)
   	at android.os.Handler.dispatchMessage(Handler.java:100)
   	at android.os.Looper.loop(Looper.java:214)
   	at android.app.ActivityThread.main(ActivityThread.java:7615)
   	at java.lang.reflect.Method.invoke(Native Method)
   	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
   	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
   Caused by: m.evt: Failed to retrieve nonces.
   	at m.ewx.h(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):101)
   	at m.ews.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):12)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):106)
   	at android.os.Handler.handleCallback(Handler.java:883)
   	at android.os.Handler.dispatchMessage(Handler.java:100)
   	at android.os.Looper.loop(Looper.java:214)
   	at android.app.ActivityThread.main(ActivityThread.java:7615)
   	at java.lang.reflect.Method.invoke(Native Method)
   	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
   	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
   Caused by: m.fwx: RPC GetCommissioningNonce returned code UNAUTHENTICATED; Sherlog for GetCommissioningNonce is needed to diagnose.
   	at m.fyb.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):314)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
   	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
   	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
   	at aifk.run(:com.google.android.gms<EMAIL_ADDRESS>(100400-560151436):8)
   	at java.lang.Thread.run(Thread.java:919)
   Caused by: m.plu: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
   	at m.dsn.m(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):17)
   	at m.dsn.l(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):170)
   	at m.fvn.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):37)
   	at m.fvz.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):49)
   	at m.fyb.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):166)
   	at m.qiw.bJ(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
   	at m.qqy.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
   	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
   	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
   	at aifk.run(:com.google.android.gms<EMAIL_ADDRESS>(100400-560151436):8)
   	at java.lang.Thread.run(Thread.java:919)

Possible to know which device you are trying to commission? What's the VID/PID?

@pierredelisle, this a Nanoleaf Matter over Thread BR30 lightbulb: https://nanoleaf.me/en-US/products/essentials/bulbs/?category=BR30-E26&standard=matter&size=3
From "Commissionable Devices" in the Sample App:
VID: 0x115A
PID: 0x0035
I have many other Matter over Thread devices from other vendors I can try too if needed.

Thanks. Do you have a Google Thread border router (e.g. Nest Hub)? Was it commissioned via GHA?

Thanks. Do you have a Google Thread border router (e.g. Nest Hub)?

I don't have a Nest, or even a Google account. I only have access to an OpenThread Border Router using a USB radio dongle & Home Assistant.

Was it commissioned via GHA?

I just compiled and ran the GHSAFM-3p-ecosystem app on my smartphone and went through the Set up without QR code process by punching in the code for device pairing while the lightbulb was in pairing mode.

A Thread Border Router is needed to support the commissioning of a Matter Thread device. If a Thread Border Router has been commissioned via GHA, then the Thread credentials are available via the Google Home APIs. Any app that uses these APIs will then be able to commission Matter Thread devices.
If you commission a WiFi Matter device, then this is not required, and your device can be commissioned by simply using the sample app.

Sorry, but I'm still not understanding why a Google account is needed to use the Google Home SDK API for Matter over Thread device commissioning. Since I already have a Thread border router and Matter controller connected I should be able to commission devices without the cloud" or Internet by sending the generated credentials to them directly over my LAN.
I'm specifically speaking about the error line: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. in stacktrace I posted above
Are you saying that the device commissioning flow is:
Some Android Smart Home App using the Google Home API (GHA/GHSAFM-3p-ecosystem/Home Assistant Companion for example) --> Google Home API --> Bluetooth connection to Matter over Thread device for generating credentials --> Credentials received by Google Home API --> Upload generated credentials to Google's cloud which requires a Google account --> Thread Border Router downloads device credentials from Google's cloud servers?

Agree that the error you point to is confusing, and I wonder if this is not related to something unrelated to Thread.
I'll ask someone in our engineering team to have a look.
However, if you could try the following:
(1) Commission a Thread Border Router via GHA
(2) Commission the Thread device via GHSAFM
Then it should work.
A Google account is definitely necessary for (1). This is what gets the Thread credentials into the Google ecosystem.
Note that I believe that using a Nanoleaf or Samsung TBR should work as well.
Also, we will have some Thread "developer utilities" coming up for the sample app. (My colleague Doug should have a PR out soon).
With  that, you'll be able to:

export your Thread credentials via a QR code
import these credentials into Google Home infrastructure (in Google Play Services).

@zimmyxyz Please see https://github.com/google-home/sample-apps-for-matter-android/pull/172 and give it a try.

@pierradelisle I gave the PR a try and was hoping it would let me dump the created credentials so I could import them into my own Matter controller software.
Unfortunately still running into the issue of GMS failing on the Caused by: m.plu: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project. error before it even gets a chance to create the credentials. So still need that upstream issue resolved before the credential dumping feature can be used.
I'm going to try debugging GMS on a rooted device to figure what this mysterious Google API request is so we have better info about it soon.

@pierredelisle just got around to debugging the "authentication" issue with a rooted device and mitmproxy. I don't see any requests from Google Play Services that are responded to with a 4XX code. I do see a bunch of gRPC traffic to the URL https://googlehomefoyer-pa.googleapis.com/google.internal.home.foyer.v1.CHIPService/GetCommissioningNonce though. GetCommissioningNonce was mentioned in the error stacktrace:
                 Caused by: m.fya: RPC GetCommissioningNonce returned code UNAUTHENTICATED; Sherlog for GetCommissioningNonce is needed to diagnose.
                 	at m.fze.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):314)
                 	at m.qns.bN(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
                 	at m.qvx.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
                 	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
                 	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
                 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
                 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
                 	at ahvs.run(:com.google.android.gms<EMAIL_ADDRESS>(190400-567131450):8)
                 	at java.lang.Thread.run(Thread.java:1012)
                 Caused by: m.pqp: UNAUTHENTICATED: Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
                 	at m.dsn.m(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):17)
                 	at m.dsn.l(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):176)
                 	at m.fwq.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):37)
                 	at m.fxc.a(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):49)
                 	at m.fze.b(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):166)
                 	at m.qns.bN(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):14)
                 	at m.qvx.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):114)
                 	at m.dud.c(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):50)
                 	at m.dud.run(:com.google.android.gms.optional_home<EMAIL_ADDRESS>(100400-0):76)
                 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
                 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
                 	at ahvs.run(:com.google.android.gms<EMAIL_ADDRESS>(190400-567131450):8)
                 	at java.lang.Thread.run(Thread.java:1012)

@pierredelisle could you please open a bug issue ticket on https://issuetracker.google.com/issues?q=componentid%3A655104 for this. I can't open one since I do not have a Google account

Are you using a rooted device?

Reason for asking whether you use a rooted device:
Basically the RPC is only meant to be used by GMSCore, so it uses a PKI signature to authenticate itself - but on a rooted device, because that could be faked, auth always fails.

@pierredelisle the original device I tried device commissioning with that got the UNAUTHENTICATED: Request is missing required authentication credential. error in logcat was NOT rooted. I recently got another phone for testing and rooted it to see if I could use root debugging privileges to figure out the specific details about the RPC request/response that was causing the UNAUTHENTICATED error. I used mitmproxy to record a bunch of RPC requests for the URL https://googlehomefoyer-pa.googleapis.com/google.internal.home.foyer.v1.CHIPService/GetCommissioningNonce but never managed to log the one request that got a 4XX response, which is what I was hoping to see. All the GetCommissioningNonce requests it intercepted and logged just got back 200 as a RPC response and no body, I never see an RPC request with an actual error response. I managed to find the APK that contains the code that causes the RPC auth error (dl-Home.optional_233614100400.apk in my case):

But like I said I never see the error RPC request, so I'm still unsure what's going on here. I thought the authentication error is due to not being signed into a Google account but at this point I'm not really sure. I will try to use my rooted device to breakpoint debug the RPC request soon and hopefully that will give some info about the error.

I've read the entire discussion here, and I think there may be a misunderstanding what @zimmyxyz wants and what @pierredelisle understands from the question.
From how I understood it, @zimmyxyz wants to use the Google Home SDK, but doesn't wan't to use a device that has GMS on it, for ex. an Android phone with a custom ROM.
So the question why the dependence on a Google account is also why the dependency on GMS? Can't we setup devices offline without needing to have GMS, Google account or even internet connection at all? Sorry for busting in on the question, but I was basically wanting to ask the same question, so better here than to open a new issue.

why the dependency on GMS?

The Google Home Mobile SDK depends on Google Play Services, and more specifically the "home" module. This is the library code that is needed to run on the phone to provide the functionality offered by the Google Home Mobile SDK.
The SDK will not work without that "home" module running on the phone.
See https://developers.home.google.com/matter/verify-services for more details on checking the Matter modules.

From how I understood it, @zimmyxyz wants to use the Google Home SDK, but doesn't wan't to use a device that has GMS on it, for ex. an Android phone with a custom ROM.

No, the device I am using DOES have GMS but isn't signed into a Google Account. This is the issue.

I may be wrong, but I think your problem is with thread credential sharing. Matter has not implemented thread credential sharing yet, maybe Matter 1.3? The problem is that the border routers all used different APIs to pass in credentials.  So GMS is trying to use a Google Home device as the border router and to use a Google Home device you need a Google account. I suspect you have a border router from a different vendor which you are trying to use. In the current Matter model thread border routers are proprietary things under the vendor's control.  Matter thread credential sharing will solve this when it deploys. Something which might work would be to commission your device using the other bother router first, and then share it back to Android.

When I use GHSAFM-3p-ecosystem apk to do commission of an MATTER WIFI bulb, it failed to make credential.

I do not have a border router or a Nest connected. Just a Android Phone and a Bulb connected with a WIFI AP. Is that issue?


Use different tokens instead of forcing WD and all HMS to use the same delegatetoken in the kerberos environment

:pencil: Description
1.Use WD's own token.
2. Support HMS to use different tokens separately.
3. Refactored the delegatetoken section, greatly simplifying the code logic.
4. After extensive testing in our environment, it is OK.
:link: Related Issues
https://github.com/ExpediaGroup/waggle-dance/issues/309

@patduin Could you review this or have someone else review it as well. We have been making this change for several months, and tested many times. I think it can really help many people.

The failed reason seems to have nothing to do with my pr
Error:  Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.8:deploy (injected-nexus-deploy) on project waggle-dance-rpm: Failed to deploy artifacts: Could not transfer artifact com.hotels:waggle-dance-api:jar:javadoc:4.0.0-20240412.083012-2 from/to sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots): authentication failed for https://oss.sonatype.org/content/repositories/snapshots/com/hotels/waggle-dance-api/4.0.0-SNAPSHOT/waggle-dance-api-4.0.0-20240412.083012-2-javadoc.jar, status: 401 Unauthorized -> [Help 1]

Yup I'll try to get some eyes on this next week, thank you!!!
On Fri, 12 Apr 2024, 10:40 tian bao, @.***> wrote:

@patduin https://github.com/patduin Could you review this or have
someone else review it as well. We have been making this change for several
months, and tested many times. I think it can really help many people.
—
Reply to this email directly, view it on GitHub
https://github.com/ExpediaGroup/waggle-dance/pull/313#issuecomment-2051300260,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAP6JGEGIGMZCBXYCC2JUVLY46MY3AVCNFSM6AAAAABGDSXUJSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJRGMYDAMRWGA
.
You are receiving this because you were mentioned.Message ID:
@.***>

I cannot accept this PR as it is now. This needs some refactoring to separate kerberos code from the non kerberos paths and remove all the static class dependencies introduced.

Wait for me for a while, I will make some changes and submit it again.

@patduin @jmnunezizu I have completed the modifications, please help me take a look

The static part of the code has been replaced.
Strategy model for SaslThriftMetastoreClientManager.

At the same time, I changed the code to not require manual kinit and can automatically renew tickets.

I think the failed test case getTableMeta and Could not transfer artifact  are  not related to me.

@patduin @jmnunezizu Could you help review it? This feature is really useful for users in the kerberos environment.

Hi @flaming-archer – we'll get to it as soon as we can. Sorry for the delay and thanks for the additional changes and contribution.

It's been a week now....

@patduin @jmnunezizu This feature is really great. Could you help me take a look.

I've merged the other hive3 PR please have a look at the conflicts, thank you.

I've merged the other hive3 PR please have a look at the conflicts, thank you.

Sorry, I only saw it now. I saw that PR, it was submitted by my colleague, and I know her changes. I will modify it together based on this. Wait for me for a moment.

@patduin @jmnunezizu Modified, pls take a look.

@patduin pls take a look at it.

at

Hello, after the above modification, can krbs be automatically renewed?

at

Hello, after the above modification, can krbs be automatically renewed?
Sure, welcome to verify.

Sure, welcome to verify.

As shown in the above figure, the zk related configuration is added in hive-site. Use the hadoop user to start the process, and the renewal will fail after one day, with the following error:

Please help me if you have time.

Sure, welcome to verify.

As shown in the above figure, the zk related configuration is added in hive-site. Use the hadoop user to start the process, and the renewal will fail after one day, with the following error:

Please help me if you have time.

at

Hello, after the above modification, can krbs be automatically renewed?
Sure, welcome to verify.

Please help me if you have time.

As shown in the above figure, the zk related configuration is added in hive-site. Use the hadoop user to start the process, and the renewal will fail after one day, with the following error:

In fact, when we use it, WD is deployed independently and does not rely on hive-site.xml. In addition, the configuration of zk is written in this configuration file.
Pls ref https://github.com/ExpediaGroup/waggle-dance/blob/hive-3.x/HowToKerberize.md.
Perhaps I should remind you of something, auto renew is stored in Hadoop UGI for TGT.

As shown in the above figure, the zk related configuration is added in hive-site. Use the hadoop user to start the process, and the renewal will fail after one day, with the following error:

In fact, when we use it, WD is deployed independently and does not rely on hive-site.xml. In addition, the configuration of zk is written in this configuration file.
Pls ref https://github.com/ExpediaGroup/waggle-dance/blob/hive-3.x/HowToKerberize.md.
Perhaps I should remind you of something, auto renew is stored in Hadoop UGI for TGT.

I made the changes as you said. The hadoop cluster can be renewed successfully, but the waggle-dance renewal failed.


Request timeout, automation failing

Region and Brand of car
EU KIA Xceed PHEV '23
Version of the integration
v2.24.2
Describe the bug
Automations and scripts are failing hard when the force update (refresh) service call times out, continue on error does not work.
Automation execution is interrupted when this error occurs. Fails regardless of a target vehicle being specified or not.
Timeout doesn't occur when car has cellular reception.
Debug logs if an error occurred
debug.log
To Reproduce
Park car in underground garage with no cellular reception. Call force update service.
Expected behavior
Fail gracefully, so that either continue on error works OR the service call timeout doesn't kill the automation execution.
Screenshots

Additional context
"Regular" update is cached info and doesn't give the actual status.
Force update is necessary to know whether the car has been plugged this moment.

I have an automation which has just started failing over te last day or so. The message I get from homeassistant is:
The automation "Kia not plugged in" (automation.kia_not_plugged_in) has an action that calls an unknown service: kia_uvo.force_update.
Perhaps in the underlying library has changed

I have an automation which has just started failing over te last day or so. The message I get from homeassistant is:
The automation "Kia not plugged in" (automation.kia_not_plugged_in) has an action that calls an unknown service: kia_uvo.force_update.
Perhaps in the underlying library has changed

I can call the service just fine, force update is there, it times out as seen in my logs. Timeout exception isn't being caught and thus cascades to an automation also throwing an exception and stopping.

It's shouldn't be caught.  As the call failed. If we caught and ignored it you wouldn't know it didn't work.

I agree with @cdnninja that we should raise this issue to the user so owner can learn about it.
I am more interested why automation/script is not moving on even though you are using continue on error.
I will deep dive on this.

@fuatakgun the issue should definitely be raised, as I wrote though, failing gracefully should be made possible, continuing on error if desired.

To confirm in your automation YAML you have continue on error enabled?
This issue is more of a home assistant issue than kia_uvo.

I don't know if it can help

@cdnninja Continue on error is enabled.

Could you post your YAML?


"Jupyter Server Not Found" on Windows 10

tried to open jupyterLab.exe for second time and I encountered this error:

first time that I lunched jupyterLab.exe there wasn't any kind of problem there even I wrote few lines of codes and there wasn't problem. But second time I encountered with this error. How can I fix this? why this happens?

*Note That my jupyter-notebook version is higher than 4.3.0 and python has been added to path.
JupyterLab Version : 3.1.12-2

Hi @shayandavoodii , thanks for reporting this. We are looking into it. As a workaround can you try running is as administrator. Right click JupyterLab launcher icon and choose Run as administrator.

Hi @shayandavoodii , thanks for reporting this. We are looking into it. As a workaround can you try running is as administrator. Right click JupyterLab launcher icon and choose Run as administrator.

Hi, Thanks for your response and support.
I tried Run as administrator, Then JupyterLab lunched without any problem!
we have to lunch it as administrator always?

We hope to fix the issue in the newer versions so you won't have to run as administrator. Please use it as a workaround for now.

We hope to fix the issue in the newer versions so you won't have to run as administrator. Please use it as a workaround for now.

Thanks. As a recommendation, can you add possibility of automatic closing brackets?
I mean when you open parenthesis (, jupyterlab editor close the parenthesis ) automatically.

@shayandavoodii to enable auto-closing brackets you can go to the topbar menu "Settings" and toggle the "Auto Close Brackets" option (second from the bottom on the screenshot below):

For other general JupyterLab questions please try to search the issues in the main JupyterLab repo first: https://github.com/jupyterlab/jupyterlab/issues

@shayandavoodii to enable auto-closing brackets you can go to the topbar menu "Settings" and toggle the "Auto Close Brackets" option (second from the bottom on the screenshot below):

For other general JupyterLab questions please try to search the issues in the main JupyterLab repo first: https://github.com/jupyterlab/jupyterlab/issues

Dear @krassowski, Thanks for your help.
I'm sorry mentioning my recommendation here! surly I'll follow instructions from now on.
Thanks again.

Hi @shayandavoodii , thanks for reporting this. We are looking into it. As a workaround can you try running is as administrator. Right click JupyterLab launcher icon and choose Run as administrator.

Dear @mbektas I tried run as administrator but it didn't work for me. And I tried to reinstall the app but nothing has changed. Do you have different solutions for this issue?
Thanks,

Hi @ryilkici ,
I had the same issue as you - was installing for me only.
When I selected the 'install for all users' and accepted the default directory for JupyterLab - then it seemed to work.
But it does not let me change the working directory - so probably going back to browser-based usage...


2.0.4 compatibility issue with iOS7

I'm starting out with AWS and following their getting started guide. The 'AWSCore' pod pulls in UICKeyChainStore pod with a 2.0.0 dependency, but I'm seeing some compile time issues in the .h and .m, for example:
__OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_4_0);
typedef NS_ENUM(NSInteger, UICKeyChainStoreAuthenticationPolicy) {
UICKeyChainStoreAuthenticationPolicyUserPresence = kSecAccessControlUserPresence,
};
gives a 'use of undeclared identifier kSecAccessControlUserPresence'
I'm also seeing many lines with:
__OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_8_0);
and from what I can tell the error is something to do with 8_0 because changing that to 7_0 seems to 'hide' the problem.
I'm using XCode 5.1.1 (base SDK 7.1)  and OSX 10.8.5

Yes, Xcode 5.x does not know iOS 8 and OS X 10.0. Can you upgrade Xcode version to 6.x? If you cannot, let me know the reason since harder to adopt the old development environment than adopt to the old runtime environment. If there is no special reason, I really want you to use in the newer development environment.

Thanks for the quick response, and I do appreciate the preference to move forwards.  I'm trying to do the same :) but sadly I cant upgrade to XCode 6 yet, since I'm on 10.8.5 and its not supported, and I cant update to 10.9 since Apple removed it.  Hopefully we can jump to 10.10 in the next couple of months though!
Interestingly the AWS tutorial lists XCode 5 and iOS 7 as minimum requirements:
http://docs.aws.amazon.com/mobile/sdkforios/developerguide/setup.html#include-the-sdk-for-ios-in-an-existing-application
I dont know if that makes a difference, since you might get further requests for this, unless they also increase their entry level requirements.  Thanks and feel free to close this item now you have confirmed the reason.

PS If I raise an issue against AWS what pod version should they be pointing to for XCode5 and iOS7 compatibility please?

I was having the same issue but upgrading to Xcode 6 resolved the issues that I was having with undeclared variables and such.
Thank you.


Switching back to app does not hide splash screen

Fixes #12
Seems the plugin was not swizzling AppDelegate, but simply overriding
it.
This means it all worked fine and dandy as long as no other plugins were
overriding or swizzling AppDelegates applicationWillResignActive or
applicationDidBecomeActive.
Sadly, phonegap-plugin-push and many more do exactly this... so the
combination was causing one or both plugins to fail.
This change fixes the swizzling in this plugin, making it play nicely
with phonegap-plugin-push, and hopefully others.
Coincidentally, phonegap-plugin-push was also incorrectly overriding
applicationDidBecomeActive, so I have sent a PR to correct
phonegap-plugin-push as well.

We could do this without swizzling at all. I can send a PR of that approach if you like.


[BUG] - Duplicate argument "self" in function definition

After installing rdkit-stubs and running mypy on my code I get the following error:
/home/cbh/.cache/pypoetry/virtualenvs/qcio-RA1cVAvH-py3.8/lib/python3.8/site-packages/rdkit-stubs/Chem/rdMolDescriptors.pyi:247: error: Duplicate argument "self" in function definition

Here is the mistaken function signature:
    def __init__(self, self: typing.Any, name: str, version: str) -> None:
        """
            C++ signature :
                void __init__(_object*,_object*,std::string,std::string)
        """

The line of code  indicated by that error message doesn't seem to mention self so it's hard to tell where the issue is.
Do you happen to know which type that constructor is attached to?

Yeah trying to figure out the weirdness in the auto-generated code. On my system it refers to this, which clearly has the error:
class PythonPropertyFunctor(PropertyFunctor):
    """
    """
    __instance_size__: typing.ClassVar[int] = 64
    @staticmethod
    def __reduce__(*args, **kwargs):
        ...
    def __call__(self, mol: Mol) -> float:
        """
            Compute the property for the specified molecule

            C++ signature :
                double __call__((anonymous namespace)::PythonPropertyFunctor {lvalue},RDKit::ROMol)
        """
    def __init__(self, self: typing.Any, name: str, version: str) -> None:
        """
            C++ signature :
                void __init__(_object*,_object*,std::string,std::string)
        """

The rdkit-stubs.__init__.py file I have is also different from the one you're showing on master. Something weird about how you're generating these stubs when I install rdkit??
from __future__ import annotations
import logging as logging
import sys as sys
from .rdBase import *
__all__ = ['log_handler', 'logger', 'logging', 'rdBase', 'sys']
__version__: str = '2024.03.3'
log_handler: logging.StreamHandler  # value = <StreamHandler <stderr> (NOTSET)>
logger: logging.Logger  # value = <Logger rdkit (WARNING)>

These stubs seem to have come a long with a pip install rdkit because I did not install them directly. Are they somehow bundled incorrectly with rdkit? Just noticed that when I run pip install rdkit-stubs then this issue goes away... Very strange!

So yes--full repro is

pip install rdkit (I have the latest version)
Run mypy on your project (whatever you are developing) -> You will get this error and have the code I pasted above at line 274 of the corresponding file.
pip install rdkit-stubs
Now this issue is gone...

So it appears builds of rdkit are packaged with some old/bad version of rdkit-stubs even though it's not listed as a dependency? Something strange like this...

Rdkit recently added its own stubs. https://greglandrum.github.io/rdkit-blog/posts/2024-03-08-docstring-stubs.html (exiting! this rdkit-stubs package might be obsolete soon!). I suspect the type error is a problem with the stubs genterated by rdkit.
Looks like this type error is cased by the stubs that were autogenerated for PythonPropertyFunctor.
This is where the function is registered on the c++ side: https://github.com/rdkit/rdkit/blob/cba05a9b3a4fe38f50100b5cc5d17890517be526/Code/GraphMol/Descriptors/Wrap/rdMolDescriptors.cpp#L1627

Ohh. That's a little nasty that they gave it the same name as this project so figuring out what's broken is a bit ugly... I'll resubit the issue there!

Closing since this is an issue with the rdkit stubs, not this library. Thanks for your help sorting this out! Added comments to this issue and it appears this PR is an attempt at fixing this issue.