AppBuilder::new().with_api(): how to override default api?

Hi, couldn't find an example of how default API could be overridden. Reason is because of this:
MockApi's addr_humanize incompatible with instantiate2_address
https://github.com/CosmWasm/cosmwasm/issues/1648
Problem is in MockApi: https://github.com/CosmWasm/cosmwasm/blob/fde26bd6293aaacb901c3fb5a20de0d89c339b38/packages/vm/src/testing/mock.rs#L132-L139
I know how to override wasm executor using AppBuilder::new().with_wasm() - maybe with_api() is similar to this:
#[derive(Debug)]
struct Bech32AddressGenerator {
    pub hrp: String,
}

const COUNT: Item<u8> = Item::new("count");

impl Bech32AddressGenerator {
    pub const fn new(hrp: String) -> Self {
        Self { hrp }
    }
}

impl AddressGenerator for Bech32AddressGenerator {
    fn next_address(&self, storage: &mut dyn Storage) -> Addr {
        let count = match COUNT.may_load(storage) {
            Ok(Some(count)) => count,
            _ => 0,
        };
        let data = bech32::u5::try_from_u8(count).unwrap();
        let encoded_addr = bech32::encode(self.hrp.as_str(), vec![data], Variant::Bech32).unwrap();
        let addr = Addr::unchecked(encoded_addr);
        COUNT.save(storage, &(count + 1)).unwrap();
        addr
    }
}

impl Test {
    fn new(proxy: bool, pauser: Option<String>, cw721_code: Box<dyn Contract<Empty>>) -> Self {
        let mut app = AppBuilder::new()
            .with_wasm::<FailingModule<Empty, Empty, Empty>, WasmKeeper<Empty, Empty>>(
                WasmKeeper::new_with_custom_address_generator(Bech32AddressGenerator::new(
                    TARGET_HRP.to_string(),
                )),
            )
            .with_ibc(IbcAcceptingModule)
            .build(no_init);
...

There is already with_api. So what you'd need to do is to create your own version of MockApi by implementing the cosmwasm_std::Api trait. You could e.g. make MyApi with impl cosmwasm_std::Api for MyApi and then you forward all API calls to a MockApi except for the address stuff. This way you don't have to implement the crypro yourself.

There is even MockApiBech32 in this repo

There is already with_api. So what you'd need to do is to create your own version of MockApi by implementing the cosmwasm_std::Api trait. You could e.g. make MyApi with impl cosmwasm_std::Api for MyApi and then you forward all API calls to a MockApi except for the address stuff. This way you don't have to implement the crypro yourself.

Actually I'm trying to test instantiate2_address, and maybe problem is somewhere else? Instantiate2 seems not to be mocked, it returns me this for example: CanonicalAddr(Binary(664d735b8a8cb7b97603e805b355a16c72227cd50ac403dfc819db46c45c5f28))
My Api implementation for addr_canonicalize() just wraps human string into Binary: CanonicalAddr(to_binary(&normalized)?), and vice versa for addr_humanize(), I just unwraps it: let human: String = from_binary(&canonical.0)?;
So, is it possible to mock instantiate2 as well? This way I can just create another CanonicalAddr with string binary.

Hi all,
the example of using Bech32 in tests is shown in test file here:
https://github.com/CosmWasm/cw-multi-test/blob/main/tests/test_app_builder/test_with_api.rs
It uses MockApiBech32 defined also in tests:
https://github.com/CosmWasm/cw-multi-test/blob/main/tests/mod.rs
These two files show how to replace Api to handle Bech32 addresses.
But for generating contract addresses in Bech32 format, the AddressGenerator is needed.
And an example of such generator is defined also here in tests: https://github.com/CosmWasm/cw-multi-test/blob/beb8ad129beb1772a95e2e58b48e8150abbe5d22/tests/mod.rs#L185-L230
I hope this helps ;-)

Hi all, the example of using Bech32 in tests is shown in test file here: https://github.com/CosmWasm/cw-multi-test/blob/main/tests/test_app_builder/test_with_api.rs
It uses MockApiBech32 defined also in tests: https://github.com/CosmWasm/cw-multi-test/blob/main/tests/mod.rs
These two files show how to replace Api to handle Bech32 addresses.
But for generating contract addresses in Bech32 format, the AddressGenerator is needed. And an example of such generator is defined also here in tests:
https://github.com/CosmWasm/cw-multi-test/blob/beb8ad129beb1772a95e2e58b48e8150abbe5d22/tests/mod.rs#L185-L230
I hope this helps ;-)

Absolute awsome, that helps! I've basically copied ´MockAddressGeneratorandMockApiBech32`. In my code I use a string as a salt:
let salt = "bad kids".as_bytes();
let canonical_creator = deps.api.addr_canonicalize(env.contract.address.as_str())?;
let CodeInfoResponse { checksum, .. } = deps
    .querier
    .query_wasm_code_info(CW721_CODE_ID.load(deps.storage)?)?;
let canonical_cw721_addr = instantiate2_address(&checksum, &canonical_creator, salt)
                .map_err(|_| StdError::generic_err("Could not calculate addr"))?;

So for "bad kids", the bytes array is: 98,97,100,32,107,105,100,115. Now in MockAddressGenerator.predictable_contract_address() I have copied this code:
fn predictable_contract_address(
    &self,
    api: &dyn Api,
    _storage: &mut dyn Storage,
    _code_id: u64,
    _instance_id: u64,
    checksum: &[u8],
    creator: &CanonicalAddr,
    salt: &[u8],
) -> AnyResult<Addr> {
    let canonical_addr = instantiate2_address(checksum, creator, salt)?;
    Ok(Addr::unchecked(api.addr_humanize(&canonical_addr)?))
}

But interestingly the salt here is: 39, 9, 91, 67, 143, 112, 174, 211, 84, 5, 20, 155, 197, 232, 223, 161, 212, 97, 247, 205, 156, 37, 53, 152, 7, 173, 102, 220, 193, 57, 111, 199
Which is the string representation for [98,97,100,32,107,105,100,115]!
So I had to adjust predictable_contract_address() by this:

convert salt to string representation
remove brackets and commas from string representation
convert back to salt

fn predictable_contract_address(
    &self,
    api: &dyn Api,
    _storage: &mut dyn Storage,
    _code_id: u64,
    _instance_id: u64,
    checksum: &[u8],
    creator: &CanonicalAddr,
    salt: &[u8],
) -> Result<Addr> {
    // string representation of the salt
    let salt_to_string = std::str::from_utf8(salt)?;
    // Remove the square brackets and split the string by commas
    let parts: Vec<&str> = salt_to_string.trim_matches(|c| c == '[' || c == ']').split(',').collect();
    // Convert each part to a u8 and collect them into a Vec<u8>
    let salt: Vec<u8> = parts.iter().map(|part| part.trim().parse().unwrap()).collect();
    let canonical_addr = instantiate2_address(checksum, creator, &salt)?;
    Ok(Addr::unchecked(api.addr_humanize(&canonical_addr)?))
}

Tests are now running, but not sure whether above really solves the problem or it is just a hack of root of cause - which I haven't found yet?!?

Hi @taitruong, unfortunately I do not get the same effect as you with the salt.
I have prepared a test case that uses both MockApiBech32 and MockAddressGenerator toegether,
and the salt passed to MockAddressGenerator.predictable_contract_address is exactly as expected:
[98, 97, 100, 32, 107, 105, 100, 115] ("bad kids" as bytes).
Could you take a look at this PR #96, maybe I am missing something that is relevant in your test case?
Thanks in advance!

Hi @taitruong, unfortunately I do not get the same effect as you with the salt. I have prepared a test case that uses both MockApiBech32 and MockAddressGenerator toegether, and the salt passed to MockAddressGenerator.predictable_contract_address is exactly as expected: [98, 97, 100, 32, 107, 105, 100, 115] ("bad kids" as bytes).
Could you take a look at this PR #96, maybe I am missing something that is relevant in your test case?
Thanks in advance!

I will - as soon as I'm done with some other tasks. In the meanwhile you can check my code here: https://github.com/public-awesome/cw-ics721/pull/71/files#diff-4aa2f03efbf149b4f455e1d534278edc33135c23cd29d2ad7f8e46b74eaaa39d
In packages/ics721/src/testing/integration_tests.rs you can find my workaround in predictable_contract_address().

Hi @taitruong, I guess I have spotted the issue. There is a conversion from [u8] into JSON binary for a salt:
salt: to_json_binary(salt)?,
which converts to binary representation of the text, so you get the effect you have described before. Please change it to:
salt: salt.into(),
It is enough to convert byte array to Binary in this case, if you want to keep the salt in the binary form, of course. I have prepared a diff patch from your branch to point the places to be changed. Generally please change as described above and remove the salt hacking in MockAddressGenerator, and it should work.
After applying the changes, calling:
$ cargo clean
$ cargo build
$ cargo clippy
$ cargo test

worked fine for me.
If this solves the issue, please let me know if I can close it. Thanks!
Git diff:
diff --git a/contracts/sg-ics721/src/testing/integration_tests.rs b/contracts/sg-ics721/src/testing/integration_tests.rs
index 495df03..2862c74 100644
--- a/contracts/sg-ics721/src/testing/integration_tests.rs
+++ b/contracts/sg-ics721/src/testing/integration_tests.rs
@@ -120,18 +120,6 @@ impl AddressGenerator for MockAddressGenerator {
         creator: &CanonicalAddr,
         salt: &[u8],
     ) -> Result<Addr> {
-        // string representation of the salt
-        let salt_to_string = std::str::from_utf8(salt)?;
-        // Remove the square brackets and split the string by commas
-        let parts: Vec<&str> = salt_to_string
-            .trim_matches(|c| c == '[' || c == ']')
-            .split(',')
-            .collect();
-        // Convert each part to a u8 and collect them into a Vec<u8>
-        let salt: Vec<u8> = parts
-            .iter()
-            .map(|part| part.trim().parse().unwrap())
-            .collect();
         let canonical_addr = instantiate2_address(checksum, creator, &salt)?;
         Ok(Addr::unchecked(api.addr_humanize(&canonical_addr)?))
     }
diff --git a/packages/ics721/src/execute.rs b/packages/ics721/src/execute.rs
index 506c1a5..1cb2abf 100644
--- a/packages/ics721/src/execute.rs
+++ b/packages/ics721/src/execute.rs
@@ -285,7 +285,7 @@ where
                     // can make this field too long which causes data
                     // errors in the SDK.
                     label: "ics-721 debt-voucher cw-721".to_string(),
-                    salt: to_json_binary(salt)?,
+                    salt: salt.into(),
                 },
                 INSTANTIATE_CW721_REPLY_ID,
             );
diff --git a/packages/ics721/src/testing/integration_tests.rs b/packages/ics721/src/testing/integration_tests.rs
index b2c341e..4145f02 100644
--- a/packages/ics721/src/testing/integration_tests.rs
+++ b/packages/ics721/src/testing/integration_tests.rs
@@ -120,18 +120,6 @@ impl AddressGenerator for MockAddressGenerator {
         creator: &CanonicalAddr,
         salt: &[u8],
     ) -> Result<Addr> {
-        // string representation of the salt
-        let salt_to_string = std::str::from_utf8(salt)?;
-        // Remove the square brackets and split the string by commas
-        let parts: Vec<&str> = salt_to_string
-            .trim_matches(|c| c == '[' || c == ']')
-            .split(',')
-            .collect();
-        // Convert each part to a u8 and collect them into a Vec<u8>
-        let salt: Vec<u8> = parts
-            .iter()
-            .map(|part| part.trim().parse().unwrap())
-            .collect();
         let canonical_addr = instantiate2_address(checksum, creator, &salt)?;
         Ok(Addr::unchecked(api.addr_humanize(&canonical_addr)?))
     }

Hi @taitruong, I guess I have spotted the issue. There is a conversion from [u8] into JSON binary for a salt:
salt: to_json_binary(salt)?,
which converts to binary representation of the text, so you get the effect you have described before. Please change it to:
salt: salt.into(),
It is enough to convert byte array to Binary in this case, if you want to keep the salt in the binary form, of course. I have prepared a diff patch from your branch to point the places to be changed. Generally please change as described above and remove the salt hacking in MockAddressGenerator, and it should work.
After applying the changes, calling:
$ cargo clean
$ cargo build
$ cargo clippy
$ cargo test

worked fine for me.
If this solves the issue, please let me know if I can close it. Thanks!
Git diff:
diff --git a/contracts/sg-ics721/src/testing/integration_tests.rs b/contracts/sg-ics721/src/testing/integration_tests.rs
index 495df03..2862c74 100644
--- a/contracts/sg-ics721/src/testing/integration_tests.rs
+++ b/contracts/sg-ics721/src/testing/integration_tests.rs
@@ -120,18 +120,6 @@ impl AddressGenerator for MockAddressGenerator {
         creator: &CanonicalAddr,
         salt: &[u8],
     ) -> Result<Addr> {
-        // string representation of the salt
-        let salt_to_string = std::str::from_utf8(salt)?;
-        // Remove the square brackets and split the string by commas
-        let parts: Vec<&str> = salt_to_string
-            .trim_matches(|c| c == '[' || c == ']')
-            .split(',')
-            .collect();
-        // Convert each part to a u8 and collect them into a Vec<u8>
-        let salt: Vec<u8> = parts
-            .iter()
-            .map(|part| part.trim().parse().unwrap())
-            .collect();
         let canonical_addr = instantiate2_address(checksum, creator, &salt)?;
         Ok(Addr::unchecked(api.addr_humanize(&canonical_addr)?))
     }
diff --git a/packages/ics721/src/execute.rs b/packages/ics721/src/execute.rs
index 506c1a5..1cb2abf 100644
--- a/packages/ics721/src/execute.rs
+++ b/packages/ics721/src/execute.rs
@@ -285,7 +285,7 @@ where
                     // can make this field too long which causes data
                     // errors in the SDK.
                     label: "ics-721 debt-voucher cw-721".to_string(),
-                    salt: to_json_binary(salt)?,
+                    salt: salt.into(),
                 },
                 INSTANTIATE_CW721_REPLY_ID,
             );
diff --git a/packages/ics721/src/testing/integration_tests.rs b/packages/ics721/src/testing/integration_tests.rs
index b2c341e..4145f02 100644
--- a/packages/ics721/src/testing/integration_tests.rs
+++ b/packages/ics721/src/testing/integration_tests.rs
@@ -120,18 +120,6 @@ impl AddressGenerator for MockAddressGenerator {
         creator: &CanonicalAddr,
         salt: &[u8],
     ) -> Result<Addr> {
-        // string representation of the salt
-        let salt_to_string = std::str::from_utf8(salt)?;
-        // Remove the square brackets and split the string by commas
-        let parts: Vec<&str> = salt_to_string
-            .trim_matches(|c| c == '[' || c == ']')
-            .split(',')
-            .collect();
-        // Convert each part to a u8 and collect them into a Vec<u8>
-        let salt: Vec<u8> = parts
-            .iter()
-            .map(|part| part.trim().parse().unwrap())
-            .collect();
         let canonical_addr = instantiate2_address(checksum, creator, &salt)?;
         Ok(Addr::unchecked(api.addr_humanize(&canonical_addr)?))
      Saved my day! Thank u so much, ser!


Generate warnings if options have dashes in them.

Not needed anymore https://github.com/galaxyproject/galaxy/pull/8409 which is in 19.09 .. but would require to set profile="19.09".


#847: prepare for using connection as context mgr

Normalize patterns across three API subpackages:

Make the threadlocal stack part of the related connection module.

Move the get_connection() convenience API up to the base subpackage __init__.

Move the implementation of _require_connection down into the related _implicit_environ module.

Coverage remained the same at 100.0% when pulling 710af7318004727800c1d3fce01bfc7a8ec62ed4 on tseaver:847-connection_as_context_mgr-setup into 6bc4e02dcd29f52183f6e879166df54852222fa2 on GoogleCloudPlatform:master.

I haven't read through this code yet, but my assumption was that, given the big debate on that other issue regarding the client-pattern, it seemed we had a lot of other people agreeing that it would be worth exploring that direction.
Is that not the case ? Did we decide somewhere to go the context-manager pattern?

@tseaver I'm in the same boat with @jgeewax

I may have lost track of some that thread, but still don't think my concerns about the "client" pattern got addressed.
I wanted to line ducks up to allow demonstrating the context manager pattern.  These cleanups / normalizations are intended to help that, but they don't implement it, and should be neutral for either one.

ISTM that a 100+ comment argument thread on Github is probably the wrong way to try to resolve such an issue.

@tseaver Do we still want this?

@dhermes I think so.  Moving the get_connection() / _require_connection() bits into the same places in each sub-package is a definite win.  Moving the "stack" into the connection module is maybe more debatable, but still seems right to me, even if we don't continue on to allow using connections directly as context managers.

Let's break off the definite win as a single PR and then go from there. I'm finding this hard to digest as one piece.

@dhermes Dropping aeb79e5 isn't that simple -- it also breaks what would be import cycles between datastore.batch <--> datastore._implicit_environ and storage.batch <--> storage._implicit_environ.

I'm not seeing the value to be worth the struggle.

Having the get_connection and _require_connection functions in sensible / consistent locations isn't valuable?  Their current locations are purely happenstance, and would make no sense to our future selves.
Setting up the connection stack to be non-batch specific can't hurt, and it does allow the batch modules not to be pulled into the _require_connection dance.

I agree with you that it's "valuable" but the hoop jumping in this PR is just a lot to bear. (More than the value added). Batch.top() is a useful concept
For our users, we put them in the sub-package, so they don't care.
If we're worried about maintainers, we can put a code comment explaining the reason
When we fully transition to clients, we may decide to ditch all the implicit stuff, so _implicit_environ will just go away

@tseaver is this dead?


Warning: cl package required at runtime

I installed go-mode via the melpa bleeding edge repo and got these warnings:
Compiling file /Users/tleyden/.emacs.d/elpa/go-mode-20160127.4/go-mode.el at Sat Feb  6 17:58:11 2016
Entering directory `/Users/tleyden/.emacs.d/elpa/go-mode-20160127.4/'
go-mode.el:16:1:Warning: cl package required at runtime

In go-mode:
go-mode.el:917:10:Warning: `font-lock-syntactic-keywords' is an obsolete
    variable (as of 24.1); use `syntax-propertize-function' instead.

I'm using emacsformacosx v 24.5 (9.0) on OSX El Capitan
My ~/.emacs.d/init.el file:
(require 'package)
(add-to-list 'package-archives
  '("melpa" . "http://melpa.milkbox.net/packages/") t)

Nevermind, looks like these warnings can be ignored.

Warning: cl package required at runtime

http://stackoverflow.com/questions/5019724/in-emacs-what-does-this-error-mean-warning-cl-package-required-at-runtime

go-mode.el:917:10:Warning: `font-lock-syntactic-keywords' is an obsolete

Looks like that's a known warning that can be ignored?
https://github.com/dominikh/go-mode.el/pull/95

Re cl: Yes, we use cl. We're not GNU, we actually like cl, the warning can be ignored.
Re font-lock-syntactic-keywords: If there's some trick to tell the compiler that we're only using it with older versions of Emacs, please let me know.
Either way, all of these warnings are harmless.

bdf353a5992ce493d6f6510f442384cdae155e58 and 7c5e9ade4cf6036eb1eda8cc588b390927321f6e address this issue.


Add Scuola Superiore Sant'Anna file for educational license

@CrissCama First stage of verification passed, official domain is santannapisa.it as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.

@CrissCama Thank you for your patience while waiting for a review and processing your request. Pull request merged.


Error: cannot find module electron-bridge

Describe the bug
When I start my electron app, it shows this error:

To Reproduce
Steps to reproduce the behavior:

ionic cap sync @capacitor-community/electron
cd electron
npm run build && electron ./

Expected behavior
Well, there shouldn't be any errors during start.
Desktop (please complete the following information):

OS: macOS 10.15.6

I fixed it by myself. I've removed and re-added the platform and now it works.


Arduino Portenta or Nicla-Vision frameBuffer to PNG

Hi Larry
Both your PNG libraries seem to run fine on the Portenta and Nicla Vision. I don't need to save the data to SD card I just need to convert the Arduino camera FrameBuffer to PNG and then serial.print it to the monitor (or client.write it to a website).
I think I can do the conversion but if you have any suggestions, or problems you think I might have, I would be interested in hearing them.
defined at   https://github.com/arduino/ArduinoCore-mbed/blob/master/libraries/Camera/src/camera.h
class FrameBuffer {
    private:
        int32_t _fb_size;
        uint8_t *_fb;
        bool _isAllocated;
    public:
        FrameBuffer(int32_t x, int32_t y, int32_t bpp);
        FrameBuffer(int32_t address);
        FrameBuffer();
        uint32_t getBufferSize();
        uint8_t* getBuffer();
        void setBuffer(uint8_t *buffer);
        bool hasFixedSize();
        bool isAllocated();
};

camera example at
https://github.com/arduino/ArduinoCore-mbed/blob/master/libraries/Camera/examples/CameraCaptureRawBytes/CameraCaptureRawBytes.ino
#include "camera.h"

#ifdef ARDUINO_NICLA_VISION
  #include "gc2145.h"
  GC2145 galaxyCore;
  Camera cam(galaxyCore);
  #define IMAGE_MODE CAMERA_RGB565
#else
  #include "himax.h"
  HM01B0 himax;
  Camera cam(himax);
  #define IMAGE_MODE CAMERA_GRAYSCALE
#endif

  if (cam.grabFrame(fb, 3000) == 0) {
    Serial.write(fb.getBuffer(), cam.frameSize());
  }

A good starting point would be how to Serial.print() the encoded PNG?

Are you asking how to output it as BASE64 or hex to the serial monitor?

As far as I know a Base64 image to show on a webpage is just the raw data from a PNG presented in this form:
data:image/png;base64,R0lGODdhAQABAPAAAP8AAAAAACwAAAAAAQABAAACAkQBADs=

The above is a very small red dot.
For my code I am trying to write the PNG to the serial monitor in HEX format and then to a webpage using client.write();  in the format above so that the PNG can be shown on the webpage. I guess I could also save the PNG as a file on the SD card and display it on the webpage as a PNG, but I am trying to skip that step.
An extra problem is client.write() needs the entire set of data in one shot and not to loop through each digit as it is much too slow.
My testing (Portenta and Nicla-Vision) repository is here   https://github.com/hpssjellis/my-examples-for-the-arduino-portentaH7/tree/master/research/camera-webserver-save

I'm still not clear on what part you need help with. Your png encoding example looks ok, but you don't do anything with the output data. I would suggest writing the hex data to the http connection is reasonable sized chunks (e.g. 512 bytes at a time). See how that works. Are you unclear how to format the text to be acceptable for the web connection?


buffer_filter: allow to set the maximum size Without buffering data immediately

Commit Message: buffer_filter: allow to set the maximum size Without buffering data immediately
Additional Description:
Risk Level: Low, doesn't change the default behavior
Testing: Unit & Integration
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
Fixes #32205
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

I am blocked by how to run the corresponding test. In the integration test, I used a Lua filter to simulate a filter that buffers the request. However, I get the error C++ exception with the description "Unable to parse JSON as proto (INVALID_ARGUMENT: could not find @type 'type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua'):  ....
I have checked that the type of Lua filter is correct. I don't know why this type is not found.
Can anyone help me, please? Thanks!

@abeyad
Thanks for your suggestion! Updated.

/wait ci

I am blocked by how to run the corresponding test. In the integration test, I used a Lua filter to simulate a filter that buffers the request. However, I get the error C++ exception with the description "Unable to parse JSON as proto (INVALID_ARGUMENT: could not find @type 'type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua'): ....
I have checked that the type of Lua filter is correct. I don't know why this type is not found.
Can anyone help me, please? Thanks!

@abeyad
I have an issue with writing a test to simulate the case that a subsequence filter does the buffering. Would you help me please?

I am blocked by how to run the corresponding test. In the integration test, I used a Lua filter to simulate a filter that buffers the request. However, I get the error C++ exception with the description "Unable to parse JSON as proto (INVALID_ARGUMENT: could not find @type 'type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua'): ....
I have checked that the type of Lua filter is correct. I don't know why this type is not found.
Can anyone help me, please? Thanks!

@abeyad I have an issue with writing a test to simulate the case that a subsequence filter does the buffering. Would you help me please?

This is probably because the filter isn't linked.
Will it be possible to use one of the integration tests filters instead? This will reduce coupling with other filters.
Note that adding the filter to the build target (in the BUILD file) is also needed.

@adisuissa
Thanks for your suggestion! I will update the test soon.

sorry, is the goal of this PR simply to have a way of calling setDecoderBufferLimit on the filter manager? I don't think it makes sense to add config to the buffer filter for this. Is there a reason you can't use the existing flow control knobs? https://www.envoyproxy.io/docs/envoy/latest/faq/configuration/flow_control /wait

There is a user case that people may want to increase the limit for a separate route. For example, a route that is covered by a WAF rule may need to increase its limit so no 413 response is triggered unexpectedly. As discussed in https://github.com/envoyproxy/envoy/issues/32205, there is no solution to cover this user case. Using the buffer filter is OK, but it will buffer the whole request unconditionally.
We can also add this feature to a new HTTP filter. One thing I am concerned about is whether adding a new filter for this purpose is overkill. But it is up to you to make the decision.

We already have envoy per-route config
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto
I think changing buffer limits makes more sense there than in a filter many may not use.

We already have envoy per-route config https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto I think changing buffer limits makes more sense there than in a filter many may not use.

Do you mean adding a max_request_bytes field to RouteConfiguration message?

something like that yes.  cc @envoyproxy/api-shepherds

Will submit a new one with the new method.


The bot is spamming messages

It looks like that when loop=all is selected, at some point, it starts skipping all songs and sending each song in the queue without stopping, like if the songs were 0 seconds long.
I unforunately haven't any screenshot because I cleared the channel.

I'll try to reproduce it locally, any informations about when or how it happens will help a lot

Ok, so here are the setps to reproduce it:

In the config file, set SHOULD_AUTO_DISCONNECT_WHEN_ALONE = False
Play 2 songs ( the ones i played where https://www.youtube.com/watch?v=hgr4b-ve6XU&ab_channel=ArthurSena & https://www.youtube.com/watch?v=h8YZMT94rR4&t=7665s&ab_channel=smugkat )
Set Loop = all
Wait
At some point, the bot will stop playing music and start spamming 🎧 Song playing now messages, skipping the songs like they were 0 minutes long.

How long do you usually wait until the bot gets this behavior?
I've fixed some edge issues I've run into over the past few days, but nothing that seems to be related to your issue, and looking through the code I couldn't find a situation that causes this issue.
Maybe the problem is the music source expires, songs downloaded by the Bot don't actually get downloaded, the Bot just takes a URL to a server and passes that URL to discord to play, as you can see in this code below.

Maybe after some time that URL can become invalid and the music actually takes 0 seconds to play.
Can you download the commits I made over the past few days and try to find your error again?
Just for you to better understand how the execution works, look for the PlayerProcess.py file in the Parallelism folders, in this class there are two functions that call each other, __playNext() and __playSong(song)
The second tells Discord to play the song and after finishing the song it calls the __playNext function, this checks if there is another song to be played and calls the __playSong function

https://rr1---sn-oxunxg8pjvn-4aol.googlevideo.com/videoplayback?expire=1674758495&ei=_3TSY7C0HYPD8wKyw56YCw&ip=2804%3A14d%3Abaa1%3A8c12%3A2636%3A107b%3Af404%3A2618&id=o-APoUozIQlZIgSbA4mDOMDQAKMzi-bF7v-jNbpCuKRsQf&itag=251&source=youtube&requiressl=yes&mh=Pz&mm=31%2C29&mn=sn-oxunxg8pjvn-4aol%2Csn-bg0eznsy&ms=au%2Crdu&mv=m&mvi=1&pl=48&gcr=br&initcwndbps=1078750&spc=H3gIhlsjDS8x1seE447mrUnFkJvDUpU&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=4395259&dur=254.801&lmt=1565941960611701&mt=1674736382&fvip=2&keepalive=yes&fexp=24007246&c=ANDROID&txp=5431432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAIXfnAKt9ghFlPPt4iq5geWr9Wh6E9HjH_roioF2ibzeAiAZriZzkgf_PmZ5JU52RMm-I7VHHVN89Cq8JoW3jvV_dg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAPNisP3pvaELL0ogZQf4_0h5NwnO2naFCn9lN4UL0eIKAiBRJrTn_-Nacz7W3ALQ526ahc1opsWn127bgvmxss4fUg%3D%3D
This is an example of a song.source, if you look closely, there's this parameter in the URL expire=1674758495, and if you convert that epoch value to a time, it's closer to 6 hours from now, so I think in 6 hours the Bot won't be able to play the songs, I'm going to try this theory and if it's true, I'm going to fix it.
Also, if you put this URL in your browser, you will hear a song

The problem is exactly with this url, i already uploaded a patch to fix this error, in this commit
If you got any other problems, don't mind asking

Thanks a lot!
Great jib!


Update aad-advanced-queries.md

@monaray97 , I don't see any change here so I'm going to close this PR.


Fixes saved URLs when destination is not equal to '/'

Previously, when directory was set to anything other than /, say, directory = example/, GitHub's API returns the filename and path. Instead of duplicating the path, we need a function that returns the path and filename received from GitHub and concatenates it with the baseUrl to prevent the previous behaviour of saving a string like https://raw.githubusercontent.com[…]example/example/file.jpg.

Finally had time to get around to this—thanks! :)

Thank you for taking the time!


feat: support flyte decks

https://github.com/flyteorg/flyteconsole/issues/469
https://user-images.githubusercontent.com/105876962/172195585-f42ec187-a68f-4d9c-a78b-e0dc8ba6b659.mov
Type

[ ] Bug Fix
[x] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[x] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description

Added Flyte Deck button
Show Flyte Deck button if only deckUri is valid
Enable Flyte Deck button if only the execution is succeed
Get Signed url of deck html from the native url (deckUri)
Show html in iframe
Fix python template style. (on the backend side with Kevin)

https://github.com/flyteorg/flyte/issues/469
For QA
You need to set the following as env
export ADMIN_API_URL=http://<IP_ADDRESS>/
export ADMIN_API_USE_SSL="http"

lgtm :)

?? Taking in mind that you was needed to setup a different ADMIN_API_URL to access this data, do we need the different value in production too, or should it work out of the box?
If needed - I can deploy it to DEMO so we can later check it.
cc: @jsonporter

?? Taking in mind that you was needed to setup a different ADMIN_API_URL to access this data, do we need the different value in production too, or should it work out of the box? If needed - I can deploy it to DEMO so we can later check it. cc: @jsonporter

We will wait until backend team merged into demo so that we won't do any custom config to test this out.

@james-union for local dev, can we add ADMIN_API_USE_SSL in clientConfig.devServer.server.type?

Done

@jsonporter @anrusina @olga-union @ursucarina
The backend is deployed to the demo and we can test without any env change.
Here is a test execution which contains deck & valid signed url
https://localhost.demo.nuclyde.io:3000/projects/flytetester/domains/development/executions/a95zrszx9w5mk4vf72sf?duration=all


Add Gleam version

Also usable from other BEAM languages such as Erlang and Elixir.

@lpil I will look at this in the next few days

@lpil I tried building this and saw the following.   I downloaded gleam-v0.10.0-linux-amd64.tar.gz from the github releases page.
$ gleam build

error: Unknown import
  ┌─ /home/AzureUser/git/ecoji/src/ecoji.gleam:2:8
  │
2 │ import gleam/bit_builder.{BitBuilder}
  │        ^^^^^^^^^^^^^^^^^ did you mean `ecoji/table`?

The module `ecoji` is trying to import the module `gleam/bit_builder`,
but it cannot be found.

Hi Keith! You'll need to use the rebar3 build tool to compile the project rather than using the raw compiler. If you have it installed running rebar3 eunit will run the tests

@lpil now I see the following error (I know nothing about erlang)
$ rebar3 shell
===> Verifying dependencies...
Compiling gleam/bitwise
Compiling gleam/function
Compiling gleam/string_builder
Compiling gleam/bit_string
Compiling gleam/order
Compiling gleam/bool
Compiling gleam/pair
Compiling gleam/io
Compiling gleam/option
Compiling gleam/regex
Compiling gleam/bit_builder
Compiling gleam/result
Compiling gleam/int
Compiling gleam/list
Compiling gleam/queue
Compiling gleam/map
Compiling gleam/set
Compiling gleam/should
Compiling gleam/float
Compiling gleam/iterator
Compiling gleam/atom
Compiling gleam/dynamic
Compiling gleam/string
Compiling gleam/base
Compiling ecoji/table
Compiling gleam/os
Compiling ecoji
Compiling ecoji_test
Compiling gleam/uri
Done!
===> Compiling gleam_stdlib
===> Compiling _build/default/lib/gleam_stdlib/src/gleam_stdlib.erl failed
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:2: can't find include lib "eunit/include/eunit.hrl"; Make sure eunit is in your app file's 'applications' list
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:16: undefined macro 'assertEqual/2'
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:17: undefined macro 'assertNotEqual/2'
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:18: undefined macro 'assertMatch/2'
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:19: undefined macro 'assertMatch/2'

_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:4: function should_be_error/1 undefined
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:4: function should_be_ok/1 undefined
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:4: function should_equal/2 undefined
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:4: function should_not_equal/2 undefined

It looks like your Erlang installation is missing the eunit libraries. If you've installed Erlang using your operating system package manager there may be additional packages that need to be installed to be ready for development.

@lpil  I am trying to run this on Ubuntu 18.04.  I got a bit further after reading your comment I looked for other things to install and found apt install erlang-dev.  Still can not get to the point of running.  Seeing the following error.
$ rebar3 shell
===> Verifying dependencies...
Compiling gleam/bitwise
Compiling gleam/function
Compiling gleam/string_builder
Compiling gleam/bit_string
Compiling gleam/order
Compiling gleam/bool
Compiling gleam/pair
Compiling gleam/io
Compiling gleam/option
Compiling gleam/regex
Compiling gleam/bit_builder
Compiling gleam/result
Compiling gleam/int
Compiling gleam/list
Compiling gleam/map
Compiling gleam/queue
Compiling gleam/set
Compiling gleam/should
Compiling gleam/float
Compiling gleam/iterator
Compiling gleam/atom
Compiling gleam/dynamic
Compiling gleam/string
Compiling ecoji/table
Compiling gleam/base
Compiling ecoji
Compiling ecoji_test
Compiling gleam/os
Compiling gleam/uri
Done!
===> Compiling gleam_stdlib
===> Compiling _build/default/lib/gleam_stdlib/src/gleam_stdlib.erl failed
_build/default/lib/gleam_stdlib/src/gleam_stdlib.erl:none: undefined parse transform 'eunit_autoexport'

That's another eunit related library that is missing. I'm afraid I don't know what packages would be required, I typically build Erlang from source

Any joy here @keith-turner ?

Hi @keith-turner , can we merge this?

Hi @keith-turner , can we merge this?

Hello @keith-turner , any progress here?

Hello @keith-turner , any progress here?

@lpil no I have never tried to build and run it again since when I was unable to run it before.

Is running CI sufficient evidence? Alternatively are you able to run docker containers on your machine?

A third option is that if you install Erlang using the .deb supplied by Erlang Solutions that will have all the libraries required.

Hello! Could we get this merged please? 🙏

Hi @keith-turner, I've rebased this to resolve the merge conflict. It would be great it if it could be merged!


Updates for readmes

NB moving images in the wiki-images directory in this branch means that wiki updates (see #307) should be applied before this branch is merged, to avoid breaking wiki links

make all links to repository items relative
fix wiki links, paths to items in new repository structure in readme files
normalize headings, standardise and prettify code snippets, prettify tables
update installation instructions
update config readme, removing general nbextension installation instructions
add youtube thumbnails for config & chrome clipboard readmes

Great. Thanks a lot for all the updates!


Minor: Only clone in FilterNullJoinKeys when necessary

Which issue does this PR close?
Part of https://github.com/apache/datafusion/issues/9637
Rationale for this change
I noticed some unecessary clones while working on other PRs
What changes are included in this PR?
Remove unnecessary clones
Are these changes tested?
Existing CI
Are there any user-facing changes?
No (I doubt the change will be noticeable

Actually on further review I don't think this change saves any clones


Tooltip for assigned LNs to the conducting equipments

Once we discussed this. It would be great to see maybe:

a small indicator that a conducting equipment has some assignment, this can be a very small icon or might be changing the color of the conducting equipment slightly.

Because when you start creating a substation station for a big project you can always get tired and go for a break and then you forgot where you left off.

And also a tooltip or any other possibility to see the assigned LNs to that conducting equipment maybe when hovered or in somewhere else.

The extra icon that is indicating existing connections is a great idea. The second point is worthy to discuss. In my opinion it would make more sense to have something like this #132 instead. What do you think?

one of them would be helpful. A preview of assignments is needed to see the progress that made.
Please consider that creating the substation section is a sum of multiple sessions of work.
For instance I did some for some bays and in the next session I'd like to know where I left off by looking at the assignments summary.

@BurTah00 I was wondering if the overview in the substation using the filter button for function type elements does somehow satisfy your need to see all LNode elements at once? If yes, I would ask you to close the issue :)

Closed with filter button.


Rearchitect getters to use PouchDB

The following getters need to be made to work using PouchDB:

[x] getCategories
[x] getMarkets
[x] getMarketPriceCandlesticks
[x] getMarketPriceHistory
[x] getTradingHistory
[ ] getForkMigrationTotals
[x] getMarketsInfo
[x] getOrders (not implemented in v2)
[ ] getReportingSummary
[ ] getUniversesInfo
[x] getProceedTradeRows
[x] getProfitLoss
[x] getProfitLossSummary
[ ] getDisputeTokens
[ ] getInitialReporters
[ ] getReportingFees
[ ] getReportingHistory
[ ] getUserShareBalances
[x] getUserTradingPositions
[ ] getWinningBalance
[ ] getAccountTransferHistory
[x] getAllOrders
[ ] getCompleteSets
[x] getBetterWorseOrders (does not need to be implemented for v2)
[ ] getDisputeWindow
[x] getUnclaimedMarketCreatorFees (this shouldn't be needed for v2 since there are no mailboxes)
[x] getSyncData
[ ] getDisputeInfo
[ ] platformActivityStats
[x] accountTimeRangedStats

Removed this from the sprint because this is an organizational epic.

All of these sub issues are done, are the things at the top with checkboxes done or not?

The functions getProfitLossSummary, getAllOrders, getSyncData, & accountTimeRangedStats have been implemented but were not marked as completed. (I've updated them accordingly.) The other unchecked functions have not been implemented.

I imagine all the reporting ones will be done with the reporting work upcoming soon. What about these non reporting ones, what’s the status on them?:
getUserShareBalances
getWinningBalance
getAccountTransferHistory
getCompleteSets

I think getUserShareBalances is not needed since getUserTradingPositions returns this info.
We are planning to deprecate getAccountTransferHistory in favor of adding transfers to getAccountTransactionHistory:  https://app.zenhub.com/workspaces/augur-5bfed3424b5806bc2bf8d173/issues/augurproject/augur/2489
getCompleteSets was not a public getter in v1; however, we have findCompleteSetsPurchasedLogs and findCompleteSetsSoldLogs in DB.ts, which are used internally by getAccountTransactionHistory for retrieving complete sets from PouchDB.
I'm not sure about getWinningBalance. @bthaile -- does this need to be implemented? I see there is some code referencing this in the augur-ui package that's been commented out.

I have a tix to move “getWinningBalance” from its own getter to users positions. That way we have the information and dont have to have a separate getter.  @adrake33

This tracking ticket has been broken down into specific epics for getters -- so this particular ticket is now redundant and slightly out of date.
Closing it and relying on the epic-specific tickets.


Show compiler and dub version in Github / Travis

This is only useful when testing with dmd-nightly / ldc-latest-ci.
This will show the exact commit that is being used for testing,
helping to debug any future issue.

I am seeing a weird issue, where a deprecation on body is triggered, but it is disabled in master...

Note: CircleCI uses a fixed version so it is not affected, only Github and Travis use nightlies.

Running ./build/agora-unittests
terminate called after throwing an instance of 'std::invalid_argument'
  what():  invalid public key type
Program exited with code -6
The command "./ci/run.sh" exited with 2.

With ldc2 1.20.0 on Linux... Nothing to see here.


Accessible input values should be set on elements as a property

I noticed some value=null attributes on things I wouldn't expect in the DOM, in this case the attribute should be removed. There is a special function to handle input values that is handling this. But i think this function can be removed now because we have the ability to set this attribute as a property after #870.

Local and unit tests are running well after the above change. I tested things that use value attribute  like AccessibleSlider with NVDA and JAWS, and all seems OK. value="null" is no longer showing up everywhere in the DOM.


Add Montgomery u32 backend for BabyBear

Add Montgomery u32 backend for BabyBear
Description
This PR implements a 32-bit Montgomery arithmetic backend for BabyBear finite field operations.
These operations show significant performance improvements versus the actual u64 backend.
Performance parity with Plonky3 is achieved
Results for 1.000.000 operations

Type of change

[ x] Optimization

Checklist

[ x] Benchmarks added/run

Codecov Report
Attention: Patch coverage is 87.72379% with 48 lines in your changes missing coverage. Please review.

Project coverage is 71.18%. Comparing base (fc33967) to head (d0fe76e).

Files with missing lines
Patch %
Lines

...field/fields/u32_montgomery_backend_prime_field.rs
74.41%
44 Missing :warning:

math/src/field/fields/fft_friendly/babybear_u32.rs
98.17%
4 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #948      +/-   ##
==========================================
+ Coverage   70.99%   71.18%   +0.19%
==========================================
  Files         153      155       +2
  Lines       32770    33161     +391
==========================================
+ Hits        23264    23607     +343
- Misses       9506     9554      +48

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


⚠ Bofrost.be has degraded performance

In 0707adb, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1867 ms

Resolved: Bofrost.be performance has improved in ce8e732.


Samplebuilder is broken in v3.0.29

I've just tried upgrading Galene from v3.0.27 to v3.0.29.  After fixing the issue in #1838, I'm getting corrupted video when attempting to save to disk, at least for VP8.
CC @robin-raymond

are you seeing PrevDroppedPackets > 0 ever?

I've only seen it once.

is it always corrupted or sometimes?

It's systematically corrupted.  It takes about 20 seconds before it finds a keyframe (we send regular PLIs until we get a keyframe, so that shouldn't happen), and then there are green blocky artifacts that cover between half and the whole frame.  This is on a lossless connection (streaming from localhost).

I think we need to capture RTP packet data for replay as a unit test. I'm unsure why it's breaking down but we need something to demonstrate it failing because it does work in other scenarios. You should see every single time stamp that enters gets popped out. Also the total bytes going to the payloads input should equal the total bytes coming out (up to the same timestamp point).

I've put a log at https://galene.org/samplebuilder-log.text .  It's generated by the following:
diff --git a/diskwriter/diskwriter.go b/diskwriter/diskwriter.go
index 9068a20..97aca0c 100644
--- a/diskwriter/diskwriter.go
+++ b/diskwriter/diskwriter.go
@@ -453,6 +453,10 @@ func (t *diskTrack) Write(buf []byte) (int, error) {
 		return 0, nil
 	}

+	if strings.EqualFold(codec.MimeType, "video/vp8") {
+		log.Printf("Packet: %v %v (%v)", p.Timestamp, p.SequenceNumber, len(p.Payload))
+	}
+
 	if strings.EqualFold(codec.MimeType, "video/vp9") {
 		var vp9 codecs.VP9Packet
 		_, err := vp9.Unmarshal(p.Payload)
@@ -478,6 +482,10 @@ func (t *diskTrack) Write(buf []byte) (int, error) {
 			return len(buf), nil
 		}

+		if strings.EqualFold(codec.MimeType, "video/vp8") {
+			log.Printf("Sample: %v (%v)", ts, len(sample.Data))
+		}
+
 		keyframe := true

 		if strings.EqualFold(codec.MimeType, "video/vp8") ||

sorted.xlsx
I sorted and did some comparisons. Please double check but it looks like every packet timestamp in is getting combined into a single sample payload out at that timestamp. The total size of the sample is the total of the packets minus 4 bytes per packet (which your depacketizer must be stripping out of the packet payload). Without doing some kind of hash on the input/output data going in/out, the values in/out look correct. So unless the depacketizer is corrupting the packets before becoming samples, I don't see anything in/out of this routine that's incorrect. Do you see something that I missed?

The other thing to check is that in your text file sequence numbers coming out are always increasing and never jumping around. Obviously if the samples coming out are jumbled in the wrong order that would cause issues.

@robin-raymond it looks like the code is broken, please see #1873.
@Sean-Der would you consider reverting the samplebuilder to v3.0.27 until the new code is fixed?  v3 is supposed to be stable.

Since the samplebuilder has been broken for over a month now, Galene is switching to its own samplebuilder.  Please see https://github.org/jech/samplebuilder.
@Sean-Der, please let me know whether you want me to submit it for inclusion, or whether I should keep working outside of Pion.

Fixed with 36cf39516f76e46d12546d7094c8bb3462d032cc


Wrong delay when closing custom modal and question about default params

Hello everyone, I have two questions about working with CustomModal.

The main question about wrong delay when I exec this.dialog.close().
I have found that it occurs in the OverlayComponent at the method canDestroy
link

As we can see that method has a setTimeout for animation, but how I can disable animation? or why I don't have animation? I just have a delay for 1 second and after that dialog closes instantly.
I wrote the same code of CustomComponent with your demo, but it works wrong with magic delay.
My Custom Modal Component

And the second question - How I can set modal options for custom modal? For example I want to close modal by clicking outside of the modal window or by pressing esc button. How I can control this options when I use custom modals?

I have latest version of angular2-modal component (2.0.0-beta.13) and angular(2.0.0). The same problem was on angular RC5...

@wis-ekubesh
(1) This delay is for protecting from cases where beforeDestroy handlers are not resolving.
Yes, it's mainly for animation.
Animation's are added by plugins, bootstrap or vex, they both have animations.
Each plugin is responsible for adding the beforeDestroy handlers according to needs.
You can create you'r own plugin where you control what to register in beforeDestroy.
I agree that this timeout is not ideal but for now it's what I came up with as this is just a protection layer and it should not fire.
Bootstrap plugin expects the bootstrap CSS, VEX plugins expects the vex css, they both have the animation classes.
For (2)
The OverlayConfig supplied to a modal.open() function is where you define these values.
OverlayConfig.context holds the context for a modal instance.
The base class for OverlayConfig.context is OverlayContext which has the base properties every overlay should have:
export class OverlayContext {
  inElement: boolean;
  isBlocking: boolean;
  keyboard: Array<number> | number;
}

So, let's assume you are using the bootstrap plugin:
const builder = new BSModalContextBuilder<any>();

builder.isBlocking(false);
builder.keyboard([27]);

// and some bootstrap specific options:
builder.size('lg');

let overlayConfig: OverlayConfig = {
  context: builder.toJSON()
};

this.modal.open(CustomModal, overlayConfig);

I'll close this stale issue, please re-open with a comment if it still an issue.


Individual Add sensor barcode

Hi.
I tryed to add by qr code a coouple of sensors on my motorcycle but the software always gives the information that the is no sensor information for rear axle.
however, the qr code has information for both sensors, separated by & as I believe your app is looking for.
The front sensor is working but i didn't find a way of adding the rear sensor.
Would it be possible to, for example, click on the specific wheel and, after opening the add sensor (either by writing sensor information or reading qr or barcode) for that specific sensor?
Thank you. keep up the good work.

Hello and thanks for your bug report 😃
When emitting data, Sysgration sensors also emit their location. 4 different locations exists, FRONT_LEFT, FRONT_RIGHT, REAR_LEFT and REAR_RIGHT. To make the UI easy to use, I automatically put found sensors on the vehicle on the right tire according to the location. When using a motorcycle, I expect sysgration sensor to return a FRONT_LEFT or a FRONT_RIGHT location for a front tire and a REAR_LEFT or REAR_RIGHT for a rear axle.
Unfortunately, it seems the seller sent you a FRONT_LEFT and a FRONT_RIGHT sensor so TPMS Advanced cannot find on which axle each of them are plugged. For example, some people could use the FRONT_LEFT for the rear axle, some for the front, TPMS Advanced cannot figure where the user has plugged it 🤷♂.
But, there is hope 😄, when I was adding support for Pecham sensors, I've added code to ask the user for the real location of the sensor. Pecham sensor doesn't return any location at all, only the user can tell where it is. To support this feature for Sysgration sensors, I need to do some important updates.
I'll keep you in touch :)

I have the same problem, but I achieved it in a different way. By  purchasing a car kit (4 external sensors) for my motorcycles.
The card that came wiith it has the QR code and 4 individual bar codes. I  assume you read the QR.
My phone shows the QR content is just a note with the 6 digit codes joined by "&". If I  make a new QR with a pair of codes (not four) will it then work?

 When running, each sensor will wake up and emit data to TPMS Advanced, if the emitting sensor is FRONT_LEFT or FRONT_RIGHT, the tyre data will be automatically associated to the motorcycle's front tyre, same for the back. You can use TPMS Advanced like this.
If you want to read only values from a specific sensor, once TPMS Advanced has received data from a sensor, a small icon is displayed along with the colored tyre to associate the sensor to the tyre.

I added the new enhancement request. I improved my original target +/- idea, after a bit more thought it was expanded/simplified down to "named setting profiles".
FYI I am making a crude Flutter app to capture BLE PSI data. Then graph and hopefully save it. It's my first Flutter project, so it's not going to be all that great. I'm also considering working on an OSMand data plugin to capture TPMS data in GPS track logs. Apparently I have way to much "free time".
 When running, each sensor will wake up and emit data to TPMS Advanced, if the emitting sensor is FRONT_LEFT or FRONT_RIGHT, the tyre data will be automatically associated to the motorcycle's front tyre, same for the back. You can use TPMS Advanced like this.
If you want to read only values from a specific sensor, once TPMS Advanced has received data from a sensor, a small icon https://pictogrammers.com/library/mdi/icon/link-variant-plus/ is displayed along with the colored tyre to associate the sensor to the tyre.
—
Reply to this email directly, view it on GitHub https://github.com/VincentMasselis/TPMS-advanced/issues/32#issuecomment-2273716105 , or unsubscribe https://github.com/notifications/unsubscribe-auth/BE4J3L656PGLNDV645EBF7LZQI2YDAVCNFSM6AAAAABGN5RQCOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENZTG4YTMMJQGU .
You are receiving this because you were mentioned.Message ID: @.***>


Feature Request: Power of Sire Flash Removal

Using the Power of Sire causes the screen to flash every 8 frames many times. This can be annoying for some but a serious problem for photosensitive people. The flashing can be removed by patching the ISO at $136580 with bytes 08 00 E0 03 00 00 00 00. Alternatively I've attached a PPF patch file.
I suggest having an option to disable the flashing so the user can choose their preference.
CVSotN Power of Sire Flash Removal By MottZilla.zip

I've made a pull request to address this.

https://github.com/3snowp7im/SotN-Randomizer/pull/86


Button mania

Title and Issue number
A ready to copy paste button projects
closes #3141
Close #<issue_no>

Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md

Hey @TusharKesarwani Please merge the PR. I know you are busy but please.

Hey @TusharKesarwani Please merge this PR asap. Its only 1 day left. Please merge it.


Create a new pull request by comparing changes

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.06%) to 95.644%

Files with Coverage Reduction
New Missed Lines
%

js/src/dom/event-handler.js
1
90.61%

Totals

Change from base Build<PHONE_NUMBER>:
-0.06%

Covered Lines:
2028

Relevant Lines:
2081

💛  - Coveralls


Rename 2014-3-3-Hello-World.md to 2014-3-13-Hello-World.md

Showing the needed date-format YYYY-DD-MM

I used the template for my own page and ran into trouble not knowing how the date of posts needs to be formatted. By changing the date of the Hello World post to 2014-3-13 it is obvious that the date format is YYYY-DD-MM

Wow... I just realized that I mixed it up again - talking about not bein intuitive :D It obviously should be named 2014-13-3...


Karate Gatling Load testing for multiple URLs concurrently

https://stackoverflow.com/questions/60998865/karate-gatling-load-testing-for-multiple-urls-concurrently

@psiservices-sshivakumar closing since you double posted to stack overflow


Error running the generate environments command

Command
generate
Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
environments
Running the command ng generate environments gives the following error.

Error: A collection and schematic is required during execution.

No response

This feature was introduced in Angular CLI 15.1.0.
Please update to the latest version of Angular CLI.


Move DispatchFilter building from main to dedicated builder

Move the code building DispatchFilter from main to dedicated builder.

Applied, thanks!


Java incremental build works incorrectly

There is a problem with incremental compilation:
build.gradle:
tasks.compileJava {
options.incremental = true
}
ClassA.java:
public final class ClassA {
public static final int field=45;
}
ClassB.java:
public final class ClassB {
public int field = 0;
public ClassB()
{
field = ClassA.field;
}
}
Steps:

Run gradlew.bat :app:compileJava;
Edit 'ClassA.field' value in ClassA.java
public static final int field=100;
Run gradlew.bat :app:compileJava;
Decompile file: app\build\classes\java\main\com\test\ClassB.class;
Constructor of ClassB has incorrect value 'ClassA.field'
public ClassB() {
this.field = 45;	//expected value: 100
}

Project to reproduce issue at javaCompile.zip
com.android.tools.build:gradle:3.6.0
gradle:5.6.4

Your reproducer is using a wrong setup, which is most likely what breaks incremental compilation.
Because of the following in app/build.gradle:
sourceSets {
    main {
        java {
            srcDirs = ["src/main/java/com"]
        }
    }
}

the source files are not in the right location, compared to their declared package name.
And this indeed breaks incremental compilation.
Use a standard project layout and the problem will disappear. That is delete the whole block copied above.

Thank you very much, it works with:
srcDirs = ["src/main/java"]

As an FYI, this is listed as a known limitation.


Poedit identifies normal words as something else

This is a translation file for dolphin emulator https://www.transifex.com/delroth/dolphin-emu/languages/ - there are 2 problems:
"Show % Speed" is treated like a string with C format
"Shows the % speed of emulation compared to full speed" the s in speed is treated like if it was part of the percentage symbol related to the code. I attached the file for testing.
dolphin-emu_emulator_pt_BR.zip

Please read this article and provide a detailed explanation. In particular, please do clearly state expected vs observed result. It is unclear what you mean by "treated", it is unclear why you think that the string shouldn't be a C format one, and it not at all clear what does "part of the percentage symbol related to the code" mean.

@Felipefpl You asked us to spend time reading, responding to and looking into your issue. It is incredibly rude, inappropriate and inconsiderate to then close the issue without as much as a single word of explanation.


Link to GitHub pages

Description
Link to GitHub pages
Fixes #338
Type of change

Documentation update

Testing steps
N/A

Codecov Report

Merging #339 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #339   +/-   ##
=======================================
  Coverage   80.56%   80.56%
=======================================
  Files          15       15
  Lines        1636     1636
=======================================
  Hits         1318     1318
  Misses        221      221
  Partials       97       97

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 ee409dc...95e7a6b. Read the comment docs.


Add setting to Vagrantfile

Added a setting to run bootstrap.sh when the VM up fix issue #1

LGTM

@ofirtzabari after we merged #16
Please rebase the PR and push again to make sure the Flake8 check will pass

colesed and open new one


mtime_o could be instable

You have export the mtime_o to top instance and I thank you for that ! It helps me a lot anf avoid to add a timer in my project.
But I observed instabilities, probably because 'time_o' in the file "neorv32_mtime.vhd" is not in a synchronous process...
Although, I read it in a synchronous process. It is always when the msb words 'mtime_hi' updates that it reads a bad value.
To validate a good reading whithout changing something in the core, I added a process to check mtime_o change only by '1' between two clock ticks. But it is a little messy to add this process to validate the ntime output.
I don'k know why it is this instability... Maybe putting the line 167 (' time_o <= mtime_hi & mtime_lo(31 downto 00); ') in a synchronous process ?

What do you mean with "instabilities"?
The 64-bit MTIME counter is split in two 32-bit counter (timing issues), so there might be an inconsistency when the lower word overflows into the higher word as the carry propagation requires an additional cycle.
Let me illustrate that:
MTIME
0x0000.0000_ffff.fffe
0x0000.0000_ffff.ffff
0x0000.0000_0000.0000 <- inconsistency
0x0000.0001_0000.0001

For the CPU that is no deal at all as it reads/writes MTIME only in chunks of 32-bit.
Is that what you mean with "instability"?

Yes, that is this inconsistency which disturb other modules in my project.
Thank you if you have fixed it !

The problem of inconsistency is not corrected.
I have made some test with testbench, and the most simple is just to put the line with 'mtime_lo_ovfl' outside the process, with the mtime_lo increment:
  -- mtime.time_LO increment --
  mtime_lo_nxt <= std_ulogic_vector(unsigned('0' & mtime_lo) + 1);
  mtime_lo_ovfl(0) <= mtime_lo_nxt(32); -- overflow (carry) ```

And with this modification, 'mtime_lo_ovfl' is updated before the  same clock cycle which update 'mtime_lo' and 'mtime_hi'.

And with this modification, 'mtime_lo_ovfl' is updated before the same clock cycle which updates 'mtime_lo' and 'mtime_hi'.

Right, by this the LOW and HIGH words of the mtime counter are always "sync". The problem here is that this will introduce a 64-bit carry chain, which will reduce maximum clock frequency. That is why I split that up into two 32-bit carry chains (one for the HIGH word, one for the LOW word) that are coupled via the registered mtime_lo_nxt(32).

I have made some tests with testbench,

Could you share or specify your simulation scenario?
I have also done some simulation. I have set mtime to 0x00000000.FFFFFF00 to generate a carry from the LOW word to the HIGH word after 256 cycles. The waveform below shows this carry. mtime_lo and mtime_hi are out of sync as there is one cycle "offset" due to the registered carry. However, the processor's mtime_o signal uses a simple register buffer for the lower 32-bit to re-sync HIGH and LOW words in that signal (white signal in waveform).

There is no inconsistency in mtime_o. At least I cannot find any. 🤔

I have also done some simulation. I have set mtime to 0x00000000.FFFFFF00 to generate a carry from the LOW word to the HIGH word after 256 cycles.

This is strange, I have done the same and I obtain with ModelSim the datagram which shows the inconsistency:

The problem here is that this will introduce a 64-bit carry chain, which will reduce maximum clock frequency.

Ok. I didn't take care of that when I suggested the modification.
Anyway, with modification I wrote before, I have now this datagram with correct transition:

Moreover, Libero (IDE for Microsemi fpga) can synthesize and I don't have the error again on my real fpga.

Could you share or specify your simulation scenario?

This is simple, I have just specify the command  'neorv32_mtime_set_time(   0x00000000FFFFFF00ULL);' before infinite loop in 'main'. And after I have only somme reads/writes continuously in the loop.
I don't now we have not the same behavior...

We've seen mismatches between GHDL and ModelSim due to delta cycle ordering issues: VUnit/vunit#692. Might this be the case here?

Oh wait, I think this is just a misunderstanding 😄
I think you are checking time_o in your testbench:
https://github.com/stnolting/neorv32/blob/74ee02612e7f484c1ce077ec104f0560f9a970f3/rtl/core/neorv32_mtime.vhd#L55-L56
time_o is the output of the MTIME module and this output does not provide a synchronization for LOW and HIGH words since this is irrelevant for the CPU.
I was talking about the mtime_o output of the whole processor:
https://github.com/stnolting/neorv32/blob/74ee02612e7f484c1ce077ec104f0560f9a970f3/rtl/core/neorv32_top.vhd#L187-L189
mtime_o provides the "low-word synchronization" that is implemented in neorv32_top.vhd (not in the MTIME module itself):
https://github.com/stnolting/neorv32/blob/74ee02612e7f484c1ce077ec104f0560f9a970f3/rtl/core/neorv32_top.vhd#L944-L961

Yes !!! I understand what happens !
You are right, I was checking time_o.
And I have the problem because I updated only neorv32_mtime.vhd but no the top instance.
And I just saw you have adding the process mtime_sync to handle with this problem...
I am sorry, it is my mistake ! 😕

I am sorry, it is my mistake ! 😕

Absolutely no problem.
I'm happy that you setup works now! :tada: :+1:


[WIP] [#399] add new block in genericresource.html

@mauriel133 would you please have a look at this modification? Adding a new block in genericresource.html solves the problem that when it is editing mode, the header info text area is shown now.

Hi Tian, I think this block is fine since this is a really large field. Could you upload a screenshot that we can show to @horsburgh to get his opinion?

@mauriel133  I put a screenshot for the editing mode for this branch. If you want me to provide other screenshot, please let me know. Thanks

@horsburgh Would you please have a look at this to comment if this is ok or not to be merged back to develop branch to fix the bug? Thank you.

@gantian127 - I'm not sure I understand this issue. What is the actual bug?  Is it that the text block showing the NetCDF header didn't show up in edit view?
It seems like the NetCDF Header Info isn't something that all resources would have and so should show up under the "Resource Specific" tab shouldn't it?

@horsburgh  I can move the text area in the tab. But this bug is not related to it. The bug is that if I put the code in the resource related tab block, under editing mode all the html code is not effective and can not be shown in the tab.
So I create a new block in the genericresource.html. This block is mainly used to store the html code for text area and with javascript the text area can be shown in the resource related tab under editing mode.

@gantian127, look at the changes I've made. This solves the problem of the field not being shown during edit mode inside the tabs.

@mauriel133 I just tested that and it works. Thanks for solving the problem.

Glad to help. Make sure to do some code clean up since I left your work commented in case we needed to revert.

@mauriel133 I will clean it up and make it ready for merge. Thanks.

@horsburgh  Mauriel helped to fix the bug to move the text area in the tab and under editing mode this also works.  If you think it is Ok to be merged back to develop, would you please leave a comment for this? Thanks.

@gantian127 - If you've worked with Mauriel to make this work correctly and you are both comfortable with the fix, you should go ahead and get it merged.


feat: Co-Badged Cards

Description
CHKT-XXXX

What do these changes do?
Note any breaking changes and why they are necessary

Other Notes

Other changes that are not specifically related to the intent of the PR

Manual Testing
Add manual testing notes here if applicable, otherwise remove this section
Screenshots
If applicable, otherwise remove this section
Contributor Checklist

[x]  All status checks have passed prior to code review
[x]  I have correctly prefixed one of the following conventional commit titles:

[ ]  chore - no version update
[ ]  fix - patch version update
[x]  feat - minor version update
[ ]  BREAKING CHANGE - major version update

[x]  I have added unit tests to a reasonable level of coverage where suitable
[x]  I have added UI tests to new user flows, if applicable
[x]  I have manually tested newly added UX
[x]  I have open a documentation PR, if applicable

Reviewer Checklist

[ ]  I have verified that a suitable set of automated tests has been added
[ ]  I have verified that the title prefix aligns to the code changes + whether a release is expected after merging the PR
[ ]  I have verified the documentation PR aligns with this PR, if applicable

Before Merging

[ ]  If introducing a breaking change, I have communicated it internally
[x]  Any related documentation PRs are ready to merge

Other Stuff

You can find out more about our automation checks here
Find out more about conventional commits here

Can you link to a testing plan we can use to play around with the Appetize link? 🙏 Im thinking this one, but just to be sure


Creating duplicating Extension Command in what can i do ribbon

Manifest Structure :-
"bots": [
{
"botId": "#####",
"needsChannelSelector": false,
"isNotificationOnly": false,
"scopes": [ "personal","team"],
"commandLists": [
{
"scopes": ["personal","team"],
"commands": [
{"title": "Help", "description": "How to use BravoNow ?"}
]
}
]
}
],
"composeExtensions": [
{
"botId": "#####",
"canUpdateConfiguration": true,
"commands": [
{
"id": "BravoNow",
"description": "Bravo recognition platform",
"title": "BravoNow",
"type": "action",
"fetchTask": true,
"initialRun": true,
"parameters": [
{"name": "Name","title": "Title"  }
]
}
]
}
],
My Manifest Structure is for Bot And Extension, after installing Bot I am Observing below Issues.
Why It is duplicating the Extension Command (in What can i do ribbon)? Am I missing anything in manifest ? I didn’t found any key/setting in manifest schema to control the behavior.

@pashu1234 Could you please try sideloading the app to your private app store and install the bot from there? This will prevent creating different id's when app is added to personal scope and teams scope.

@Gousia-MSFT  we have already enabled the sideloading and we are adding the app through the private app store, still we are facing this issue.

@pashu1234 Could you please check if there are multiple instances of your app in different teams, delete them and install again?

@Gousia-MSFT  we have tries (uninstalling the all  app from other Teams).
we have even tried with the New Tenant where App Is never configured.
Issue is appearing when i will install the BOT and Extension in the Same Team.

@pashu1234 Could you please share your complete manifest?

Please re-open with your app manifest which can be used to repro this.

Thank you
@Gousia-MSFT  @Wajeed-msft
Issue Resolved..
issue was appearing because of the multiple instances of your app.
Get the BravoNow App from store to use.


ClassCastException on rare occasion

Hi nicolas,
i'm faced with a weird issue that Qachee is returning wrong type on rare occasions

FATAL EXCEPTION: main java.lang.ClassCastException: com.example.model.Product cannot be cast to com.example.model.Shop

the offending line is

shop = QacheeManager.getInstance().get(shop, Shop.class, false);

public void OnExploreCardClicked(View view, ExploreCardView.IExploreCard item) {
    if (item instanceof Product) {
        Product product = (Product) item;
        product = QacheeManager.getInstance().get(product, Product.class, false);

        FoodDetailsActivity.show(getActivity(), view, product.getKey());

    } else if (item instanceof Shop) {
        Shop shop = (Shop) item;
        shop = QacheeManager.getInstance().get(shop, Shop.class, false);

        MerchantDetailsActivity.show(getActivity(), view, shop.getKey());
    }
}

is there anyway i can debug this issue?

Fixed with latest PR =D.


Extremely Poor Lag

Issue Type: Performance Issue
Today I started using VS code like any other day but it is lagging horribly. I have disabled all extensions, rebooted, restarted my computer, closed all other applications, and nothing will help.
VS Code version: Code 1.45.1 (5763d909d5f12fe19f215cbfdd29a91c0fa9208a, 2020-05-14T08:33:47.663Z)
OS version: Darwin x64 19.0.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-5250U CPU @ 1.60GHz (4 x 1600)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
6, 3, 6

Memory (System)
8.00GB (0.63GB free)

Process Argv

Screen Reader
no

VM
0%

Process Info
CPU %	Mem MB	   PID	Process
   18	    90	  8501	code main
    4	    49	  8502	   gpu-process
    0	    25	  8504	   utility
    0	   303	  8505	   window (network.py — Network)
    0	   115	  8827	     extensionHost
    0	    33	  8831	     watcherService
    4	    98	  8830	   shared-process
    0	     0	  8871	     /bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    6	    74	  8869	   window (Issue Reporter)

Workspace Info
|  Window (network.py — Network)
|    Folder (Network): 4 files
|      File types: py(2) json(1)
|      Conf files: settings.json(1);

Extensions: none

From the Process Info, I could see an unusual high CPU usage of the main process.

Can you try to reproduce with our nightly insider builds? You can give our preview releases a try from: https://code.visualstudio.com/insiders/


Scope name disallows starting with digit?

I noticed that scopes are not allowed to start with a digit, which disappointed me. Is this limitation based on a technical requirement that cannot be changed? Or is this only a temporary limitation that can be lifted if users ask for it? I would love to be able to name my scope with a starting digit.
Thanks, and best of luck with the registry!

@tehpsalmist This limit exists to be able to easially convert any scope and package name to a JavaScript identifier. Right now you just have to call .replace("-", "_") on the scope / package name to get a valid identifier. Because numbers are not valid first chars of JS identifiers, allowing this would make this transform much more involved.


Dependencies issue

I have always been using this bundle as a dev dependency with no issues but now I am in the need of using it as prod dependency for some dummy generated content and I am having this issue:
[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]
  The service "h4cc_alice_fixtures.orm.schema_tool.doctrine" has a dependency on a non-existent service "doctrine".

My composer dependencies are:
"require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.6.*",
        "doctrine/mongodb-odm": "1.0.*@dev",
        "doctrine/mongodb-odm-bundle": "3.0.*@dev",
        "twig/extensions": "~1.0",
        "symfony/assetic-bundle": "~2.3",
        "symfony/swiftmailer-bundle": "~2.3",
        "symfony/monolog-bundle": "~2.4",
        "sensio/distribution-bundle": "~3.0.12",
        "sensio/framework-extra-bundle": "~3.0",
        "incenteev/composer-parameter-handler": "~2.0",

        "nelmio/api-doc-bundle": "~2.7",
        "friendsofsymfony/rest-bundle": "1.5.3",
        "jms/serializer-bundle": "0.13.*",
        "stof/doctrine-extensions-bundle": "~1.1@dev",
        "friendsofsymfony/user-bundle": "~2.0@dev",
        "nelmio/cors-bundle": "~1.4",
        "friendsofsymfony/oauth-server-bundle": "dev-master",
        "white-october/pagerfanta-bundle": "~1.0",
        "willdurand/hateoas-bundle": "0.4.*",
        "aws/aws-sdk-php": "~2.7",
        "liip/imagine-bundle": "~1.2",
        "antimattr/mongodb-migrations": "~1.0@stable",
        "antimattr/mongodb-migrations-bundle": "~1.0@stable",
        "nesbot/carbon": "~1.18",
        "jms/security-extra-bundle": "1.5.*@dev",
        "h4cc/alice-fixtures-bundle": "0.5.1"
    },
    "require-dev": {
        "sensio/generator-bundle": "~2.3",
        "raulfraile/ladybug-bundle": "~1.0",
        "behat/behat": "~3.0",
        "behat/symfony2-extension": "~2.0",
        "behat/mink": "~1.5",
        "behat/mink-extension": "~2.0",
        "behat/mink-browserkit-driver": "~1.1",
        "behatch/contexts": "*",
        "coduo/php-matcher": "~1.1",
        "fzaninotto/faker": "dev-master",
        "emuse/behat-html-formatter": "dev-master",
        "pdepend/pdepend": "~2.0",
        "phpmd/phpmd": "~2.2",
        "sebastian/phpcpd": "~2.0",
        "phploc/phploc": "~2.0",
        "phpdocumentor/phpdocumentor": "~2.8",
        "covex-nn/phpcb": "<IP_ADDRESS>",
        "phing/phing": "~2.9",
        "m6web/symfony2-coding-standard": "~2.0",
        "m6web/coke": "~1.2"
    }

May I missing something?
Thank you

Woww, never mind.
My problem was that I forget to move the configuration from config_dev.yml to config.yml so it was getting the default value (ORM) for doctrine.
Thanks


Add support for .ipynb files.

While creating requirements.txt pipreqs doesn't consider packages imported in .ipynb files.

+1

hi @sanskritip  i will take a look and go back with an a patch in a few days 👍🏼


.NET 4.x GS WebSocket Issue

Ever get an extremely-vague { "error" : "timeout" } (or something like this)? Didn't get it before?
^ EDIT: This is deducted to be a 100% unrelated issue, now reposted here: https://github.com/Imperium42/gs-csharp-community-sdk/issues/7
Well, it seems that this is caused by .NET 4.x issues -- specifically with WebSocket (dll). Although rare, this can cause serious damage to the player experience since it's almost impossible to handle all situations containing this. It's also hard to figure out where the timeout happened since absolutely no useful information is contained within this error.
Apparently, we can swap to a community version of WebSocket "with a few lines of code". However, I'm unfamiliar with this. Anyone wanna experiment with this?
Somewhat related
Fixing this bug would also likely resolve this issue: https://github.com/Imperium42/gs-csharp-community-sdk/issues/3
Important Note
Native WebSocket does NOT include support for Windows 7 (Only Win8+). Any "Native" port will not work for us. We need a custom WebSocket implementation only.
Options
It is crucial that there is Windows 7 support included whatever we port to. We must use a non-native, open source edition. There are several 3 options:

https://archive.codeplex.com/?p=websocket4net
https://archive.codeplex.com/?p=superwebsocket
https://github.com/sta/websocket-sharp // We chose this: See bottom comments to contribute.

@the one who should not be named (thx!) found the src of { error : timeout }, the vague C#4 err, here:
https://github.com/Imperium42/gs-csharp-community-sdk/blob/master/Projects/GameSparks.Api/Core/GSInstance.cs#L758

As this ticket has been open for 4 months now, it doesn't look like it's going to happen. @GameSparks, if you are reading this, it would do the community a great favor for one more update to at least make things scalable ... we sort of need a headstart. This isn't just updating a small bug~ No one here is knowledgeable enough for a websocket replacement.

I changed out the websocket to be the same for all platforms - mostly because I didn't care about some like switch or xbox.  I used this websocket as it works on all my target platforms: https://github.com/endel/NativeWebSocket
I no longer get timeouts on iOS after changing the websocket out.

I no longer get timeouts on iOS after changing the websocket out.

Do you mean you just swapped out a DLL, or required code? I have no idea where to even begin for this. Any chance of a pull request, @jconradi ? Also, does that lib support Win7 (when I hear "native" and websocket together, sometimes I'm susp since Microsoft's native version doesn't support it).

I stumbled upon this issue as well, and based on the NativeWebSocket @jconradi linked I made it work within my own project.
My implementation uses a custom websocket implementation to use instead of the SDK's GameSparksWebSocket. This means no changes need to be made to the SDK files. An alternative fix for this repository is to modify the GameSparksWebSocket to use NativeWebSocket.
My custom websocket implementation can be found here
To use it, modify DefaultPlatform in your project. In the GetSocket method, change
GameSparksWebSocket socket = new GameSparksWebSocket();

to
socket = new CustomGamesparksSocket();

Add CustomGamesparksSocket socket = null; as a class member variable, and add the following Update method to process received messages:
protected override void Update()
{
	if (socket != null && socket.State == GameSparksWebSocketState.Open)
		socket.DispatchMessageQueue();
	base.Update();
}

I've tested this solution on Android (Mono and IL2CPP) and iOS.
This may not be a perfect solution to include into the community SDK repository, but hopefully it can help others who are stuck with this problem.

Nice, @zarlin ! I read that custom implementations should work with Win7, too.

Seems like your CustomGamesparksSocket.cs doesn't know where NativeWebSocket is - I tried using GameSparks.Platforms.Native, but still no dice.
I feel like I'm missing something right in front of me.

https://github.com/sta/websocket-sharp feels promising if this doesn't work with Win7

Thanks to your template, @zarlin , I almost got WebSocketSharp working, but 10 errors away:

Download the compiled WS# dll:

Download this gist, similar to @zarlin 's and throw it beside DefaultPlatform.cs:
https://gist.github.com/dylanh724/4f0d2eb278c79bc1a9f5f8a9b4e353e0

Similar instructions as above for DefaultPlatform edits from Zarlin:

Help with remaining errs :) Everything's in place. Just need some help finding replacements.

Update: Errs are gone (thx skoolbusdriver). Ignore above, just drop this:

GS-WebSocketSharp-WIP1.zip

GS-WebSocketSharp-Final.zip
Hey folks, I got it working. Use this .zip to swap out Native socket with WebSocketSharp with alleged win7 support --
Needs testers ~ No need for src code to use :) Just replaces/drops alongside DefaultPlatform.cs area -- structure should be intuitive.

So, this is it! I'm not quite sure how src auto-gen's this stuff ... can anyone throw this in src? We could also use a "release" version, if someone wants to make an empty project with GS already thrown in.

⚠ Getting some kind of race error on init:
Uploading Crash Report
NullReferenceException: Object reference not set to an instance of an object.
  at GameSparks.Api.QueuePersistor.Read (GameSparks.Core.GSInstance gsInstance) [0x00000] in <00000000000000000000000000000000>:0
  at GameSparks.Core.GSInstance.InitialisePersistentQueue () [0x00000] in <00000000000000000000000000000000>:0
  at GameSparks.Core.GSInstance.Initialise (GameSparks.Core.IGSPlatform platform) [0x00000] in <00000000000000000000000000000000>:0
  at GameSparks.Platforms.PlatformBase.Start () [0x00000] in <00000000000000000000000000000000>:0

For example with a Win64 Standalone IL2CPP .NET 4 build, on my desktop, I don't see it ... but on my laptop, I see it every time.
Both works fine in editor.
I am stumped.

@Gamesparks - we're 99% done. Can you toss us a bone for the last 1%?

Offering Bounty
Offering 💸 $500 AWS coupon code to anyone that can figure out how to do all of the following:
(1) put my GS fix above in GS community edition >> (2) recompile GS community edition >> (3) make a pull request.

@dylanh724 I believe one thing that was missed was ping/pong requests. Refer to the GameSparksWebSocket.cs implementation. It enabled auto pinging at an interval of 30 seconds. In my testing, without this pinging the server sends a Close opcode which causes the client to close the connection on Stadia.

Thanks @chorakm - after calling Ping(), how do you tell GS there's a heartbeat, assuming IsAlive may still be true? Or do I just "re" set IsAlive back to true? If false, do nothing (GS will handle d/c)?

Hey @dylanh-pt no problem. So to clarify, IsAlive is a computed property that calls Ping(). Ping returns true or false. It sends a Ping OpCode, and blocks to wait for a Pong opcode from the server. Because this is a blocking call, I did something similar to what's going on in WebSocket4Net where they create a Timer to send a ping on an interval in a thread pool. GSConnection doesn't seem to care whats going on underneath, just that the socket is open and ready. Sending the ping every 30 seconds seemed to prevent the GameSparks backend from sending the Close opcode, which I assume they do because they can't tell if the client on the other side of the TCP connection is still there, so they just terminate the connection.
I'm uncertain as to why this is only occurring on Stadia however. May be something specific to Linux
Here is what I did in CustomGameSparksSocket.cs:
private void initAllExceptMsg(string url, Action _onClose, Action _onOpen, Action<string> _onError)
{
    socket = new WebSocket(url);
    socket.OnOpen += (sender, e) => { OnOpen(); _onOpen(); };
    socket.OnClose += (sender, e) => { OnClose(); _onClose(); };
    socket.OnError += (sender, e) => OnSocketError(e.Message, _onError);
}

private void OnOpen()
{
    this.webSocketTimer = new Timer(OnPingTimerCallback, null, 30 * 1000, 30 * 1000);
}

private void OnClose()
{
    this.webSocketTimer.Change(Timeout.Infinite, Timeout.Infinite);
    this.webSocketTimer.Dispose();
}

private void OnPingTimerCallback(object state)
{
    socket.Ping();
}

Thanks for that! When I get to my own time, I'll toss up a new zip and relook over that pull request from the other guy. With his pull request, we can see where to edit and possibly toss this in, too.

GS-WebSocketSharp-Nov28_2020-Final3.zip
Here is the updated patch (v3) - I'll edit above, too.


Second order sql injection fixes

🗣 Description
Sanitize outputs from all fetchall functions to prevent 2nd order sql injection attacks
💭 Motivation and context
Patch Potential Vulnerabilities
-->
✅ Pre-approval checklist

[x] This PR has an informative and human-readable title.
[x] Changes are limited to a single goal - eschew scope creep!
[x] All future TODOs are captured in issues, which are referenced
in code comments.
[x] All relevant type-of-change labels have been added.
[x] I have read the CONTRIBUTING document.
[x] These code changes follow cisagov code standards.
[x] All relevant repo and/or project documentation has been updated
to reflect the changes in this PR.
[x] Tests have been added and/or modified to cover the changes in this PR.
[x] All new and existing tests pass.

coverage: 26.458% (+0.2%) from 26.288% when pulling d60c1d0dd90d5dc9c1efbc850d2b137cb4d168ff on EM-sql-injection-fix into 14755187fbf5fb4af7c447c5cdd8b6cfdd4de576 on develop.

@dav3r This is ready for review.


chore(release): v1.1.7 🎉

:robot: I have created a release beep boop
1.1.7 (2023-09-07)
Bug Fixes

observation: warn without error on observations without sessions (a4cac62)
practs: bump to latest best practs (ab32680)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mhetrics/app-usage-events-react/releases/tag/v1.1.7 :sunflower:


ENSWBSITES-1170: Ordering filters alphabetically

protein coding comes first and then the rest are alphabetically ordered
Type

[ ] Bug fix
[ ] New feature
[x] Improvement to existing feature

Related JIRA Issue(s)
https://www.ebi.ac.uk/panda/jira/browse/ENSWBSITES-1170
Importance
N/A
Description
Ordering the filteres alphabetically. If protein coding exists, protein coding comes first and then the rest are displayed alphabetically
Deployment URL
http://filters-order.review.ensembl.org
Views affected
Entity viewer filtering
Other effects
N/A

[ ] I have checked any requirements for Google Analytics
[ ] I have created any required tests
[ ] The PR has as its final commit a WASM/JS update commit if any Rust files were updated.

Possible complications
None that i am aware of

@azangru made the changes. Please review. Thanks


Added a change for messages backend

Created a function which stores all messages between 2 specific users

great basic function


NTR: [Psychrobacter faecalis]

Proposed Term Label
Psychrobacter faecalis
Proposed Associated Field(s)
organism
Definition/Description
Just received a template with many bacteria species absent from the picklist.
Definition Source
No response
Guidance
No response
Alternative labels and/or synonyms
No response
Additional Comments (not an annotation)
No response
Optional - Contributor Attribution
No response

@gwajnberg This term has been added and can be viewed in the most recent version of the GRDI template (v8.9.8).


maxscale: make broken package

Motivation for this change
#80379
Maxscale error build with mariadb-connector-c v3.1
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Please backport to 20.03

Backported in 59d50ed9db510d56a6fe95c58da08bf4ec45e997


Project pages should have project-specific OpenGraph metadata

When shared in Discord and Twitter, project pages currently show Open Graph data for Juicebox: An image of Banny, the title "Juicebox", and a description of the protocol. This makes all project page shares look the same.
Issues

[x] https://github.com/jbx-protocol/juice-interface/issues/1144

Proposed solution
Populate Open Graph metadata for project pages with project-specific metadata (title, image, description).
Screenshots
BrainDAO ograph data:

the main thing preventing us from doing this is the app's "hash routing", which apps hosted on IPFS need to use to be compatible with IPFS gateway route resolving. you'll notice that JB (and a lot of other IPFS apps, e.g. Uniswap) use a # in the url route. it makes it impossible to dynamically load  holding the opengraph info for a specific page—we can only do it for the top level domain.
that said, there is probably a clever workaround we could come up with to make it still work, and i'd love to find it. anyone can feel free to tackle this.

assigning this to you @palevoo since you're working on this, but i know it's still blocked for now so feel free to unassign if you get to an impass and wanna focus elsewhere

One possible partial solution to this is to migrate from create-react-app to next.js so that we can get the static generation magic that it provides (maybe we could figure out how to do this with create-react-app as well).
We can statically generate the top N projects so that there meta tags are properly filled in at build time. For any project that doesn't fall within N we would use generic text as we are doing now.
We'd want to keep it in N so that build times don't get out of hand as projects grow.
Not a full solution but an idea.

One total solution is to stop using IPFS/Fleek and have a proper backend so that we can SSR.

i'm open to using next if it would solve this. though it seems like the problem originates with how the app is hosted on ipfs—single page app with hash routing strategy—and not with react. i feel like if it could be solved using next, there must be a solution we could use with reactjs.
using a proper backend would certainly solve this. though hosting on ipfs keeps things transparent and doesn't require end users to be interacting with any centralized hosting service. for apps where users are connecting their wallets this seems pretty important. personally i'd be hesitant to send txs through any web3 app not hosted on a decentralized network

Thinking here: https://www.notion.so/juicebox/Project-Specific-Link-Unfurling-a1ef79379bdb421abd20250667b0d8e9

This is now possible in a simple way with NextJS. We are almost there! However, we need to start doing some pre page rendering and caching I believe to carry us there. @aeolianeth I am pretty familiar with this from recent nextjs work, so if you're happy, i'd love to retain this ticket? ❤


Nifi 1690 0.x

@alopresto so this is the 0.x port of NIFI-1690

Hey @olegz,
Looks like the magic words to close this PR were missed in the commit.  Could you please close this when you have a chance?
Thanks!


Getting error "Can not provide API key in the browser without "dangerouslyAllowAPIKeyInBrowser" set to true" in relay server

When using the relay server as described in the readme and clicking on connect, the relay server crashes with the following error:
Error: Can not provide API key in the browser without "dangerouslyAllowAPIKeyInBrowser" set to true
at new RealtimeAPI (file:///c:/dev/openai-realtime-console/node_modules/@openai/realtime-api-beta/lib/api.js:19:15)
at new RealtimeClient (file:///c:/dev/openai-realtime-console/node_modules/@openai/realtime-api-beta/lib/client.js:222:21)
at RealtimeRelay.connectionHandler (file:///c:/dev/openai-realtime-console/relay-server/lib/relay.js:35:20)
at WebSocketServer.emit (node:events:520:28)
at WebSocketServer.completeUpgrade (c:\dev\openai-realtime-console\node_modules\ws\lib\websocket-server.js:436:5)
at WebSocketServer.handleUpgrade (c:\dev\openai-realtime-console\node_modules\ws\lib\websocket-server.js:344:10)
at Server.upgrade (c:\dev\openai-realtime-console\node_modules\ws\lib\websocket-server.js:119:16)
at Server.emit (node:events:520:28)
at onParserExecuteCommon (node:_http_server:948:14)
at onParserExecute (node:_http_server:849:3)
OS: Windows 11
Node version v22.4.1
This error is  thrown in execution of line 35 in relay.js:
const client = new RealtimeClient({apiKey: this.apiKey});
It seems that this error should be thrown when using the client directly in the browser. However the error is thrown in the relay-server which does not run in the browser. I did no changed the code in any way.
Adding the "dangerouslyAllowAPIKeyInBrowser" fixed the issue...
const client = new RealtimeClient({
      apiKey: this.apiKey,
      dangerouslyAllowAPIKeyInBrowser: true,
    });

... however it is confusing and misleading to use this in the relay server. How does the client detects if it is used in the browser or on the server?

I have it also

Hey there! Should be fixed: https://github.com/openai/openai-realtime-api-beta/commit/2474cfe27e03c46224922bef4348cc73ff54b461
Just do npm i openai/openai-realtime-api-beta --save and it should update to the latest client package.


Build packages with Swift 5.4

I think as we add Swift 5.4, we should deprecate/drop Swift 4.2 (and maybe Swift 5.0 too, meaning we can get rid of the Catalina build machine).
I don't think we need to build with 6 versions of Swift! 😅

[x] plan work to update build system for 5.4

infra

[x] install Xcode 12.5 on Mac builders

[x] mb1
[x] mb2
[x] spi-prod (can't actually run on spi-prod)

ensure swift:5.4 is published

not yet available as of Apr-28

ensure spi-prod doesn't pick up Xcode 12.5 jobs

update tags:

[x] add xcode-12.5 to BS builders
[ ] instrument pipeline to request xcode-12.5 for 5.4 builds

builder

[x] update spi-builder SwiftVersion.swift with new values
[ ] run test

front-end

[ ] extend trigger
[ ] update matrix

We'll need to break up the builder tests and run them across two machines, because they span the full range of builds we're doing and there's no single machine that can do them all: Big Sur machines can't run older Xcode's and Catalina machine can't run 12.5.

A few issues that I've been battling with the last two days:

we can't run the Linux tests the way I intended, because they require a pre-built docker image (we can't run them via swift test, at least not without major fiddling)
getting a weird test failure running BuildMatrixTests. test_5_2_macosSpm on spi-prod
test all is flakey, perhaps due to --parallel. Failure but success on re-run.

My hope was to have all 40 builds in BuildMatrixTests covered by respective builders as a confirmation for deploying a new builder but that doesn't seem to be feasible.
Might have to scrap this but I really want to avoid having to do manual testing of deployments again.
I'll need to think this through but there may be a way to test the actual binary and image on a branch before merging. That'd be the best way to confirm it's going to work.

There's some cleanup work left to do but the jobs have finally all passed across the whole build matrix:
https://gitlab.com/finestructure/swiftpackageindex-builder/-/pipelines/296053511

I'm pulling the "update the build matrix" point into a new issue so we can close this one here. It's probably going to take a couple of days for the builds to be caught up.