Paths emitted by build script are not corrected when cross-compiling

Posted on behalf of @Phaiax: (originally https://github.com/rust-lang/rust/issues/55072)

I am trying some embedded rust programming and figured out that the cargo/rustc cache does not survive a move of the project folder. (This is the cortex-m-quickstart project but I think that does not really matter.)
There are no absolute paths neither in .cargo/config nor in Cargo.toml. After a cargo clean I can do a build again.
PS C:\Users\danie_000\Code\RE\ABC> rustc --version
rustc 1.30.0-beta.15 (590121930 2018-10-12)
PS C:\Users\danie_000\Code\RE\ABC> cargo --version
cargo 1.30.0-beta (05e9b01fc 2018-09-21)

The rust version is set by rustup default beta and not overwritten for any of these folders.
After the rename of the Project folder, cargo summons rustc with some references to the ABC path that does not exist anymore.
PS C:\Users\danie_000\Code\RE> cd .\ABC\
PS C:\Users\danie_000\Code\RE\ABC> cargo clean
PS C:\Users\danie_000\Code\RE\ABC> cargo build
   Compiling proc-macro2 v0.4.20
   Compiling unicode-xid v0.1.0
   Compiling rand_core v0.3.0
   Compiling cortex-m-rt v0.6.4
   Compiling cortex-m-semihosting v0.3.1
   Compiling cortex-m v0.5.7
   Compiling vcell v0.1.0
   Compiling myapp v0.1.0 (C:\Users\danie_000\Code\RE\ABC)
   Compiling bare-metal v0.2.3
   Compiling r0 v0.2.2
   Compiling aligned v0.2.0
   Compiling panic-halt v0.2.0
   Compiling rand_core v0.2.2
   Compiling volatile-register v0.2.0
   Compiling rand v0.5.5
   Compiling quote v0.6.8
   Compiling syn v0.15.11
   Compiling cortex-m-rt-macros v0.1.2
    Finished dev [unoptimized + debuginfo] target(s) in 28.77s
PS C:\Users\danie_000\Code\RE\ABC> cd ..
PS C:\Users\danie_000\Code\RE> mv ABC XYZ
PS C:\Users\danie_000\Code\RE> cd .\XYZ\
PS C:\Users\danie_000\Code\RE\XYZ> cargo -v build
       Fresh unicode-xid v0.1.0
       Fresh rand_core v0.3.0
       Fresh vcell v0.1.0
       Fresh r0 v0.2.2
       Fresh aligned v0.2.0
       Fresh bare-metal v0.2.3
   Compiling myapp v0.1.0 (C:\Users\danie_000\Code\RE\XYZ)
       Fresh panic-halt v0.2.0
     Running `rustc --edition=2018 --crate-name build_script_build build.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=3a754d4070599644 -C extra-filename=-3a754d4070599644 --out-dir C:\Users\danie_000\Code\RE\XYZ\target\debug\build\myapp-3a754d4070599644 -C incremental=C:\Users\danie_000\Code\RE\XYZ\target\debug\incremental -L dependency=C:\Users\danie_000\Code\RE\XYZ\target\debug\deps`
       Fresh rand_core v0.2.2
       Fresh volatile-register v0.2.0
       Fresh proc-macro2 v0.4.20
       Fresh rand v0.5.5
       Fresh cortex-m-semihosting v0.3.1
       Fresh cortex-m v0.5.7
       Fresh quote v0.6.8
       Fresh syn v0.15.11
       Fresh cortex-m-rt-macros v0.1.2
       Fresh cortex-m-rt v0.6.4
     Running `C:\Users\danie_000\Code\RE\XYZ\target\debug\build\myapp-3a754d4070599644\build-script-build`
     Running `rustc --edition=2018 --crate-name myapp src\main.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=7f9cdf275b22bd50 -C extra-filename=-7f9cdf275b22bd50 --out-dir C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\deps --target thumbv7m-none-eabi -C incremental=C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\incremental -L dependency=C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\deps -L dependency=C:\Users\danie_000\Code\RE\XYZ\target\debug\deps --extern cortex_m=C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\deps\libcortex_m-6d95ef6e4550c4c8.rlib --extern cortex_m_rt=C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\deps\libcortex_m_rt-03e440f58d1c0555.rlib --extern cortex_m_semihosting=C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\deps\libcortex_m_semihosting-26e2b9dfbd5c7e3b.rlib --extern panic_halt=C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\deps\libpanic_halt-8d085ea03dce307c.rlib -C link-arg=-Tlink.x -L C:\Users\danie_000\Code\RE\XYZ\target\thumbv7m-none-eabi\debug\build\myapp-b0e16e01c22428a8\out -L C:\Users\danie_000\Code\RE\ABC\target\thumbv7m-none-eabi\debug\build\cortex-m-765dfe6812e223ce\out -L C:\Users\danie_000\Code\RE\ABC\target\thumbv7m-none-eabi\debug\build\cortex-m-rt-1387b5ad4b26cfa2\out -L C:\Users\danie_000\Code\RE\ABC\target\thumbv7m-none-eabi\debug\build\cortex-m-semihosting-cb2469f22b42a1d7\out`
error: linking with `rust-lld` failed: exit code: 1
  |
  = note: "rust-lld" "-flavor" "gnu" "-L" "C:\\Users\\danie_000\\.rustup\\toolchains\\beta-x86_64-pc-windows-msvc\\lib\\rustlib\\thumbv7m-none-eabi\\lib" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\thumbv7m-none-eabi\\debug\\deps\\myapp-7f9cdf275b22bd50.57siomzwzet2ykzc.rcgu.o" "-o" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\thumbv7m-none-eabi\\debug\\deps\\myapp-7f9cdf275b22bd50" "--gc-sections" "-L" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\thumbv7m-none-eabi\\debug\\deps" "-L" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\debug\\deps" "-L" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\thumbv7m-none-eabi\\debug\\build\\myapp-b0e16e01c22428a8\\out" "-L" "C:\\Users\\danie_000\\Code\\RE\\ABC\\target\\thumbv7m-none-eabi\\debug\\build\\cortex-m-765dfe6812e223ce\\out" "-L" "C:\\Users\\danie_000\\Code\\RE\\ABC\\target\\thumbv7m-none-eabi\\debug\\build\\cortex-m-rt-1387b5ad4b26cfa2\\out" "-L" "C:\\Users\\danie_000\\Code\\RE\\ABC\\target\\thumbv7m-none-eabi\\debug\\build\\cortex-m-semihosting-cb2469f22b42a1d7\\out" "-L" "C:\\Users\\danie_000\\.rustup\\toolchains\\beta-x86_64-pc-windows-msvc\\lib\\rustlib\\thumbv7m-none-eabi\\lib" "-Bstatic" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\thumbv7m-none-eabi\\debug\\deps\\libcortex_m_rt-03e440f58d1c0555.rlib" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\thumbv7m-none-eabi\\debug\\deps\\libr0-e3b5285d82ebc9ad.rlib" "--start-group" "C:\\Users\\danie_000\\Code\\RE\\XYZ\\target\\thumbv7m-none-eabi\\debug\\deps\\libpanic_halt-8d085ea03dce307c.rlib" "C:\\Users\\danie_000\\.rustup\\toolchains\\beta-x86_64-pc-windows-msvc\\lib\\rustlib\\thumbv7m-none-eabi\\lib\\libcore-47bba88e05b648a7.rlib" "--end-group" "C:\\Users\\danie_000\\.rustup\\toolchains\\beta-x86_64-pc-windows-msvc\\lib\\rustlib\\thumbv7m-none-eabi\\lib\\libcompiler_builtins-1eaa5842cd3f5019.rlib" "-Tlink.x" "-Bdynamic"
  = note: rust-lld: error: cannot find linker script link.x

error: aborting due to previous error

error: Could not compile `myapp`.

  The build scripts involved are also innocuous, making correct use of std::env::var("OUT_DIR") and emitting basic cargo linker flags.
To reproduce:

rustup target add thumbv7m-none-eabi
generate a project from the cortex-m-quickstart template (or clone it and fix up the Cargo.toml)
^^ do what the OP did in the above quote ^^

Thoughts:
To my best understanding, cargo normally has no problem with the absolute paths that appear in build script cargo: directives because it stores the current path at the time of build to target/build/(unique-name)/root-output; future builds use this to correct the paths that are in the cached stdout from the script.
Looking at the build artefacts for clues, I notice that the build scripts' output is saved at
/home/lampam/asd/clone/original-name/target/thumbv7m-none-eabi/debug/build

but the root-output files for the build scripts contain
/home/lampam/asd/clone/original-name/target/debug

which is not a prefix of that path.

@alexcrichton I was looking at fixing this.  It's a little convoluted, so I just wanted to verify some assumptions:
The fix renaming PR introduced the fix that should address it, but it does it in a weird way.  It uses the root_output variable which is .../target/debug for the host.  I'm pretty certain that build scripts should only use target paths from their target-specific "out" directory, correct?  So it should only be necessary to rewrite paths to that .../target/TRIPLE/debug/build/PKG-HASH/out directory correct?  If so, then almost all the uses of root_output should actually be build_output.  I'm a bit confused why the PR didn't do it that way in the first place, so I wanted to clarify.  Maybe build scripts can emit paths to other things in the target dir outside of their "OUT_DIR"?
I think there is one exception that should still use the host directory, and that is this line which does some funky stuff for linking the build script itself.

@ehuss nah you're spot on, build scripts only have supported output to $OUT_DIR which is indeed not in target/debug but rather in target/TRIPLE/debug/.... I suspect that the original PR may have just been mistaken, causing bugs like this!
Definitely feel free to correct any mistakes there :)

No worries! Changing the filename is fine by me, although I'd also be up for throwing in a schema-like version baked into Cargo into the hash to bust the cache (and we could increment it on changes like this to bust the cache)
That's a good point that we don't handle the other items. I think it's probably ok to handle it as if the absolute path to the output shows up in the various lines I can't really imagine a case where you wouldn't want it remapped!


Be faster and better

Try not using itmm, then it'll be simple to turn it into C/C++.  I find it very slow for the initiation, I don't know why.  In the example, it seems that cpu is used, is there some special reason not using gpu?  GPUs are used more in video processing usually.
I've tried the demo, --n=8 for 30s and --n=32 for 2min（No initialization time） on my 1650gpu.  The average of 3.75s per frame is much higher than RIFE(VapourSynth-RIFE-ncnn-Vulkan: rife-v4.6 ensemble=True , I tried using it on a 2h 1080p film from 24 to 60, the whole process is about 14h, average of it is 0.12s per frame), why is that?

I used screenshots of animated movies, and I don't expect this model to have a good effect on animation, but I want to see how it works against darkness and railings.
These are what I used:

But the GPU's performance surprised me：

I just python .\demo_Nx.py --n 3, and the gpu do like this?
Then I tried this:
import cv2
import sys
import torch

import numpy as np
from imageio import mimsave

sys.path.append(".")
import config as cfg
from benchmark.utils.padder import InputPadder

from model import feature_extractor, flow_estimation

I0 = cv2.imread("example/mpv-shot0001.jpg")
I2 = cv2.imread("example/mpv-shot0002.jpg")

I0_ = (torch.tensor(I0.transpose(2, 0, 1)).cuda() / 255.0).unsqueeze(0)
I2_ = (torch.tensor(I2.transpose(2, 0, 1)).cuda() / 255.0).unsqueeze(0)

padder = InputPadder(I0_.shape, divisor=32)
I0_, I2_ = padder.pad(I0_, I2_)

backbonetype, multiscaletype = (feature_extractor, flow_estimation)
# backbonecfg, multiscalecfg = cfg.init_model_config(F=16, depth=[2, 2, 2, 2, 2])
backbonecfg, multiscalecfg = cfg.init_model_config(F=32, depth=[2, 2, 2, 4, 4])
net = flow_estimation(feature_extractor(**backbonecfg), **multiscalecfg)

def convert(param):
    return {
        k.replace("module.", ""): v
        for k, v in param.items()
        if "module." in k and "attn_mask" not in k and "HW" not in k
    }

net.load_state_dict(convert(torch.load(f"ckpt/ours_t.pkl")))
net.eval()
net.to(torch.device("cuda"))

imgs = torch.cat((I0_, I2_), 1)
pred = net(imgs)

mid = (
    padder.unpad(pred)[0]
    .detach()
    .cpu()
    .numpy()
    .transpose(1, 2, 0)
    * 255.0
).astype(np.uint8)
mimsave("example/out_2x.jpg", [mid[:, :, ::-1]])

The result is more funny:
torch.cuda.OutOfMemoryError: CUDA out of memory.
Tried to allocate 44.00 MiB. GPU 0 has a total capacty of 4.00 GiB of which 0 bytes is free.
Of the allocated memory 9.82 GiB is allocated by PyTorch, and 186.06 MiB is reserved by PyTorch but unallocated.
If reserved but unallocated memory is large try setting max_split_size_mb to avoid fragmentation.
See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF

How can two ordinary 1080p movie screenshots run out of GPU memory?


Replace special terminators chars in attrs

Fix #4268
Related to #3903
I just applied the same strategy as @defcc to make it work for the moment but there's a difference here:
Using the U+2028 character in a title actually makes the title to wrap: http://jsfiddle.net/posva/rjzbxgea/
So instead of eliminating it, I'm replacing it with another newline

You are right, I implemented the proper fix in db35444331f019dd9f051b40bb36711064796f85

Great, thanks


NTR: CD25+ Mast cell

Needed for HP_0031408 'Increased proportion of CD25+ mast cells'
Related ticket: https://github.com/obophenotype/human-phenotype-ontology/issues/5697
NTR: CD25+ mast cell
Parent: CL_0000097 'mast cell'
Def: A mast cell that is CD25+.
Comment: Mast cells do not normally express CD25, but neoplastic mast cells may be CD25-positive.

If this is a neoplastic cell, it should not be placed under 'native cell'.
We have in the CL 'neoplastic cell' (http://purl.obolibrary.org/obo/CL_0001063); perhaps this should be the is_a parent:
'neoplastic cell'
and 'derives from' some 'mast cell'
and 'has plasma membrane part' some 'interleukin-2 receptor subunit alpha'
interleukin-2 receptor subunit alpha = CD25
Alex

Thank you Alex! I will add this as such. :)

Perhaps we should have an exact synonym 'CD25+ neoplastic mast cell' just to make it even more obvious that this is not a normal cell type.


[rbx_binary] Write CFrame basic rotation ids

Closes #129.

Creates a module and moves CFrame-related logic to
it. Renames special_case_to_rotation to to_basic_rotation_id
Its counterpart, from_basic_rotation_id, goes in the other
direction from rotation matrices to ids.

Whoops - these methods should be listed in the opposite order here.

This does bring up the question of if we should do anything about non-orthonormal matrices, whether in the new cframe module or further up in rbx_types. Roblox Studio orthonormalizes CFrames' rotation matrices when setting them, so this doesn't seem like much of a problem to me - especially considering that one would really have to try in order to have a file that actually contains CFrames like this. Thus I wonder whether the above check is at all necessary.
Without the comparison, in cases where they do differ, the end result would be one of the basic rotation matrices instead of the later orthonormalization by Studio. With respect only to this section of code: do we test for a bad matrix, and then pretend we never saw it (the current behavior)? or do we not test, and as a result inadvertently alter the contents of the file? I like the first option - we should probably make reasonable efforts to reflect the contents in as close to their original state as possible.

I think we should leave non-orthonormalized matrices alone.
One goal of rbx-dom (that isn't really written down) is that we should be able to handle any structurally valid model file, even if it's not semantically valid. Roblox's DOM implementation, on the other hand, also does strict semantic validation, which might include forcing CFrames to be orthonormalized when used on parts.

I think we should leave non-orthonormalized matrices alone.

Agreed. If we start enforcing semantic correctness on files, it can get messy really quick. A DOM shouldn't decide what is or isn't correct as long as it can read it.

Worth noting that it's now possible to give from_basic_rotation_id an invalid id and get back a garbage matrix.  Is this a problem?

I'm going to say no because the only way that will happen is if a codec like ours does it. Studio never produces garbage ID's like that.

How does Studio handle being given a garbage basic rotation ID? I'm worried that if more special cases are ever added, we'll silently corrupt them instead of knowingly fail.
If possible, we should reject invalid rotation IDs.

We do currently reject them with an error: the deserializer emits an InnerError::InvalidOrientationId when from_basic_rotation_id fails to match. I think we should stick with a match for this function, because guarding against the invalid ids in the other implementation makes the code look way too voodoo for my taste.
I'm not sure what Roblox Studio does with them (yet) - I think I want to make a utility that lets me easily screw with property data blocks :P

@kennethloeffler I was more interested in getting an explanation of how it works rather than what it does. That's my fault, I wasn't very clear.
After giving it some thought though, I don't think that's necessary. It's pretty self-apparent what it's doing, and the how boils down to "this is how it works in Roblox".


KeyError: 'expires_in'

Now there is a new error:

I am dealing with the same error, did you ever find a remedy?

Dealing with the same error too


Bump backport action version

Description
We need to bump the version of the action up 1 patch version. The new patch version includes (and only includes) the new source branch naming convention which we need to pick-up. See #4920 for more details
Checklist

[ ] I have signed the CLA
[ ] I have run this code in development and it appears to resolve the stated issue
[ ] This PR includes tests, or tests are not required/relevant for this PR
[ ] I have added information about my change to be included in the CHANGELOG.

We fixed what we needed to without this


Uncaught InternalError: too much recursion in hls.js

Hi!
We encountered a bug where the videos don't load fully in the web version of our app. They load some of the video and stop loading after that. The videos are HLS streams from Vimeo. In the browser console it says "Uncaught InternalError: too much recursion [hls.js@1:1:368422]". This error only occurs in the web version, in Android and iOS the videos work fine.
Do you think this error is happening because of something in the hls.js side, or could it be something from this plugin? Would love to find a solution for this, otherwise the plugin has worked well for us, but now suddenly we can't get the videos working properly.

I had a similar problem when building for release.
I solved the problem by modifying the trigger part of hls.js.
I remember that the latest hls.js fixes this problem.
If the problem still occurs, search for 'trigger' or 'if (this.config.debug)' in hls.js and you may find code that causes recursive calls.


Flow doesn't error for tuple missing values

I expected that this would be flagged by Flow, but it isn't. Even passing an empty array goes unnoticed by Flow. The documentation mentions that tuples are allowed to be longer than they're typed to be, but I don't think they should be allowed to be shorter than they're typed (unless the missing types are nullable).
/* @flow */

function foo(a: [Object, Object]) {}

foo([ {} ]);

$ flow version
Flow, a static type checker for JavaScript, version 0.30.0
$ flow
No errors!

Related:

https://github.com/facebook/flow/issues/785
https://github.com/facebook/flow/issues/227
https://github.com/facebook/flow/issues/924

Tuples are almost unusable at the moment, I'm forced to use object types because they are safer

@gcanti Yup, tuples are pretty broken. Their implementation is pretty optimistic right now, if you do the correct operations you get the expected results (more precise than arrays), but they're not robust enough against incorrect operations. This has been on our radars for a while. Assigning myself and @samwgoldman.


k8s: Rename CEPs to match their pod name

User feedback suggests it's easier to correlate a CEP with it's pod if it has a similar name. The name may as well be the same, since one fetches one type or the other explicitly.
$ kubectl get pods
NAME                    READY     STATUS    RESTARTS   AGE
app1-799c454b56-6rxtz   1/1       Running   0          4d
app1-799c454b56-v69c9   1/1       Running   0          4d
app2                    1/1       Running   0          4d
app3                    1/1       Running   0          4d
$ kubectl get cep
NAME                    AGE
app1-799c454b56-6rxtz   2m
app1-799c454b56-v69c9   2m
app2                    2m
app3                    2m

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please


Add CHANGELOG file.

Automate using one of the following tools:

Commitizen
cocogitto

At the moment, I discarded cocogitto because it seems to not manage signed commits. I configured the project to use Commitizen.


CSI migration for Azure Disk and Cinder is GA in 4.11

CSI migration for Azure Disk and Cinder will be GA in OCP 4.11.
https://issues.redhat.com/browse/STOR-615
https://issues.redhat.com/browse/STOR-670
CC @openshift/storage

/lgtm
It corresponds to today's plan (AWS EBS CSI migration GA is uncertain at this point).

AWS EFS CSI migration GA moved to 1.25: https://github.com/kubernetes/enhancements/pull/3213
Only AzureDisk and Cinder will be GA in 4.11 then.

/approve
/hold
holding until @jsafrane wants to merge.  Feel free to release whenever.

/hold cancel

/approve

I understand we are a "FF team", so:
/label qe-approved
/label docs-approved
/label px-approved


Set the parameters field/column default type to type dict

Closes https://github.com/XLSForm/pyxform/issues/605
Why is this the best possible solution? Were any other approaches considered?
Minimal code change, works.
See additional context and information on the issue https://github.com/XLSForm/pyxform/issues/605.
What are the regression risks?
None
Does this change require updates to documentation? If so, please file an issue here and include the link below.
No
Before submitting this PR, please make sure you have:

[x] included test cases for core behaviour and edge cases in tests
[x] run nosetests and verified all tests pass
[x] run black pyxform tests to format code
[x] verified that any code or assets from external sources are properly credited in comments

Hi @ukanga OK with the fix in general but I propose #607

Thanks! I do like the additions in #607 and hopefully you will as well.

Closing in favour of #607


Component: Masthead - On iPhone voice over,  first level of options within the Hamburger are read on second level.

Detailed description
Device - On iPhone Voice over
URL - https://ibmdotcom-react-staging.mybluemix.net/?path=/story/components-masthead--default
Issue :- After expanding the hamburger menu - from within the Hamburger, when Second level menu options are available, Screen reader still reads the First level options. This would confuse the screen reader user.
Additional information

@RaphaelAmadeu  Ram re tested this on staging, issue is not fixed.
After expanding the level 0 menus, the Level One options are displayed. Along with that the Level 0 options are also read by the screen reader but those are not visually present.

This was checked by Ram.  It is still not working.


Question: Front Proxy example load balancing (Docker aliases)

Title: Front Proxy example load balancing (Docker aliases)
Description:
The example provided by the Envoy repository for the Front Proxy [link] demonstrates a service1 and service2 that scale horizontally through the usage of docker-compose scale.
On Step 5: Test Envoy’s load balancing capabilities in the documentation it is mentioned that when scaling the service the envoy clustering capabilities are being demonstrated. Isn't this statement incorrect?
From my understanding, what is happening in this example is the following:

scaling either service1  or service2 creates new containers (including the replica of the side-car proxy since they live on the same container)
The actual resolution of the instance to pick is done by docker when resolving the alias for the services that is specified on the docker compose (see snippets below).

docker-compose.yml (ln. 28) [link]
networks:
    envoymesh:
        aliases:
            - service1

front-envoy.yml (ln. 45) [link]
endpoints:
    - lb_endpoints:
        - endpoint:
            address:
                socket_address:
                    address: service1
                    port_value: 80

From what I understand this is not the correct example to demonstrate the envoy capabilities regarding loadbalancing.
Shouldn't the example be, having one side-car proxy per service and then have the endpoints of the instances registered on the side-car proxy instead of having one side-car proxy per instance that happens to be resolved by docker through the aliases?
Given all of this, can someone confirm if my rational is correct? I've only delved with Envoy since yesterday so there might be something that I've misunderstood.
Best Regards,
Diogo Pinho
Relevant Links:
Front Proxy example documentation - link
Front Proxy example code - link

You are correct that this doesn't demonstrate the clustering capabilities and I'm guessing that is a typo. I've created https://github.com/envoyproxy/envoy/pull/6337 to correct this to 'load balancing'. However the sandbox does show the front-envoy load balancing across the scaled service_1 containers as described. The front proxy resolves the service_1 DNS and as the number of instances increases it determines what the endpoints are and then load balances across the number of instances.

Thanks for the explanation, I wasn't aware that Envoy would take in consideration the endpoints provided by the DNS resolution in order to load balance. I was thinking that it would just relay the request for the first one that got resolved and so it wouldn't participate in the balancing process, but it seems I was mistaken.
I'll close this issue since the question was answered and possible corrections are taking place on #6337.
Thanks again :)


Transform|Pose3D Data Type (transform_t)

Description
Tracks the implementation of the transform Data Type, which we'll require to handle transformations from and to reference frames.
Rationale
This tracks the implementation of the transform Data Type (transform_t), which we use for quite various purposes, like:

Hopping from one reference frame to another
Reference frame chaining
Represent special kind of matrices (e.g. model, view, projection matrices in computer graphics
etc.

Its implementation is based in most references projects that also use transforms (i.e. position+ scale+quaternion), instead of having a full 4x4 transformation matrix, which can have reduced precision when chaining various transforms.
Notice that we have two use cases that can potentially derive into two separate data types: transforms include a scale, as in most computer graphics applications (e.g. model-matrix); however, we commonly use poses (e.g. in ROS and Rigid Body Simulations), which only require a position vector and a quaternion to fully represent a pose|reference frame.

Implementation completed in 3ccd91556fbc2f072f5dea71876ba141766cf028


Ja smp 104 profile page edit

Implemented localStorage for skills and languages. Added adding, editing and deleting skills/languages

Build failed


scoped sub-elysia wreck global .onError()

i'm building an app splitted by routes. i added a global .onError() that catch 404 and return a custom html page.
One of my sub router dashboardRoutes use a custom plugin authRequired. I dont want this middleware to run on other sub router so i scoped dashboardRoutes but now on the whole application level my .onError() doesnt trigger for any route and i fallback to default NOT_FOUND error.
the only way to make this work again is to copy the .onError() on my dashboardRoutes elysia.
But this .onError() overwrite the global one.
I'm not sure if this is a bug or intended since scoped seems to indicate that "If set to true, other Elysia handler will not inherits global life-cycle, store, decorators from the current instance" but not "current instance will not inherit global life-cyle, etc..."
app/index.tsx
export const app = new Elysia()
	.use(html())
	.use(cookie())
	.use(routes)
	.get('/health', _ctx => 'ok');

app/routes/index
export const routes = new Elysia()
	.use(homeRoutes)
	.use(authRoutes)
	.use(dashboardRoutes)
	.onError(({code}) => {
		if (code === 'NOT_FOUND') {
			return new Response((<NotFoundError />).toString(), {
				headers: {
					'Content-type': 'text/html; charset=utf-8',
				},
				status: 404,
			});
		}
	});

app/routes/dashboard/index.tsx
export const dashboardRoutes = new Elysia({
	prefix: '/dashboard',
	scoped: true,
})
	.use(authRequired)
	.get('/', () => (
		<HtmlLayout title='Inscription - MatoScout'>
			<Container
				as='main'
				class='flex h-full max-w-md flex-col items-center justify-center gap-10 py-10'
			></Container>
		</HtmlLayout>
	))
	.onError(({code}) => {
		if (code === 'NOT_FOUND') {
			return new Response((
error
).toString(), {
				headers: {
					'Content-type': 'text/html; charset=utf-8',
				},
				status: 404,
			});
		}
	});

Thanks in advance

If anyone have the same problem i fix this by using .group() and removing scoped
export const routes = new Elysia()
	.group('/dashboard', app => app.use(dashboardRoutes))
	.group('/auth', app => app.use(authRoutes))
	.group('/', app => app.use(homeRoutes));


Some sample bootstrapping code would be helpful

What can we help you with?
I just want to bootstrap my client and make a request to list project details.
I have exported the AIVEN_TOKEN as environment variable so the following code works as expected

const userAgent = "just-me"

aivenClient, err := aiven.NewClient(aiven.DebugOpt(true), aiven.UserAgentOpt(userAgent))
	if err != nil {
		log.Fatal(err)
	}
	aivenProjectsListOut, err := aivenClient.ProjectList(ctx)
	if err != nil {
		log.Fatal(err)
	}

Now I want to list projects' details.
From what I understand, I must create a new (project) Handler via this function.
I was not able to find a way to create and/or initialize a doer (given that in the *client returned the field is unexported).
Where would you expect to find this information?
Either in README.md or within an examples folder.

Hey, @pantelis-karamolegkos! 👋
Thank you for bringing this up!
I do agree that some additional examples could benefit the project and expand its influence to other developers that might be interested in using it—I will introduce this topic to the relevant stakeholders.
For now, I can recommend taking a look at the following resources which are already available:

https://pkg.go.dev/github.com/aiven/go-client-codegen, explore this page, there are some useful things

Specifically, this page has some documentation on the available handlers

Check https://github.com/aiven/aiven-operator/pull/629 out to get some idea on the usage of the code generated client

From what I understand, I must create a new (project) Handler via this function.

No, this isn't needed. You can simply call the relevant method directly via the aivenClient that you have instantiated. Here's an example to retrieve the information on a specific project:
const userAgent = "just-me"

aivenClient, err := aiven.NewClient(aiven.DebugOpt(true), aiven.UserAgentOpt(userAgent))
if err != nil {
	log.Fatal(err)
}

aivenProjectGetOut, err := aivenClient.ProjectGet(ctx, "some-project-name")
if err != nil {
	log.Fatal(err)
}

log.Println(fmt.Sprintf("Organization ID: %s", aivenProjectGetOut.OrganizationId))

I hope my answer provides you with the information that you were looking for 🙂.
I will not be closing the issue and will update you once I have more information to share in regards to adding some examples to the project.

Thanks @Serpentiel 💪🏻
From my side I am good to go for closing this but overall yes, I agree it would be better if the project's docs/examples get enriched.

Hey again, @pantelis-karamolegkos! 👋
That's great to hear. I've just received some information from the relevant stakeholders in regards to expanding the Go client further as a product.
We will be working on more public documentation in the near future, including examples.
Thank you once again for your input, I will close the issue once we have some examples in place 🙌.

It looks like the README now has the correct instructions :)

It looks like the README now has the correct instructions :)

This issue was mostly dedicated to adding examples and usage docs for the Go client. The amount of docs in the README.md still isn't sufficient, IMO. But it's up to you to decide it now 🙂


Possible to specify framerate?

I am playing a raw h264 file back that does not contain the framerate.  Using ffmpeg I am able to override the framerate using the -framerate 60 to specify the rate.  Is it possible to pass in a parameter to do the same using the FFmpegInteropX library?

There is a way to pass ffmpeg options when creating the media stream source instance by setting them in the ffmpeginteropconfig instance.

Some of these parameters will only work on the CLI interface. I tried setting "framerate" in FFmpegOptions, but it had no effect on normal video files.
Can you upload a sample of your file?

@lukasf  I have attached a sample video... by default ffmpeg plays the video back at 25 fps which is actually too slow.  The actual framerate should be set to 60 and can be overridden using the framerate 60 command line option.
sample-video.zip

Thanks for the sample. It does not look like FFmpeg allows us to directly override the frame rate, even if the file does not have a frame rate itself. But I could extend our lib to allow frame rate override. Please check branch "framerate". It allows you to override the framerate in the VideoStreamInfo (this needs to be done before the PlaybackItem is created!). To try it, edit the C# sample and insert FFmpegMSS.CurrentVideoStream.FramesPerSecondOverride = 60.0 in OpenLocalFile() after creating the FFmpegMSS. Now the file will play at 60fps.
Is this a soultion that would work for you? Do you know the frame rate upfront?

Right, I know the framerate upfront so this approach will work well for this use case.  Thanks for the framerate branch, I tested your changes and they are working well so far. Really appreciate your help!

@lukasf your changes are working great, would it be possible to include this fix into an upcoming release? many thanks for your help.

Sure, I will create a PR to get this into the repo.

Hi @mrapitis, this is now available in the master branch.


Add support for embeding a glibc dependency in .AppImage

My velopack AppImage fails on Debian 12 with:
/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found
I don't think this is a velopack bug, but as it is allegedly possible to include glibc in an AppImage, I'm looking for a way to include it in the velopack-created one. The docs.velopack.io don't mention how.
Relevant discussion and proposed solution is to pack glibc:
https://discourse.appimage.org/t/specify-required-glibc-version-in-appimage/2413/5
https://github.com/AppImageCrafters/appimage-builder
But as velopack creates the appimage and not me, I'm not sure how to apply the suggestion.

Discord discussion on the topic: https://discord.com/channels/767856501477343282/1262930722046607451

The current suggestion is to use something like https://github.com/natanael-b/make-portable to create an AppDir with your dependencies pre-bundled. You can check this directory of dependencies (without your compiled app) into your source control, and dotnet publish your app into it during CI builds.


fix resource group does not report usage

Motivation
As described in PIP 82

Each broker will publish the current actual usage, as an absolute number, for each of the ResourceGroups that are currently having traffic, and for which the traffic has changed significantly since the last time it was reported (eg: ±10%).

By default setting the threshold is 5%.
But there is some mistake implementation, even when traffic had a large increase, usage report is not trigged.
Modifications
Fix mistake implementation
Verifying this change
This change added tests and can be verified as follows:
testNeedToReportLocalUsage()
Documentation

[x] no-need-doc
only bug fix

/pulsarbot run-failure-checks


Why another library?

Why did you all make a new library instead of improving the existing with this new indexing method/search algorithm/whatever?

Hi @avin-kavish, thanks for the question!
I believe it was answered here https://news.ycombinator.com/item?id=36696544 (please note, it was 30d ago and things are changing quite rapidly), let me post a quote from the answer here:

I think IVFFlat and HNSW are very different implementations. So we would be forcing a choice for a pgvector user of what index to use.
Our on disk path will require us to run a number of experiments with the storage format. We will move faster with a separate project.
Medium to long term we are very open to merge them.
https://github.com/pgvector/pgvector/pull/86 an example of why it's better to have our own project to move fast.


Added types of positioning to css position

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

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.

Hi @Gebec
It seems that similar changes have already been accepted earlier for this article you're editing, sorry about that. 😓
If you feel you have more to add, please feel free to open up a new PR.
Thanks again! 😊

If you have any questions, feel free to reach out through Gitter or by commenting below. 💬


Update tiny-slider.d.ts

Remove preventScrollOnTouch double occurence

@ganlanyuan do you have time to maintain this project ?

duplicate #602

+1 please merge #602


National Dex ID's are out

not sure if you want to touch this now or still wait for Home to get the update, but I just got an email from pokemon about there pokedex on there website being updated to show the new ones, and there there with national dex ID's. format of the site is kinda crap but if you just keep scrolling and loading more you can get to the new ones
https://www.pokemon.com/us/pokedex

Home update has been confirmed for May 24th.

The update is now out

merging into #490


resolves #1: Allow specifying custom logo URLs

Allows users to specify Logo and NavLogo URLs as provided by Rapidoc Slots feature.

Thanks. Nice feature.


Add verify option for nonce validation

I want to verify nonce value in jwt.
Then I found the following pull request.
https://github.com/auth0/node-jsonwebtoken/pull/344
But because tests and README have not been added, it has not yet been merged.
So I did add tests and README.

Kudos to @kazuki229 for adding tests!
I think there are a few additional tests that could be easily added. I will take a look this weekend and provide some direction to @kazuki229 .

@ziluvatar @MitMaro
I'm sorry too late.
I fixed the points pointed out, So please review again.:bow:

Thanks @kazuki229 !! Good job 👏 I'll create a minor version with this and some other patch changes that are on master.

Released on v8.4.0 🎉

@ziluvatar
Thank you for your quick response! :tada::tada:


video card design improved

video card design improved
***width problem solved
issue #456

Awesome stuff @devvsakib!!!


Fixed lambda

to: @airbnb/binaryalert-maintainers
cc:
size: small|medium|large
resolves #
Background
broken lambda
Changes
changed env variable and sns to have a conditional join
Testing
tested with and without safe enabled
tested with safe and unsafe files

Coverage decreased (-0.3%) to 92.196% when pulling 1287e5f0acfac8837fe11a6315421caef6a3686f on goochi1:master into 2ae91f0d487d0f30520a9b7f0d4f6dbb8b847e9d on airbnb:master.

@austinbyers  ok updates again :) tested on safe and unsafe files, got sns for both.
tested with enable safe and 1 and 0

So is this a replacement for #118 ? If so, can you close the other PR?
I'll be out for a few weeks, but I'll be sure to look at it when I get back! Excited to see this move forward

@austinbyers all close, let me know when you get back :) Thanks again

Hi @goochi1! Yep, I'm still working on some architectural changes, but since you just rebased, I'll go ahead and take a look today

Please tell me you tested it haha
Get Outlook for iOShttps://aka.ms/o0ukef

From: Austin Byers<EMAIL_ADDRESS>Sent: Tuesday, August 14, 2018 6:28:41 PM
To: airbnb/binaryalert
Cc: goochi1; Mention
Subject: Re: [airbnb/binaryalert] Fixed lambda (#125)
Hi @goochi1https://github.com/goochi1! Yep, I'm still working on some architectural changes, but since you just rebased, I'll go ahead and take a look today
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/airbnb/binaryalert/pull/125#issuecomment-412952189, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQuzPsV0x4ZIHeHatHxBA69NnMUfIP17ks5uQwjJgaJpZM4VAnoA.

@goochi1 yes, I did! It works as expected
Before we release v1.2, I'll probably tweak the formatting and language a bit (it's a "negative" alert, not necessarily a "safe" alert). I'll also work on updating the documentation and testing even more rigorously

Of course!! Thanks for approving it!!! Really happy and glad it could help someone else.
Also thanks for your support with it all :)
If you are ever thinking about leaving bnb let me know, I work at KPMG and would love to have you in the team!
Steph
Get Outlook for iOShttps://aka.ms/o0ukef

From: Austin Byers<EMAIL_ADDRESS>Sent: Wednesday, August 15, 2018 9:55:40 PM
To: airbnb/binaryalert
Cc: goochi1; Mention
Subject: Re: [airbnb/binaryalert] Add support for sending SNS alerts if no YARA rules matched (#125)
@goochi1https://github.com/goochi1 yes, I did! It works as expected
Before we release v1.2, I'll probably tweak the formatting and language a bit (it's a "negative" alert, not necessarily a "safe" alert). I'll also work on updating the documentation and testing even more rigorously
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/airbnb/binaryalert/pull/125#issuecomment-413333513, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQuzPgH9PAIx_AS2QC1_RgFwJ8Hoy_C7ks5uRIrMgaJpZM4VAnoA.


feature: Deployment wit Procfile

//routes
app.use("/api/email", require("./routes/email.js"));
app.use("/api/login", require("./routes/login.js"));
app.use("/api/register", require("./routes/register.js"));
app.use("/api/refreshtoken", refreshToken);
app.use("/api/users", require("./routes/users.js"));
app.use("*", (req, res) => {
  res.status(404).json({ message: "Not Found" });
});

can you also add to img-src this line please:
"res.cloudinary.com",

not understand much about the fetch links but i changed them to smth like  ${window.location.origin}/api/login/.
can you change them please?

not understand much about the fetch links but i changed them to smth like ${window.location.origin}/api/login/. can you change them please?

how you did it looks good! we will just have to make sure once all the must-haves are merged that it is changed everywhere where there is a fetch request in the frontend

the only thing with changing the window.location, that it is not going to work locally afterwards (locally we have 2 different servers, but on Heroku we just use 1)..unless everyone starts to run the app in a different way..which may not happen 🙂 so maybe try deploying the deploy branch to see that it works..but now do it for dev yet


fix: i18n tweaks

Pull Request

Description

Changed RelicStatText to have consistent line height for text alignment
Updated label for Korean in language selector
Updated the Character and LC selection to sort by translated name
Changed advanced combo panel to show translation for relic / ornament conditional options
Added japanese to language options on non-beta

Related Issue

Checklist

[x] I have added commit messages that are descriptive and meaningful.
[x] I have tested the changes locally.
[x] I have reviewed the code changes.

Screenshots

RelicStatText change

ko label change

Character and LC selection change

Advanced combo panel change

Updating CN eidolon selector


the

Mod source
Factorio Mod Portal
Operating system

=Windows 10

What kind of issue is this?

[ ] Compatibility
[ ] Locale (names, descriptions, unknown keys)
[ ] Graphical
[ ] Crash
[X] Progression
[ ] Balance
[ ] Pypostprocessing failure
[X] Other

What is the problem?
once the aromatic hydrocarbon get into the tailing pond, it can't get out anyway, even with a pump. meanwhile, all the other fluid seems working correctly, such as tar and creosote
Steps to reproduce
No response
Additional context

Log file
No response

I‘m extremely sure this is not a base game issue, please have a check

Thank you for clarifying, my mistake. Please use the original issue #707


Normalize footer appearance on /support

Something about the CSS on /support is making the footer text too big.

Footer on the rest of the site

Footer on /support pages

This gets resolved in the redesign. It's not worth the effort now.


Icons not working properly

Showing ? (Question marks)

Any idea?

I also have this issue

Was the problem unpatched fonts?

@phanib have you followed the instructions in the README about patching your fonts? https://github.com/milkbikis/powerline-shell#setup

@ryanoasis I just set Meslo font to iTerm

Was having the same problem - question marks. I have powerline-shell on remote system A and B, and powerline fonts installed locally on MAC. System B looks fine, System A shows the question marks.
Turns out I dnd't have the correct locale settings, can test it with this:
echo -e "\xE2\x98\xA0"
adding the following to /etc/environment fixed for me (log out/back in afterwards)
export LANG=en_US.UTF-8 (or applicable UTF-8 encoding)

I had the same problem, setting Meslo Powerline font as iTerm font solved the problem, thanks @Junus

@Janus @dulgan :+1:
I think this can be closed, however maybe a FAQ can start being built to help out. I wasn't able to find anything on the repo regarding UTF-8.

If you're using iTerm2 make sure to change both the Regular Font and Non-ASCII Font to a powerline font.

@webbj74 Nice thanks.
Started a FAQ here

Nice! Thanks As soon as I changed my machine's iTerm2 fonts to a powerline font it worked, as mentioned by webbj74 above!

I think this can be closed

Thanks for the FAQ @ryanoasis - I just added a link to it in the README

Ok, I had this issue using my macOs terminal sshing to a server. I read here and there that installing  Meslo font would resolve the issue, nobody explaining what it means. Well, from here I learned how it is done:

Download the Meslo font from here by selecting the View Raw
install it by just simply opening and clicking on install...
Follow these instructions to select your terminal's font to Meslo.

That's it. your problem should be solved now!


Sometimes can't configure Inventory Tags for items with payments

When this plugin is on, and you enable Configure Inventory Tags from the Inventory Tags plugin, items with payments keep their regular right-click menu, rather than switching to the Configure Tags menu.
https://user-images.githubusercontent.com/7504779/104892280-e9918b80-5969-11eb-9590-184b1cc0f459.mp4
I can't get this to break consistently on purpose, but in the last few days of farming each time I went to tag/untag a seed it was doing this.
If I find a way to reproduce this reliably I will update this issue

Thanks for the heads up. Like you mentioned, the bug is inconsistent and I was only able to reproduce it a couple times myself. I think the issue stems from when onMenuOpened is called in both plugins. The Patch Payment's implementation was taking longer to process, thus overwriting the Inventory Tags'. I added an extra check before setting the menu options to see if they have changed to the Inventory Tag options since being sent the initial MenuOpened event. It seemed to work but I'll keep this issue open in case it happens again

Thanks for the heads up. Like you mentioned, the bug is inconsistent and I was only able to reproduce it a couple times myself. I think the issue stems from when onMenuOpened is called in both plugins. The Patch Payment's implementation was taking longer to process, thus overwriting the Inventory Tags'. I added an extra check before setting the menu options to see if they have changed to the Inventory Tag options since being sent the initial MenuOpened event. It seemed to work but I'll keep this issue open in case it happens again


New version: Cisco.CiscoWebexMeetings version <IP_ADDRESS>

[X] Have you signed the Contributor License Agreement?
[X] Have you checked that there aren't other open pull requests for the same manifest update/change?

[X] Does your manifest conform to the 1.0 schema?

Microsoft Reviewers: Open in CodeFlow

This package when installed silently:

Upgrade does not work, must use install.
Adds browser extension (should be disabled as default behavior if possible IMO).
Starts after successfull install.

upgrade does not work, must use install.

PS M:\> winget install Cisco.CiscoWebexMeetings -v <IP_ADDRESS>
Found Cisco Webex Meetings [Cisco.CiscoWebexMeetings] Version <IP_ADDRESS>
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://akamaicdn.webex.com/client/WBXclient-42.1.3-19/webexapp.msi
  ██████████████████████████████   151 MB /  151 MB
Successfully verified installer hash
Starting package install...
Successfully installed

PS M:\> winget upgrade Cisco.CiscoWebexMeetings
Found Cisco Webex Meetings [Cisco.CiscoWebexMeetings] Version <IP_ADDRESS>
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://akamaicdn.webex.com/client/WBXclient-42.2.2-33/webexapp.msi
  ██████████████████████████████   159 MB /  159 MB
Successfully verified installer hash
Starting package install...
Successfully installed

PS M:\> winget list
Name                                        Id                                                  Version           Source
-------------------------------------------------------------------------------------------------------------------------
Cisco Webex Meetings                        Cisco.CiscoWebexMeetings                            <IP_ADDRESS>         winget

Works like a charm

Starts after successfull install.

PS M:\> winget install Cisco.CiscoWebexMeetings --silent
Found Cisco Webex Meetings [Cisco.CiscoWebexMeetings] Version <IP_ADDRESS>
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://akamaicdn.webex.com/client/WBXclient-42.2.2-33/webexapp.msi
  ██████████████████████████████   159 MB /  159 MB
Successfully verified installer hash
Starting package install...
Successfully installed

use the --silent switch to specify completely silent

Adds browser extension (should be disabled as default behavior if possible IMO).

There is no button for this setting in the interactive installer, and the webpage you linked does not say anything about the extension

@OfficialEsco
Hmm. What winget version and OS?
I used "--silent" both when "upgrade" failed, and when "install" opened the app afterwards.
Will try to reproduce and give you the details.

Hmm. What winget version and OS?

winget 1.2.3411-preview and Windows 11 22000.493

I used "--silent" both when "upgrade" failed, and when "install" opened the app afterwards.
Will try to reproduce and give you the details.

Check the logs at %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir + the ExitCode would be nice to know

2022-02-09 10:24:35.461 [CLI ] Installer [X64,Wix,Machine,] not applicable: Installer scope does not matched currently installed scope: Machine != User

Edit: What's probably relevant here is that I installed webex from a web meeting I was joining into. Which probably installs in SYSTEM context. While this one is USER context.

Probably not the best explanation but its the other way around, it says winget found a machine wide installer but the installed package is installed for current user


WeMo LED Light / WeMo Link

Unfortunately it seems these (and other new wemo devices) are not yet supported.
It would be great to have ouimeaux be able to interact with the new WeMo LED Lights by using the Link much as I assume the wemo app communicates to them.

Any closer to making this work?

Yes. I am close. Hopefully will submit a pull request soon.

@iancmcc , @ghctim , @mrose17 ,
Thanks to the documentation of @jescarri and @hardillb , I have gotten basic support implemented on my fork... Next I need to work on adding support for the web server, testing, and docs before submitting a pull request. Feel free to check it out and make suggestions etc... I'm sure there is a better way this could have been done but I'm just happy I finally have Python API and CLI support!

@fritz-fritz
The fork you mentioned above should be able to control the wemo bridge with led bulbs on it? I think that's what you are saying you are working on, but wanting to confirm. I've played around a bit with your fork and can't seem to get my wemo bulb bridge detected. Any pointers you might have for me looking to play around with controlling these led bulbs?

@afm497
Yes my fork should currently work for controlling Wemo LED bulbs through the bridge. At least for command line and Python usage. The REST API and web app are not yet supported.
I have yet to add documentation and other features. I have not tested or planned for bulbs that are grouped so that may be part of the problem you are having? Also try clearing your cache and then scanning again to see if it picks them up. Good luck!

@fritz-fritz
works perfect. thanks very much for that, very useful. If it's of interest, the bridge/bulbs combo that I have locally had differrent light attributes that what was defined in ouimeaux.device.bridge
Spefically, there was no information in my setup for "manufacturer', 'model', and 'certified'

Support added with #75

This is in release 0.7.9 pretty much as-is. Thanks for all your work. Plan is to add server support and device events similar to switches in 0.8.

I've been adding some Osram lightify bulbs to my Wemo Link. They work well but the WeMo Android app doesn't support Colours or Colour Temperature changes (despite showing it in the screen shots). I've been poking round to find the capabilities used to set these values and I've found that you can get the WeMo link to give you a list of all the ones it knows about and a description of the fields.
I've dumped the list here: https://gist.github.com/hardillb/ec88e86597d65584b1ba
Hope that helps you guys, My Node.js module is coming along nicely and I should have a nice Node-RED module based on it as well.

@hardillb Thanks so much for all the work you do! I definitely was using your previous gists as a starting point. Currently I'm working on adding Link/LED support to homebridge. If I had color bulbs I would definitely take a look. I'm sure it will be helpful to others!


Button is disappeared in mobile view

Description
Hi,
We have been told that the checkout button is disappeared in mobile browser. (including responsive design mode) whilst it works fine in desktop browser such as chrome, firefox and IE.
We are not so sure if it's user side issue or product issue, haven't found the root cause yet.
Please provide a short description of the issue here, along with:

Screenshot

Desktop view (work fine)

Movile view (missing button)

Your code

The paypal.version from your browser console
4.0.173

The exact browser version
Chrome: Version 63.0.3239.132 (Official Build) (32-bit)
Edge: 38.14393.1066.0
Firefox: 57.0.4 (64-bit)

A link to your page with the issue, if possible
https://www.play-asia.com/rilakkuma-plush-tote-bag-rilakkuma/13/709i11

All console logs during the time of the issue, especially error messages

ppxo_xc_ppbutton_error {error: "Error: No handler found for post message: xcompone…://www.paypalobjects.com/api/checkout.js:3080:13)", timestamp:<PHONE_NUMBER>344, windowID: "347f4817ab", pageID: "f5bd7c116c", prev_corr_ids: "", …}

Error: No handler found for post message: xcomponent_init from https://www.paypal.com in https://www.play-asia.com/rilakkuma-plush-tote-bag-rilakkuma/13/709i11
at https://www.paypalobjects.com/api/checkout.js:3129:37
at Function.ZalgoPromise.try (https://www.paypalobjects.com/api/checkout.js:9080:37)
at Object._RECEIVE_MESSAGE_TYPE.(anonymous function) [as postrobot_message_request] (https://www.paypalobjects.com/api/checkout.js:3128:70)
at receiveMessage (https://www.paypalobjects.com/api/checkout.js:3059:77)
at messageListener (https://www.paypalobjects.com/api/checkout.js:3080:13)
at Object._RECEIVE_MESSAGE_TYPE.(anonymous function) [as postrobot_message_response] (https://www.paypalobjects.com/api/checkout.js:3160:122)
at receiveMessage (https://www.paypalobjects.com/api/checkout.js:3059:77)
at messageListener (https://www.paypalobjects.com/api/checkout.js:3080:13)

[post-robot] iframe :: www.paypal.com/webapps/hermes/button

 #receive response :: xcomponent_init :: https://www.play-asia.com

{hash: "xcomponent_init_577d3d5ca2", name: "xcomponent_init", type: "postrobot_message_response", ack: "error", error: "No handler found for post message: xcomponent_init…://www.paypalobjects.com/api/checkout.js:3080:13)", …}

Uncaught Error: No handler found for post message: xcomponent_error from https://www.paypal.com in https://www.play-asia.com/rilakkuma-plush-tote-bag-rilakkuma/13/709i11
at https://www.paypalobjects.com/api/checkout.js:3129:37
at Function.ZalgoPromise.try (https://www.paypalobjects.com/api/checkout.js:9080:37)
at Object._RECEIVE_MESSAGE_TYPE.(anonymous function) [as postrobot_message_request] (https://www.paypalobjects.com/api/checkout.js:3128:70)
at receiveMessage (https://www.paypalobjects.com/api/checkout.js:3059:77)
at messageListener (https://www.paypalobjects.com/api/checkout.js:3080:13)
at https://www.paypalobjects.com/api/checkout.js:3129:37
at Function.ZalgoPromise.try (https://www.paypalobjects.com/api/checkout.js:9080:37)
at Object._RECEIVE_MESSAGE_TYPE.(anonymous function) [as postrobot_message_request] (https://www.paypalobjects.com/api/checkout.js:3128:70)
at receiveMessage (https://www.paypalobjects.com/api/checkout.js:3059:77)
at messageListener (https://www.paypalobjects.com/api/checkout.js:3080:13)
at Object._RECEIVE_MESSAGE_TYPE.(anonymous function) [as postrobot_message_response] (https://www.paypalobjects.com/api/checkout.js:3160:122)
at receiveMessage (https://www.paypalobjects.com/api/checkout.js:3059:77)
at messageListener (https://www.paypalobjects.com/api/checkout.js:3080:13)

Does the issue also occur at developer.paypal.com/demo/checkout?
The button is appeared

Does the issue occur consistently, or intermittently?
consistently

Steps to reproduce

Visit the homepage - https://www.play-asia.com
Click any item
Change the resolution of the browser (less than 760px width).  Please help.


Adds alerts for the current way messages work

It's probably uhhh not that well, but for temporary it's a good idea I guess.
Would be also a funny experimental thing on how it will get used, since you can actually do subtitles with it, which is going to be interesting.
An URL could be index.html?channel=icdb&notifications&fontsize=30px
has these parameters:
width, fontsize, redeemercolor, contentcolor and notifications

Will be added in https://github.com/icecreamdatabase/website/pull/7 instead.


Crawler: Authentication : allow web form authentication

The crawler should crawl the webpages with form authentication.

+1


How to use 'settingsToggleClassName'

As settingsToggleClassName requires string input.
I am implementing this in the following way
    let griddleBtnStyle = {
      background: 'red'
    };

and using this style in here
  <Griddle
          useGriddleStyles={false}
          results={this.getGriddleData()}
          resultsPerPage={10}
          tableClassName='table'
          showFilter={true}
          settingsText={''}
          settingsToggleClassName='griddleBtnStyle'
          settingsIconComponent={
            <RaisedButton
              label='Columns'
              primary={true}
            />}
          showSettings={true}
        />

No Although settings button having this class griddleBtnStyle - But no changes occured when I implemented in this way.As per eg here button should be red but none has occred.
<button type="button" class="griddleBtnStyle">
Can you tell me the right way to implement settingToggleClassName

This was incorrect implementation. What was required is to use a css class name within settingsToggleClassName and not a variable name


Support single threaded strategy for sending extrinsics

Current implementation uses thread/connection per extrinsic strategy, i.e. src/std/rpc/ws_client/client.rs. Please, support a single threaded strategy as well (or provide some easy method allowing to customize this behavior). We were trying to use this library for some flooding and benchmarking scenarios, but our nodes were overwhelmed by the number of connections spawned by it.

This has been solved in #262 as good as we can with the current libraries.


Treesitter integration

Continued from #27
Basic support (syntax, folding)

✅ https://github.com/nvim-treesitter/nvim-treesitter
✅ Debugging: https://github.com/nvim-treesitter/playground
Note: Treesitter's syntax highlight overrides existing python syntax, which is annoying It should also replace semshi (since most use cases are covered). It also breaks some other plugins that rely on highlight groups (e.g. vim-autoimport) because synID cannot retrieve dynamic highlights. When TS is enabled, old vim regex highlights should be avoided (they usually don't work together nicely).

Some cool plugins powered by treesitter
See https://github.com/nvim-treesitter/nvim-treesitter/wiki/Extra-modules-and-plugins for a comprehensive list

https://github.com/romgrk/nvim-treesitter-context  (replaces context.nvim)
https://github.com/nvim-treesitter/nvim-treesitter-refactor
https://github.com/nvim-treesitter/nvim-treesitter-textobjects
https://github.com/RRethy/nvim-treesitter-endwise   (automatically inserts end)
https://github.com/RRethy/nvim-treesitter-textsubjects  (smart subjects)
https://github.com/windwp/nvim-autopairs (autopair)
https://github.com/windwp/nvim-ts-autotag  (automatically inserts end HTML tag)
https://github.com/andymass/vim-matchup/ (enhanced %)
https://github.com/haringsrob/nvim_context_vt

To make (some) treesitter modules work properly with up-to-date parse tree as text change, either playground-highlight module needs to be enabled or some workaround like ec2f252 is needed, when one doesn't want to use playground's highlight/syntax feature yet.

Improved python folding -- the whole function/class is now foldable, rather than its body only (which should also be fixed in the upstream soon).

Some issues with treesitter highlights (for lua): embedded vimscripts vim.cmd [[ ... ]] are highlighted as @string:

Most of core filetypes (lua, cpp, vim, rust, etc.) now use treesitter highlights (see be7102e). See individual filetype plugins.
Automatic parser installation and error recovery utils are added.

Closing as done. Configurations for advanced plugins will be added in the next steps.


[Runtime DS] Needs to provide capability to import yaml type API Definition

Description:
Needs to provide capability to import yaml type API Definition. Currently it gives 500 internal server error.

import yaml type already supported and viewing them were fixed here: https://github.com/wso2/apk/issues/1007


Adding CNI-Genie

Pre-submission checklist:
Please check each of these after submitting your pull request:

[ ] Are you only including a repo_url if your project is 100% open source? If so, you need to pick the single best GitHub repository for your project, not a GitHub organization.
[ ] Is your project closed source or, if it is open source, does your project have at least 300 GitHub stars?
[ ] Have you picked the single best (existing) category for your project?
[ ] Does it follow the other guidelines from the new entries section?
[ ] Have you included a URL for your SVG or added it to hosted_logos and referenced it there?
[ ] Does your logo clearly state the name of the project/product and follow the other logo guidelines?
[ ] Does your project/product name match the text on the logo?
[ ] Have you verified that the Crunchbase data for your organization is correct (including headquarters and LinkedIn)?
[ ] ~15 minutes after opening the pull request, the CNCF-Bot will post the URL for your staging server. Have you confirmed that it looks good to you and then added a comment to the PR saying "LGTM"?

Build failed because of:
No cached entry, and CNI-Genie has issues with logo: cncf-logo.svg, ENOENT: no such file or directory, open '/opt/build/repo/hosted_logos/cncf-logo.svg'

Deploy preview for landscape failed.
Built with commit 8011d9c61b3f9fd419879686ac750d098b6f4715
https://app.netlify.com/sites/landscape/deploys/5f04dd826d3253000747d8a3

Build failed because of:
No cached entry, and CNI-Genie has issues with logo: https://raw.githubusercontent.com/cncf/artwork/raw/master/other/cncf/icon/color/cncf-icon-color.svg, 404 - {"type":"Buffer","data":[52,48,52,58,32,78,111,116,32,70,111,117,110,100]}

Build failed because of:
No cached entry, and CNI-Genie has issues with logo: https://raw.githubusercontent.com/cncf/artwork/raw/master/other/cncf/icon/color/cncf-icon-color.svg, 404 - {"type":"Buffer","data":[52,48,52,58,32,78,111,116,32,70,111,117,110,100]}

LGTM


Animated GIFs

Make the AltImage picture a list of pictures. Cximage can already load the frames. Note that frame-delay is in ms in a gif.

Mostly done. Uses the main picture list. It can load multipart (animated) gifs.
ToDo:

Play control for any multipart image.
Override frame duration for gifs. May need manual frame duration for exr files anyways.
display pixel format name and bits per pixel instead of bitdepth in details popup?
default to playing if multipart file is a gif (but not otherwise)

Completed.


Sequence analysis workflows tools

added tools, workflows

@polkhe please have a look at my modification for further contributions.
Thanks a bunch!


getEditsForRefactor failed: Cannot read property 'externalModuleIndicator' of undefined

TypeScript Version:  2.6.1-insiders.20171019
Bug
I'm seeing this error thrown while trying to extract some code to a method:
[Error  - 4:09:15 PM] 'getEditsForRefactor' request failed with error.
Error processing request. Cannot read property 'externalModuleIndicator' of undefined
TypeError: Cannot read property 'externalModuleIndicator' of undefined
    at Object.isExternalModule (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:12466:20)
    at /Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:21856:101
    at Object.forEachEntry (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:2044:26)
    at trySymbolTable (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:21852:27)
    at getAccessibleSymbolChainFromSymbolTable (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:21832:30)
    at forEachSymbolTableInScope (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:21817:20)
    at getAccessibleSymbolChain (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:21827:20)
    at getSymbolChain (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22543:49)
    at symbolToName (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22508:29)
    at symbolToTypeReferenceName (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22276:103)
    at typeReferenceToTypeNode (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22331:46)
    at typeToTypeNodeHelper (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22151:28)
    at typeReferenceToTypeNode (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22286:43)
    at typeToTypeNodeHelper (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22151:28)
    at Object.typeToTypeNode (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:22059:41)
    at /Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:77965:44
    at Map.forEach (native)
    at extractFunctionInScope (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:77960:31)
    at getFunctionExtractionAtIndex (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:77834:24)
    at Object.getEditsForAction (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:77538:28)
    at Object.getEditsForRefactor (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:74989:41)
    at Object.getEditsForRefactor (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:80201:32)
    at IOSession.Session.getEditsForRefactor (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:86457:59)
    at Session.handlers.ts.createMapFromTemplate._a.(anonymous function) (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:85418:61)
    at /Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:86645:88
    at IOSession.Session.executeWithRequestId (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:86636:28)
    at IOSession.Session.executeCommand (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:86645:33)
    at IOSession.Session.onMessage (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:86665:35)
    at Interface.<anonymous> (/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js:87857:27)
    at emitOne (events.js:96:13)
    at Interface.emit (events.js:191:7)
    at Interface._onLine (readline.js:241:10)
    at Interface._normalWrite (readline.js:384:12)
    at Socket.ondata (readline.js:101:10)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:191:7)
    at readableAddChunk (_stream_readable.js:178:18)
    at Socket.Readable.push (_stream_readable.js:136:10)
    at Pipe.onread (net.js:560:20)

I'll try to come up with a small repo. Right now I've only see this while working in the vscode codebase

@amcasey can you take a look.

That stack appears to indicate that some node lacks a containing SourceFile.  Normally, I would assume that I'd passed a synthesized node somewhere I shouldn't have, but (a) the refactoring is calling typeToTypeNode (i.e. I'm passing a Type) and (b) this only happens some of the time.
A repro would be very helpful.

Here's a project that reproduces this:
test-workspace.zip
To repo:

Run npm install
Open in vscode
In index.ts, select the entire line   const notification = req.body.payload ? JSON.parse(req.body.payload) : req.body; and try to extract to function in module scope

This example appears to be fixed in typescript@next

fd8980830ca35f07d838de5457504b95e6974d3c hides the failure.  I'll debug without it.

extractFunctionInScope is passing a synthesized block to checker.typeToTypeNode.

Probably just copy-paste - every other call passes scope.

I'm confident in my local fix, but it'll take me a little while to come up with a standalone repro (i.e. not tonight :wink:).


provider-local: failed to create snapstore from configured storage provider: mkdir : operation not permitted

How to categorize this issue?

/area dev-productivity
/kind bug
What happened:
I am following https://github.com/gardener/gardener/blob/master/docs/development/getting_started_locally.md.
I created a local Shoot:
% kubectl create -f example/provider-local/shoot.yaml

The creation is stuck waiting etcd-main pod to come up:
    lastErrors:
    - description: "task \"Waiting until main and event etcd report readiness\" failed:
        1 error occurred:\n\t* Error while waiting for Etcd shoot--local--local/etcd-main
        to become ready: retry failed with context deadline exceeded, last error:
        not enough ready replicas (0/1)\n\n"
      lastUpdateTime: "2022-12-19T12:43:08Z"
      taskID: Waiting until main and event etcd report readines

% k -n shoot--local--local get po
NAME            READY   STATUS    RESTARTS   AGE
etcd-events-0   2/2     Running   0          27m
etcd-main-0     1/2     Running   0          6m8s

% k -n shoot--local--local logs etcd-main-0 backup-restore

time="2022-12-19T12:46:39Z" level=error msg="Failed initialization: error while restoring corrupt data: failed to create snapstore from configured storage provider: mkdir 59eb917e-0551-4654-ac02-69c3086be3c7/shoot--local--local--29262d84-5dd4-426b-aa9a-e97fee14dbe9: operation not permitted" actor=backup-restore-server
time="2022-12-19T12:46:39Z" level=info msg="Responding to status request with: Failed" actor=backup-restore-server
time="2022-12-19T12:46:39Z" level=info msg="Updating status from Failed to New" actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Responding to status request with: New" actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Received start initialization request." actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Updating status from New to Progress" actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Setting status to : 503" actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Validation failBelowRevision: " actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Validation mode: full" actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=error msg="Failed initialization: error while restoring corrupt data: failed to create snapstore from configured storage provider: mkdir 59eb917e-0551-4654-ac02-69c3086be3c7/shoot--local--local--29262d84-5dd4-426b-aa9a-e97fee14dbe9: operation not permitted" actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Responding to status request with: Failed" actor=backup-restore-server
time="2022-12-19T12:46:40Z" level=info msg="Updating status from Failed to New" actor=backup-restore-server

What you expected to happen:
No such issues.
How to reproduce it (as minimally and precisely as possible):
See above.
Anything else we need to know?:
@plkokanov reported that he also hits this issue and it appeared after https://github.com/gardener/gardener/pull/6939 for him (cc @vpnachev).
Environment:

Gardener version: 44c7c5613ed79a618900a5bfacd3d812224fb3e1
Kubernetes version (use kubectl version):
Cloud provider or hardware configuration:
Others:

Also just hit the same issue (Docker-for-mac 4.15, grpc-Fuse file sharing)
TLDR; I updated Docker-for-Mac to the latest version 4.15 and tried all different hostpath sharing options in Docker-for-mac (grpc-Fuse, VirtioFS, osxfs) but the issue persists.
I can reproduce the same behavior of the backup-and-restore  process, namely that running as root user in the mount ns of the container, I do not have the permission to create a directory under the bind-mounted directory bb7ec114-db2b-46da-897a-b1a0d3026031/....
What I have not checked yet

Bind propagation for volumes  in docker-for-mac
seccomp

Things that I checked without success
time="2023-01-05T09:11:08Z" level=info msg="Temporary directory /var/etcd/data/temp does not exist. Creating it..."
time="2023-01-05T09:11:08Z" level=error msg="Failed initialization: error while restoring corrupt data: failed to create snapstore from configured storage provider: mkdir bb7ec114-db2b-46da-897a-b1a0d3026031/shoot--local--local--78f80c60-69e4-4f66-81b1-8b59fdf9a064: operation not permitted" actor=backup-restore-server

The directory ls /proc/1797638/root/var/etcd/data/temp/ in the mount namespace of the etcd-backup restored got created successfully.
But the snapstore directory was indeed not created
ls /proc/1797638/root/bb7ec114-db2b-46da-897a-b1a0d3026031/ -la
total 4
drwxr-xr-x 2 root root   64 Jan  3 09:41 .
drwxr-xr-x 1 root root 4096 Jan  5 09:11 ..

The snapstore tries to create the directory with permission 700, see here, which is the same permission as for the tmp directory (see here)
The permissions on the rootfs for the backup-restore

notice that the tmp directory has different permissions, where anyone can rwx, but the bb.. directory has 0755/drwxr-xr-x only allowing the owner to write
the bb.. directory has already been created two days prior to attempted shoot creation

$ ls -la
drwxr-xr-x   2 root root   64 Jan  3 09:41 bb7ec114-db2b-46da-897a-b1a0d3026031
drwxrwxrwt   2 root root 4096 Aug  9 08:58 tmp

I can reproduce the same permission problem trying to create the snapstore directory when in the etcd-backup-restore's mount ns

note that the backup-restore process runs as root user

etcd-main-0:/# mkdir bb7ec114-db2b-46da-897a-b1a0d3026031/shoot--local--local--78f80c60-69e4-4f66-81b1-8b59fdf9a064
mkdir: can't create directory 'bb7ec114-db2b-46da-897a-b1a0d3026031/shoot--local--local--78f80c60-69e4-4f66-81b1-8b59fdf9a064': Operation not permitted

Now the question is, why the root user cannot create a directory in a directory marked as owned by root.

see that the rootfs is mounted from a containerd snapshot as rw
interestingly, there is a FUSE fs mounted for the /bb7ec114-db2b-46da-897a-b1a0d3026031 directory, but mounted also rw

etcd-main-0:/# mount
overlay on / type overlay (rw,relatime,lowerdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/350/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/349/fs:/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/342/fs,upperdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/351/fs,workdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/351/work)
grpcfuse on /bb7ec114-db2b-46da-897a-b1a0d3026031 type fuse.grpcfuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=1048576)

That makes sense, my docker desktop uses grpcFuse for filesharing with the host

Note the volume mounts for the etcd-backup-restore pod
volumeMounts:
// this is our FUSE mounted directory
 168   │     - mountPath: bb7ec114-db2b-46da-897a-b1a0d3026031
 169   │       name: host-storage

Hence, the directory /etc/gardener/local-backupbuckets/ is bind-mounted from the Docker VM into the container.
- hostPath:
 225   │       path: /etc/gardener/local-backupbuckets/bb7ec114-db2b-46da-897a-b1a0d3026031
 226   │       type: Directory
 227   │     name: host-storage

The directory on the VM's fs shows that it is mounted with grpcFuse.
$mount
grpcfuse on /etc/gardener/local-backupbuckets type fuse.grpcfuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=1048576)

On my local machine, the backup bucket directory is created by the local provider-extension running as a root process (see here)
The kind cluster used for the local setup is then configured to mount the path ./dev/local-backupbuckets into the docker desktop VM at /etc/gardener/local-backupbuckets, see here.
Reverting to osxfs and updating DOcker-for-mac to 4.15
The Kind documentation states

NOTE: If you are using Docker for Mac or Windows check that the hostPath is included in the Preferences -> Resources -> File Sharing.

So that's what I did, I allowed

/Users//go/src/github.com/gardener/gardener/dev/local-registry
/Users//go/src/github.com/gardener/gardener/dev/local-backupbuckets
/Users//go/src/github.com/gardener/gardener/example/gardener-local/controlplane

However, it still did not work  (permission denied when creating the directory under the grpc-fuse mounted directory)

after a restart of docker-for-desktop
after recreation of the kind cluster (seems to be a permanent problem)

Changing to VirtioFS available in docker 4.15 caused my docker-for-mac to not start any more when host path sharing is enabled like above.
I switched back to osxfs host path sharing + allowed the above mentioned host paths.
As expected, the mount in the counter looks like this:
osxfs on /baa84810-1fb6-49c0-ae29-c5c8a137e5b2 type fuse.osxfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,max_read=1048576)

However, again the below command  fails & so does the backup-and-restore
mkdir baa84810-1fb6-49c0-ae29-c5c8a137e5b2/shoot--local--local--25f779c5-ec14-4151-9dfa-142661f14509:

Result: the permission of the directory on my local machines are incorrect and have been changed from 0775 to 0751 not allowing the osxfs process (FUSE) to write to the directory. Hence, all operations on the mounted bucket directory  from within the VM got a permission error.
Further
Creating a file in the sibling directory of the mounted directory from the host works and is visible from my local machine filesystem. However, from within the container, the permission is denied.
// creates a file on my local filesystem
echo "hi" > /etc/gardener/local-backupbuckets/gago.txt

 //Permission denied
echo "hi" > /etc/gardener/local-backupbuckets/baa84810-1fb6-49c0-ae29-c5c8a137e5b2/gago.txt

// creating a new backup-bucket directory works
mkdir  /etc/gardener/local-backupbuckets/new_bucket

// creating a new file in the new backupbucket directory also works
echo "hi" > /etc/gardener/local-backupbuckets/new_bucket/gago.txt

Permission wise, my new bucket directory looks identical to the actual bucket directory baa84810-1fb6-49c0-ae29-c5c8a137e5b2

so that hints at a problem on my local machine rather than in the VM

root@gardener-local-control-plane:/# stat  /etc/gardener/local-backupbuckets/new_bucket
  File: /etc/gardener/local-backupbuckets/gago
  Size: 96        	Blocks: 0          IO Block: 4096   directory
Device: 90h/144d	Inode: 314240223   Links: 3
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-01-06 08:40:28.000000000 +0000
Modify: 2023-01-06 08:40:23.000000000 +0000
Change: 2023-01-06 08:40:23.000000000 +0000
 Birth: -

root@gardener-local-control-plane:/# stat  /etc/gardener/local-backupbuckets/baa84810-1fb6-49c0-ae29-c5c8a137e5b2/
  File: /etc/gardener/local-backupbuckets/baa84810-1fb6-49c0-ae29-c5c8a137e5b2/
  Size: 64        	Blocks: 0          IO Block: 4096   directory
Device: 90h/144d	Inode: 314050651   Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-01-05 15:10:10.000000000 +0000
Modify: 2023-01-05 15:10:10.000000000 +0000
Change: 2023-01-05 15:10:10.000000000 +0000
 Birth: -

Well,  my privileged user on OSX is also not allowed to write to the local backupbucket directory
echo "hello" > dev/local-backupbuckets/baa84810-1fb6-49c0-ae29-c5c8a137e5b2/hello.txt
zsh: permission denied: dev/local-backupbuckets/baa84810-1fb6-49c0-ae29-c5c8a137e5b2/hello.txt

checking the directories permission reveals that my privileged user did not create the directory, but the root user. That makes sense, as the make start-local-provider script starts the golang process with  sudo.
Writing to the local backup-bucket directory as root in OSX works.

the file is also propagated to the VM's root fs as well as in the containers bind-mounted directory

bash-5.0# whoami
root
bash-5.0# echo "hello" > dev/local-backupbuckets/baa84810-1fb6-49c0-ae29-c5c8a137e5b2/hello.txt

Turns out the permission on that directory is 0751 or rwxr-xr-x, created by user root in group staff. Hence, only the owner can actually write to this directory - but not my personal user (no matter if it is in the same staff group).
Turns out, the osxfs FUSE (note: userspace) process runs as my local admin account, not as root. That should explain why writing to the OSX directory from within the VM does not work.
bash-5.0# ps -ej | grep osx
<my_osx_user>          14261  5813  5813      0    1 S      ??    1:16.53 com.docker.osxfs serve --address fd:3 --transfused transfused.sock --control fd:4

After changing the osx permissions to 0755, writing from within the docker VM to the backup bucket directory worked. Also the logs in etcd-backup-restore indicate success
time="2023-01-06T09:42:55Z" level=info msg="Finding latest set of snapshot to recover from..."
time="2023-01-06T09:42:55Z" level=info msg="No snapshot found. Will remove the data directory."
time="2023-01-06T09:42:55Z" level=info msg="Removing directory(/var/etcd/data/new.etcd) since snapstore is empty."
time="2023-01-06T09:42:55Z" level=info msg="Successfully initialized data directory for etcd." actor=backup-restore-server
time="2023-01-06T09:42:55Z" level=info msg="Responding to status request with: Successful" actor=backup-restore-server
time="2023-01-06T09:42:55Z" level=info msg="Updating status from Successful to New" actor=backup-restore-server

However: I do not know why my OSX directory had permissions 0751 and not 0775 as it should have according to the provider-locals code (the history has shown that the same permissions are used since it's inception).


Avoid Whitespace wrap in tags

Small CSS touch to avoid undesred CSS wrapping of tags in case of whitespaces. In the french translation, this happens:

With the proposed change:

I think this may have some undesirable results with certain tag types.


Results json not published

Dear Authors,
Thank you for providing the code. Can you also publish the result JSON files generated from the best checkpoint model?
This is essential to recreate the experiments and validate the results.
Regards

Hi,
Thanks for your interest in our work. Sorry for the late reply.
Our results should be reproducible by running inference.py using the provided checkpoints. Could you please specify which JSON file is needed?

Hi,
I have just noticed that the previous checkpoint link has expired. I have updated the link, so you can now use the provided checkpoints to reproduce the results by running Inference.py. Thank you!

Hello @wenxi-yue ,
Thank you for your reply. Can you please provide the results used to evaluate the model?
Typically in the COCO JSON format.
Or if you can provide output masks which were used to calculate mcIOU and mIOU that will be equally helpful.
Regards

Hi,
We did not use the COCO JSON format for evaluation due to the specialised evaluation metrics of the EndoVis datasets. Instead, we read the predicted and ground-truth masks and calculated their IoUs using the evaluation code provided by previous works (without employing the COCO JSON format).
To obtain our output masks, you may run inference.py at here, and simply print endovis_masks here. endovis_masks is a dictionary that stores all our output masks. And you may generate the COCO JSON files from these masks.
Hope this helps.

Closing the issue,
Thank you for your time @wenxi-yue


Feature request: Matrix/array system and control commands for

I would like to request a feature for GB Studio that I believe would greatly increase the type of games that would be developable, and certainly help developing current styles of games so much easier. I have one specific game I have been entertaining porting for quite a while but it just isn't possible using the current GB Studio and available commands. It is a game that I think would be so enjoyable and appreciated by many GameBoyers!
Basically a Matrix/Array definition system (herein to be referred to as Matrix only) and control commands for, in relation to using tiles/graphics to represent the state of the matrix. Why? Well...in the game I would like to create it is simply not possible to create using actors as the number of actors needed exceeds the current GB Studio limits. And the graphics don't need to be moved as such. They only have to be able to change their look.
Basically I want to be able to define a matrix of 20 x 18 positions - being representative of the screen tiles being 8 x 8 pixel sized tiles, within the 160 x 144 GameBoy resolution. I want to be able to define and redefine the values in the matrix, to represent screen changes based on various events, and have this reflected on the screen. If for example at the start of the loop all the values within the 20 x 18 matrix are the value 1, then all the tiles on the screen will have the same look. But if I want tile position 10,9 to look different to all the other tiles, I want to be able to redefine the value in the matrix to say the number 2, and have my routine read the values in the matrix, and update the tiles accordingly - and effectively have the tile at position 10,9 be different to all the other tiles. in my particular game I need to be able to have the available numbers in the matrix be at least 16 different values (I am not sure if 8 will cover it - I need to look into the amount of possible different tiles again - of course, GameBoy hardware number handling may only allow 8 to be possible - if 16 could be possible it would greatly enhance possibilities).
So basically having the commands to define a matrix (via a table or similar), and redefine key positions in the matrix easily, and have the matrix reflected by tiles on the screen is the request. Addition, subtraction, etc. The more defineable the matrix via the commands, the better.
You may ask, why not define a bunch of backgrounds and switch between them? The answer is because the amount of possible backgrounds to match all the possibilities is completely impractical. It would be 20 tiles x 18 tiles x 16 different tiles x 60 stages = 345,600 possibilities - juuuust a few too many!!! Whereas if I can just define the 16 different types of tiles, and display different tiles as needed, based on an easily configurable matrix, my game will be doable.
I really do not wish to give away the game I would like to port - and I don't think it is necessary. I can mention games that I think use a similar matrix system and hopefully this gives people more of an understanding. Think Pacman. and how the pathways and dots being controlled via a matrix would make sense (especially since the possible number of "actors" to do the same would be huge and therefore over the limits of GB Studio. Think of those picture puzzle sliding games. Perhaps games like Tetris could use this matrix system. Games like Columns. There is a game just saw on on the C64 called Pieces II that would probably use this type of system. Think Boulderdash (but obviously there'd be no animation as the tiles "move"). Think maze type games. Think perhaps a jigsaw puzzle game.  Those kind of games. Without giving too much away, my game is much more exciting than most of those styles!
I hope my request is clear and people appreciate the possibilities in the variety of games such a system would allow...to see these commands added to GB Studio would be fantastic! Thank you...

I think there's already a feature like that being developed, which is, according to the engine, the set tile submap event.

That is freakin' awesome teaaaaaaaa!
Would you happen to have a link to the discussion/post/reference please? It'd be great to read about it.