Make it easier to stop tracking an entity

When you track an entity by clicking on the track button in the InfoBox, you can now stop tracking by clicking the button a second time.
Setting viewer.trackedEntity to undefined will now restore the camera controls to their default states.
Don't fly home if an entity is removed from its DataSource or the DataSource itself is removed.  Instead we just stop tracking as if viewer.trackedEntity was set to undefined.  The previous behavior created problems because it unexpectedly generated a camera flight and was inconsistent than what happens when the trackedEntity becomes undefined.  Now the behavior is consistent all around.

forum discussion

@emackey you might want to check this out.

I don't think @emackey has time to check this out, so can someone else please take a quick look at this and merge when you get a chance?

I get some test failures:

Doh, thanks.  I must have forgot to run them while branch hopping.  I'll take a look.

Okay, this is ready.  The specs were out of date so I changed them to cover the new behavior.

Looks good.


Way to figure out prefixes that was grabbed for ASn

Environment

Python version:  3.6.9
Peering Manager version:  1.2.1-dev

Proposed Functionality
Need feature that can help to find out prefixes grabbed for specific AS-SET.
Use Case
I have customer with AS-SET X. That X contains prefix Y.
But Y does dot appear in configuration.
Manual execution of bgpq shows me that prefix Y.
How to figure out why peering-manager does not import that prefix?
How to look on prefixes that already imported for specific ASn?

There is nothing specific done by Peering Manager here. It just take care of using bgpq3 for you with defined arguments, tells it to return data as JSON and store the result as is. If you have a difference between what Peering Manager knows about prefixes for an ASN and what you see when manually executing the bgpq3 command by yourself then it means that the two commands are different.
I was unable to reproduce this issue by using the exact same two commands (by PM and by hand). If you have some steps to reproduce this issue, you can provide them here and re-open the issue.


Can't Send messages to numbers not in Contact list.

That's not a feature that will be supported in this API


nauty: 26r10 -> 26r11

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/nauty/versions.
meta.description for nauty is: '"Programs for computing automorphism groups of graphs and digraphs"'.

Checks done (click to expand)

built on NixOS
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/dreadnaut passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/copyg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/listg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/labelg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/dretog passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/amtog passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/geng passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/complg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/showg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/NRswitchg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/biplabg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/addedgeg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/deledgeg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/countg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/pickg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/genrang passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/newedgeg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/catg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/genbg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/directg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/gentreeg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/genquarticg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/ranlabg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/multig passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/planarg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/gentourng passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/linegraphg passed the binary check.
Warning: no invocation of /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/watercluster2 had a zero exit code or showed the expected version
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/dretodot passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/subdivideg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/vcolg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/delptg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/cubhamg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/twohamg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/hamheuristic passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/converseg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/genspecialg passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/genbgL passed the binary check.
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/shortg passed the binary check.
Warning: no invocation of /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/configure had a zero exit code or showed the expected version
38 of 40 passed binary check by having a zero exit code.
0 of 40 passed binary check by having the new version present in output.
directory tree listing: https://gist.github.com/1d01843b44b8cfce79a3e24eafe251f3
du listing: https://gist.github.com/3e9a37622563f81e04fc3491129fed48

Instructions to test this update (click to expand)

One-time optional setup to skip building using Cachix:

Install cachix from https://cachix.org/
Use r-ryantm's cache:cachix use r-ryantm

Test this update by entering a nix shell, seeing what is inside the
result, and if applicable, running some binaries:
nix-shell --pure -I nixpkgs=https://github.com/r-ryantm/nixpkgs/archive/98092f7a678e57d435814699150fe968440cae21.tar.gz -p nauty
ls -la /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11

cc @7c6f434c for testing.

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: nauty
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on x86_64-linux (full log)
Attempted: nauty
Partial log (click to expand)
shrinking /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/twohamg
shrinking /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/dretodot
shrinking /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/copyg
shrinking /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/hamheuristic
strip is /nix/store/dxf1m7dhc4qb655bdljc1fsd74v1nag3-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin
patching script interpreter paths in /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11/bin/configure: interpreter directive changed from " /bin/sh" to "/nix/store/nii7pk6pv4x4as7vsxbvwyzjn67vax6r-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11...
/nix/store/v61k8qjcnbg5z1m10scj57c7bm8rqny6-nauty-26r11

Success on aarch64-linux (full log)
Attempted: nauty
Partial log (click to expand)
shrinking /nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11/bin/converseg
shrinking /nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11/bin/genspecialg
shrinking /nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11/bin/genbgL
shrinking /nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11/bin/shortg
strip is /nix/store/428gs2z4b8f9byvghzlpbjwjb3a7jwxx-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11/bin
patching script interpreter paths in /nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11
/nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11/bin/configure: interpreter directive changed from " /bin/sh" to "/nix/store/017xymp5i03qzigafnfx7sgf6602gmzq-bash-4.4-p23/bin/sh"
checking for references to /build in /nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11...
/nix/store/a2zrdljm5ixr687pdba63xqmj1iyf2d7-nauty-26r11

@timokau Is this OK for Sage?

Yes, thank you for the heads up.


Add forbidden function casts RFC

This RFC proposes to forbid function -> integer as casts, since they have surprising aspects and are error prone.
Rendered

what happens when code pointers are bigger than data pointers? do you have to fall back on transmute to get the address, since casting to a data pointer will lose information?

usize is guaranteed to be the same size as a data pointer, so seemingly if cast to data pointer would truncate, cast to usize would too. Does Rust support any such platform?
https://doc.rust-lang.org/reference/type-layout.html#pointers-and-references-layout

usize is guaranteed to be the same size as a data pointer, so seemingly if cast to a data pointer would truncate, cast to usize would too. Does Rust support any such platform?

I couldn't find any specific instances, but I know AVR also can have different code/data pointer sizes, and MSP430 too, just all the configurations I could find don't do that.
With rustc's GCC backend, there are a whole pile of weird and wonderful cpu architectures that rust could feasibly support in the future.
I know others have discussed different code/data pointer sizes before, in reference to dlsym-style dynamic linking and how POSIX therefore requires code/data pointers to be the same size and how not everything supports that.

Either way, if cast to *const () is a problem, a cast to usize also is (because they’re guaranteed to be the same size). A cast to a wider type could work, but “cast of function pointer to usize can truncate” is arguably an even bigger footgun.
Casting function pointer to an integer doesn’t seem to be a common operation either: you can’t do pointer arithmetics on it, so I think the only reason you would want this is some FFI / inline asm stuff? I think if you’re on an architecture where function pointers are larger than data pointers and you want their numeric values, you very much know what you’re doing and could write a transmute, and if you’re writing cross-platform code you would more often than not write as usize instead of as fnptrsize and get bit by truncation.

Side note: having something like sptr::OpaqueFnPtr in the standard library would solve the problem, because its .addr() could return an appropriately-sized integer on these architectures, causing a compilation error instead of runtime truncation.

I am ambivalent on this proposal as-is without something like addr on function items, as having to chain casts between a data pointer seems like we're making the actual usage worse, and may pose issues on other architectures. Having addr by contrast, is not only shorter, but allows makes it more clear what is being done.

may pose issues on other architectures

Could you elaborate on this, please? As I've written before, if cast to a data pointer truncates, cast to usize also does, so this doesn't seem to cause any new issues.

As I've written before, if cast to a data pointer truncates, cast to usize also does, so this doesn't seem to cause any new issues.

if a function pointer doesn't fit in usize but does fit in some larger integer type, (e.g. u32 when usize is 16-bit), then disallowing function pointer to integer casts removes the obvious way to get a function's address by as casting, since casting to a data pointer and then to u32 looses information since a data pointer can only hold 16-bits when usize is 16-bit.
// assume 32-bit code pointers and 16-bit data pointers:
pub fn works(fptr: fn()) -> u32 {
    fptr as u32
}

pub fn broken(fptr: fn()) -> u32 {
    fptr as *const () as u32
}

Personally I would like to see us do something here. But I feel uneasy about recommending that function pointers be converted to data pointers, both for the reasons of size discrepancies that @programmerjake raised and because more generally, code and data could exist in different address spaces entirely.

I think we should add uintfptr and intfptr types (like C's uintptr_t and intptr_t, except for function pointers) and add a addr method to all function pointer types. Then I'd be fine removing function-pointer to integer casts in a new edition.
e.g.:
impl<A, R, const ABI: &'static str> extern ABI fn(..A) -> R { // all function pointer types (needs more impls for unsafe fn, etc.
    pub fn addr(self) -> uintfptr {
        unsafe { mem::transmute(self) }
    }
}

Side note: having something like sptr::OpaqueFnPtr in the standard library would solve the problem, because its .addr() could return an appropriately-sized integer on these architectures, causing a compilation error instead of runtime truncation.

I like to use fn(!) for opaque fn ptrs because it isn't callable without a transmute and is generally less footgun than just unsafe fn()

wasm is a well-known architecture where function pointers are in a different address space from data pointers (they're table indices) despite being the same size.

wasm is a well-known architecture where function pointers are in a different address space from data pointers (they're table indices) despite being the same size.

Is it relevant? Cast through a data pointer should still work I think?

Either way, if cast to *const () is a problem, a cast to usize also is (because they’re guaranteed to be the same size)

CHERI is coming so I'm in favour of stopping conflating data pointers with function pointers with integers that can count a number of things in memory.
Making people use transmute seems reasonable, because it will complain if two things are not the same size, but do I like Fn::addr() -> core::ffi::uintfptr as well.

Making people use transmute seems reasonable

Note that this requires fnptr to integer to fnptr transmutes to be valid, which is not obvious, cf. https://github.com/rust-lang/unsafe-code-guidelines/issues/286, https://github.com/rust-lang/unsafe-code-guidelines/issues/340

CHERI is coming so I'm in favour of stopping conflating data pointers with function pointers with integers that can count a number of things in memory.

Unfortunately, I don’t think we can stop conflating uintptr_t with size_t with ptrdiff_t without breaking stability guarantees, which I think means that Rust on CHERI must have 128-bit array indices and generally everything pointer-related must be 128 bits.

The concern about targets with data and function pointers being different is interesting. Note that I don't think difference in address spaces is significant — whatever the "blessed" way will be, we can just make sure we account for address spaces properly (going through *const () should not be a problem here, since we can just ptr::invalid).
For platforms with size_of::<fn()>()  > size_of::<*const ()>() I have a few questions:

Are there platforms like this that may be supported by Rust in the future (or are already supported)?
Can we support this without making breaking changes?

Expanding on the second question, it seems like the assumption that size_of::<usize>() == size_of::<*const ()>() == size_of::<fn()>() is so ingrained in Rust, that we simply can't break it.
usize/ptr is guaranteed in usize docs (among with all the APIs) (emph. mine):

The pointer-sized unsigned integer type.
The size of this primitive is how many bytes it takes to reference any location in memory. For example, on a 32 bit target, this is 4 bytes and on a 64 bit target, this is 8 bytes.

Assumptions for fn() are not that public, but still we have a few examples in the docs

// (cut for brievety)
let bar_ptr: fn(i32) = not_bar_ptr; // force coercion to function pointer
assert_eq!(mem::size_of_val(&bar_ptr), mem::size_of::<usize>());

let fnptr: fn(i32) -> i32 = |x| x+2;
let fnptr_addr = fnptr as usize;

let fnptr = fnptr_addr as *const ();
let fnptr: fn(i32) -> i32 = unsafe { std::mem::transmute(fnptr) };
assert_eq!(fnptr(40), 42);

And also unstable APIs (FnPtr::addr) and also std code, for example fmt traits impls:
https://github.com/rust-lang/rust/blob/3acb261e214cd13ae54346af30eae5807501ec37/library/core/src/ptr/mod.rs#L1989 (this goes FnPtr -> *const () -> usize).
I'm not sure we have a way out of all of this, given that unsafe code is relatively likely to depend on stuff like this (my opinion).

@rustbot labels -A-edition-2024 +A-maybe-next-edition
We discussed the timeline of edition items in the lang meeting today, and this didn't make the list, so it seems unlikely this will happen for Rust 2024.  We'll keep this in mind for future editions.  Thanks to everyone working on this and providing helpful feedback here.


tests for WOPI protocol

oCIS is offering WOPI as one of its APIs
currently this API is tested using the wopi-validator and some very basic e2e tests
These tests don't cover anything related to:

security
spaces
shares
antivirus
public links
versions
etc.

currently the WOPI service is also re-implemented in #8374
My question is: do we need to have a separate WOPI API test-suite as we have with e.g. WebDAV, TUS, Graph or can be everything tested via unit test and the underlying code-path are tested already with the existing API testsuites?
@jvillafanez @micbar @phil-davis @DeepDiver1975 @dragotin @ScharfViktor ?

I think we'll need to come up with our own test suite, maybe in parallel with the wopi validator.
The wopi validator runs a series of actions against the the wopi server. Some of them might be preparation of the actual test, and the validator could skip the test if something goes wrong with the preparation, for example if the target file is missing.
This also means that some actions might be difficult to test through the validator. What happens if you try to lock a file but the file doesn't exist? Pretty sure the validator will skip the test because the CheckFileInfo request prior to the Lock fails, so we don't know if the wopi server responds correctly to such Lock request with a 404 code.
There are also potential race conditions or issues regarding the order of operations that we should ensure they don't break anything (we might need to include code to make testing easier). As far as I know, the wopi validator isn't enough for these kind of issues.
The other big thing is that the CheckFileInfo request is tailored to Microsoft so the validator tests pass. Both collabora and onlyoffice include their own set of properties, which I don't think we can test at the moment because the wopi validator will complain.
We'll have to figure out a proper way to support everything (unless we only support microsoft), but we'll need a way to verify that the properties are working, or at least that we send the properties correctly.

The other big thing is that the CheckFileInfo request is tailored to Microsoft so the validator tests pass. Both collabora and onlyoffice include their own set of properties, which I don't think we can test at the moment because the wopi validator will complain.

We need to see how the validator handles this situation. We might even run into situations where not only different properties are expected but the same properties with different values.
But let's see how this works out.
the wopi validator is open source - we can extend it to our needs. Which might be a possible way to go.
(it is basically xml + c# - happy to help out)

most things should be covered by unit + integration tests in Go @jvillafanez @rhafer @2403905
make the e2e UI tests run on the new WOPI service @individual-it @saw-jan
add e2e UI tests to cover the smoke-tests that is done in the release @individual-it @saw-jan
create API tests for CheckFileInfo @individual-it @saw-jan

check that all expected values are returned (//TODO add list/documentation link)
future: check that env. variables switch the abilities correctly

as more functions are added, more wopi validator tests should be switched on @jvillafanez @rhafer @2403905
extend the validator if needed @DeepDiver1975

add e2e UI tests to cover the smoke-tests that is done in the release @individual-it @saw-jan

Where should we run app-provider e2e tests? Now we run it only web CI. should we include this tests in the ocis CI?

since the app-provider tests is not ran in ocis as of now. May be lets stick to running it only web for now ? @saw-jan @individual-it

@ScharfViktor since the app-provider tests is not ran in ocis as of now. May be lets stick to running it only web for now ? @saw-jan @individual-it

let's make it only in web for now.

ℹ NOTE: we will wait until the service is stable and there's a deployment example available

create API tests for CheckFileInfo

I see endpoint <ocis-wopi-server>/wopi/files/{fileid} that does CheckFileInfo.

Does it return the file-info?
Will curl request to this endpoint work with ocis basic-auth? (admin:admin)

CC @jvillafanez @rhafer @2403905

Then it looks like it is not possible to have normal API tests for this endpoint. Requires special setup which we don't know yet

Maybe we can make use of this to get the required token:
https://github.com/owncloud/ocis/blob/f2c50772895a095aebeeceb3ac0a4dac09af8172/.drone.star#L1098-L1109

That might work, yes.
"echo -n 'http://wopiserver:9300/wopi/files/' > wopisrc",
"cat open.json | jq .app_url | sed -n -e 's/^.*files%2F//p' | tr -d '\"' >> wopisrc",

I think you can get the wopisrc directly from the .app_url, not sure why it's done that way. There might be reasons though.
You'll likely need to send the access token (in the created "accesstoken" file) to the wopi server. Something like http://wopiserver:9300/wopi/files/0df6a9......?access_token=abcfed.... The access token is required.
In addition, remember to disable the proof keys verification in the wopi server. This is the easiest solution because we'd need to generate the keys and the proof for each request otherwise.

curl "https://host.docker.internal:9300/wopi/files/{id}?access_token={access_token}"

{
  "BaseFileName": "afile.txt",
  "DisablePrint": false,
  "OwnerId": "33653562613161642d313433662d343137622d386265342d3232303863653733623737364068747470733a2f2f686f73742e646f636b65722e696e7465726e616c3a39323030",
  "PostMessageOrigin": "https://localhost:9200",
  "Size": 0,
  "UserCanWrite": true,
  "UserCanNotWriteRelative": false,
  "UserId": "33653562613161642d313433662d343137622d386265342d3232303863653733623737364068747470733a2f2f686f73742e646f636b65722e696e7465726e616c3a39323030",
  "UserFriendlyName": "Admin",
  "EnableOwnerTermination": true,
  "SupportsLocks": true,
  "SupportsRename": true,
  "UserCanRename": true,
  "BreadcrumbDocName": "afile.txt"
}

@jvillafanez I made a request with access_token and got this response. Is it the correct one?
Also, I noticed that the {id} part can be anything. If I do something like this:
curl "https://host.docker.internal:9300/wopi/files/abcde?access_token={access_token}", I get the response. Is it correct behavior?

Yes, that's a good response. It will return the file info from the CheckFileInfo method (https://github.com/owncloud/ocis/blob/master/services/collaboration/pkg/connector/fileconnector.go#L1045)
The actual values depend on the view mode and the target WOPI app. Since the target WOPI app is the "FakeOffice", the returned properties will be based on Microsoft (https://github.com/owncloud/ocis/blob/master/services/collaboration/pkg/connector/fileinfo/microsoft.go)
I'm not sure how easy will be to fake Collabora responses. Maybe just changing the app name in the collaboration service is enough.

Also, I noticed that the {id} part can be anything. If I do something like this:
curl "https://host.docker.internal:9300/wopi/files/abcde?access_token={access_token}", I get the response. Is it correct behavior?

Likely a bug, although I'm not entirely sure.
The file id we're using comes from the access token. We aren't checking the file id in the url for anything, and maybe we should verify it. Basically, the file id from the url and the one from the access token should match.

Closing this one. API tests for CheckFileInfo will be done in https://github.com/owncloud/ocis/issues/9844


Add 'Show results' button to filters view on mobile

What is the motivation for adding / enhancing this feature?

The filters for the list of products in the mobile view are visible in the sliding side tab.
So, the user can not see that by selecting filters the list of products automatically updates.
Switching to filter results by clicking 'x' is not intuitive. 'X' is also not visible when scrolling filters down.

What are the acceptance criteria

[ ] Under the list of filters, the 'Filter' button is visible, which closes the filter sidebar.
[ ]  "Clear" button is changed according to the prepared design

Can you complete this feature request by yourself?

[ ] YES
[x] NO

Which Release Cycle state this refers to? Info for developer.
Pick one option.

[x] This is a normal feature request. This should be available on https://test.storefrontcloud.io and then after tests this can be added to next Vue Storefront version. In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
[ ] (Pick this option only if you're sure) This is an important improvement request for current Release Candidate version on https://next.storefrontcloud.io and should be placed in next RC version. In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
[ ] (Pick this option only if you're sure) This is a critical improvement request for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version. In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.

@StasiekDivante we need You UX support with this one

@GabiDivante I would add "Filter" button on the bottom on the screen and fix it's position. Also I would remove some visual weight from the "clear" button as it guides users to incorrect bahaviour

@StasiekDivante great, let's do this that way! Thank you :)

Thanks @965750!

@965750 Please add new PR and as we discussed - add icon next to Clear fillers :)

@patzick @alinadivante @pkarw here's new PR with icon added https://github.com/DivanteLtd/vue-storefront/pull/2996


Fix Windows Terminal window staying open

Adding "-H=windowsgui" to the Makefile seems to correct the issue where Windows Terminal windows stay open after launch.

If the terminal is staying open, it means the application experienced a panic. Can you check your logs and console output for that please?

The other situation this comes up in is when you switch your default terminal in Windows from cmd.exe to the new Windows Terminal. This new terminal does not provide the same APIs and Go applications are not able to hide the Windows that are created. I fought this behavior a long time with another user to no avail. Microsoft acknowledged the problem with their deprecation of specific API methods, and I'm really not sure where that went. Does it work now? I don't know (I'm not a Windows user). ref: https://github.com/microsoft/terminal/issues/12570

This is to fix the issue you were discussing in the Discord. There is no error in the logs or console, but on launch a blank Windows Terminal window is launched. Closing this window closes unpackerr. Adding the above flag to the windows-specific build flags prevented the empty window from opening, and as far as I can tell unpackerr still functions as before.

I discuss many issues in Discord. If you could link it, it may jog my memory. This is unfortunately not a change I can accept. What we need to do is figure out why hiding the terminal window doesn't work.

Check out the workaround they found for nzbget. Can you try this and see if it works? https://github.com/nzbget/nzbget/issues/792#issuecomment-1093350550

This workaround does solve the issue, and the console window disappears after unpackerr starts.
It does appear that the console is immediately hidden on launch, and only shown again in case of an error on startup. Would it make sense to add the windowsgui flag (this builds as a GUI binary and prevents the console appearing) and communicate the error with a Windows MessageBox directly? I have implemented this and could add it to the pull request.

I'm not really following what you're proposing. I do not really want to remove the GUI window entirely. I've written a number of apps that have to support multiple OSes, including Windows, and I've had much better success leaving that flag off and hiding the window. This new Windows Terminal fiasco is going to require some changes to keep working I can see. I'd like to figure out how to hide it.

only shown again in case of an error on startup

It's shown any time panic() is thrown. Some panic messages fail to write to the log file, and showing the console window can help troubleshoot because the message is displayed there. You actually make a good point though, and I think I should also show it if the startup throws an error. I can't tell you how many people typo their config and the app refuses to start. The "solution" is to open it from a cmd window so you can see the error.


Can Round() have second parameter?

Is there a way to round 1.3453 to 1.35?
round() only rounds to the nearest integer. Some languages have a second parameter in the round() function to designate what position to round to. Is there an equivalent in Godot?  If not, can this be added, for instance:
round(1.3453 , 2)
results: 1.35

Does stepify(1.3453, 0.01) meet your needs?

Thanks! that works.  On the normal forum Q&A, no one knew of an answer.  I was using stepify at first, but using it wrong.
To be honest the name "stepify" isn't intuitive.  I had to search a lot and stumbled upon it.  It is basically rounding, but to a preset decimal place.  This is probably the reason other languages use Round(num, place) because it is all part of rounding


Deleting messages

Telegram Bot API - Deleting messages: https://core.telegram.org/bots/api#deleteMessage

@mafia-007 fixed in #35, published as<EMAIL_ADDRESS>


rbd: do not return an error when deleting a non-existing image

Deleting an image that has been already remove, should not be reported
as a failure. This improves the idempotency of the rbdImage.Delete()
function, making it easier for callers to detect real errors.
Related issues
Found while working on #4502.

Show available bot commands
These commands are normally not required, but in case of issues, leave any of
the following bot commands in an otherwise empty comment in this PR:

/retest ci/centos/<job-name>: retest the <job-name> after unrelated
failure (please report the failure too!)

We need to not have this check in order to trigger
https://github.com/ceph/ceph-csi/blob/611e5d920e1623a2f58e2eff8bbb15cb3c21213d/internal/rbd/rbd_util.go#L623

Sorry, I am not sure what you mean by that... ensureImageCleanup can cause a panic without those error checks?

We need to not have this check in order to trigger
https://github.com/ceph/ceph-csi/blob/611e5d920e1623a2f58e2eff8bbb15cb3c21213d/internal/rbd/rbd_util.go#L623

Sorry, I am not sure what you mean by that... ensureImageCleanup can cause a panic without those error checks?

If the image does not exist, then the flow should not have reached that point at all.
Image not being found would've lead to ensureImageCleanup in actual delete procedure.
I think there are multiple processes acting on same image that's causing this error/panic in your case ??

We need to not have this check in order to trigger
https://github.com/ceph/ceph-csi/blob/611e5d920e1623a2f58e2eff8bbb15cb3c21213d/internal/rbd/rbd_util.go#L623

Sorry, I am not sure what you mean by that... ensureImageCleanup can cause a panic without those error checks?

If the image does not exist, then the flow should not have reached that point at all. Image not being found would've lead to ensureImageCleanup in actual delete procedure. I think there are multiple processes acting on same image that's causing this error/panic in your case ??

I don't think it multiple processes are trying to delete the same volume at the same time. However a 2nd DeleteVolume seems to come immediately after the 1st completed (https://github.com/kubernetes-csi/external-provisioner/issues/1235 might be related?).

We need to not have this check in order to trigger
https://github.com/ceph/ceph-csi/blob/611e5d920e1623a2f58e2eff8bbb15cb3c21213d/internal/rbd/rbd_util.go#L623

Sorry, I am not sure what you mean by that... ensureImageCleanup can cause a panic without those error checks?

If the image does not exist, then the flow should not have reached that point at all. Image not being found would've lead to ensureImageCleanup in actual delete procedure. I think there are multiple processes acting on same image that's causing this error/panic in your case ??

I don't think it multiple processes are trying to delete the same volume at the same time. However a 2nd DeleteVolume seems to come immediately after the 1st completed (kubernetes-csi/external-provisioner#1235 might be related?).

we do have in memory lock to ensure that this should not happen.
@Rakshith-R any further comments on this one?

We need to not have this check in order to trigger
https://github.com/ceph/ceph-csi/blob/611e5d920e1623a2f58e2eff8bbb15cb3c21213d/internal/rbd/rbd_util.go#L623

Sorry, I am not sure what you mean by that... ensureImageCleanup can cause a panic without those error checks?

If the image does not exist, then the flow should not have reached that point at all. Image not being found would've lead to ensureImageCleanup in actual delete procedure. I think there are multiple processes acting on same image that's causing this error/panic in your case ??

I don't think it multiple processes are trying to delete the same volume at the same time. However a 2nd DeleteVolume seems to come immediately after the 1st completed (kubernetes-csi/external-provisioner#1235 might be related?).

we do have in memory lock to ensure that this should not happen.
@Rakshith-R any further comments on this one?

Yea, I think We'll encounter this error only when another process puts the image to trash while this process reaches the rbd.Trash(0) or ra.addTrashRemove call. The only reason a process gets to that stage is when a rbd image is found.
We should treat such occurrences as a race condition happening somewhere in the code and fix that instead of the current error check to avoid it.
(sorry, missed this comment earlier)

@nixpanic I think we can close this pr ?


main architecture of network

Hello
thanks for your code
Where is the ground truth point heatmap file?
I dont understand your code. In which file is there Point Detection Branch file and Point matching branch ؟
In which code is the main architecture of your network and ?

Thanks for your interest.
The code of target generation is in the dataset folder, e.g. hico-det. And the code of main architecture is in the
models folder.

Thanks for your answer
that's mean is the point matching, displacement and point detection process in the models folder?

The inference code about Point matching is in decode.py

Sorry to bother you so much. I am a beginner
Is decode.py file used for both testing and training in point matching?
Is Point detection part  in target generation in dataset folder e.g. hico-det?

Sorry to bother you so much. I am a beginner
Is decode.py file used for both testing and training in point matching?
Is Point detection part in target generation in dataset folder e.g. hico-det?

The target generation is in the dataset folder and the main architecture, i.e., backbone and heads are in the model folder, and the matching interaction point with human/object point during inference is in decode.py.

thank you very much


Use LLVM Snapshot in CI

https://apt.llvm.org/ provides a development snapshot. It might be good to have one CI run using this snapshot build.

It’s probably worth running that as a nightly or weekly job, to see if any LLVM changes broke things. That hasn’t happened for a few years, but it remains possible.

Should we run this on x86 only or also on the cross builds?

The cross builds probably don't add very much extra overhead.


Add appropriate color when we hover on social media icon

Is your feature request related to a problem? Please describe.

This feature is not related to the problem but it can improve the user experience and the alignment of the social media icon with that on title is also not right.

Describe the solution you'd like

Better user experience attracts more people, so I would like to add color at the time of hover and adjust its alignment a bit.

Additional context
When we hover
Before:

After:

i will do it


[COMPAT] HF compat (AutoModel + Optimum)

@jiqing-feng I am going to answer gptqmodel specifics here.
When you mean transformers integration you mean AutoModel loading of quantized models correct? Hf transformers moved all quantization code into optimum and we have the following integration code via monkey patch:
https://github.com/ModelCloud/GPTQModel/blob/98dc26f04c70393e8da272a83450cf4f14790b79/tests/test_transformers_integration.py#L27
is this what you are looking for?
ref: https://github.com/AutoGPTQ/AutoGPTQ/pull/737#issuecomment-2415622872

Not only AutoModel, the main block is check gptq lib here. Unless we change the check lib from auto-gptq to gptqmodel, it would be always false if we use gptqmodel

@jqing-feng Ok I see the chicken and egg here. Our integration only tested/patched model loading via optimum loading but the code you ref is actually hf transformer calling autogptq for model quantization.

Not only AutoModel, the main block is check gptq lib here. Unless we change the check lib from auto-gptq to gptqmodel, it would be always false if we use gptqmodel.
Also in quantizer_gptq

Hi @Qubitium . Sorry for misunderstanding your point, I will check the possibility. Thanks!

Please see optimum/gptq, it also use auto_gptq lib, so we can only upstream in AutoGPTQ. Intel CPU path want to keep the same usage as CUDA to make it more user-friendly. Thanks for your investigation. I think we can focus on how to upstream on AutoGPTQ.

@Qubitium , do you have any plan to integrate gptqmodel into transformers, like what eetq and autogptq does? Thx.

@yao-matrix Yes. This is our goal but not the ultimate goal. Our primary goal is max model compat (new models), and quant model compat with vllm/sglang, plus quant speed and quant quality recovery. Api backward compat is not our primary goal right now. Once I feel like our api is stable, very soon, we will submit prs to Transformers/Optimum to replace autogptq as much as possible. There are many reasons AutoGPTQ is not getting proper updates and the problem will become worse and worse my view.

@yao-matrix Yes. This is our goal but not the ultimate goal. Our primary goal is max model compat (new models), and quant model compat with vllm/sglang, plus quant speed and quant quality recovery. Api backward compat is not our primary goal right now. Once I feel like our api is stable, very soon, we will submit prs to Transformers/Optimum to replace autogptq as much as possible. There are many reasons AutoGPTQ is not getting proper updates and the problem will become worse and worse my view.

Great, I will add the ipex feature into GPTQModel.
BTW, do you think we could finish the replacement in HF/optimum at the end of the year? I would like to help with it. Thx!

BTW, do you think we could finish the replacement in HF/optimum at the end of this year? I would like to help with it. Thx!

That's great! We need contribution for anyone that is willing to improve this project. We are confident, once you started to work within the gpgtqmodel internals/framework, you will not want to switch back to autogptq for any reason. =)
Definitely we can. But we are also bound by the review process of these projects. We have had lm-eval PR for gptqmodel active with no response for like 3 months with no activity or feedback. So it really depends on how fast they react.  https://github.com/EleutherAI/lm-evaluation-harness/pull/2217

@jiqing-feng  For IPEX code, please add a small unit test in tests. The CI is not automatic but we can trigger it manually on our 4090 action-hub instances when code is ready for verification. Every major feature/kernel will be CI tested/validated for regressions for future releases. We also plan to make sure every single model that we support has a CI test as well since regressions in Model quantization/inference is highly likely due to HF transformer and tokenizer updates.

Hi @Qubitium . Thanks for your support. I will let you review once the PR is ready. For lm-eval, I think you can fix the failed test(due to code style) and then let the maintainer review :)

Closing this as we have a feature ipex issue now as replacement.


[zuul] Add 4.16 jobs

Depends-On: https://github.com/openstack-k8s-operators/ci-framework/pull/2019

The local_build-index_deploy job is failing on building sg-core due to a resource limitation.
Log Tail:	The container could not be located when the pod was terminated
Events:
  Type		Reason		Age	From			Message
  ----		------		----	----			-------
  Normal	Scheduled	98s	default-scheduler	Successfully assigned service-telemetry/sg-core-5-build to crc
  Normal	AddedInterface	97s	multus			Add eth0 [<IP_ADDRESS>/23] from ovn-kubernetes
  Normal	Pulled		97s	kubelet			Container image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:cee9993b6fc030e73c326a8561c9cc53b357e626552ecde2bca239d92963c136" already present on machine
  Normal	Started		96s	kubelet			Started container git-clone
  Normal	Created		96s	kubelet			Created container git-clone
  Normal	BuildStarted	96s	build-controller	Build service-telemetry/sg-core-5 is now running
  Normal	Pulled		95s	kubelet			Container image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:cee9993b6fc030e73c326a8561c9cc53b357e626552ecde2bca239d92963c136" already present on machine
  Normal	Created		94s	kubelet			Created container manage-dockerfile
  Normal	Started		94s	kubelet			Started container manage-dockerfile
  Normal	Pulled		94s	kubelet			Container image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:cee9993b6fc030e73c326a8561c9cc53b357e626552ecde2bca239d92963c136" already present on machine
  Normal	Created		93s	kubelet			Created container docker-build
  Normal	Started		93s	kubelet			Started container docker-build
  Warning	Evicted		12s	kubelet			The node was low on resource: ephemeral-storage. Threshold quantity:<PHONE_NUMBER>, available: 4698036Ki. Container docker-build was using 200Ki, request is 0, has larger consumption of ephemeral-storage.
  Normal	Killing		12s	kubelet			Stopping container docker-build
  Normal	BuildFailed	11s	build-controller	Build service-telemetry/sg-core-5 failed

https://logserver.rdoproject.org/09/609/aad0abff5a8803ba01e07242023520e1a43014ef/github-check/stf-crc-ocp_416-local_build-index_deploy/b188fab/controller/controller/post_oc_describe_build_sg-core-5.log

recheck

Build failed (check pipeline). Post recheck (without leading slash) to rerun all jobs. Make sure the failure cause has been resolved before you rerun jobs.
https://review.rdoproject.org/zuul/buildset/de47a2af1ba4415d831b981d8d5bcb0b
❌ stf-crc-ocp_416-local_build  FAILURE in 1h 00m 27s ❌ stf-crc-ocp_416-local_build-index_deploy  FAILURE in 57m 33s ❌ stf-crc-ocp_416-nightly_bundles  FAILURE in 52m 30s

Failure in local_build-index_deploy was due to not enough ephemeral storage available to build sg-core.
@danpawlik Are there some larger flavors for the OCP4.16 images?
https://logserver.rdoproject.org/09/609/5e9b58537a257df6c41ffec3ccf5a4c5b7f12e67/github-check/stf-crc-ocp_416-local_build-index_deploy/40126b0/controller/controller/post_oc_describe_build_sg-core-4.log

recheck

recheck


Time out if initialization doesn't conclude for some reason

Similar to #109, we recently had a problem with our infra that caused the WAT UI to just show an infinite spinner. We should have a long-ish ( 10 seconds? ) time out and soem sort of error page shown to the user once the time out gets hit.

Aside: probably an opportunity to include some cute illustrations for error pages?


Marker clicking in Leaflet master causes problems

It seems that you can only click on the marker in an area outside of the icon to bind the popup. This only happens in leaflet.master version.
Here's a JSFIddle:
http://jsfiddle.net/pufanalexandru/am454ygc/1/

It doesn't work on mobile devices at all.


BUG: Gnosis Relays are still getting stuck on Gnosis after upgrade on Paloma

What is happening?

Section description
Provide as much context as you can. Give as much context as you can to make it easier for the developers to figure what is happening.

User Submits TWAP to Gnosis:
https://etherscan.io/tx/0x06c79bdffae2b1d32810d985d76cf39d1174ecf3aea8740b28b240678b2303fb
Funds Arrive on Gnosis:
https://gnosisscan.io/address/0x48afa99cd4166d89718cba46db7e1eeb99535b46#internaltx
No submit Logic call for 21 hours.:
https://gnosisscan.io/address/0x0c6571537d0275dbc6c93e00f4ca19500fa9c835
How to reproduce?

Section description
Please write detailed steps of what you were doing for this bug to appear.

We Tested Gnosis offramp yesterday and it work. Somehow the relays don't work today.
What is the expected behaviour?

Section description
If you know, please write down what is the expected behaviour. If you don't know, that's ok. We can have a discussion in comments.

https://gnosisscan.io/address/0x48afa99cd4166d89718cba46db7e1eeb99535b46#internaltx needs to relay.

palomad on LCD server was down since palomad hadn't been updated to paloma v1.12.2. (This was due to the fact that it still needed to catch up yesterday and couldn't be upgraded during the chain halt time.)
Upgraded palomad now, restarted service, LCD is still catching up. Set a reminder to 1 hour from now to check in again

Failed over to LCD2, tx now going through

Closing as fixed.


Added simple dockerfile

Simple Dockerfile for Issue #17

Thanks for your suggestion, I have updated Dockerfile to use 2 stages build.
Final image size is now 37MB
Concerning AWS credentials, it should not be done in Dockerfile but at runtime:
docker run -v MY_AWS_DIRECTORY:/root/.aws .....
Do you want me to squash and rebase my commits on master ?

Looking good!
Unfortunately, I have refactored the code and there are some breaking changes that will require some renaming work on your part before we can merge this PR. I try not to do this often, but I'm still figuring things out. Sorry.
I hope we reach a stable milestone by the end of this year.
The main changes:

I have extracted the main configuration values into a config.properties, given them default values and documented them. A lot of hardcoded values have been made configurable. Thinking ahead for the future, I've taken the liberty to rename the config properties for consistency's sake.
I've switched the file metadata data structure to a sharded map, to reduce locking and relieve GC pressure.

Below are the new config properties:
# Listen address
server.addr=:8080

# Local filesystem settings
local.prefix=./images/originals

# S3 settings
s3.enable=false
s3.region={S3 region}
s3.bucket={bucketName}
s3.prefix="" # root path of original images

# Caches
cache.orig.enable=true
cache.orig.path=./images/cache
cache.orig.maxsize=1G
cache.orig.shards=256

cache.thumb.enable=true
cache.thumb.path=./images/thumbnails
cache.thumb.maxsize=1G
cache.thumb.shards=256

cache.loader.sleep=50
cache.loader.files=100
cache.loader.threshold=200

# Uploads
upload.maxsize=50M

# Etag cache size (num items)
etag.cache.enable=true
etag.cache.maxsize=50000

@ptisserand Since you're doing quite a bit of work (Docker build, remote image resizing), I've thought about adding you as a regular project collaborator. Are you okay with that?

@ptisserand Since you're doing quite a bit of work (Docker build, remote image resizing), I've thought about adding you as a regular project collaborator. Are you okay with that?

I think it's better to keep pull request since I really appreciate your feedback.

I have squashed and rebased my branch on 9f1af9b0ed9d0deebaf6a4c063fcde with your suggestion.

Oh, and after the changes, please rebase again. We want this as a single commit.

Please review this one.
I have squashed/rebased on current master.


Add instructions in readme.md to enable models before starting

When running the tutorial on a new account that has not been set up, API calls will return "AccessDenied" errors for models that need access added:
Add links to https://docs.aws.amazon.com/bedrock/latest/userguide/setting-up.html and https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html to readme.md intro

Closing this; please refer to the latest bedrock workshop update and reopen if still relevant


String arrives with different characters in Firefox

I wrote a node.js program to generate HTML code, the core:
console.log(['\uFEFF<!DOCTYPE html>

'].join('\n'));

I gisted the full source, also the generated HTML and what Firefox prints in its console when loading the HTML:
{ "dog": "[d83d][dc15]", "cow": "[d83d][dc04]", "halfbreed": "[fffd][fffd]" }
{ "dog": "[d83d][dc15]", "cow": "[d83d][dc04]", "halfbreed": "[dc15][d83d]" }

As you can see, in the first expression, the halfbreed characters both became U+FFFD. Probably some Unicode interpolation is messing with JavaScript's UCS-2 characters. Is this a bug? If a feature instead, it should be documented more prominently.

You may need to add <meta charset="utf8"> to the head of your HTML file.  I don't see working around that as being js-stringify's responsibility.

Good idea! I added
console.log(document.characterSet);

to verify whether Firefox respects the BOM at start of my HTML file, and it seems it did:
UTF-8
{ "dog": "[d83d][dc15]", "cow": "[d83d][dc04]", "halfbreed": "[fffd][fffd]" }
{ "dog": "[d83d][dc15]", "cow": "[d83d][dc04]", "halfbreed": "[dc15][d83d]" }

Still, I added to the HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Same output in Firefox's console.
So I check the script output itself (cat is to mute E_PIPE):
$ nodejs 0_dogcow.js | cat | sed -nre 's~^.*eed\S+ ~~p' | hd
00000000  5c 22 ef bf bd ef bf bd  5c 22 20 7d 22 29 29 3b  |\"......\" }"));|
00000010  0a 5c 22 5b 64 63 31 35  5d 5b 64 38 33 64 5d 5c  |.\"[dc15][d83d]\|
[…]
$ surrog8-js $'\xEF\xBF\xBD'
\uFFFD

As you see at the beginning between the "5c 22" (\"), there's "ef bf bd ef bf bd", so even before decoding them we can see it's twice the same character (3 bytes each). Decoding verifies that it's actually the characters that Firefox claims them to be.

I boiled down the hex test case for test without Firefox. New core:
var dog = '\uD83D\uDC15', cow = '\uD83D\uDC04', halves = dog[1] + cow[0],
  jsStringify = require('js-stringify');
console.log('orig:  <' + halves + '>');
console.log('JSON:  ' + JSON.stringify(halves));
console.log('js-str:' + jsStringify(halves));

The hex dump shows that they only differ in one byte, 2nd column from the right, and that JSON.stringify has the same problem:
$ nodejs 3_dogcow_cli.js | hd
00000000  6f 72 69 67 3a 20 20 3c  ef bf bd ef bf bd 3e 0a  |orig:  <......>.|
00000010  4a 53 4f 4e 3a 20 20 22  ef bf bd ef bf bd 22 0a  |JSON:  "......".|
00000020  6a 73 2d 73 74 72 3a 22  ef bf bd ef bf bd 22 0a  |js-str:"......".|

Looks like Node.js's stdout cannot write those UCS-2 characters:
$ nodejs -p '"\uDC15\uD83D"' | hd
00000000  ef bf bd ef bf bd 0a                              |.......|
00000007
$ nodejs -e 'process.stdout.write("\uDC15\uD83D")' | hd
00000000  ef bf bd ef bf bd                                 |......|
00000006

… and I assume it's not a node bug but the UCS-2 chars just cannot be represented in stdout's default encoding, UTF-8. So what if I change the encoding:
$ nodejs -e 'process.stdout.write("\uDC15\uD83D", "UCS-2");' | hd
00000000  15 dc 3d d8                                       |..=.|

That works! So I change it in the HTML generator:
html = ['\uFEFF<!DOCTYPE html>',
  // […]
  '</script>'].join('\n');
process.stdout.write(html, 'UCS-2');

Thanks to the BOM at start of HTML, Firefox now correctly detects UTF-16LE, ignores my meta tag, and… still reports "[fffd][fffd]".
So even if I'd manage to re-configure all of my web stack to use UCS-2 instead of UTF-8, probably no luck. Also I think it would be overkill to convert all my templates, database replies etc. to UCS-2, when we have a lot of good infrastructure modules for UTF-8, all just to transmit some minor script tag correctly.
There has to be an easier way. How about I have js-stringify escape most data and then escape the non-UTF-8 chars myself?
console.log(['\uFEFF<!DOCTYPE html>',
  '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">',
  '

'].join('\n'));

Yeah! That one works! Firefox detects UTF-8 and both objects arrive correctly! … because the HTML says:
console.log(charCodes("{ \"dog\": \"\uD83D\uDC15\", \"cow\": \"\uD83D\uDC04\", \"halfbreed\": \"\uDC15\uD83D\" }"));

So now we know how to fix the encoding, and we just have to clarify whether data integrity is part of js-stringify's "safely" claim:

Stringify an object so it can be safely inlined in JavaScript code

… or I shall make a new module to combine that with my need for "verbatim".

For the transition period, I made utf8safe-js-stringify. Still hope this will become the default and soon utf8safe-js-stringify can be just an alias for js-stringify.


[BUG] connection timeout is being ignored

Describe the bug
A clear and concise description of what the bug is.
I am trying to create via azure java sdk a blob container while the azurite local docker is down.
I was expected that after the configured timeout is elapsed, I'll get an exception.
However, the exception was thrown after around 60 seconds.
Exception or Stack Trace
Before creating container Thu Dec 02 08:32:29 IST 2021
Error in creating container Thu Dec 02 08:33:30 IST 2021
reactor.core.Exceptions$ReactiveException: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/0:0:0:0:0:0:0:1:10000
at reactor.core.Exceptions.propagate(Exceptions.java:392)
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:97)
at reactor.core.publisher.Mono.block(Mono.java:1706)
at com.azure.storage.common.implementation.StorageImplUtils.blockWithOptionalTimeout(StorageImplUtils.java:128)
at com.azure.storage.blob.BlobContainerClient.createWithResponse(BlobContainerClient.java:266)
at com.azure.storage.blob.BlobServiceClient.createBlobContainerWithResponse(BlobServiceClient.java:132)
at com.azure.storage.blob.BlobServiceClient.createBlobContainer(BlobServiceClient.java:107)
at com.blobs.quickstart.AppForBug.main(AppForBug.java:46)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99)
... 6 more
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/0:0:0:0:0:0:0:1:10000
Caused by: java.net.ConnectException: Connection refused: no further information
at java.base/sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:779)
at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:330)
at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:707)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:834)
To Reproduce
create a new container when the local container is down. No need to start any container for that.
Code Snippet
public static void main( String[] args ) throws IOException {
try {
String connectionStr = "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://localhost:10000/devstoreaccount1";
        HttpClient httpClient = new NettyAsyncHttpClientBuilder()
                .connectTimeout(Duration.ofMillis(5111))
                .responseTimeout(Duration.ofMillis(2222))
                .build();

        BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
                                    .httpClient(httpClient)
                                    .connectionString(connectionStr).buildClient();

        //Create a unique name for the container
        String containerName = "quickstartblobs" + java.util.UUID.randomUUID();

        System.out.println("Before creating container " + new Date());

        //BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient("quickstartblobs5c14670c-0eae-4605-939f-5dd99b7880ed");
        BlobContainerClient containerClient = blobServiceClient.createBlobContainer(containerName);

        System.out.println("After creating container " + new Date());

    } catch (Exception e) {
        System.out.println("Error in creating container " + new Date());
        e.printStackTrace();
    }

}

Expected behavior
I was expected that after at most 6 seconds, exception will be thrown.
(       .connectTimeout(Duration.ofMillis(5111)) )
Screenshots
If applicable, add screenshots to help explain your problem.
Setup (please complete the following information):

OS: Windows
IDE:  IntelliJ
Library/Libraries: com.azure:azure-storage-blob:12.14.2 , com.microsoft.azure:azure-storage:8.6.6
Java version: 8
App Server/Environment: Intellij
Frameworks: Java Main, Spring Boot

If you suspect a dependency version mismatch (e.g. you see NoClassDefFoundError, NoSuchMethodError or similar), please provide

verbose dependency tree (mvn dependency:tree -Dverbose)

Additional context
Add any other context about the problem here.

The same problem occurs when running on com.azure:azure-storage-blob:12.13.0 .
The same problem occurs when running on Spring boot.
The same problem occurs when trying to create a blob.
The same problem occurs when using OkHttpAsyncHttpClientBuilder instead of NettyAsyncHttpClientBuilder.
The same problem occurs when using async clients.

Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Adde
pom.xml.txt
AppForBug.java.txt
d

Any update?

@alzimmermsft could you please follow up?

Hi @eyal33, thanks for filing this issue.
What is happening here is that, by default, BlobContainerClient uses a retry policy for failed requests, in this case anything that is an IOException or a 500/503 HTTP response, and the connection timeout is a retryable error. So, the connection timeout is likely happening in 5 seconds it is being retried a few times with a backoff on each retry getting a total request time to the 60 seconds you're seeing.
Could you add this update and verify whether the request fails in roughly 5 seconds as expected:
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
    .httpClient(httpClient)
    .connectionString(connectionStr)
    .retryOptions(new RequestRetryOptions(null, 1, null, null, null, null))
    .buildClient();

This configures the client to only try a request once, so if the timeout is working properly it should fail in roughly 6 seconds.

@eyal33 was what I provided above able to help resolve the issue?

Yes. Thanks a lot.
בתאריך יום ג׳, 26 באפר׳ 2022, 17:27, מאת Alan Zimmer <
@.***>:

@eyal33 https://github.com/eyal33 was what I provided above able to
help resolve the issue?
—
Reply to this email directly, view it on GitHub
https://github.com/Azure/azure-sdk-for-java/issues/25777#issuecomment-1109866122,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABNAVCDXE6QTQR4B7HG5QL3VG74MHANCNFSM5JGKX3EQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Closing as resolved based on the last comment


Allow CRLF when linting #198

We should still detect mixed/inconsistent CRLF when linting in the CI at GitHub. Perhaps we can read an environment variable to enable/disable this feature for local linting and CI linting.

We should move the rule to .prettierrc file.
"endOfLine": "auto"

Happy to oblige. But I'm a bit confused and want to better understand why a/the change is done. The source of #198 was https://github.com/arifszn/gitprofile/pull/196#issuecomment-1278954711 which mentioned adding the rule to .eslintrc.js.

What is the difference between npm run lint and npm run prettier? Why are there two commands to do pretty (no pun intended) much the same?
CRLF in commits will no longer be forbidden when linting PRs. Is this OK and intended?
Configuring this in .eslintrc.js allows to conditionally enable it, based on the value of process.env.CI. CI lint could disallow CRLF, while linting locally would ignore them. .prettierrc seems to be static JSON.

I want to avoid introducing hard-to-detect inconsistencies.

In any case, moved the setting to .prettierrc file for now.

Lint shares the same config as the prettier on top of its own linting rules. The goal was to use one command (npm run lint) for prettier and lining both. npm run prettier remains for reference.
Yes, we will allow both CRLF and LF.
https://www.loom.com/share/752e7d17ea2948989cf6bbc63c8fe886. This video was recorded on a windows machine. As you see, if I clone the repo, and open the code editor, it gives errors for the end of the line. Also, running npm run lint will show errors for the endOfLine. Windows uses CRLF while cloning the repo. Sure, an advanced user knows how to bypass it but assuming the contributors are newcomers, I want to make the contribution as simple as possible.
If we introduce conditional checking, the PR will also fail pushed from a windows machine.


TRSv2-316 - Clear data when company search text removed

We need to do the same with the code from the registration journey

Codecov Report

Merging #186 (450202f) into develop (196cb2a) will increase coverage by 0.36%.
The diff coverage is 47.36%.

@@             Coverage Diff             @@
##           develop     #186      +/-   ##
===========================================
+ Coverage    40.10%   40.46%   +0.36%
===========================================
  Files           79       85       +6
  Lines         3561     3818     +257
  Branches       452      502      +50
===========================================
+ Hits          1428     1545     +117
- Misses        2110     2249     +139
- Partials        23       24       +1

Impacted Files
Coverage Δ

trade_remedies_public/cases/views.py
21.91% <0.00%> (-2.35%)
:arrow_down:

trade_remedies_public/config/settings/local.py
0.00% <ø> (ø)

trade_remedies_public/config/urls.py
100.00% <ø> (ø)

...remedies_public/core/templatetags/radio_element.py
15.15% <ø> (ø)

trade_remedies_public/core/decorators.py
38.70% <20.00%> (-0.58%)
:arrow_down:

trade_remedies_public/config/utils.py
27.27% <27.27%> (ø)

..._public/cases/v2_views/registration_of_interest.py
34.50% <34.72%> (-4.78%)
:arrow_down:

trade_remedies_public/documents/forms.py
44.00% <44.00%> (ø)

trade_remedies_public/documents/views.py
53.84% <53.84%> (ø)

trade_remedies_public/core/templatetags/get_url.py
80.00% <80.00%> (ø)

... and 12 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Fix typo

I run redpen for .properties file
find . -name "*.properties"  | xargs redpen

but got error.
[2018-08-01 12:14:47.077][INFO ] cc.redpen.Main - Configuration file: /usr/local/redpen-1.10.1/conf/redpen-conf-en.xml
[2018-08-01 12:14:47.084][INFO ] cc.redpen.config.ConfigurationLoader - Loading config from specified config file: "/usr/local/redpen-1.10.1/conf/redpen-conf-en.xml"
[2018-08-01 12:14:47.095][INFO ] cc.redpen.config.ConfigurationLoader - Succeeded to load configuration file
[2018-08-01 12:14:47.095][INFO ] cc.redpen.config.ConfigurationLoader - Language is set to "en"
[2018-08-01 12:14:47.095][WARN ] cc.redpen.config.ConfigurationLoader - No variant configuration...
[2018-08-01 12:14:47.142][INFO ] cc.redpen.config.ConfigurationLoader - No "symbols" block found in the configuration
[2018-08-01 12:14:47.145][INFO ] cc.redpen.config.SymbolTable - Default symbol settings are loaded
[2018-08-01 12:14:47.147][INFO ] cc.redpen.parser.SentenceExtractor - "[., ?, !]" are added as a end of sentence characters
[2018-08-01 12:14:47.147][INFO ] cc.redpen.parser.SentenceExtractor - "[', "]" are added as a right quotation characters
Exception in thread "main" java.lang.IllegalArgumentException: no such parser for :propery
	at cc.redpen.parser.DocumentParser.of(DocumentParser.java:99)
	at cc.redpen.Main.getDocuments(Main.java:219)
	at cc.redpen.Main.run(Main.java:196)
	at cc.redpen.Main.main(Main.java:60)

With -f properties option, redpen worked it.
I found typo in extension parser, and fixed it.

Coverage decreased (-0.01%) to 91.317% when pulling 72e184195fc2ec304ccaa900e08b641bb0442b4d on duck8823:fix/typo into 79b00e23d10662a4296b952a921b7c66fdbda69b on redpen-cc:master.

Ooops.... @duck8823 Thank you very much for the valuable contribution 🙏


Refactor navigation bar

Fixes #8779, #5258, #4191, and #8218.
Gets us closer to #7523 (combines TS and JS code paths for navigation bar).
Takes over from #8958 and does not conflict with current master.

Here's a summary of performance tests:

TS:

Large: 50% more time and memory
Small: A little more

JS:

Large: A little less
Small: Took a lot more time for some reason. This was a very small file so could be a fluke.

Keep in mind that the refactor has been heavily optimized, and if the old version were similarly optimized it would probably be twice as fast.
How tests were done:

Pasted texts into the navbar01 fourslash test (and added four slashes).
Changed fourslash.ts to not parse markers, and to run navbar 150 times, collecting results in an array.
Profiled with runtests-browser and chrome debugging tools. For memory testing used the 'timeline' and took difference between start and end memory. Keep in mind that results are being accumulated in an array with 150 elements, in addition to any garbage being generated.

checker.ts (large TS file):

Old:

SessionClient.getNavigationBarItems: 5305ms
getNavigationBarItems (navigationBar.ts): 4705ms
Memory: 340MB

Refactor:

SessionClient.getNavigationBarItems: 5741ms
getNavigationBarItems (navigationBar.ts): 6697ms
Memory: 550MB

tsc.ts (small TS file):

Old:
SessionClient.getNavigationBarItems: 433ms

getNavigationBarItems (navigationBar.ts): 426ms
Memory: 32MB

Refactor:

SessionClient.getNavigationBarItems: 511ms
getNavigationBarItems (navigationBar.ts): 426ms
Memory: 41MB

typeScriptServices.js (large JS file):

Old:

SessionClient.getNavigationBarItems: 27903ms
getNavigationBarItems (navigationBar.ts): 23051ms
Memory: 712MB

Refactor:

SessionClient.getNavigationBarItems: 19268ms
getNavigationBarItems (navigationBar.ts): 20901ms
Memory: 790MB

chalk.js (small JS file):

Old:

SessionClient.getNavigationBarItems: 107ms
getNavigationBarItems (navigationBar.ts): 43ms
Memory: 13MB

Refactor:

SessionClient.getNavigationBarItems: 132ms
getNavigationBarItems (navigationBar.ts): 82ms
Memory: 20MB

Here are some things that helped with performance:

Don't use closures in the recursion with forEachChild; use an external stack instead.
Node.getText() and getStart() are slow if you omit the sourceFile argument, as they try to get it by climbing up parents.
LSHost.positionToLineOffset and SessionClient.lineOffsetToPosition similarly have optional arguments which, if omitted, lead to redundant work. Functions like these could be causing performance issues elsewhere.
undefined apparently leads to deoptimization in Chrome, so void 0 is better.
if (foo) is slower than if (foo !== void 0).
Using undefined values for fields is faster than making the fields optional.

Here are some things that still hurt us:

We spend a lot of time in sortNodes and decoding/decorating navigation bar items.
forEachChild also spends a lot of time recursing through tokens, which we just ignore.

👍


.collapse('hide') on hidden uninit-ed collapsible no longer shows it

Fixes #15315.
Closes #15807.
X-Ref: #14282, #14417
CC: @XhmikosR @hnrch02 @juthilo for review

Damn. The one old test this makes fail dates back to the advent of the Collapse plugin's test suite, so we might need to ask @fat about this.
I'm not sure why it's testing for adding style="height: 0px;", considering that .collapse without .in sets display: none anyway...

I think it's save to remove/rework that old test.

Ok, took the plunge and removed that one old assertion.

@XhmikosR LGTY?

Makes sense. :+1:


Wiki/Docs for contributing

The current README says to check the wiki for information on tutorials and contributing, but it looks like the wiki has been disabled. I have a few things I'd like to write up (such as how to use Vagrant, how to invoke Salt, etc.) so can the wiki be re-enabled? Alternately, I can start a CONTRIBUTING file, but I'm worried it will get longer and harder to navigate over time.

We usually keep everything on the main wiki, e.g. https://github.com/servo/servo/wiki/Buildbot-administration

OK, sounds good! The making changes directly on servo-master.servo.org has me slightly worried :stuck_out_tongue_winking_eye:, but I'll see what I can do about updating the docs.


Authentication website: Failed to fetch

The authentication website (https://stefannienhuis.github.io/homebridge-bold/) returns "Failed to fetch" for any (Bold registered) phone number I try. Is it broken?

Same here sadly. I'm getting a load of authentication / token errors in HomeBridge and I wanted to refresh the token.

The authentication website was still using the old api url. This has now been updated.

@StefanNienhuis - thanks for your quick help here, much appreciated. 🍺
When going through authentication, I not get a "Load failed" error after entering my password.
Phone, validation SMS are all fine, and I'm able to log into the app with no issue using these credentials.
Am I doing something silly?
Thanks again. 🎄

Glad I’m able to help. What error are you getting now?

I just get this after entering my password.

Could you open the web inspector and see the console for errors?

It seems Bold has removed support for Legacy authentication... the new configuration flow is currently only implemented for the Config UI. Are you able to use the homebridge-config-ui-x plugin for configuration?

Yep, trying it now. Thank you again. 😀

Still not working so nothing to do with the API being down for a time

Hi, sorry for the delay. Legacy authentication doesn't work anymore since Bold changed their authentication strategy on their servers. For now authentication can only be done through the Config UI.

Are you using HOOBS? HOOBS has their own flavour of config ui that doesn't work with the standard homebridge config ui.

for some reason deleting the old config and reinstalling the plugin worked /shrug


Entities changes color (for some applications) after modification

Hi, we have found that after we have added geometry to a dxf file, that some of the original geometry may change colour. What makes this very confusing is that this only affects some applications these dxf files are opened with.
When the files are opened in AutoCAD it looks fine but when opened in Trumpf's TruTops application the profile colours have changed to green. Please see sample file that's causing this behaviour.
Sorry for the bad quality video but as you can see some files have changed the colour of the outer profile to green. These are the files we have added extra lines to on a separate layer and with a different colour.
https://user-images.githubusercontent.com/43685291/106476152-69ae0a00-64af-11eb-810e-8edb00ebc5be.mp4
2021076-PL01_RVS304_2 mm-5WL_1st.zip

From the DXF you have posted I do not see a reason why it changes its color. The entities associated with the layer "IV_OUTER_PROFILE" have a ByLayer color, so they should inherit the color associated to that layer, in your case an index 7 that in AutoCad corresponds to a white color. Check if in your Trumpf's TruTops application for any reason that index corresponds to a different color.


how to apply different Image Generator for different batches in Keras?

The training data is read from two .npy files. Say, train_set is regarded as X, and train_label is regarded as Y. Therefore, it is not a multiple input case. My task requires to augment the image patches in different manner. So how to define different Image Generator for different patches? Although there could be a lot of patches, I use 3 patches as an example:
for patch1:
datagen = ImageDataGenerator(rotation_range=20)
for patch2:
datagen = ImageDataGenerator(rotation_range=40)
for patch3:
datagen = ImageDataGenerator(rotation_range=60)
How to apply different generators on different patches, and how may I use the model.fit(...) or model.fit_generator(...) for the described scenario?
Also, Is there a way to rotate the image by a particular degree instead of a range?
Thanks!

Hi
Since this is not a bug/feature request, request you to post these kind of questions in any of the following.
https://keras.io/
https://keras.io/#support
https://gitter.im/Keras-io/Lobby
Thanks!


Element with slick-cloned is always set to aria-hidden='false'

short description of the bug / issue, provide more detail below.
We have a dynamic carousel with two slides with infinite=true. It displays the slides and rotates as expected, but adds a duplicate of the first slide to with the class slick-cloned and aria-hidden='false'

====================================================================
Hard to do this as the sliders are populated with PHP but here is output HTML:

Boys' t-shirt sale in Europe

Get ready for summer 2019

€5 OFF* selected items

<button class="promotion button hollow tiny">ADD ITEMS</button>

Includes EUR items only. Starts midnight (GMT+2) 24th September 2018. Ends 15th December 2021.
 * As you are VAT registered and use net pricing, the full face value for this promotion will be reduced by the VAT equivalent where VAT is not chargeable.

Clothing Sale

20% OFF selected items

<button class="promotion button hollow tiny">ADD ITEMS</button>

Includes GBP items only. Starts midnight (GMT) 24th March 2020. Ends 31st March 2020.

And the intialize code is:
$('.forthcoming-promotionsCarousel').slick({
                dots: true,
                infinite: true,
                autoplay: true,
                speed: 2000,
                arrows: false,
                slidesToShow: 1,
                slidesToScroll: 1,
            });

====================================================================
Steps to reproduce the problem

...
...

====================================================================
What is the expected behaviour?
The carousel should infinitely display slide 1, followed by slide 2, followed by slide 1 etc
The number of dots should be equal to the number of slides, ie 2.
====================================================================
What is observed behaviour?
The carousel displays as an infinite loop but displays an extra blank slide after slide 2, and there is also an extra dot displaying
The HTML has an extra slide added which is a duplicate of the first slide but has the extra class slick-cloned. It doesn't display because aria-hidden='false'.
The number of navigation dots is three when there are only two slides. In this case an extra button element with an id=slick-slide-control-02 and aria-label="3 of 3"
====================================================================
More Details

Which browsers/versions does it happen on? Latest versions of Chrome on OSX and Windows
Which jQuery/Slick version are you using? Version: 1.6.0 and also tested with  Version: 1.8.1
Did this work before? No

There is an error in the HTML causing a cloned element of a .... rather than the intended

Hard to spot where HTML errors cause this

Thanks @RWAP
Fixing the HTML error has fixed this issue.


PHP 8.1 support thread

AccessTokenInterface::jsonSerializable must match JsonSerializable::jsonSerializable(): mixed or use the #[\ReturnTypeWillChange] attribute

https://www.php.net/manual/en/class.jsonserializable.php
Probably this also breaks on other locations, but this is where I am currently getting an error from

Derp this was already referenced within #919


Replace echo -e with printf in Makefile

According to Shellcheck, echo flags are not defined in POSIX sh.
Also, echo might not expand backslash escapes but printf does.

Good catch, thanks!


Passing a hook has no effect?

I have tried several variations of implimenting a special case where one of my tooltips is forced to anchor to a different location on the target but its having no effect, even though it reaches the options arguement of the create function properly..
examples I have tried:
tipped="{ target:  'lefttop', tooltip: 'bottomleft' }"
tipped="{hook: { target:  'lefttop', tooltip: 'bottomleft' }}"
tipped="{hook:'leftmiddle'}"
all three have no effect and the toolip appears at the default location.  Using firebug:
$window.Tipped.create(element[0], $interpolate(value)(scope),
options);
options = {
hideDelay: 50
hideOn: "mouseleave"
hook: "leftmiddle"
maxWidth: 350
radius: false
showDelay: 50
showOn: "mouseenter"
size: "large"
target: "self"
}
so I guess create is not looking at hook? Any help would be appreciated

@FlikstRR I'm not sure if you're reporting a bug for Tipped or angular-tipped?


One update an object once inside the reconcile loop

This PR refactors the accountclaim controller to exit the reconcile loop after each update to an object. It ensures the reconcile loop is idempotent.

@mwoodson please review

cc/ @jhernand

/lgtm


Error on build on iOS

I receive this message on package the app to apple store.
react-native-safe-area-context ld: library not found for -lDoubleConversion

Post on wrong repository. Sorry.


About  train stage1 step_loss=Nan

Why in in the first stage of training loss has been Nan?

Please start it using "accelerate" rather than "python", as the readme indicates. If there are similar situations after that, please give feedback.

Thanks for your reply, it has been resolved.


Fix DX12 Capture transition state handling for MSAA

Also updates ScreenGrab and DDSTextureLoader for latest changes.

Verified fixed with
https://github.com/walbourn/directxtextest/pull/53


Refactor ScriptFinder into a static class.

Signed-off-by: dblock<EMAIL_ADDRESS>Description
ScriptFinder doesn't need to be an instance as it's not storing any different state (its paths are relative to itself).

Made the class static.
Refactored path resolution into a common method.
Added missing tests for when scripts aren't found.
Specialized script not found exception.

Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #346 (2aed40a) into main (7027e65) will increase coverage by 0.86%.
The diff coverage is 70.00%.

@@            Coverage Diff             @@
##             main     #346      +/-   ##
==========================================
+ Coverage   40.44%   41.30%   +0.86%
==========================================
  Files          23       23
  Lines         633      627       -6
==========================================
+ Hits          256      259       +3
+ Misses        377      368       -9

Impacted Files
Coverage Δ

bundle-workflow/src/assemble.py
0.00% <0.00%> (ø)

bundle-workflow/src/assemble_workflow/bundle.py
0.00% <0.00%> (ø)

bundle-workflow/src/build.py
0.00% <0.00%> (ø)

bundle-workflow/src/test.py
0.00% <0.00%> (ø)

...dle-workflow/src/test_workflow/integ_test_suite.py
0.00% <0.00%> (ø)

bundle-workflow/src/build_workflow/builder.py
100.00% <100.00%> (ø)

bundle-workflow/src/paths/script_finder.py
100.00% <100.00%> (+13.04%)
:arrow_up:

Continue to review full report at Codecov.

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


chore: Fix integration tests

Issue #, if available:
Description of changes:

Checklist

[ ] Meet tenets criteria
[ ] Update tests
[ ] Update docs
[ ] PR title follows conventional commit semantics

Breaking change checklist

RFC issue #:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (47fab11) 79.17% compared to head (78423d5) 79.17%.
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##               main    #1572   +/-   ##
=========================================
  Coverage     79.17%   79.17%
  Complexity      754      754
=========================================
  Files            93       93
  Lines          2877     2877
  Branches        307      307
=========================================
  Hits           2278     2278
  Misses          501      501
  Partials         98       98

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


Cannot compile sourcecode with mavlink v1 headers

I am trying to build the sourcecode with mavlink v1. I  have added a custom mavlink msg to common.xml and generated the headers and modified the mavlink_bridge_header.h  to include
#include <v1.0/mavlink_types.h
#include <v1.0/common/mavlink.h
But I get redefinition errors. How do I fix them ?
Building CXX object src/modules/mavlink/CMakeFiles/modules__mavlink.dir/mavlink_mission.cpp.obj
[ 76%] In file included from /home/malte/px4_current/src/Firmware/src/modules/mavlink/mavlink_log_handler.h:44:0,
from /home/malte/px4_current/src/Firmware/src/modules/mavlink/mavlink_main.h:71,
from /home/malte/px4_current/src/Firmware/src/modules/mavlink/mavlink_main.cpp:86:
/home/malte/px4_current/src/Firmware/mavlink/include/mavlink/v2.0/mavlink_types.h:23:0: error: "MAVLINK_CORE_HEADER_LEN" redefined [-Werror]
#define MAVLINK_CORE_HEADER_LEN 9 ///< Length of core header (of the comm. layer)
^
compilation terminated due to -Wfatal-errors.
cc1plus: all warnings being treated as errors
Built target lib__external_lgpl
make[3]: *** [src/modules/mavlink/CMakeFiles/modules__mavlink.dir/mavlink_main.cpp.obj] Error 1
make[3]: *** Waiting for unfinished jobs....
[ 77%] Built target modules__mc_pos_control
[ 77%] Built target modules__mc_att_control
[ 78%] Built target modules__sdlog2
In file included from /home/malte/px4_current/src/Firmware/src/modules/mavlink/mavlink_log_handler.h:44:0,
from /home/malte/px4_current/src/Firmware/src/modules/mavlink/mavlink_main.h:71,
from /home/malte/px4_current/src/Firmware/src/modules/mavlink/mavlink_mission.cpp:44:
/home/malte/px4_current/src/Firmware/mavlink/include/mavlink/v2.0/mavlink_types.h:23:0: error: "MAVLINK_CORE_HEADER_LEN" redefined [-Werror]
#define MAVLINK_CORE_HEADER_LEN 9 ///< Length of core header (of the comm. layer)
^
compilation terminated due to -Wfatal-errors.
cc1plus: all warnings being treated as errors
[ 79%] Built target modules__vtol_att_control
make[3]: *** [src/modules/mavlink/CMakeFiles/modules__mavlink.dir/mavlink_mission.cpp.obj] Error 1
make[2]: *** [src/modules/mavlink/CMakeFiles/modules__mavlink.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
[ 79%] Built target modules__param
[ 82%] [ 82%] Built target modules__systemlib__mixer
Built target modules__uORB
make[1]: *** [all] Error 2
make: *** [px4fmu-v2_default] Error 2

Hi @aysh-shariff,
It's not immediately clear to me what's specifically wrong, or how you have this organized. Did you generate both mavlink v1 and v2 and place the output in the same location that your firmware source uses?
If you go into Firmware/mavlink/include/mavlink/v1.0 (or v2.0) and run git status you should see changes that correspond to your message addition.

@dagar git status does show header files pertaining to my msgs in the untracked files.

Try generating mavlink/v1.0 and mavlink/v2.0 and restore mavlink_bridge_header.h to its original form. The mavlink module supports mavlink versions 1 and 2. See param MAV_PROTO_VER.

@aysh-shariff is this resolved?

Closing as resolved. There's no need to edit anything in the source. Just the headers need to be generated and placed in the directories.

@dagar I generated both the headers and placed in the respective folders.
However, using
#include <v1.0/mavlink_types.h
#include <v1.0/common/mavlink.h
still gives compilation errors. But I am using v2 headers in mavlink_bridge_header.h since both the headers are compatible. That solves my issue. So I'm not concerned about the compilation errors anymore.


Rapid pings cause error

Environment

Development Kit: ESP32-S2-Saola-1M
Module or chip used: ESP32-S2-WROOM
IDF version: v4.2-dev-2044-gdd3c032
Build System: Using pre-built binary release <IP_ADDRESS>
Compiler version: Using pre-built binary release <IP_ADDRESS>
Operating System: Windows
Power Supply: USB (have tested two different supply setups, same bug)

AT firmware GMR info:
AT version:<IP_ADDRESS>(0b76313 - ESP32S2 - Aug 20 2020 05:57:43)
SDK version:v4.2-dev-2044-gdd3c032
compile time(b5e1674):Aug 21 2020 04:59:57
Bin version:2.1.0(WROOM)

Problem Description
Rapidly sending pings causes an error.
Expected Behavior
I can ping a host rapidly with no issues.
Actual Behavior
ESP32-S2 displays error over USB debug log and does not give ERROR or OK in AT UART. No longer responds to AT commands.
Rapid HTTP requests from a local server don't cause any issue.
Steps to reproduce

Set up: SYSLOG=1, station mode, join AP
Send command AT+PING="<IP_ADDRESS>" as fast as possible (waiting until after OK, of course)

Debug Logs
From hitting RST button again to error:
ESP-ROM:esp32s2-rc4-20191025
Build:Oct 25 2019
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3ffe8100,len:0x4
load:0x3ffe8104,len:0x1988
load:0x40050000,len:0x1894
load:0x40054000,len:0x210c
entry 0x40050314
I (46) boot: ESP-IDF v4.2-dev-2044-gdd3c032 2nd stage bootloader
I (46) boot: compile time 04:59:46
I (46) boot: chip revision: 0
I (49) qio_mode: Enabling default flash chip QIO
I (54) boot.esp32s2: SPI Speed      : 80MHz
I (59) boot.esp32s2: SPI Mode       : QIO
I (64) boot.esp32s2: SPI Flash Size : 4MB
I (68) boot: Enabling RNG early entropy source...
I (74) boot: Partition Table:
I (77) boot: ## Label            Usage          Type ST Offset   Length
I (85) boot:  0 phy_init         RF data          01 01 0000f000 00001000
I (92) boot:  1 otadata          OTA data         01 00 00010000 00002000
I (100) boot:  2 nvs              WiFi data        01 02 00012000 0000e000
I (107) boot:  3 at_customize     unknown          40 00 00020000 000e0000
I (115) boot:  4 ota_0            OTA app          00 10 00100000 00180000
I (122) boot:  5 ota_1            OTA app          00 11 00280000 00180000
I (130) boot: End of partition table
I (134) esp_image: segment 0: paddr=0x00100020 vaddr=0x3f000020 size=0x21338 (135992) map
I (168) esp_image: segment 1: paddr=0x00121360 vaddr=0x3ffc9360 size=0x0310c ( 12556) load
I (171) esp_image: segment 2: paddr=0x00124474 vaddr=0x40024000 size=0x00404 (  1028) load
I (175) esp_image: segment 3: paddr=0x00124880 vaddr=0x40024404 size=0x0b798 ( 47000) load
I (194) esp_image: segment 4: paddr=0x00130020 vaddr=0x40080020 size=0xae3e4 (713700) map
I (324) esp_image: segment 5: paddr=0x001de40c vaddr=0x4002fb9c size=0x097bc ( 38844) load
I (333) esp_image: segment 6: paddr=0x001e7bd0 vaddr=0x40070000 size=0x0001c (    28) load
I (345) boot: Loaded app from partition at offset 0x100000
I (345) boot: Disabling RNG early entropy source...
2.1.0
max tx power=78,ret=0
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=50 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 50ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=20 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 20ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=19 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 19ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=24 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 24ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=23 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 23ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=23 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 23ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=22 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 22ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=22 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 22ms
64 bytes from <IP_ADDRESS> icmp_seq=1 ttl=59 time=21 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 21ms
E (21482) ping_sock: esp_ping_new_session(246): create socket failed: -1

I compiled custom version:
AT version:<IP_ADDRESS>-dev(ca41ec4 - ESP32S2 - Sep 16 2020 11:33:58)
SDK version:v4.2-beta1-227-gf0e87c933
compile time(743f1ef):Nov 15 2020 13:32:17
Bin version:2.1.0(WROOM)

and same issue still happens.

@AlyoshaVasilieva thanks for your report! we will reproduce it and fix.

@AlyoshaVasilieva thanks for your report! we will reproduce it and fix.

@AlyoshaVasilieva we updated the esp-idf version for esp32-s2, and tested AT+PING command more than 7000 times, it looks like work well.
Please git pull the latest version and test, feel free to let me know if the issue still happens.


 This is the
preferred way of deleting documents since delete-by-query was deprecated
in Elasticsearch 1.5.3 and is unsupported in 2.0.

@Receiptful/developers This is ready for review

:+1:


SW-3932 APIs to write planting site boundaries

Add boundary fields to the PUT and POST request payloads for planting sites to
allow user-editable boundaries for simple planting sites. The boundary is ignored
on PUT for detailed planting sites.

Current dependencies on/for this PR:

main

PR #1333   👈

PR #1334

This comment was auto-generated by Graphite.


910 tag for RL & BL

Update Overload to add appropriate 910 tag to each NYPL record processed based on the order fixed code.
910  $a RL
910  $a BL

Done PR #66


Fix fallback values and load order for blog settings

This PR makes sure

the correct variable names are used for the blog settings (#22)
the correct fallback-mechanism is used for the blog settings (#25)
Blog settings are always searched for in the following order:

Header variables in the current page
Settings from the page listed in the current page's header variable blog_url
Settings from the page listed in the theme variable blog-page (which defaults to /blog)
Default value (true)

Fixes #22
Obsoletes/Fixes #25

Thanks for this!


error displaying validator shares

Description/Reasoning
axelard q tss key-shares-by-key-id ethereum-master-2
correctly displays the shares for my validator.
at the same time, key by validator address doesn't show anything. (tried different address formats also; didn't work)
axelard q tss key-shares-by-validator axelarvaloper17sfngmpxdf8xz8mdx2zj6xtv3f3v6ag8cdvuma
null
Current Behaviour
Expected Behaviour
Steps to reproduce (for bugs)
Relevant Logs or Files

I believe this is a side effect of the bug where we overwrite our snapshots, but will need to test more


Internationalize regex split points

This PR is in response to issue https://github.com/thoughtbot/griddler/issues/286.
What it does:

Extracts regexes from EmailParser and places them into their respective locale files
Adds locale files for english, french and spanish
Updates specs to assert using the correct locale
Adds I18n as a gem dependency

Why:

These changes will prevent the need to continually add one off regexes to EmailParser.regex_split_points. Instead, support for other languages can be added through typical I18n via separate yml files.
This will make it easier to identify what formats are missing and for what languages

Questions:

Do we need to identify the Content-Language from the received email in order to set the I18n.locale? Or will this just work?

Awesome!
In regards to setting I18n.locale, I believe we'd have to. Rails will use the default locale if a different one isn't directly set. Do we know if Content-Language or Accept-Language headers are consistently set by the inbound parse services?

So, I did a little bit of research on Content-Language and Accept-Language this morning and I don't think we can rely on those headers being consistently sent or set from the inbound parse services.
Also, just because Content-Language is set to de-DE (German), for example, doesn't mean the actual email will be in German. The Content-Language could just mean that the email is meant for German readers, but written in English [Mozilla].
So, I'm starting to think we will have to:

Identify the locale based on Content-Language and/or Accept-Language if available, defaulted to English
Use internationalized split points based on the locale
Run through the English regexes anyway if no split points matched

Didn't dive too deep into this but let me know your thoughts.

@kle-roy do you have any input on this implementation? I have not worked with use cases where I'm receiving email in multiple languages so I'm not sure what approach would work best for users downstream.

Have you had more time to think about this?
I was wondering if adding a locale attribute to the configuration with same defaults  would be beneficial. Essentially, I think down stream users will probably be operating in a specific language and Griddler shouldn't be too concerned with ensuring parsing for ever language, especially non specified languages.

I'm not so sure I agree that a single incoming language is all that's required. It is untenable to try and support all possible language splits though. This method, though, really boxes users in if they are receiving email in multiple languages. They would have to change their locale and reparse in their processing worker in order to properly pick up changes.

How about an array of specified languages? I'm impartial to any solution, just wondering what

I saw this implementation of I18n in a gem and was curious as to your thoughts. Doesn't really solve the questions we've asked, but might still be worth a look:
https://github.com/seejohnrun/ice_cube/blob/master/lib/ice_cube/i18n.rb


feat(modshare)!: versioning for discovery

Closes #2578

Note: once merging, main will be incompatible with arabica and mocha

Bump could be done in backwards compatible manner if there are 2 instances of discovery running: with old and new tag. The downside is that in worst case scenario, it will ensure 2x more connections to full nodes.

@walldiss I think we plan to upgrade arabica + mocha anyway soon


Implement connection open init from Sovereign to Cosmos

Part of: #245

[ ] Implement building of SovereignConnectionOpenInitPayload.
[ ] Implement building of CosmosMessage for ConnectionOpenInit.

Done in #213


[rbox] update hjson to use bus_interfaces

Signed-off-by: Timothy Chen<EMAIL_ADDRESS>

LGTM


MGMT: Support WYSIWYG for code editing

This is very much a might-wanna-do-in-the-future type of item. It's described here to solicit feedback.
There are certain fields in the service model, specially when dealing with attributes and release policies etc, where the adopter is allowed to enter code/script. The UI today is less than helpful is allowing one to do so, which forces the user to use some kind of external editor to write the code, format the code and then paste the final outcome into the right field.
This issue is about introducing the possibility of a WYSIWYG editor for relevant fields, where at the click of a button, a new popup of some kind shows the editor, allowing the user to edit the content and save it back into the field. It didn't seem like Angular had a native widget for this, but google lead me to this: http://textangular.com/

I actually use this embedded into the app I described for the SAML upload and in our current version of Managemnet app when viewing diffs generated by Git.
https://ace.c9.io/
Is this something like what you were looking for?

Yup. Exactly. Looks pretty sweet!