ship fix to live branch

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

File
Status
Preview URL
Details

cordovadocs/2015/build-deploy/debug-using-visual-studio.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/get-started-with-ci.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/jenkins.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/tfs2013.md
:bulb:Suggestion

Details

cordovadocs/2015/build-deploy/tfs2015.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/create-a-hosted-app.md
:bulb:Suggestion

Details

cordovadocs/2015/first-steps/develop-with-typescript.md
:bulb:Suggestion

Details

cordovadocs/2015/known-issues/known-issues-ios.md
:bulb:Suggestion

Details

cordovadocs/2017/build-deploy/jenkins.md
:bulb:Suggestion

Details

cordovadocs/2017/debug-test/debug-using-visual-studio.md
:bulb:Suggestion

Details

cordovadocs/2017/publishing/publish-to-a-store.md
:bulb:Suggestion

Details

cordovadocs/2017/tips-workarounds/run-web-app-in-cordova.md
:bulb:Suggestion

Details

README.md
:white_check_mark:Succeeded

cordovadocs/2015/TOC.md
:white_check_mark:Succeeded

cordovadocs/2015/build-deploy/ci-guide.md
:white_check_mark:Succeeded

cordovadocs/2015/build-deploy/deploy-and-run-app.md
:white_check_mark:Succeeded

cordovadocs/2015/first-steps/using-bower.md
:white_check_mark:Succeeded

cordovadocs/2015/known-issues/known-issues-cordova5.md
:white_check_mark:Succeeded

cordovadocs/2015/known-issues/known-issues-debugger.md
:white_check_mark:Succeeded

cordovadocs/2015/known-issues/known-issues-general.md
:white_check_mark:Succeeded

cordovadocs/2015/known-issues/known-issues-vs2013.md
:white_check_mark:Succeeded

cordovadocs/2015/known-issues/known-issues-vs2015.md
:white_check_mark:Succeeded

cordovadocs/2015/release-notes/release-update-10.md
:white_check_mark:Succeeded

cordovadocs/2015/release-notes/release-update-5.md
:white_check_mark:Succeeded

cordovadocs/2015/security/best-practices.md
:white_check_mark:Succeeded

cordovadocs/2015/security/detect-security-threats.md
:white_check_mark:Succeeded

cordovadocs/2015/security/fix-security-issues.md
:white_check_mark:Succeeded

cordovadocs/2015/tips-workarounds/android/security-05-26-2015/4.3.0/config.xml
:white_check_mark:Succeeded

cordovadocs/2015/tips-workarounds/android/security-05-26-2015/5.0.0/config.xml
:white_check_mark:Succeeded

cordovadocs/2015/tips-workarounds/configuration-tips.md
:white_check_mark:Succeeded

cordovadocs/2017/build-deploy/ci-guide.md
:white_check_mark:Succeeded

cordovadocs/2017/first-steps/develop-with-typescript.md
:white_check_mark:Succeeded

cordovadocs/2017/first-steps/using-bower.md
:white_check_mark:Succeeded

cordovadocs/2017/security/best-practices.md
:white_check_mark:Succeeded

cordovadocs/2017/security/detect-security-threats.md
:white_check_mark:Succeeded

cordovadocs/2017/security/fix-security-issues.md
:white_check_mark:Succeeded

cordovadocs/2017/tips-workarounds/configuration-tips.md
:white_check_mark:Succeeded

cordovadocs/2015/build-deploy/debug-using-visual-studio.md

Line 123, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2015/build-deploy/get-started-with-ci.md

Line 16, Column 8: [Suggestion: disallowed-html-attribute - See documentation] HTML attribute 'style' on tag 'table' isn't allowed. Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 17, Column 5: [Suggestion: disallowed-html-attribute - See documentation] HTML attribute 'style' on tag 'td' isn't allowed. Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2015/build-deploy/jenkins.md

Line 133, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2015/build-deploy/tfs2013.md

Line 65, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 142, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 190, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 233, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 304, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 339, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 370, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 405, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2015/build-deploy/tfs2015.md

Line 17, Column 8: [Suggestion: disallowed-html-attribute - See documentation] HTML attribute 'style' on tag 'table' isn't allowed. Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 18, Column 5: [Suggestion: disallowed-html-attribute - See documentation] HTML attribute 'style' on tag 'td' isn't allowed. Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2015/first-steps/create-a-hosted-app.md

Line 181, Column 39: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/?view=toolsforcordova-2017#the-w3c-content-security-policy-csp&preserve-view=true' will be broken in isolated environments. Replace with a relative link.
Line 383, Column 24: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'anchor' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 458, Column 53: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'meta' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 462, Column 143: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/build-deploy/run-app-android-emulator?view=toolsforcordova-2015&preserve-view=true' will be broken in isolated environments. Replace with a relative link.

cordovadocs/2015/first-steps/develop-with-typescript.md

Line 109, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2015/known-issues/known-issues-ios.md

Line 63, Column 8: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'name' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 64, Column 6: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'deployment-target' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.
Line 65, Column 6: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'target-device' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2017/build-deploy/jenkins.md

Line 149, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2017/debug-test/debug-using-visual-studio.md

Line 130, Column 2: [Suggestion: disallowed-html-tag - See documentation] HTML tag 'style' isn't allowed.  Replace it with approved Markdown or escape the brackets if the content is a placeholder.

cordovadocs/2017/publishing/publish-to-a-store.md

Line 263, Column 525: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/first-steps/ios-guide?view=toolsforcordova-2017&preserve-view=true' will be broken in isolated environments. Replace with a relative link.
Line 317, Column 92: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/first-steps/ios-guide?view=toolsforcordova-2017&preserve-view=true' will be broken in isolated environments. Replace with a relative link.

cordovadocs/2017/tips-workarounds/run-web-app-in-cordova.md

Line 226, Column 85: [Suggestion: docs-link-absolute - See documentation] Absolute link 'https://docs.microsoft.com/visualstudio/cross-platform/tools-for-cordova/?view=toolsforcordova-2017#the-w3c-content-security-policy-csp&preserve-view=true' will be broken in isolated environments. Replace with a relative link.

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


New objectRef, resulted from final hypershift:release-4.10 vendoring

Signed-off-by: Joshua Packer<EMAIL_ADDRESS>CRD gets a new ObjectRef when doing final release vendoring from hypershift:release-4.10

Issue reference: https://github.com/stolostron/backlog/issues/21577

/cc @JakobGray


pyinfra: 2.7 -> 2.8

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/Fizzadar/pyinfra/releases.
meta.description for pyinfra is: Python-based infrastructure automation
meta.homepage for pyinfra is: https://pyinfra.com
meta.changelog for pyinfra is: https://github.com/Fizzadar/pyinfra/blob/v2.8/CHANGELOG.md
Updates performed

Version update

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.8 with grep in /nix/store/3v86krica1b8vi1aryv068xg9y1lrffw-python3.10-pyinfra-2.8
found 2.8 in filename of file in /nix/store/3v86krica1b8vi1aryv068xg9y1lrffw-python3.10-pyinfra-2.8

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

3 package rebuild(s)

First fifty rebuilds by attrpath
pyinfra
python310Packages.pyinfra
python311Packages.pyinfra

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/3v86krica1b8vi1aryv068xg9y1lrffw-python3.10-pyinfra-2.8 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A pyinfra https://github.com/r-ryantm/nixpkgs/archive/874de02a65c48158361aa6e8881010e073fbe5b9.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/874de02a65c48158361aa6e8881010e073fbe5b9#pyinfra

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/3v86krica1b8vi1aryv068xg9y1lrffw-python3.10-pyinfra-2.8
ls -la /nix/store/3v86krica1b8vi1aryv068xg9y1lrffw-python3.10-pyinfra-2.8/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

pyinfra (python310Packages.pyinfra)
python311Packages.pyinfra

Maintainer pings
cc @totoroot for testing.

Result of nixpkgs-review pr 260818 run on x86_64-linux 1

4 packages built:

pyinfra (python310Packages.pyinfra)
pyinfra.dist (python310Packages.pyinfra.dist)
python311Packages.pyinfra
python311Packages.pyinfra.dist


XLIFF tags should not be escaped on Android

#35 tried to address this but needed some additional work.

@scelis This can be closed.


Add test for deleted index entry

This adds a test for when an entry is deleted from the index. This is done on crates.io occasionally for things like copyright takedown requests.
This behavior was tripping a debug assert which this removes. I'm not entirely certain why the debug assert is there, but I think it is not correct, since this is obviously a scenario where there might be a cached file, but the index responds with NotFound.

r? @epage
(rust-highfive has picked a reviewer for you, use r? to override)

@bors r+

:pushpin: Commit 5e6da66c039bb47a18ec3286c121f34a61d7f1d0 has been approved by epage
It is now in the queue for this repository.

:hourglass: Testing commit 5e6da66c039bb47a18ec3286c121f34a61d7f1d0 with merge 6e9da768f5d46258fd932f12aa2f328f4f40b01a...


[get_df] Updating multi-statement logic

This PR fixes an issue we've been running into with multi-statements in Presto which is asynchronous. When using the cursor associated with a raw connection using multiple statements, i.e.,
cursor = engine.raw_connection().cursor()
cursor.execute(...)
cursor.execute(...)

for Presto it wouldn't poll to check that the first statement had finished before executing the second. It seems that some DB-API's have the nextset method (though this isn't universal) but reading through code snippets it seems the best way to ensure that multi-statements execute sequentially for all engine types is to simply call fetchall from the cursor which waits until the statement is done, i.e., here's the logic for Presto.
The other option is to call db_engine_spec.handle_cursor after every statement (which is what SQL Lab does) which polls when necessary, however this logic is very much configured for SQL Lab queries.
Note that when using the sqlalchemy.engine.base.Connection (without a cursor) the following would work (though I'm not sure why):
conn = engine.connect()
conn.execute(...)
conn.execute(...)

However this approach isn't via use the cursor to execute queries via db_engine_spec.execute.
to: @graceguo-supercat @michellethomas @mistercrunch @timifasubaa

Codecov Report

Merging #5517 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #5517      +/-   ##
==========================================
+ Coverage   63.28%   63.28%   +<.01%
==========================================
  Files         349      349
  Lines       22121    22123       +2
  Branches     2457     2457
==========================================
+ Hits        13999    14001       +2
  Misses       8108     8108
  Partials       14       14

Impacted Files
Coverage Δ

superset/models/core.py
87% <100%> (+0.04%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3b6cafc...d3a1de6. Read the comment docs.


create turbo-static for compile time graph analysis

Description

Testing Instructions

Closes TURBO-2877

Merge activity

Jun 4, 11:36 AM EDT: @arlyon merged this pull request with Graphite.


Add template inheritance spec

This adds a specification for hogan.js style template inheritance. As of time of writing, three mustache implementations are 100% compatible with this implementation:

hogan.js
mustache.php
mustache.java
GRMustache (thanks @groue!)

Here's how it works:
{{! header.mustache }}

  <title>{{$title}}Default title{{/title}}</title>

{{! base.mustache }}

  {{$header}}{{/header}}
  {{$content}}{{/content}}

{{! mypage.mustache }}
{{<base}}
  {{$header}}
    {{<header}}
      {{$title}}My page title{{/title}}
    {{/header}}
  {{/header}}

  {{$content}}

Hello world

  {{/content}}
{{/base}}

Rendering mypage.mustache would output:
<title>My page title</title>
Hello world

A full specification can be seen below.
At @Etsy, much like @Twitter (see #38), we often want to have one template where we maintain the "bones" of the page and each real page on the site merely replaces sections of that page with appropriate content. A simple example of this can be seen above, where a page can grab base, getting all of our analytics scripts and other markup that every page needs, while retaining the ability to swap in a completely different header. Alternatives, such as copying the bones to every top level template, or simulating this behavior with a multi-step mustache render on the server, are not ideal.
Etsy is in the process of rolling out the new version of mustache.php that supports template inheritance to our production cluster after testing this implementation extensively. Hogan.js and mustache.java are both being used in production at Twitter.
Many thanks to @dtb, @mdg, @bobthecow for their assistance. Special thanks to @spullara for quickly making mustache.java compatible with this spec.

I just added support for this in hxmustache. It passes all spec tests.

My Swift implementation, MuttonChop, also just implemented template inheritance (conforming to this spec). Maybe its time to push for Mustache v2 and make this official?

Wow, I really dislike this concept - why would you ever want to do this?  I mean, it's not only way cleaner but also makes way more sense to implement some sort of page-tree with nested View-objects based on request parameters and or config.  Seems like a bad solution to a non existing problem.

This is quite old, does it have any chance to become merged in the future? Or has spec development stopped?

Many implementations have it so it is defacto in the specification. I don't think they have updated the spec itself though in a very long time.

When a parameter block passed to a parent contains tags, should those tags be interpreted in the current context, or in the context of the block tag use-site within the parent? I looked for a mention of this in the specification, but found none. What do current implementations do?
Consider (in the syntax of spec tests):
data: { include-site: { place: "include site"}, use-site: { place: "use site"} }
template: |
  {{#include-site}}
    {{<include}}
      {{$var}}evaluated at {{place}}{{/var}}
    {{/include}}
  {{/include-site}
partials:
  include: |
    {{#use-site}}
      {{$var}}default{{/var}}
    {{/use-site}}

Should we expect evaluated at include site or evaluated at use site?

What do current implementations do?

I found a first answer in the mustache.php testsuite: for mustache.php, parameters should be evaluated lazily, in the context of the parent template.
    public function testInheritanceWithLazyEvaluation()
    {
        $partials = array(
            'parent' => '{{#items}}{{$value}}ignored{{/value}}{{/items}}',
        );

        $this->mustache->setPartials($partials);

        $tpl = $this->mustache->loadTemplate(
            '{{<parent}}{{$value}}<{{ . }}>{{/value}}{{/parent}}'
        );

        $data = array('items' => array(1, 2, 3));

        $this->assertEquals('<1><2><3>', $tpl->render($data));
    }

I wish this was made explicit in the specification -- assuming that other implementations made consistent choices.

Here is a more up-to-date list of Mustache implementations that support this extension:

hogan.js
mustache.php
mustache.java
GRMustache (Obj-C) and GRMustache.swift (Swift)
Text::Caml (Perl)
hxmustache (Haxe)
MuttonChop (Swift)

Since my review and previous comment, I have radically changed my opinion about jargon consistency. I now believe that "parent" and "inheritance" are the needlessly confusing words that should be avoided. The thing we're talking about here is just a parametric partial. Thanks to @gasche for making me realize this.

@gasche

Another remark: upon implementing the feature I found that it shows the limits of the current way whitespace is handled in Mustache (the notion of standalone tags, and the indentation of partials). Ideally the user would want:

{{$foo}}...{{/foo}} to count as a single "standalone tag" if it is surrounded by whitespace

Could you elaborate on this? The way I've understood standalone tags so far, it just means that a single tag that is all alone on a line shouldn't leave a blank line in the output, i.e.,
{{!comment}}
foo
{{#section}}
    content
{{/section}}

should produce
foo
    content

(assuming that section is truthy) rather than

foo

    content

. Given this interpretation, I have no imagination of what it would even mean for a parameter block as a whole to count as a standalone tag. Consider the following example:
foo
    {{$parameter}}content{{/parameter}}
bar

What do you believe should happen? Surely not that the entire line containing content should be removed from the output?

the indentation of the parameter block to be substracted at rendering time, instead of being added like the indentation of a partial (with or without parameters)
the way we count indentation to be slightly different when {{$foo}} is on its own line and the comment following is indented.

If you mean that
{{!partial.mustache}}
foo
    bar
    {{$parameter1}}baz{{/parameter1}}
    {{$parameter2}}foobar{{/parameter2}}

{{!template.mustache}}
foobaz
    barbaz
    {{<partial}}
        foofoo
            {{$parameter1}}barbar{{/parameter1}}
      {{$parameter2}}
          bazbaz
      {{/parameter2}}
    {{/partial}}

should output
foobaz
    barbaz
    foo
        bar
        barbar
            bazbaz

then I think I agree with you.

Long story short, I went down a rabbit hole of finding better specifications for whitespace handling in Mustache, and they tended to be more complex, more natural for the user, and incompatible with existing implementations / the spec. in corner cases. I gave up and went back to something mostly-standard (my implementation does substract the indentation of the parameter block, iirc.), but it remains a (minor) sticking point with the feature and its specification.

Does this really need to be fully specified before merging, though? I think the existing spec is worthwhile as-is, even if it leaves some freedom to implementers with regard to whitespace handling.

Regarding the terminology: I would be a bit careful here, to accommodate several viewpoints. I think that to some people thinking of those new partials as "functions with parameters" will be most helpful, but some other would be familiar with the "object-oriented inheritance" view. We could have a description that mentions both views, and I think we could manage to consistently/clearly use two terminologies.
Note that the two notions are not completely equivalent in what semantics they suggest: in case of shadowing (two nested partial-with-parameters define parameters of the same name), the function view would suggest that the innermost definition (the callee) should override the outermost one, while the inheritance view suggests that the outermost definition (the parent class) should override the innermost one; and it is that latter view that was chosen (possibly without realizing the choice) in the original implementation of partial-with-parameters, and followed by further implementations.

Regarding whitespace: I think that, ideally
  {{<foo}}{{$param}}bar{{/param}}{{/foo}}

and
  {{<foo}}
    {{$param}}bar{{/param}}
  {{/foo}}

should result in the same printing. However, with the current notion of "standalone" tag, then {{<foo}} is standalone in the second example but not in the first one. This suggests that the second example should not include the newlines following {{>foo}} or {{/foo}} in the second example, but according to our current specification it probably should in the first example.
I think that a better concept of whitespace handling should be about whether templating constructs (dynamically) emit "visible" content on the current line, or they don't. If a "standalone" construct (not {{foo}}, which counts as visible even when it emits whitespace only) is on a line without any visible content, then the whitespace before it is treated as indentation and the whitespace after it is elided from the output. With this definition, the use of parameter blocks as definition site is clearly not visible, and so both examples should elide the newline. But (1) this is a significant change compared to the current definition and in some cases it changes behavior (for example it makes {{#foo}}{{#bar}} act as a standalone sequence of tokens, which is nice but incompatible), and (2) I don't know how difficult it would be to implement for other Mustache implementations (I implemented this in a prototype as an experiment).

Does this really need to be fully specified before merging, though? I think the existing spec is worthwhile as-is, even if it leaves some freedom to implementers with regard to whitespace handling.

No, I think that this does not need to be fully specified before merging, and adding that requirement could be fatal to this PR who already had a long and unsatisfying life. My personal opinion is that this specification should be merged (marked optional) in the specification, to accept the current status that it is consensual among implementations, and largely implemented. It is a de-facto (optional) standard, and everyone's life would be easier if it was recognized as such.
My current understanding is that the notion of "standalone token" as currently somewhat-specified (you have to read a lot between the lines already) is not such a good fit for "we want the nice whitespace behavior a human would expect"; it is doing okay for existing constructs (although arguably {{#foo}}{{#bar}} should already be treated as standalone, don't we think?), and slightly worse for this new construct which introduces these parameter blocks that are sometimes in invisible/non-rendered position. This is life, we cannot have all things perfect, and I think it should be discussed separately.

@gasche Thank you for taking the effort to have this interesting discussion with me.
Regarding terminology, point taken. I should mention that my opinion is not so strong that I believe it should block merging. I would like to see it be more consistent, but since the terminology is not going to change the syntactical or semantical content of the specs, we are going to get the same result in the end and I'll have the same work to do in my own implementation.
For academic interest, I'll mention that parametric partials behave exactly like functions with default arguments. Indeed, nested function calls with defaults along the chain will give the same behavior where the outermost caller wins. On the other hand, a template that calls multiple (parametric) partials behaves more like composition than like multiple inheritance, when looking from an OOP perspective. Partials might be deeply nested within sections from the "inheriting" template, giving it complete control to wrap and organize the partials however the author wants. In OOP, inheritance generally isn't that flexible but composition is.
Regarding whitespace, I think I actually prefer the whitespace handling as it is currently specified, although I agree that {{#section}}{{#nested}} should ideally be recognized as two standalone tags. I would agree to moving that discussion to a separate issue.
@Danappelxx @spullara I could prepare a continuation PR that renames the spec to start with a ~ (to mark it as optional) and that makes the terminology more consistent (without necessarily enforcing one particular jargon). Would you welcome that?

I could prepare a continuation PR that renames the spec to start with a ~ (to mark it as optional) and that makes the terminology more consistent (without necessarily enforcing one particular jargon).

Personally I think this would be a good idea. Thanks for your active contributions to the mustache spec!

Sigh.. I  was planning on letting this one go, but I....simply can't wrap my head around it. Why...?
I mean, besides the fact that it's not really needed? ...I mean - any solution worth a damn either does view and/or layout composition; translations and such to the data before it leaves the backend...
or
even better  - have the vue / web-component's initi() or onload() funktion do final checks and possible formatting calls for the raw api data right before dom-rendering  of the widget.
The projects freaking tag-line even reads: "Mustache is a "logic-less" templating language."
So, eh  whats up?  Did you end up here  av misstake while looking for any of these perhaps, sounds more like your thing:
Smarty
Twig,
Razor
Platesphp,
Blade,
php-TAL
I mean.. shit... should just have forked & unfollowed.. Gn.. 😓

Closing in favor of #125, which looks like it will be merged soon - further comments should be added there. Thank you to everyone for facilitating a healthy discussion.


adding a project game of life

hi ,  wanted to add a project (game of life) made in javascript ,html.
this contribution is toward gssoc21.

please this this to me .
@991rajat @urvashi-code1255


Move nixos.org to S3

This will allow us to get rid of the EC2 web server.

This can be closed since we moved to netlify.


Improve pipeline docs (w/ example code) - closes #134

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


virtctl vnc vm fails with 401 permission denied

Hello,
Trying out the demo, virtctl vnc vmname fails with a Error encountered: Can't connect to websocket (401): request is not authenticated.
This error ultimatively comes from the extensions apiserver and is logged as level=info timestamp=2018-06-09T11:47:20.345809Z pos=filter.go:46 component=virt-api remoteAddress=<IP_ADDRESS> username=- method=GET url=/apis/subresources.kubevirt.io/v1alpha1/namespaces/default/virtualmachines/test-ubuntu-vm/vnc proto=HTTP/1.1 statusCode=401
I am not entirely sure how to proceed debugging from there, any hints?

@davidvossel any idea?

@alvaroaleman did you follow the instructions here at the RBAC documentation?
It looks like you did not give your user permissions to use the resource.
You can either add the annotations mentioned there to our roles so that every user gets access in his namespaces, or can create your own binding which suite your own needs.

@rmohr it's authentication not authorization.
@alvaroaleman that error indicates that client certificates are not being sent. our api server requires TLS with client certs.
https://github.com/kubevirt/user-guide/pull/83

@alvaroaleman that error indicates that client certificates are not being sent. our api server requires TLS with client certs.

That would be new to me. It should as well work with e.g. service account tokens.

@rmohr This is a server side setting. this client certs between k8s api server and kubevirt apiserver.
users authenticate with k8s api server, then k8s apiserver presents its peer cert during the proxy call to our kubevirt apiserver.
Without the k8s peer cert, kubevirt's apiserver can't trust the connection.

@rmohr This is a server side setting. this client certs between k8s api server and kubevirt apiserver.

Then we may need to change the working a little bit. From the user-guide update it was not clear to me  that this is not related to the client-authentication. It left the impression to me that I as a user need to authenticate via a certificate.

So the issue is that the kubevirt extension apiserver does not trust the primary api servers cert?

So the issue is that the kubevirt extension apiserver does not trust the primary api servers cert?

specifically, the issue is that the k8s apiserver is not providing the kubevirt apiserver with a peer certificate.
This is the check that is failing on our side to cause the authentication error.  The request is coming from the k8s apiserver. The k8s apiserver is supposed to include a peer cert verifying that the request is originating from a trusted endpoint.  Without that cert, our endpoint can't verify that the request is trusted.
        // Peer cert is required for authentication.
        // If the peer's cert is provided, we are guaranteed
        // it has been validated against our client CA pool
        if req.Request == nil || req.Request.TLS == nil || len(req.Request.TLS.PeerCertificates) == 0 {
                return false
        }

Ah, thanks a lot! So for the record, the required flags on the kube-apiserver are:
--proxy-client-cert-file=<path to aggregator proxy cert>
--proxy-client-key-file=<path to aggregator proxy key>

Where <path to aggregator proxy cert> can be just the tls serving cert

@alvaroaleman good to hear it's fixed - just to get a better picture: What kube distro and os where you using?

Kubermatic which is a commercial cluster manager offering by my employer that does Kubernetes in Kubernetes

I faced same issue.
I have --proxy-client-cert-file, --proxy-client-key-file`` and ``extension-apiserver-authentication configmap  in kube-system namespace,
but i'm getting
{"component":"virt-api","contentLength":28,"level":"info","method":"GET","pos":"filter.go:46","proto":"HTTP/1.1","remoteAddress":"<IP_ADDRESS>","statusCode":401,"timestamp":"2019-04-12T17:01:32.166110Z","url":"/apis/subresources.kubevirt.io/v1alpha3/namespaces/kubevirt-vm/virtualmachineinstances/123/console","username":"-"}
when try
virtctl -n kubevirt-vm console testvmi-nocloud
Any advice, pls.

Hi @pastukhov could you run virtcl version and post the result here? Are you using an on-premis cluster, or did you set it up yourself?

Client Version: version.Info{GitVersion:"v0.16.0", GitCommit:"06d91198bededc7a9353ac774221c83580ee3373", GitTreeState:"clean", BuildDate:"2019-04-05T15:24:49Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{GitVersion:"v0.16.0-17+052a787abed701", GitCommit:"052a787abed701635ab6b3b54a54532e7ecb4bda", GitTreeState:"clean", BuildDate:"2019-04-11T11:58:44Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}

I'm using kubernetes cluster on bare metal bootstrapped with kubespray:
pastukhov@pastukhov-H110M-HD2:~$ kubectl version
Client Version: version.Info{Major:"", Minor:"", GitVersion:"v0.0.0-master+$Format:%h$", GitCommit:"9e4010d067ee4d799330980e62830b06a07296bd", GitTreeState:"clean", BuildDate:"2018-04-26T04:13:21Z", GoVersion:"go1.10.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

I have many other api extensions that working well

@pastukhov this issue might be related: https://github.com/kubernetes-sigs/kubespray/issues/2481
Can you please check if in the extension-apiserver-authentication configmap, the values of client-ca-file and requestheader-client-ca-file are different? And it seems the former has to be signed by the latter.


Cannot log in - credentials invalid / user not found

Hey folks,
I have just tried to run freescout using the example docker-compose.yml file (without proxy). I have adjusted all variables that seemed relevant to me, such as the domain name, admin email and admin password.
When I start the compose it all looks fine.
I then access the website via the domain which works like a charm, try to log in with the credentials specified in the ADMIN_MAIL and ADMIN_PASS environment variables but freescout tells me "These credentials do not match our records". When I hit "Forgot your password?" and enter my email, it tells me no user with that address has been found.
Am I doing something obviously wrong that I cannot see?
My docker-compose.yml looks like this:
version: '2'

services:
  freescout-app:
    image: tiredofit/freescout
    container_name: freescout-app
    ports:
    - 80:80
    links:
    - freescout-db
    volumes:
    ### If you want to perform customizations to the source and have access to it, then uncomment this line - This includes modules
    #- ./data:/www/html
    ### Or, if you just want to use Stock Freescout and hold onto persistent files like cache and session use this, one or the other.
    - ./data:/data
    ### If you want to just keep the original source and add additional modules uncomment this line
    - ./modules:/www/html/Modules
    - ./logs/:/www/logs
    environment:
    - CONTAINER_NAME=freescout-app
    - DB_HOST=freescout-db
    - DB_NAME=freescout
    - DB_USER=freescout
    - DB_PASS=freescout
    - SITE_URL=http://myfreescoutserver.net/
    -<EMAIL_ADDRESS>    - ADMIN_PASS=apassword
    - ENABLE_SSL_PROXY=FALSE
    - DISPLAY_ERRORS=TRUE
    - TIMEZONE=Europe/Berlin
    restart: always
  freescout-db:
    image: tiredofit/mariadb
    container_name: freescout-db
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - ROOT_PASS=password
      - DB_NAME=freescout
      - DB_USER=freescout
      - DB_PASS=freescout
      - CONTAINER_NAME=freescout-db
    restart: always
  freescout-db-backup:
    container_name: freescout-db-backup
    image: tiredofit/db-backup
    links:
     - freescout-db
    volumes:
      - ./dbbackup:/backup
    environment:
      - CONTAINER_NAME=freescout-db-backup
      - DB_HOST=freescout-db
      - DB_TYPE=mariadb
      - DB_NAME=freescout
      - DB_USER=freescout
      - DB_PASS=freescout
      - DB_DUMP_FREQ=1440
      - DB_DUMP_BEGIN=0000
      - DB_CLEANUP_TIME=8640
      - COMPRESSION=BZ
      - MD5=TRUE
    restart: always

It looks like you are certainly doing all the right things.
Do you see a user entry if you performed a SQL query in the database?
Try this:
docker exec -it freescout-db bash
mysql -u$DB_USER -p$DB_PASS $DB_NAME
select * from users;

You should see your username and password that was created.
If not, I'll ask for a fresh install with full logs using an environment variable of CONTAINER_LOG_LEVEL=DEBUG and ask a few details like your environment running.

Hi.
i had the same exact problem with a new installation:
server: ubuntu 22.04 LTS
php: 8.1.2
for instalation i had used ubuntu script:
https://raw.githubusercontent.com/freescout-helpdesk/scripts/master/install/ubuntu.sh
Everything look ok. but after initial setup, looks like no user was realy created during GUI setup.

Hi. i had the same exact problem with a new installation: server: ubuntu 22.04 LTS php: 8.1.2 for instalation i had used ubuntu script: https://raw.githubusercontent.com/freescout-helpdesk/scripts/master/install/ubuntu.sh
Everything look ok. but after initial setup, looks like no user was realy created during GUI setup.

Please use https://github.com/freescout-helpdesk/freescout/issues for issue reporting for anything related to the install scripts. This is purely for the Docker image.

Has anyone found a solution to this?  I am having the same exact issue

I have same issue :/

I was setting up freescout on a kubernetes cluster and had the same issue because I was messing around with a proper database user and had connection issues to my database first.
After fixing that the script was running successfully but there was no user so I just dropped the database again and killed/restarted the according pod and now there has been a user created. I think the issue is related to having some troubles on setup and setup scripts that will not run completely.


"Touching sprite" block behavior with clones?

In Scratch, the "touching (sprite)" block will return true if the current sprite is touching the other sprite or any of its clones. In scratch-js, it only returns true if it's touching the original sprite.
I think a good solution would be to retain the current behavior if you pass a sprite instance to touching(), but to use Scratch's behavior if you pass the sprite's base class. I'd like to get your opinion on it.

This makes sense, although importing the sprite class makes writing the sb-edit export code trickier. A few other options:

Allow passing an array of instances. Could also give sprites a .andClones() method so you can do if (this.touching(this.sprites.sprite2.andClones())
Add a second boolean parameter to the touching function that determines whether or not to include clones. If set to true by default, then this.touching(this.sprites.sprite2) would check sprite2 and all clones, while this.touching(this.sprites.sprite2, false) would check only the original.
Don't allow checking only the parent, because it isn't possible in Scratch anyway.

I'm pretty strongly in favor of the first idea there! It lets you easily access a sprite and its clones together, which, thanks to treating sprites as first-class objects, is good for more complex programming concepts not easily possible in Scratch.
In order to match Scratch behavior without introducing more complex syntax, we would probably want to make andClones return the sprite as well as any of the clones made of it, and any clones of those clones themselves. (But, if you do (a clone).andClones(), not clones of the parent/original sprite, IMO, since if you wanted to do that you'd just access the original object directly (this.sprites.whatever).)

Actually, clones of clones aren't a thing! In order to match Scratch behavior, when you clone a clone, it actually clones the original sprite. In other words, the .clones array will always be empty in every instance except the original.

In order to match Scratch behavior, when you clone a clone, it actually clones the original sprite.

Aargh, that's confusing! If I understand correctly, myClone.clone() secretly just does mySprite.clone(); surely you could always compile the create clone of sprite v block to sourceSprite.clone() but support myClone.clone() anyway?

surely you could always compile the create clone of sprite v block to sourceSprite.clone()

That's... super reasonable, actually.

Allow passing an array of instances. Could also give sprites a .andClones() method so you can do if (this.touching(this.sprites.sprite2.andClones())

.andClones() now exists (see #32), so we can move ahead with this.


Architecture improvements and support for fixed-size BitVectors

Codecov Report
Patch coverage: 88.07% and project coverage change: -1.62% :warning:

Comparison is base (4a34c19) 87.98% compared to head (fc7c89b) 86.36%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main       #8      +/-   ##
==========================================
- Coverage   87.98%   86.36%   -1.62%
==========================================
  Files           8       11       +3
  Lines         541      741     +200
==========================================
+ Hits          476      640     +164
- Misses         65      101      +36

Files Changed
Coverage Δ

src/BooleanSatisfiability.jl
100.00% <ø> (ø)

src/call_solver.jl
82.14% <69.23%> (-2.48%)
:arrow_down:

src/BitVectorExpr.jl
81.32% <81.32%> (ø)

src/smt_macros.jl
83.33% <83.33%> (ø)

src/utilities.jl
88.78% <89.65%> (-0.38%)
:arrow_down:

src/multiple_dispatch_ops.jl
90.00% <90.00%> (ø)

src/smt_representation.jl
85.47% <91.35%> (+5.47%)
:arrow_up:

src/BooleanOperations.jl
84.82% <95.74%> (-1.23%)
:arrow_down:

src/IntExpr.jl
97.64% <96.72%> (-0.18%)
:arrow_down:

src/BoolExpr.jl
78.57% <100.00%> (-3.66%)
:arrow_down:

... and 1 more

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


"after each" hook for "test" error

Current behavior
Sometimes, a test will fail with an error saying "after each" hook for "TEST_NAME"
detailed error:
  1 failing
  1) Coupons:
       "after each" hook for "User with coupons":
     Error: Expected to find an error message (this might be a bug, please report at https://github.com/badeball/cypress-cucumber-preprocessor)
Because this error occurred during a `after each` hook we are skipping all of the remaining tests.
      at fail (http://localhost:3000/__cypress/tests?p=cypress/integration/my-account/coupons.feature:2737:11)
      at assert (http://localhost:3000/__cypress/tests?p=cypress/integration/my-account/coupons.feature:2744:5)
      at assertAndReturn (http://localhost:3000/__cypress/tests?p=cypress/integration/my-account/coupons.feature:2748:5)
      at Context.eval (http://localhost:3000/__cypress/tests?p=cypress/integration/my-account/coupons.feature:3386:60)

However, in the given error message it marks the test "User with coupon", but it has no "after" hook setup:
  @mock
  @user-admin
  Scenario: User with coupons
    Given I navigate to the url "/my-account/parrainage"
    Then I should see 2 'Coupon code' elements
    Then I click the 'Share coupon button' element
    Then The clipboard value should be 'xxxxxx'

The two tags mock and user-admin setup HTTP mocking using Before
Note that this error does not occur every time I run the tests, it's quite random and I can't find a pattern to reproduce it at 100%.
Desired behavior
I should not have this error as I do not have any after hook setup, might be related directly to the package.

Versions

Cypress version: 9.5.4
Preprocessor version: 10.0.2
Node version: 14.19.3

I understand that you only experience this sometimes, but with the provided information you're enabling me to experience it no times. You have to put together something if you want any help. Until then I can't / won't consider the problem.

After upgrading cypress-cucumber-preprocessor to this v12, I'm also seeing this error, which seems very related to usage of cy.intercept(). Additionally, seeing this error consistently:
 Error: An error was thrown while processing a network event: onResponse cannot be called twice
Originating from here.
I wasn't able to isolate the issue further yet.


no binary for windows

need to compile for windows and connect it in the gdnativelibrary resource

I've run into some issues. The turn_based.tscn example project does not work. The get_shortest_path_from_point always returns empty array, for some reason. I'm trying to figure out what the issue is.

Fixed it. There was a typo in the method, that caused it to break out of loop instantly. Added the windows DLL. Please re-compile the linux version


[CoPol] Rename leader quality

[ch12328]

looks like there are some others files where we can find "Chef de file"
in : templates/admin/election/city_card/edit.html.twig and templates/assessor_attribution/index.html.twig
Should these be updated too or not ?

@kevin-verschaeve these files are not related to CoPol.


New releas failing with NetHomePlus

I just updated to homebridge-midea-platform v0.4.3 and the old config is no longer valid. I tried to do a discovery but this is what's being returned and none of my devices are added.
Running HB 1.7.0
Node.js 18.18.2
[11/8/2023, 5:05:37 PM] [Homebridge UI] [homebridge-midea-platform] /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159
throw new Error([${device.name}] Authentication failed, token/key undefined.);
^
Error: [net_ac_BD04] Authentication failed, token/key undefined.
at UiServer.getNewCredentials (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Discover. (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:206:9)

You should delete the midea part of your config files. Currently there is no easier way to migrate to the new scheme, I'm sorry. The plugin is under heavy development, it's not possible to be backwards compatible at the moment.

I did remove try to remove my old config and reboot but I get the same error. I understand that it's in development that why I reported it :)

You wrote that the old config is not valid, which is true. Make sure you delete the midea part of your config, and also make sure there is an entry in the config file, where the "platform" field is equal to "midea-platform", so like this:
{
   {
      "platform": "midea-platform"
   }
}

After this, use the GUI to setup your devices.

I added this and it helped but I still have the same issue. You can see it is discovering my decices now.
This is the correct format I think:
{
"platform": "midea-platform"
},
[11/8/2023, 5:20:31 PM] [Homebridge UI] [homebridge-midea-platform] Custom UI created.
[11/8/2023, 5:20:31 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /getDefaults
[11/8/2023, 5:20:31 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /mergeToDefault
[11/8/2023, 5:20:51 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /login
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /discover
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Start device discovery...
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":141837000183162,"model":"00000Q13","sn":"000000P0000000Q13C20939594E80000","name":"net_ac_94E8","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Retrieve credentials.
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":30786325856294,"model":"00000Q13","sn":"000000P0000000Q130B23747BD040000","name":"net_ac_BD04","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Retrieve credentials.
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":30786325856292,"model":"00000Q13","sn":"000000P0000000Q130B23748ECA40000","name":"net_ac_ECA4","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_ECA4] Retrieve credentials.
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":30786325856280,"model":"00000Q13","sn":"000000P0000000Q130B237475B060000","name":"net_ac_5B06","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5B06] Retrieve credentials.
[11/8/2023, 5:20:53 PM] [Homebridge UI] [homebridge-midea-platform] /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159
throw new Error([${device.name}] Authentication failed, token/key undefined.);
^
Error: [net_ac_94E8] Authentication failed, token/key undefined.
at UiServer.getNewCredentials (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Discover. (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:206:9)
[11/8/2023, 5:20:53 PM] [Homebridge UI] [homebridge-midea-platform] Node.js v18.18.2
[11/8/2023, 5:20:53 PM] [Homebridge UI] [homebridge-midea-platform] Child process ended

I added this and it helped but I still have the same issue. You can see it is discovering my decices now.
This is the correct format I think:
{
"platform": "midea-platform"
},
[11/8/2023, 5:20:31 PM] [Homebridge UI] [homebridge-midea-platform] Custom UI created.
[11/8/2023, 5:20:31 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /getDefaults
[11/8/2023, 5:20:31 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /mergeToDefault
[11/8/2023, 5:20:51 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /login
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /discover
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Start device discovery...
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.x,"port":6444,"id":141837002,"model":"00000Q13","sn":"000000P0039594E80000","name":"net_ac_94E8","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Retrieve credentials.
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.x","port":6444,"id":3078632,"model":"00000Q13","sn":"000000P00030B23747BD040000","name":"net_ac_BD04","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Retrieve credentials.
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.x","port":6444,"id":3078,"model":"00000Q13","sn":"000000P00B23748ECA40000","name":"net_ac_ECA4","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_ECA4] Retrieve credentials.
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.x","port":6444,"id":3078632,"model":"00000Q13","sn":"000000P07475B060000","name":"net_ac_5B06","type":172,"version":3}
[11/8/2023, 5:20:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5B06] Retrieve credentials.
[11/8/2023, 5:20:53 PM] [Homebridge UI] [homebridge-midea-platform] /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159
throw new Error([${device.name}] Authentication failed, token/key undefined.);
^
Error: [net_ac_94E8] Authentication failed, token/key undefined.
at UiServer.getNewCredentials (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Discover. (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:206:9)
[11/8/2023, 5:20:53 PM] [Homebridge UI] [homebridge-midea-platform] Node.js v18.18.2
[11/8/2023, 5:20:53 PM] [Homebridge UI] [homebridge-midea-platform] Child process ended

Is the device added into your selected application?

no on a fresh rebbot I do not see the devices. if I try to add thgem via the gui all I get is a spinning gear.
I have also tried clearing the device cache just to make sure

I mean, there is a field on the top of the GUI, where you can specify in which application you registered the device. Make sure the device is added to the application you specified. I can't think of any other reason why the token/key couldn't be retrieved.

Not sure, this is only a issue since I updated...
Sounds like I should move to MSmartHome where you guys are developing and testing more

Both application should without an issue. As you can see in the log, for your other devices the credentials were retrieved, only one device failed. That's why I think that one device is not added to NetHome Plus.

Wait, no, the error is for the first device. Hm, interesting.

All my units are listed and active in NetHome Plus

Not sure, this is only a issue since I updated... Sounds like I should move to MSmartHome where you guys are developing and testing more

FYI that I always login with NetHome Plus and have not had any problems, I don't think this has anything to do with that.

@boboxx I'd like you to turn on uiDebug.  In the settings window open up "optional settings" and select "Enable debug for custom UI", save the settings then reopen the settings window... it is not necessary to restart Homebridge or the plugin bridge.
Now run device discovery again and we should get a little more detail on what is going on.
Thanks.

This error is occurring during the process of retrieving token/key credentials.  A couple of thoughts..

You have multiple devices, so are we failing on only one and succeeding on the others?  That will be helpful to know.  Unfortunately I just noticed that this debug line does not identify the devices that we successfully get token/key for.  We @kovapatrik  should add that.
If error occurs on only one device, then we should be more resilient in error handling and not abort whole discovery process... not sure if that is happening now or not, but if 3 out of 4 succeed then we should present 3 of them in the results.

Just some thoughts !!

Here is the logs with UI Debug on:
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.8","port":6444,"id":141837000183162,"model":"00000Q13","sn":"000000P0000000Q13C20939594E80000","name":"net_ac_94E8","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_94E8 | 10.x.x.8}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:48 PM] Homebridge v1.7.0 (HAP v0.11.1) (Homebridge 6B27) is running on port 51320.
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.6","port":6444,"id":30786325856280,"model":"00000Q13","sn":"000000P0000000Q130B237475B060000","name":"net_ac_5B06","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_5B06 | 10.x.x.6}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.7","port":6444,"id":30786325856292,"model":"00000Q13","sn":"000000P0000000Q130B23748ECA40000","name":"net_ac_ECA4","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_ECA4 | 10.x.x.7}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:48 PM] [TplinkSmarthome] Device First Online: [Coffee] plug [8006145A940BAA109E66800705566CAB1B207D7C] 10.x.x.51 9999
[11/8/2023, 8:53:48 PM] [TplinkSmarthome] Adding: [Coffee] plug [8006145A940BAA109E66800705566CAB1B207D7C]
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.5","port":6444,"id":30786325856294,"model":"00000Q13","sn":"000000P0000000Q130B23747BD040000","name":"net_ac_BD04","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_BD04 | 10.x.x.5}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:56 PM] [midea-platform] All configured devices added to Homebridge
[11/8/2023, 8:54:20 PM] [Homebridge UI] [homebridge-midea-platform] Custom UI created.
[11/8/2023, 8:54:20 PM] [Homebridge UI] [homebridge-midea-platform] ENV:
{
"USER": "homebridge",
"UIX_BASE_PATH_OVERRIDE": "/opt/homebridge/lib/node_modules/homebridge-config-ui-x",
"HOME": "/home/homebridge",
"OLDPWD": "/var/lib/homebridge",
"npm_config_auto_install_peers": "true",
"UIX_USE_PNPM": "0",
"UIX_CUSTOM_PLUGIN_PATH": "/var/lib/homebridge/node_modules",
"npm_config_package_lock": "false",
"npm_config_audit": "false",
"LOGNAME": "homebridge",
"JOURNAL_STREAM": "8:145275722",
"npm_config_prefix": "/opt/homebridge",
"npm_config_global_style": "true",
"HOMEBRIDGE_APT_PACKAGE": "1",
"PATH": "/opt/homebridge/bin:/var/lib/homebridge/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"INVOCATION_ID": "c598844b0394439e81cec21658cb9bac",
"LANG": "C",
"npm_config_fund": "false",
"npm_config_loglevel": "error",
"npm_config_update_notifier": "false",
"PWD": "/var/lib/homebridge",
"UIX_USE_PLUGIN_BUNDLES": "1",
"UIX_STRICT_PLUGIN_RESOLUTION": "1",
"UIX_STORAGE_PATH": "/var/lib/homebridge",
"UIX_CONFIG_PATH": "/var/lib/homebridge/config.json",
"UIX_BASE_PATH": "/opt/homebridge/lib/node_modules/homebridge-config-ui-x",
"UIX_SERVICE_MODE": "1",
"UIX_INSECURE_MODE": "1",
"UIX_DEBUG_LOGGING": "0",
"UIX_PLUGIN_NAME": "Config",
"HOMEBRIDGE_STORAGE_PATH": "/var/lib/homebridge",
"HOMEBRIDGE_CONFIG_PATH": "/var/lib/homebridge/config.json",
"HOMEBRIDGE_UI_VERSION": "4.52.1"
}
[11/8/2023, 8:54:21 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /getDefaults
[11/8/2023, 8:54:21 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /mergeToDefault
[11/8/2023, 8:54:21 PM] [Homebridge UI] [homebridge-midea-platform] Merged config: {
"uiDebug": true,
"platform": "midea-platform",
"refreshInterval": 30,
"heartbeatInterval": 10,
"verbose": false,
"logRecoverableErrors": true,
"devices": []
}
[11/8/2023, 8:54:51 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /login
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /discover
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Start device discovery...
Sending discovery message to 10.x.x.255, try 1...
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.5","port":6444,"id":3078,"model":"00000Q13","sn":"000000P0000000Q13","name":"net_ac_BD04","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.8","port":6444,"id":14183,"model":"00000Q13","sn":"000000P0000000Q0","name":"net_ac_94E8","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.7","port":6444,"id":30786,"model":"00000Q13","sn":"000000P0000000Q130","name":"net_ac_ECA4","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_ECA4] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.6","port":6444,"id":307863,"model":"00000Q13","sn":"000000P0000000Q","name":"net_ac_5B06","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5B06] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY 10.x.x.8:6444 - Local (10.x.x.2:59334)
at internalConnect (node:net:1100:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
at node:net:1306:9
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.8:6444 - Local (10.x.x.2:59334)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.8:6444 - Local (10.x.x.2:59334)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket closed with error
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY 10.x.x.7:6444 - Local (10.x.x.2:34562)
at internalConnect (node:net:1100:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
at node:net:1306:9
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5B06] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.7:6444 - Local (10.x.x.2:34562)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_ECA4] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.7:6444 - Local (10.x.x.2:34562)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket closed with error
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY 10.x.x.5:6444 - Local (10.x.x.2:40316)
at internalConnect (node:net:1100:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
at node:net:1306:9
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Getting token and key with little-endian is not successful.
Error: connect EALREADY 10.x.x.5:6444 - Local (10.x.x.2:40316)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Getting token and key with little-endian is not successful.
Error: connect EALREADY 10.x.x.5:6444 - Local (10.x.x.2:40316)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159
throw new Error([${device.name}] Authentication failed, token/key undefined.);
^
Error: [net_ac_94E8] Authentication failed, token/key undefined.
at UiServer.getNewCredentials (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Discover. (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:206:9)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Node.js v18.18.2
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Child process ended

Here is the logs with the UI Degug on:
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.8","port":6444,"id":1418370,"model":"00000Q13","sn":"000000P0000000Q13","name":"net_ac_94E8","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_94E8 | 10.x.x.8}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:48 PM] Homebridge v1.7.0 (HAP v0.11.1) (Homebridge 6B27) is running on port 51320.
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.6","port":6444,"id":30786325,"model":"00000Q13","sn":"000000P0000000Q130B","name":"net_ac_5B06","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_5B06 | 10.x.x.6}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.7","port":6444,"id":3078632,"model":"00000Q13","sn":"000000P0000000Q130","name":"net_ac_ECA4","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_ECA4 | 10.x.x.7}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:48 PM] [midea-platform] Discovered device: {"ip":"10.x.x.5","port":6444,"id":3078632585,"model":"00000Q13","sn":"000000P0000000Q130","name":"net_ac_BD04","type":172,"version":3}
[11/8/2023, 8:53:48 PM] [midea-platform] [net_ac_BD04 | 10.x.x.5}] New device discovered, you must add it to the config.json settings.
[11/8/2023, 8:53:56 PM] [midea-platform] All configured devices added to Homebridge
[11/8/2023, 8:54:20 PM] [Homebridge UI] [homebridge-midea-platform] Custom UI created.
[11/8/2023, 8:54:20 PM] [Homebridge UI] [homebridge-midea-platform] ENV:
{
"USER": "homebridge",
"UIX_BASE_PATH_OVERRIDE": "/opt/homebridge/lib/node_modules/homebridge-config-ui-x",
"HOME": "/home/homebridge",
"OLDPWD": "/var/lib/homebridge",
"npm_config_auto_install_peers": "true",
"UIX_USE_PNPM": "0",
"UIX_CUSTOM_PLUGIN_PATH": "/var/lib/homebridge/node_modules",
"npm_config_package_lock": "false",
"npm_config_audit": "false",
"LOGNAME": "homebridge",
"JOURNAL_STREAM": "8:145275722",
"npm_config_prefix": "/opt/homebridge",
"npm_config_global_style": "true",
"HOMEBRIDGE_APT_PACKAGE": "1",
"PATH": "/opt/homebridge/bin:/var/lib/homebridge/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"INVOCATION_ID": "c598844b039443",
"LANG": "C",
"npm_config_fund": "false",
"npm_config_loglevel": "error",
"npm_config_update_notifier": "false",
"PWD": "/var/lib/homebridge",
"UIX_USE_PLUGIN_BUNDLES": "1",
"UIX_STRICT_PLUGIN_RESOLUTION": "1",
"UIX_STORAGE_PATH": "/var/lib/homebridge",
"UIX_CONFIG_PATH": "/var/lib/homebridge/config.json",
"UIX_BASE_PATH": "/opt/homebridge/lib/node_modules/homebridge-config-ui-x",
"UIX_SERVICE_MODE": "1",
"UIX_INSECURE_MODE": "1",
"UIX_DEBUG_LOGGING": "0",
"UIX_PLUGIN_NAME": "Config",
"HOMEBRIDGE_STORAGE_PATH": "/var/lib/homebridge",
"HOMEBRIDGE_CONFIG_PATH": "/var/lib/homebridge/config.json",
"HOMEBRIDGE_UI_VERSION": "4.52.1"
}
[11/8/2023, 8:54:21 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /getDefaults
[11/8/2023, 8:54:21 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /mergeToDefault
[11/8/2023, 8:54:21 PM] [Homebridge UI] [homebridge-midea-platform] Merged config: {
"uiDebug": true,
"platform": "midea-platform",
"refreshInterval": 30,
"heartbeatInterval": 10,
"verbose": false,
"logRecoverableErrors": true,
"devices": []
}
[11/8/2023, 8:54:51 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /login
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /discover
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Start device discovery...
Sending discovery message to 10.x.x.255, try 1...
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.5","port":6444,"id":3078,"model":"00000Q13","sn":"000000P0000000Q13","name":"net_ac_BD04","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.8","port":6444,"id":14183,"model":"00000Q13","sn":"000000P0000000Q0","name":"net_ac_94E8","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.7","port":6444,"id":30786,"model":"00000Q13","sn":"000000P0000000Q130","name":"net_ac_ECA4","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_ECA4] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"10.x.x.6","port":6444,"id":307863,"model":"00000Q13","sn":"000000P0000000Q","name":"net_ac_5B06","type":172,"version":3}
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5B06] Retrieve credentials.
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY 10.x.x.8:6444 - Local (10.x.x.2:59334)
at internalConnect (node:net:1100:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
at node:net:1306:9
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.8:6444 - Local (10.x.x.2:59334)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.8:6444 - Local (10.x.x.2:59334)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket closed with error
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY 10.x.x.7:6444 - Local (10.x.x.2:34562)
at internalConnect (node:net:1100:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
at node:net:1306:9
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5B06] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.7:6444 - Local (10.x.x.2:34562)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_ECA4] Getting token and key with big-endian is not successful.
Error: connect EALREADY 10.x.x.7:6444 - Local (10.x.x.2:34562)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket closed with error
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY 10.x.x.5:6444 - Local (10.x.x.2:40316)
at internalConnect (node:net:1100:16)
at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
at node:net:1306:9
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_94E8] Getting token and key with little-endian is not successful.
Error: connect EALREADY 10.x.x.5:6444 - Local (10.x.x.2:40316)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] [net_ac_BD04] Getting token and key with little-endian is not successful.
Error: connect EALREADY 10.x.x.5:6444 - Local (10.x.x.2:40316)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] /var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159
throw new Error([${device.name}] Authentication failed, token/key undefined.);
^
Error: [net_ac_94E8] Authentication failed, token/key undefined.
at UiServer.getNewCredentials (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:159:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Discover. (/var/lib/homebridge/node_modules/homebridge-midea-platform/homebridge-ui/server.js:206:9)
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Node.js v18.18.2
[11/8/2023, 8:54:52 PM] [Homebridge UI] [homebridge-midea-platform] Child process ended

I'm testing it at the moment, and added a few debug lines. It seems like the socket somehow closes or multiple async method trying to use the same socket. If I move out the credential fetch from the blockingDiscovery method into the /discover handler, it works just fine.

I'm testing it at the moment, and added a few debug lines. It seems like the socket somehow closes or multiple async method trying to use the same socket. If I move out the credential fetch from the blockingDiscovery method into the /discover handler, it works just fine.

Nice.  I was also thinking that maybe this part of the code needs to be serialized with a semaphore, like I did for login.

I've inserted this line into the #148 line in server.js:
this.logger.debug([${device.name}] token: ${token ? token.toString('hex') : 'invalid'}, key: ${key ? key.toString('hex') : 'invalid'});
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] Incoming Request: /discover
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] Start device discovery...
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] Sending discovery message to <IP_ADDRESS>, try 1...
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":153931628031843,"model":"00000Q11","sn":"000000P0000000Q1102C8D596F1A0000","name":"net_ac_6F1A","type":172,"version":3}
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_6F1A] Retrieve credentials.
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":153931628030387,"model":"00000Q11","sn":"000000P0000000Q1102C8D5A9D200000","name":"net_ac_9D20","type":172,"version":3}
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_9D20] Retrieve credentials.
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":152832116402690,"model":"00000Q11","sn":"000000P0000000Q1102C8D5AEFAE0000","name":"net_ac_EFAE","type":172,"version":3}
[net_ac_EFAE] Retrieve credentials.
[11/9/2023, 1:53:50 AM] [Homebridge UI] [homebridge-midea-platform] Discovered device: {"ip":"<IP_ADDRESS>","port":6444,"id":153931628031840,"model":"00000Q11","sn":"000000P0000000Q1102C8D5A5C440000","name":"net_ac_5C44","type":172,"version":3}
[net_ac_5C44] Retrieve credentials.
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_9D20] <redacted>, key: <redacted>
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_6F1A] <redacted>, key: <redacted>
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:57042)
    at internalConnect (node:net:1067:16)
    at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
    at node:net:1251:9
    at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_9D20] Getting token and key with big-endian is not successful.
Error: connect EALREADY <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:57042)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_6F1A] Getting token and key with big-endian is not successful.
Error: connect EALREADY <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:57042)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5C44] <redacted>, key: <redacted>
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_EFAE] <redacted>, key: <redacted>
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EALREADY <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:34038)
    at internalConnect (node:net:1067:16)
    at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
    at node:net:1251:9
    at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5C44] Getting token and key with big-endian is not successful.
Error: connect EALREADY <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:34038)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_EFAE] Getting token and key with big-endian is not successful.
Error: connect EALREADY <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:34038)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Socket closed with error
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Socket closed with error
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5C44] <redacted>, key: <redacted>
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_9D20] <redacted>, key: <redacted>
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_6F1A] <redacted>, key: <redacted>
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Socket error:
Error: connect EISCONN <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:34046)
    at internalConnect (node:net:1067:16)
    at defaultTriggerAsyncIdScope (node:internal/async_hooks:463:18)
    at node:net:1251:9
    at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_5C44] Getting token and key with little-endian is not successful.
Error: connect EISCONN <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:34046)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Token: undefined, Key: undefined
[net_ac_9D20] Getting token and key with little-endian is not successful.
Error: connect EISCONN <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:34046)
Token: undefined, Key: undefined
[net_ac_6F1A] Getting token and key with little-endian is not successful.
Error: connect EISCONN <IP_ADDRESS>:6444 - Local (<IP_ADDRESS>:34046)
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Token: undefined, Key: undefined
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] Socket closed with error
[11/9/2023, 1:53:51 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_EFAE] <redacted>, key: <redacted>
[11/9/2023, 1:53:52 AM] [Homebridge UI] [homebridge-midea-platform] [net_ac_EFAE] Getting token and key with little-endian is not successful.
Error: [net_ac_EFAE] Authenticate error when receiving data from undefined:undefined. (Data length mismatch)
Token: undefined, Key: undefined
[11/9/2023, 1:53:52 AM] [Homebridge UI] [homebridge-midea-platform] Socket closed without error
[11/9/2023, 1:53:52 AM] [Homebridge UI] [homebridge-midea-platform] Sending discovery message to <IP_ADDRESS>, try 2...
[11/9/2023, 1:53:54 AM] [Homebridge UI] [homebridge-midea-platform] Sending discovery message to <IP_ADDRESS>, try 3...
[11/9/2023, 1:53:56 AM] [Homebridge UI] [homebridge-midea-platform] Sending discovery message to <IP_ADDRESS>, try 4...
[11/9/2023, 1:53:58 AM] [Homebridge UI] [homebridge-midea-platform] Device discovery complete after 4 network broadcasts.
[11/9/2023, 1:53:58 AM] [Homebridge UI] [homebridge-midea-platform] Device discovery complete.

So the fetches mess with each other. I've redacted the token/key but they were valid values. At the end of the functions they were undefined.

I'm testing it at the moment, and added a few debug lines. It seems like the socket somehow closes or multiple async method trying to use the same socket. If I move out the credential fetch from the blockingDiscovery method into the /discover handler, it works just fine.

Nice. I was also thinking that maybe this part of the code needs to be serialized with a semaphore, like I did for login.

Yeah, a semaphore will solve that, but in my opinion, we should let the discovery method to end, and then get the credentials.

I'm testing it at the moment, and added a few debug lines. It seems like the socket somehow closes or multiple async method trying to use the same socket. If I move out the credential fetch from the blockingDiscovery method into the /discover handler, it works just fine.

Nice. I was also thinking that maybe this part of the code needs to be serialized with a semaphore, like I did for login.

Yeah, a semaphore will solve that, but in my opinion, we should let the discovery method to end, and then get the credentials.

Yes, that is probably simplest.  It was me that moved getNewCredentials() from /discover into blockingDiscovery...  deliberately to make it asynchronous.  But I didn't consider need to serialize it.  Putting it back the way you originally had it is probably best as it will simplify debug if future problems occur.

@dkerr64 Just created a PR, can you please check on it?

@dkerr64 Just created a PR, can you please check on it?

Yup, made a couple of comments which are unrelated to fixing the actual bug!

I don't see them yet. Maybe you just started the review but didn't posted it.

I don't see them yet. Maybe you just started the review but didn't posted it.

Humm... I see them if I open the PR #36 but they are not reflected here in the issue.  Each is marked "pending" am I supposed to do something to make them visible to you?

I don't see them yet. Maybe you just started the review but didn't posted it.

Humm... I see them if I open the PR #36 but they are not reflected here in the issue. Each is marked "pending" am I supposed to do something to make them visible to you?

I may have missed the "submit review" step.  Check again please.

PR #26 approved, ready to merge.

@boboxx The new version is released. Could you please test it?

Yes it's working, no more errors and I was able to discover my devices and add them to my config. Thanks!


Copy of http://www.xprinter.net/products_show.asp?lan=zh-en&skin=1&newsid=239753224

Does someone keep a copy of file at http://www.xprinter.net/products_show.asp?lan=zh-en&skin=1&newsid=239753224 ? The site is not accessible right now.

The website is perfectly accessible, but the above link seems to be broken. I would start looking here:
http://poskeytech.com/html/Drivers/


Siri Shortcuts Action

When I run commands through Shortcuts app, I can't access the normal Documents directory. When I set its current directory as ~, it goes to /private/var/mobile/Containers/Data/PluginKitPlugin/078ACFAA-F951-4B67-9AC1-C74FFD2C2DC3. It should instead go to /private/var/mobile/Containers/Data/Application/B666351D-5F34-4CE2-8A48-A2EF0991F819/Documents. I tried to manually type in that path for the cwd, but it says operation not permitted.
You should also add the ability to send data as stdin with this Shortcuts action, and you should also improve the action's description.

I added a $SHAREDDIR environment variable which is the path of a directory shared between Siri Shortcuts and the app. This is now the default current directory for Siri Shortcuts

There should be a way to access this shared dir through the Files app


[Feature request] InputTagHelper should add the maxlength attribute when possible

Let’s say I have a property in model with maximum string length is specified, like this:
    [Required, StringLength(100)]
    public string Name { get; set; }

Then on my razor page I have this:
    <input asp-for="Customer.Name" />

Which is then rendered like this:
    <input name="Customer.Name"
            id="Customer_Name"
            type="text"
            value=""
            data-val-required="The Name field is required."
            data-val-length-max="100"
            data-val-length="The field Name must be a string with a maximum length of 100."
            data-val="true">

There is validation logic there to check that the string isn’t more than 100 characters, that’s good. But couldn’t the maxlength=”100” attribute in the input-tag be added as well, so it’s not even possible to enter more characters than the limit?
It’s quite easy to do a custom TagHelper that takes care of this:
https://stackoverflow.com/questions/43477621/maxlength-annotation-to-maxlength-input-property
But I wonder why this isn’t in the core from start. It looks obvious to me but I’m sure I’m missing something :-)

@dougbu this seems reasonable. Is there a reason why we didn't do this in the past?

@NTaylorMullen this probably wasn't done because it felt redundant w.r.t. the client-side validations.
It's also possible that the experience when the user types the 101st character would degrade. I'm not sure what browsers tend to do when an <input/> element's limit is reached. By "degrade", I mean an error might result in a pop-up or message somewhere other than the generated locations.

Browsers just do not allow typing in more than the limit. I like this idea and am preparing a PR to handle this.

Just a note here, there's more similar attributes described at https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Form_validation, range (or RangeAttribute) for one. It looks to me there's more into this at https://github.com/aspnet/Mvc/issues/7035 (and at https://github.com/aspnet/Mvc/issues/7035#issuecomment-406895066).


Verify that dependencies are not empty strings

Transaction dependencies that are empty strings cause this error to be raised in the completer, prior to this fix.
sawtooth-validator |     self._completer.add_batch(batch)
sawtooth-validator |   File "/usr/lib/python3/dist-packages/sawtooth_validator/journal/completer.py", line 300, in add_batch
sawtooth-validator |     if self._complete_batch(batch):
sawtooth-validator |   File "/usr/lib/python3/dist-packages/sawtooth_validator/journal/completer.py", line 226, in _complete_batch
sawtooth-validator |     dependency):
sawtooth-validator |   File "/usr/lib/python3/dist-packages/sawtooth_validator/journal/block_store.py", line 308, in has_transaction
sawtooth-validator |     return self._block_store.contains_key(txn_id, index='transaction')
sawtooth-validator |   File "/usr/lib/python3/dist-packages/sawtooth_validator/database/indexed_database.py", line 122, in contains_key
sawtooth-validator |     return txn.cursor().set_key(key.encode())
sawtooth-validator | lmdb.BadValsizeError: mdb_cursor_get: MDB_BAD_VALSIZE: Unsupported size of key/DB name/data, or wrong DUPFIXED size```

Closing in favor of #2051


CASMINST-6018: fix $PITDATA handling

Description
$PITDATA should only be set if /etc/pit-release exists. This commit fixes inverted and/or logic.

Checklist

[x] If I added any command snippets, the steps they belong to follow the prompt conventions (see example).
[x] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in Cray-HPE.
[x] My commits or Pull-Request Title contain my JIRA information, or I do not have a JIRA.

/backport release/1.4


A Need For Mobilenext+CA pretrained model?

Dear author,thanks for watching my issue.Due to the limitation of computer computing resources，I can't pre-train the Mobilenext+CA model.Do you have any pre-trained model for me to keep the reaserch? Appreciate

您的邮件已经收到。我会及时做出回复。


community add more collaborators

Proposed changes
Issue Number: close #xxx
Problem summary
Add more collaborators

LemonLiTree
zy-kkk

Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[ ] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[ ] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[ ] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 39.15 seconds
load time: 572 seconds
storage size:<PHONE_NUMBER>0 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221101183201_clickbench_pr_37590.html


Generic Sensors article: update the Chrome version for origin trial

The origin trial for Generic Sensor has been moved to Chrome 63.
This patch updates the article accordigly.

Few tags need to be updated.
description: Generic Sensor API is available for Origin Trials in Chrome 63.
{# wf_updated_on: 2017-09-22 #}
{# wf_tags: sensors,origintrials,chrome63,news #}

@alexshalamov fixed now, thanks for the catch!

This PR was merged, however the article content is still not updated https://developers.google.com/web/updates/2017/09/sensors-for-the-web#motion-sensors-origin-trials


Release 1.9.13

Release 1.9.13
@rhatdan @runcom PTAL

cc: @vrothberg

LGTM, contains the logpath fix!

Thanks a lot for the quick release, @mrunalp and @runcom :+1:


Add back ui Java files for android

Apparently these files are needed to build for Android.

LGTM, assuming it builds... on Android.


[Potential Bug] Gate with policies doesn't work as intented

In the docs here
https://laravel.com/docs/5.2/authorization#checking-policies
it says that when a policy is defined like this:
class PostPolicy
{
    /**
     * Determine if the given post can be updated by the user.
     *
     * @param  \App\User  $user
     * @param  \App\Post  $post
     * @return bool
     */
    public function update(User $user, Post $post)
    {
        return $user->id === $post->user_id;
    }
}

we can use
Gate::denies('update', $post)

So i assumed that i can use
Gate::forUser($user)->denies('update', $post)

However this ALWAYS returns false
Because firstArgumentCorrespondsToPolicy() in Illuminate\Auth\Access\Gate always returns false:
protected function firstArgumentCorrespondsToPolicy(array $arguments)
{
    if (! isset($arguments[0])) {
        return false;
    }

    if (is_object($arguments[0])) {
        return isset($this->policies[get_class($arguments[0])]);
    }

    return is_string($arguments[0]) && isset($this->policies[$arguments[0]]);
}

It basically checks arguments i.e. it checks if the first argument is a class of a Model that has policies registered. So basically we could make the Gate call to work by rewritting the "denies" into:
Gate::forUser($user)->denies('update', [User::class, $post])

But i'm pretty sure that this is not the intended use?
Now i'm not sure if i missed something or if it's caused by the forUser method. But if it is a bug indeed i'd be happy to try to fix and and to submit a pull request.

i believe the issue is related to the forUser , also the firstArgumentCorrespondsToPolicy it means its related to the model policy, so ex. user is user policy & user model , post is post policy & post model ,
also in the policy the User $user will always return the currently logged in user, so no need to pass it from the controller but anyway i think what is more related to ur needs is either $this->authorizeForUser($user, 'update', $post); or Via The User Model

In case you were trying to bind a policy to your user class, like so
class AuthServiceProvider extends ServiceProvider
{
    protected $policies = [
        \App\User::class => \App\Policies\UserPolicy::class
    ];
...

then calling
Gate::forUser($user)->allows(...)
or calling
$user->can($ability)
will always return false, as firstArgumentCorrespondsToPolicy returns false as you mentioned.
In my case, I wanted to have general user privileges, which I first intended to check via a UserPolicy that is bound to the User Class.
But apparently there is no such thing like binding a policy to the user class. You always check policies in the context of another class, such as a post.
So I ended up introducing a Privileges object and a policy for it:
class AuthServiceProvider extends ServiceProvider
{
    protected $policies = [
        \App\Domain\User\Privileges::class => \App\Domain\User\PrivilegesPolicy::class
    ];
...

class Privileges
{
	static $privileges = array(
		'can-do-something' => array(

			Role::ROLE_A	=> true,
			Role::ROLE_B	=> false,
		),
	);

	public function get($privilege, $user)
	{
		return static::$privileges[$privilege][$user->role()];
	}

}

<?php

class User extends Authenticatable
{
...
    public function can($ability, $arguments = [])
    {
        if ($arguments) {
            return parent::can($ability, $arguments);
        }
        else {
            return parent::can($ability, $this->getPrivileges());
        }
    }

    public function has($privilege)
    {
        // syntactic sugar to allow for calls like $user->has('searchMenu');
        return parent::can($privilege, $this->getPrivileges());
    }

    private function getPrivileges()
    {
        if (! $this->privileges) {
            $this->privileges = new Privileges();
        }

        return $this->privileges;
    }
}

Just wondering...why are you trying to use a different user from the default?

I am having similar issues; it seems the methods in policy class never got execute.   I followed the example in the tutorial, except that I never "got here" in the update() method.
public function update(User $user, Post $post)
{
	die("got here");
    return $user->id === $post->user_id;
}

https://laravel.com/docs/5.3/authorization#generating-policies

Take a look at this one https://github.com/laravel/framework/issues/13788
It could be the default guard issue.

Hi. Can you try this on a 5.5 install and see if the issue still arises? If not you can close this issue

Closing this issue since we made lots of changes in 5.4 and 5.5 regarding this, please ping me if anyone was able to tell if the issue still exists in 5.5


Add fill to remaining shapes

Currently only rectangles can be filled. This PR adds fill for any other shapes.

Thanks for the PR. But I'm doing a fundamental change that replace wgpu to opengl. So I can't accept the PR right now. But watch the space.


Launch macOS VM for the second time

To Reproduce
After turning off the VM I can not launch it again. The installation was fine, but the VM is missing:

It is not in the virtualBox Manager Window.
I can see related files in the VM folder (.vdi, .sparseimage, ..) but not .vbox or .vobx.prev files
I tried run ./runMacOSVirtualbox.sh run but get the error log pasted below in the additional context
If I try to add the disks created to a new macOS VM instance created through the manager i get a permissions error pasted below. both macOS-VM.vdi and macOS-VM.efi.vd.

Expected behavior
I want to be able to access the macOS VM via  the VirtualBox Manager. Or at least to be able to launch somehow the VM again
Additional context

log file [2019-07-28 12:31:43] Starting VM 'macOS-VM' (3 minutes in the VM)...
VBoxManage: error: Could not find a registered machine named 'macOS-VM'
VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "FindMachine(Bstr(VMNameOrUuid).raw(), machine.asOutParam())" at line 2621 of file VBoxManageInfo.cpp
[2019-07-28 12:31:43] .
VBoxManage: error: Could not find a registered machine named 'macOS-VM'
VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "FindMachine(Bstr(pszVM).raw(), machine.asOutParam())" at line 721 of file VBoxManageMisc.cpp
[2019-07-28 12:31:43] line 383 - command '[ "$#" -ne 0 ]' exited with status: 1.
[2019-07-28 12:31:43] In :: called at line 0.
[2019-07-28 12:31:43] From function :: (line 0).
[2019-07-28 12:31:43] Look at /Users/user/Library/Logs/runMacOSVirtualbox.log for details (or use Console.app). Press enter in the terminal when done...

-add disk error message
Permission problem accessing the file for the medium '/Users/user/VirtualBox VMs/macOS-VM.efi.vdi' (VERR_ACCESS_DENIED).

Result Code:
VBOX_E_FILE_ERROR (0x80BB0004)

Component:
MediumWrap

Interface:
IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}

Callee:
IVirtualBox {d0a0163f-e254-4e5b-a1f2-011cf991c38d}

Callee RC:
VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

macOS.vbox was under a root related path ( /private/var/root/VirtualBox )


Removing blank(empty) traits from metadata

Hi there,
I was wondering how I can remove blank(empty) traits from metadata.
In my NFT collection, each character has accessories and also empty trait (e.g. No eyewear.png)
When combinations with empty trait is created, metadata also contains empty trait (No eyewear) as propatiy.
Do yo guys know how can I remove only empty traits from metadata?
Thanks,

forgot to mention, I'm using generative art opensource (v4)

@SDM-Shroom, were you able to resolve this?

@Judd515
Yes, just remove names from elements then they won't be displayed on attributes.


[v6.5.4] Build path not correct in package.json

when running npm run build on the latest version i get:
><EMAIL_ADDRESS>build
> ./build-openlayers-legacy.sh

'.' is not recognized as an internal or external command,
operable program or batch file.

updating package.json:6 to:
"build": "build-openlayers-legacy.sh",
fixes the issue

Hey, sorry for the late response. Your fix does not work for me under linux, so I will leave it as it is.