Contract not initializing correctly

Setting up a simple contract that inherits from DetailedPremintedToken, but totalSupply gets incorrectly set to 0. From what I've gathered it seems the issue might be related with how I'm setting the initialize() method.
Contract:
pragma solidity ^0.4.21;
import "openzeppelin-zos/contracts/token/ERC20/DetailedPremintedToken.sol";

contract DanGrau is DetailedPremintedToken {
    string public name = "Daniel Grau";
    string public symbol = "Grau";
    uint8 public decimals = 4;
    uint256 public INITIAL_SUPPLY = 20000000 * 10**uint256(decimals);

    function initialize(address initialAccount) public isInitializer("DanGrau", "0")  {
        DetailedPremintedToken.initialize(initialAccount, name, symbol, decimals, INITIAL_SUPPLY);
    }
}

If I do:
$ zos add DanGrau

$ zos push --deploy-stdlib --network local

$ zos create DanGrau --init initialize --args <a ganache address> --network local

The contract does return variables such as name or symbol but totalSupply() keeps returning 0. And I see the same behavior if I truffle test, whether I use the TestApp() or interact directly with a DanGrau instance.
Could someone expand on calling initialize() functions manually? Not sure if that's where I'm messing up, any pointers will be appreciated

Can you try removing the public modifier from INITIAL_SUPPLY, and changing it to a private constant? The problem seems to be with how Solidity manages initial values set on fields declarations, as it is equivalent to setting the value in a constructor, which is not supported by zOS.

Changing INITIAL_SUPPLY to a private constant gives me a correct totalSupply when testing on console (like below) but still a totalSupply of 0 when truffle testing (using the TestApp() or not)
truffle(local)> myContract = Votest.at(<proxy address>)
truffle(local)> myContract.totalSupply()
BigNumber { s: 1, e: 7, c: [ 20000000 ] }

Something else you'd recommend me to try beyond the testing set up instructions?

TBH I've had bad experiences with truffle test not properly recompiling contracts. Just to be sure, could you clear your build/contracts folder, and rerun the tests? It's odd that it works on the console but not the tests.

Yea also find it odd that it's working on the console but not the tests, could definitely be related to my setup. Getting the same behavior if I clear build/contracts, will try from a fresh directory next. These are the tests I'm running with and without TestApp()
import {TestApp } from 'zos';

const DanGrau = artifacts.require('DanGrau');

contract('DanGrau', function ([_, owner, recipient, anotherAccount]) {

  beforeEach(async function () {
    this.app = await TestApp({ from: owner })
  });

  describe('via proxy, total supply', function () {
    it('returns the total amount of tokens', async function () {
      const proxy = await this.app.createProxy(DanGrau);
      const result = await proxy.totalSupply();

      assert.equal(result.toNumber(), 200000000);
    })
  })

});

import {TestApp } from 'zos';

const DanGrau = artifacts.require('DanGrau');

contract('DanGrau', function ([_, owner, recipient, anotherAccount]) {

  beforeEach(async function () {
    this.token = await DanGrau.new(owner);
  });

  describe('non-proxy, total supply', function () {
    it('returns the total amount of tokens', async function () {
      const testVar = await this.token.totalSupply();

      assert.equal(testVar.toNumber(),<PHONE_NUMBER>00);
    });
  });

});

Tried:

starting from a clean directory, from zos init to zos push, with some dependencies added
updating truffle from v4.1.11 to v4.1.14

Seeing same behavior though

@medied is the project open source? If so, I can try to clone it and reproduce the issue.

Attempting to truffle debug results in an error

Thanks for sharing the code @medied! I cloned the repo and found that the proxy-based test is not initializing the proxy, just creating a new instance. Changing the createProxy line to the following does the trick:
const proxy = await this.app.createProxy(Votest, 'Votest', 'initialize', [recipient]);

Also, note that if name, symbol, and decimals are flagged as public, they will be zero in the proxy instance (as it happened with INITIAL_SUPPLY). Make sure to change them to private constant as well.

Thanks @spalladino for the clarification! I am now getting always the following error:
"before each" hook for "should create a proxy": Error: Release error: Please call setProvider() first before calling new().

Any idea how to solve this?

Run your tests with NODE_ENV=test
On Thu, Sep 6, 2018 at 5:05 PM mi-kas<EMAIL_ADDRESS>wrote:

Thanks @spalladino https://github.com/spalladino for the clarification!
I am now getting always the following error:
"before each" hook for "should create a proxy": Error: Release error: Please call setProvider() first before calling new().
Any idea how to solve this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zeppelinos/zos/issues/60#issuecomment-419223844, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAaOJAjj5CzCobLDhWvl1H2ir38RWuSdks5uYYAhgaJpZM4WUj7G
.

@spalladino you rock man thanks for all the help, safe to close this issue now 👍

Actually, thank you for helping us figure out all the issues we still need to work on to make our tool more user-friendly! If you stumble upon anything else, please don't hesitate to let us know!


[Ready to review] Spatial gradient 1d

To be merged after or instead of https://github.com/arraiyopensource/kornia/pull/197
Added non-Sobel, but non-smoothed 1d (vertical and horizontal) version of spatial gradients - for future use with Harris and Hessin on spatial pyramid
Upd: refactored-out all the filter kernels into kornia.filters.kernels

Looks like conda torch-nightly is down :(

Code coverage is down, because some of previously internal functions are exposed now.


F8 Error using bag item

Hey, I'm getting this error when using my bag item. Any idea?

I didn't change anything on the config.

I have the same error without changing nothing.

Hi guys
i test this script in ESX LEGACY last version and works perfectly!
take updated all your dependencies like oxlib inventory oxmysql
Close That please

this was probably related from last version.
now its using ox_inventory exports item. this should prevent it
the cause is if es_extended is not set to use ox_inventory, metadata is nil.


Increase inotify max instances for docker workers

What is the problem that this PR is trying to fix?
Users occasionally run into not being able to create more file
listeners, as this is a shared resource on the docker host. This
fix sets fs.inotify.max_user_instances to WORKER_POOL_SIZE *
the default value.
Hopes are that these errors would plummet:
https://papertrailapp.com/groups/3719173/events?q=inotify_add_watch
What approach did you choose and why?
Increase the max at image bootstrap time
How can you test this?
Look at /proc/sys/fs/inotify/max_user_instances
What feedback would you like, if any?
Any.

Won't be using this anymore 😿 💔


Add wiener denoise unit test

Add wiener denoise unit test
Add environment setup for unit test.

For wiener denoise 2d unit test
Pr for add wiener denoise 2d unit test
license: check if license is ok
Comments
warnings in Local build

mac: no new warning, only warning: -pie being ignored. It is only used when linking a main executable
linux: GNU warning in SpatialFullDistortionTest.cc
windows: none

warnings on remote ci servers

jenkins:
a. clang-format
b.
travis
a. mac: -pie being ignored. It is only used when linking a main executable, can be ignored.
b. linux: SpaticalFullDistoration wanring, could be fixed by merge the latest code;
appvedor
a. no warnings

dry run output
Running main() from C:\Works\AV1\SVT-AV1\third_party\googletest\src\gtest_main.cc
Note: Google Test filter = Denoise/*.*
[==========] Running 36 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 9 tests from Denoise/WienerDenoiseLbdTest
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/0
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/0 (111 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/1
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/1 (70 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/2
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/2 (111 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/0
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/0 (108 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/1
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/1 (69 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/2
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/2 (108 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_gradient_test/0
[       OK ] Denoise/WienerDenoiseLbdTest.run_gradient_test/0 (287 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_gradient_test/1
[       OK ] Denoise/WienerDenoiseLbdTest.run_gradient_test/1 (122 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_gradient_test/2
[       OK ] Denoise/WienerDenoiseLbdTest.run_gradient_test/2 (289 ms)
[----------] 9 tests from Denoise/WienerDenoiseLbdTest (1284 ms total)

[----------] 27 tests from Denoise/WienerDenoiseHbdTest
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/0
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/0 (113 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/1
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/1 (68 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/2
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/2 (111 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/3
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/3 (112 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/4
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/4 (69 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/5
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/5 (121 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/6
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/6 (111 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/7
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/7 (68 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/8
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/8 (111 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/0
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/0 (109 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/1
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/1 (67 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/2
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/2 (108 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/3
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/3 (108 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/4
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/4 (66 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/5
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/5 (109 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/6
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/6 (111 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/7
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/7 (71 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/8
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/8 (108 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/0
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/0 (289 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/1
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/1 (122 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/2
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/2 (290 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/3
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/3 (288 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/4
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/4 (122 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/5
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/5 (287 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/6
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/6 (295 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/7
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/7 (122 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/8
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/8 (286 ms)
[----------] 27 tests from Denoise/WienerDenoiseHbdTest (3883 ms total)

[----------] Global test environment tear-down
[==========] 36 tests from 2 test cases ran. (5178 ms total)
[  PASSED  ] 36 tests.

@FochQu please verify it with following command:
SvtAv1UnitTests --gtest_filter=Denoise/.

Branch for add_denoise_test
+MAC:
ld: warning: -pie being ignored. It is only used when linking a main executable
+Linux
no warning
+Windows
no warning
Dry run test
Running main() from /home/jenkins/workspace/NightlyCidana-SVT-AV1/third_party/googletest/src/gtest_main.cc
Note: Google Test filter = Denoise/.
[==========] Running 36 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 9 tests from Denoise/WienerDenoiseLbdTest
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/0
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/0 (23 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/1
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/1 (22 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/2
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_block_size/2 (19 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/0
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/0 (19 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/1
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/1 (17 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/2
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseLbdTest.run_invalid_chroma_subsampling/2 (19 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_gradient_test/0
[       OK ] Denoise/WienerDenoiseLbdTest.run_gradient_test/0 (35 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_gradient_test/1
[       OK ] Denoise/WienerDenoiseLbdTest.run_gradient_test/1 (29 ms)
[ RUN      ] Denoise/WienerDenoiseLbdTest.run_gradient_test/2
[       OK ] Denoise/WienerDenoiseLbdTest.run_gradient_test/2 (34 ms)
[----------] 9 tests from Denoise/WienerDenoiseLbdTest (217 ms total)
[----------] 27 tests from Denoise/WienerDenoiseHbdTest
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/0
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/0 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/1
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/1 (18 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/2
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/2 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/3
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/3 (20 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/4
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/4 (18 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/5
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/5 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/6
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/6 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/7
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/7 (17 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/8
Unsupported block size 18
Unsupported block size 9
Unsupported block size 48
Unsupported block size 24
Unsupported block size 64
[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_block_size/8 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/0
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/0 (18 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/1
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/1 (17 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/2
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/2 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/3
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/3 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/4
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/4 (17 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/5
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/5 (18 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/6
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/6 (19 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/7
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/7 (17 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/8
aom_wiener_denoise_2d doesn't handle different chroma subsamplingaom_wiener_denoise_2d doesn't handle different chroma subsampling[       OK ] Denoise/WienerDenoiseHbdTest.run_invalid_chroma_subsampling/8 (18 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/0
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/0 (35 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/1
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/1 (29 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/2
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/2 (35 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/3
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/3 (34 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/4
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/4 (29 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/5
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/5 (35 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/6
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/6 (34 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/7
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/7 (29 ms)
[ RUN      ] Denoise/WienerDenoiseHbdTest.run_gradient_test/8
[       OK ] Denoise/WienerDenoiseHbdTest.run_gradient_test/8 (35 ms)
[----------] 27 tests from Denoise/WienerDenoiseHbdTest (625 ms total)
[----------] Global test environment tear-down
[==========] 36 tests from 2 test cases ran. (843 ms total)
[  PASSED  ] 36 tests.

No need to merge it for now.


Expose nginx container on localhost:8080; Use latest hub image; Skip daemonize

Hi.  I made some changes in my fork that may be of interest.
Thanks!

Thank you for sharing your adjustments. The parts you propose to change are deliberately the way they are now. Let me explain the reasons behind each:
ports:
-        - 80
+        - <IP_ADDRESS>:8080:80

This allows us to have many applications running on the same machine, all of which can expose port 80, without conflict. To make working with this a little bit easier, we created reception, a dynamic reverse proxy for docker-compose.
-        build:
-          context: .
-          args:
-            - BRANCH=${BRANCH-master}
-        image: ninech/netbox:${BRANCH-latest}
+        image: ninech/netbox

We rely on this during the travis build to test the image. It also provides a quick way to use a different version of netbox-docker. Your proposal would force the version to always be ninech/netbox:latest, and we don't want that.
-$ docker-compose up -d
+$ docker-compose up

We only need to see the logs when something breaks, so we don't want to show them by default. If we would need to see the logs, we can always run docker-compose logs [<container>] [-f].


Spacing under main navbar needs work.

We should add some space under the navbar.
Two blue(ish) buttons on the right are literally touching the navbar, and the date text is too close as well.
Screenshot:

This issue has been fixed by another pull request


SAK-31799 make favorites clickable on mobile

Delivers https://jira.sakaiproject.org/browse/SAK-31799.
Now that links are clickable, I've had to change it so drag is initiated from the drag handle (instead of dragging from anywhere inside the favorite container).
I've also fixed a bug whereby sortable wasn't working for touch devices on some pages.  jquery-ui-touch-punch is required for sortable to work on any touch device, so I've ensured that this is loaded as required.

Looks good to me.


Prerequisites corrected for all APT manager based systems

Status
READY
Description

Improved prerequisites for clean and smooth installation on any APT package manager based OS.
Added missing module uvloop to requirements.txt

Todos

[ ] Tests - Tested on clean Ubuntu 20.04 using docker. Tested multiple times with zip install and git clone method.
[ ] Documentation - Documentation appropriately changed. Redundant statements have been removed, and comments added to the edited files for easy future development

Deploy Notes

Python3, Python3-pip (pip3) and git are reinstalled
Added missing module uvloop to requirements.txt

Steps to Test or Reproduce

This was a PR addressing issue #301
Issue used to arise when a new system, possibly a VM or a docker image didn't have python3-pip installed and git. Without git, netfilterqueue isnt installed and this somehow ends up blocking the pip install as well.
Even in cases where git is installed, the requirements.txt had to be rerun. Repeating the statement in the installer facilitates clean installation.

Impacted Areas in Application
Files affected
install_dependencies_apt.sh
requirements.txt
README.md
docs/en-US/user-guide.md

Additionally, I also improved the docs.

it' conflicts, have you recheck again @DigvijayBhosale1729 ?

Resolved conflicts.
Number of conflicts = 1
Conflicts resolved = 1
File where conflict occured = user-guide.md
Line = 975
Description = Improved Grammar.
Conflicting Statement -
It simply represents the number of times you want to ignore the possibility of an attack. In other words, it is the extent to which IDS will not bother to inform you about the attack. Once it crosses the limit (here threshold), it will start notifying you about the possible attack. The lower the number is, the more sensitive IDS is, and may also give rise to false alarms. The higher the number is, the less sensitive IDS is, it may give rise to less false positives but at the same time choosing a very high number is not suggested either. Choose a mid range number within (10-100) to be on the safer side while keeping alarms of false positives to the minimal.
@adeyosemanputra

@DigvijayBhosale1729 can you share your screenshot when securetea running  in your local machine after your make change it?

@all-contributors please add @DigvijayBhosale1729  for code

@adeyosemanputra, here are the screenshots you requested
I'm using a Ubuntu Image.
The Image is clean, i.e. nothing other than base OS is present.
Started with installing wget and unzip to Download SecureTea Repository as a .zip package, unzip and install it.
Can also use git clone to Download Repository as a Folder. This would require installation of git instead of wget and unzip

After Unzipping and changing directories to SecureTea-Project-master, prerequisites are installed by using command bash install_dependencies_apt.sh

Image is clean, hence software-properties-common is installed. Geographic area and Timezone needs to be entered.

After installing prerequisites successfully (this might take 3-5 mins if distro is clean and less if some of the dep are preinstalled) , securetea is installed by using command python3 setup.py install

Note - In case of previous installer, this step would not be completed.
Reason - Packages wouldnt be installed because netfilterqueue installation failed before installation script could be finish running.
After securetea is installed, it can be run with command securetea in terminal

Note - In case of previous installer, this command used to give uvloop module missing error along with many other module missing errors. This happened because of 2 reasons. uvloop wasn't included in requirements.txt and dependency installer broke because netfilterqueue installation through pip is unstable and often fails while building wheel. Installation via git and apt is reliable


Migrate test recording framework to unified test framework

[ ] Start (and install if needed) and stop test proxy from Test Framework
[ ] Load session records from test proxy in Playback mode
[ ] Send session records to test proxy in Record mode
[ ] Translate custom sanitizers to Test Proxy sanitizers
[ ] Create a migration guide, similar to https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/test_proxy_migration_guide.md
[ ] File tracking GitHub issues for any test suites that need updates or followups by specific SDK area owners (see .github/CODEOWNERS file) with links to the migration guide / contact info

@joshfree
We probably try start with a few newly added LLC clients, instead of the whole mgmt, which requires weeks of recording time and lots of Azure resources.
Also this likely require pipeline change, to run the Docker container.
@alzimmermsft We will subscribe on this issue to have follow-up from you or anyone working on it in data-plane.
Known docs on test proxy https://github.com/Azure/azure-sdk-tools/tree/main/tools/test-proxy

@weidongxu-microsoft WRT to the random names or variables side, the test-proxy actually has a feature that can help you out. It is just a wrapper around exactly the variables that you link to!
To take advantage of it, when POST-ing to /record/stop, you can provide an additional json payload
{
   "Key1": "Value1"
}

Then, when POST-ing to /Playback/Start, you will receive the above dictionary in the response body.
Right now it expects a dictionary, but there is an issue filed to not enforce the shape of the object.

Thanks Scott! Got it. Nice job!
Then the question to Java is whether we build another azure-core-test for integration with the test proxy, or let every client do their own job.
E.g. current random name is done in TestResourceNamer in azure-core-test.

Then the question to Java is whether we build another azure-core-test for integration with the test proxy

I'm looking at this right now. (I'm new to the team - this is my MQ project. :)) It's my thought that things like this should be centralized, but I'm still exploring the various clients/libraries to understand current usage.

@billwert
@haolingdong-msft will also help with the test proxy. Therefore if we got any major update, or draft of the design, please do share with us.
My thought is whether we add a subclass of TestBase to support test proxy. Just a thought, not any concrete design.

Hi @billwert, are you working on implementing the shared part (in azure-core-test) for integrating with TestProxy to support PLAYBACK and RECORD mode, as well as preparing the migration doc? Is there any update on this? Please include @weidongxu-microsoft and me if there any update or pr, so that we are aligned.
/cc @alzimmermsft

Hey sorry for the quietness here. Yes, I am working on this - getting ramped on the space took me a little longer than I'd hoped. I'm working on the prototype and hope to have something we can look at this week.
My intent is to do the implementation inside of the current types which hopefully will not require much change at the individual test levels.

Hey sorry for the quietness here. Yes, I am working on this - getting ramped on the space took me a little longer than I'd hoped. I'm working on the prototype and hope to have something we can look at this week.
My intent is to do the implementation inside of the current types which hopefully will not require much change at the individual test levels.

Thanks @billwert for the update! I'm working on the management plane part to integrate with the new test framework which depends on this issue. Please include @weidongxu-microsoft and me if there is any pr or update.

@billwert WRT the prototype you mentioned last week, may I know is there any update and progress?
/cc @alzimmermsft

Hi @billwert and @alzimmermsft, may I know is there any update on this issue?


Ring Spotlight Cam adds a Floodlight device which doesn't work

I just got this homebridge plugin installed and it's working great for integrating the Ring motion detection with HomeKit Automation, thanks!
But, I am seeing "Floodlight" devices for my two Ring Spotlight Cams. And, these Floodlight devices default to On and don't turn on or off the actual light on the spotlight cams.
Would it be possible to make them proper "Spotlight" devices that actually turn on and off the spotlight, or at least have the plugin not add the non-functional "Floodlight" devices for the Spotlight Cams.
Please let me know if there's any diagnostic info you need from me.
Thanks!

I have a Spotlight Cam and a Floodlight Cam.  I can control the light on both, but for some reason the Spotlight Cam light always shows as "on" even though it is turned off.  I need to toggle it off and then on to turn off the light.

This plugin is now DEPRECATED... you will find a vastly superior plugin here!


Keyboard dismisses automatically after its opened

Bug description:

To Reproduce:

Expected behavior:

Screenshots/Videos:

Environment:

OS: MacOS
OS version: MacOS Monterey
react-native version:"react-native": "0.64.1",
react-native-webview version:    "react-native-webview": "^11.6.5",

I am having this exact issue, spent almost 5 hours trying to figure out what is going on until I saw this isssue being opened. @MustafaZouari did you have any luck fixing it?

Same issue here.
"react-native": "0.64.2",
"react-native-webview": "11.17.1",

Same issue!
<WebView
	source={{ uri: "https://google.com" }}
	// onNavigationStateChange={handleNavigationStateChange}
	userAgent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"
/>

"react-native-webview": "11.23.0",

https://user-images.githubusercontent.com/4329912/183458577-01944e07-c82b-4f63-9451-0fe1a5dcb7d2.mp4

Same issue!
how to fix it

I found solution, error seem from react-navigation old version, because i try without Router everything work well
Updated react-navigation to lastest version will fix error
Here is all dependencies i updated:
 "@react-navigation/native": "^6.0.11",
 "@react-navigation/native-stack": "^6.7.0",
 "react": "18.0.0",
 "react-native": "0.69.4",
 "react-native-safe-area-context": "^4.3.1",
 "react-native-screens": "^3.15.0",
 "react-native-webview": "^11.23.0"

Don't remember it's been a year and I've moved to flutter 😅

The solution is to go to the AndroidManifest file and update android:windowSoftInputMode="adjustPan". Later use KeyboardAvoidingView if required


[BUG] Avoid adding more sample data without removing old sample data with

Describe the bug
The sample data injector currently only injects data without checking if the data already exists. This shouldn't be the default behaviour.
To Reproduce
Run the npm run fill-db script multiple times and check the database
Expected behavior
The script should remove all previous data and add new data.
Screenshots

So I see two possible fixes for this:

Have the sample script clear the database before injecting new data.
Have the sample script check for data and quit if the database already has data.

I wouldn't just make the script suddenly drop the whole database. Instead I think we should make some flag to put behind the command to decide if the DB should be dropped or not

I think dropping the DB is a more safe approach as the sample data from the previous version may not be compatible with the new version.

Afaik, the mongod CLI tool to import data into mongodb, does not drop existing data unless the --drop switch is used.
It also allows to specify the db for the new data using a --collection argument, which I think is useful because we don't want this tool to mix sample test data with real production data

This should simplify the procedure a lot. Thanks for the quick tip @snowteamer


Customizing a line in a program

Hi there,
Since we have quite a few modules that are constantly loaded into our ABB robot PROC Main() command always complains and I need to get into it and manually change Main to something like MyCustomMain() .
I was wondering if it's possible to do that in Grasshopper somewhere between Create Program and Save Program components.
TL;DR - is it possible to "unpack" the program, change it and then "package" it for the SaveProgram component?

Hi, yes. You can modify the code output of the Create Program component with standard grasshopper components, like using the Replace Text component to replace Main() with MyCustomMain(). Then connect this code and the Program output to the Custom Code component, and from this to the Save Program component.

Understood, thank you for the swift response!


I have flicker with Flutter App On Android and sometimes on iOS

Steps to reproduce

I have a page on scroll or speed movement i have flicker

Expected results
The scroll does not working correctly
Actual results
I have flicker
Code sample
Code sample
import 'package:austro_digital/app/login/_children/register_austrotoken_login/presenter/blocs/camera_access_bloc/camera_access_bloc.dart';
import 'package:austro_digital/app/login/_children/register_austrotoken_login/presenter/screens/screens.dart';
import 'package:austro_digital/apps/ley_proteccion/models/args_for_law_terms_model.dart';
import 'package:austro_digital/core/widgets/inputs/terms_checkbox.dart';
import 'package:austro_digital/global_var.dart';
import 'package:ba_app_widgets/ba_components.dart';
import 'package:ba_mobile_core/ba_mobile_core.dart';
import 'package:ba_mobile_design_system/ba_mobile_design_system.dart';
import 'package:ba_mobile_utils/image_utils.dart';
import 'package:firebase_analytics_tracker/firebase_analytics_tracker.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:shimmer/shimmer.dart';
import 'package:sizer/sizer.dart';

List<Map<String, String>> items = [
  {
    'imagePath': ImageUtils.focoImage,
    'text': 'Tener buena iluminación.',
  },
  {
    'imagePath': ImageUtils.eyeglasses,
    'text': 'No uses lentes o accesorios.',
  },
  {
    'imagePath': ImageUtils.focusFace,
    'text': 'Enfoca tu cédula y rostro completo. Evita que esté borroso.',
  },
];

class CameraAccessPage extends StatefulWidget {
  static const String routeName = '/camera-access';

  const CameraAccessPage({super.key});

  @override
  State<CameraAccessPage> createState() => _CameraAccessPageState();
}

class _CameraAccessPageState extends State<CameraAccessPage>
    with WidgetsBindingObserver {
  @override
  void initState() {
    super.initState();
    GlobalVars().timeLastSession = DateTime.now();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    super.didChangeAppLifecycleState(state);

    switch (state) {
      case AppLifecycleState.resumed:
        BlocProvider.of<CameraAccessBloc>(context).add(
          RequestCameraAccessEvent(),
        );
        break;
      case AppLifecycleState.paused:
        break;
      case AppLifecycleState.inactive:
        break;
      case AppLifecycleState.detached:
      default:
        break;
    }
  }

  @override
  Widget build(BuildContext context) {
    return BlocProvider.value(
      value: BlocProvider.of<CameraAccessBloc>(context),
      child: Scaffold(
        appBar: AppBar(
          title: const Text('Comprobar identidad'),
          centerTitle: false,
          bottom: const PreferredSize(
            preferredSize: Size.fromHeight(2.5),
            child: LinearProgressIndicator(
              color: BaColor.secondary,
              backgroundColor: Colors.transparent,
              value: 2 / 5,
            ),
          ),
        ),
        backgroundColor: BaColor.skyMist,
        body: BlocListener<CameraAccessBloc, CameraAccessState>(
          listener: (context, state) async {
            if (state is CameraAccessGrantedState) {
              // await Navigator.of(context).pushNamed(
              //   InfoScreen.routeName,
              //   arguments: InfoScreenArgs(
              //     appBarText: 'Comprobar identidad',
              //     title: 'Validación lista',
              //     messages: ['Hemos comprobado tu identidad exitosamente'],
              //     buttonText: 'Continuar',
              //     onPressed: () {
              //       Navigator.of(context).pushNamedAndRemoveUntil(
              //         CreateAustroTokenPinScreen.routeName,
              //         (route) => false,
              //       );
              //     },
              //     imagePath: imgCheckGlobal.path,
              //     imageColor: const Color(0xFF319E48),
              //   ),
              // );

              if (RemoteConfigService.instance
                  .getBool(RemoteConfigEnum.skipLifeTest)) {
                Navigator.of(context).pushNamed(
                  CreateAustroTokenPinScreen.routeName,
                );
              } else {
                Navigator.of(context).pushNamed(
                  //CreateAustroTokenPinScreen.routeName,
                  //AustroTokenActivatedScreen.routeName,
                  ProofOfLifeScreen.routeName,
                );
              }
            }
            if (state is CameraAccessDeniedState) {
              Navigator.pushNamed(
                context,
                InfoScreen.routeName,
                arguments: InfoScreenArgs(
                  appBarText: 'Comprobar identidad',
                  title: 'Acceso pendiente',
                  messages: [
                    'Es necesario los permisos de la cámara del dispositivo para continuar con el proceso de creación de cuenta.',
                  ],
                  buttonText: 'Permitir',
                  onPressed: () {
                    BlocProvider.of<CameraAccessBloc>(context).add(
                      RequestCameraAccessEvent(),
                    );
                    Navigator.of(context).pop();
                  },
                  imagePath: ImageUtils.notCamera,
                ),
              );
            }
            if (state is CameraAccessPermanentlyDeniedState) {
              Navigator.pushNamed(
                context,
                InfoScreen.routeName,
                arguments: InfoScreenArgs(
                  appBarText: 'Comprobar identidad',
                  title: 'Acceso pendiente',
                  messages: [
                    'Es necesario los permisos de la cámara del dispositivo para continuar con el proceso de creación de cuenta.',
                    'Puedes dar este permiso desde la configuración del sistema.',
                  ],
                  buttonText: 'Configuración',
                  onPressed: () {
                    context.read<CameraAccessBloc>().logEvent(
                          AnalyticsEvent.loginCameraAccessOnOpenConfiguration,
                        );
                    openAppSettings();

                    Navigator.of(context).pop();
                  },
                  imagePath: ImageUtils.notCamera,
                ),
              );
            }
          },
          child: const _Body(),
        ),
      ),
    );
    // return BlocProvider.value(
    //   value: BlocProvider.of<CameraAccessBloc>(context),
    //   child: BaScreenBase(
    //     hasGoBack: true,
    //     hasPadding: false,
    //     customBackgroundColor: BaColor.skyMist,
    //     appBarText: 'Comprobar identidad',
    //     child: BlocListener<CameraAccessBloc, CameraAccessState>(
    //       listener: (context, state) {

    //       },
    //       child: const _Body(),
    //     ),
    //   ),
    // );
  }
}

class _Body extends StatefulWidget {
  const _Body();

  @override
  State<_Body> createState() => _BodyState();
}

class _BodyState extends State<_Body> {
  bool _isChecked = true;
  bool _showTermsAndConditionsCheck = true;
  bool _isLoading = false;

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    _checkTermsAndConditions();
  }

  Future<void> _checkTermsAndConditions() async {
    if (context.read<CameraAccessBloc>().title ==
        'Recupera tu pin con identificación de tu rostro') {
      return;
    }
    bool accepted = false;
    if (!mounted) return;
    setState(() {
      _isLoading = true;
    });
    try {
      final CameraAccessBloc bloc = context.read<CameraAccessBloc>();
      accepted = await bloc.acceptedTermsAndConditions;
    } finally {
      if (mounted) {
        setState(() {
          _isLoading = false;
          _showTermsAndConditionsCheck = !accepted;
        });
      }
    }
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        Expanded(
          child: ListView(
            children: [
              const SizedBox(height: 34.0),
              Image.asset(
                ImageUtils.cameraRounded,
                height: 190.0,
              ),
              const SizedBox(height: 50.0),
              H3(
                text: context.read<CameraAccessBloc>().title,
                color: BaColor.secondary,
                textAlign: TextAlign.center,
              ),
              const SizedBox(height: 20.0),
              Padding(
                padding: const EdgeInsets.symmetric(horizontal: 16.0),
                child: Column(
                  mainAxisSize: MainAxisSize.min,
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const H6(
                      text: 'Recuerda:',
                      color: BaColor.secondary,
                      textAlign: TextAlign.start,
                      fontWeight: FontWeight.w700,
                    ),
                    ...items
                        .map(
                          (item) => CustomRowWidget(
                            imagePath: item['imagePath']!,
                            text: item['text']!,
                          ),
                        )
                        .toList(),
                  ],
                ),
              ),
              GeneralVerticalSpace(
                customSpace: 2.h,
              ),
              GeneralVerticalSpace(
                customSpace: 12.h,
              ),
            ],
          ),
        ),
        if (_isLoading &&
            context.read<CameraAccessBloc>().title ==
                'Pediremos permiso para acceder a tu cámara')
          Shimmer.fromColors(
            baseColor: Colors.grey[300]!,
            highlightColor: Colors.grey[100]!,
            child: Padding(
              padding: const EdgeInsets.symmetric(horizontal: 16.0),
              child: TermsCheckBox(
                checked: _isChecked,
                text: Text(
                  'He leído y acepto la Política de Privacidad y Protección de Datos Personales.',
                  style: TextStyle(
                    fontSize: 11.sp,
                    decoration: TextDecoration.underline,
                    fontWeight: FontWeight.w400,
                  ),
                ),
                onChange: (value) {},
              ),
            ),
          ),
        if (_showTermsAndConditionsCheck &&
            !_isLoading &&
            context.read<CameraAccessBloc>().title ==
                'Pediremos permiso para acceder a tu cámara')
          Padding(
            padding: const EdgeInsets.symmetric(horizontal: 16.0),
            child: TermsCheckBox(
              checked: _isChecked,
              text: Text(
                'He leído y acepto la Política de Privacidad y Protección de Datos Personales.',
                style: TextStyle(
                  fontSize: 11.sp,
                  decoration: TextDecoration.underline,
                  fontWeight: FontWeight.w400,
                ),
              ),
              onChange: (value) {
                setState(() {
                  _isChecked = value ?? false;
                });
              },
              openTerms: () async {
                final bool? acepto = await Navigator.pushNamed<bool?>(
                  context,
                  TermsPdfPage.routeName,
                  arguments: ArgsForLawTermsModel(
                    pdfUrl: url,
                  ),
                );
                //final CameraAccessBloc bloc = context.read<CameraAccessBloc>();
                if (acepto != null && acepto) {
                  setState(() {
                    _isChecked = true;
                  });
                }
                //await _checkTermsAndConditions();
                if (!mounted) return;
                //setState(() => _isChecked = acepto ?? false);
              },
            ),
          ),
        const SizedBox(height: 16.0),
        Padding(
          padding: const EdgeInsets.symmetric(horizontal: 16.0),
          child: BaButton(
            text: 'Continuar',
            onPressed: (_isLoading || !_isChecked) &&
                    context.read<CameraAccessBloc>().title !=
                        'Recupera tu pin con identificación de tu rostro'
                ? null
                : () async {
                    if (context.read<CameraAccessBloc>().title ==
                        'Recupera tu pin con identificación de tu rostro') {
                      BlocProvider.of<CameraAccessBloc>(context).add(
                        RequestCameraAccessEvent(),
                      );
                      return;
                    }
                    setState(() {
                      _isLoading = true;
                    });
                    final CameraAccessBloc bloc =
                        context.read<CameraAccessBloc>();
                    await bloc.acceptDataProtection();
                    setState(() {
                      _isLoading = false;
                    });
                    BlocProvider.of<CameraAccessBloc>(context).add(
                      RequestCameraAccessEvent(),
                    );
                  },
            backgroundColor: BaColor.primary,
          ),
        ),
        const SizedBox(height: 25.0),
      ],
    );
  }
}

class CustomRowWidget extends StatelessWidget {
  final String imagePath;
  final String text;

  const CustomRowWidget({
    Key? key,
    required this.imagePath,
    required this.text,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return ListTile(
      leading: Image.asset(
        imagePath,
      ),
      title: M3(
        text,
        color: BaColor.black,
        fontWeight: FontWeight.w400,
      ),
    );
  }
}

const url = 'https://www.bancodelaustro.com/politica-de-proteccion-de-datos';

Screenshots or Video

Screenshots / Video demonstration
Redmi Note 8 Pro (One time on Iphone 13, but anymore)
https://github.com/user-attachments/assets/ab7a1e36-d4ff-480f-95d7-8d00603c662e

Logs
No response
Flutter Doctor output
[✓] Flutter (Channel stable, 3.27.1, on macOS 15.2 24C101 darwin-arm64, locale en-EC)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] IntelliJ IDEA Community Edition (version 2023.3.6)
[✓] VS Code (version 1.92.2)
[✓] Connected device (5 available)
! Error: Browsing on the local area network for iPhone. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
The device must be opted into Developer Mode to connect wirelessly. (code -27)
! Error: Browsing on the local area network for iPhone de William. Ensure the device is unlocked and attached with a cable or associated with the same local area network as this Mac.
The device must be opted into Developer Mode to connect wirelessly. (code -27)
[✓] Network resources
• No issues found!

it is because of the latest flutter version 3.27.0 uses impeller as default rendering engine and it does not work properly with heavy widgets like "Backdrop filters"  in stacks. https://docs.flutter.dev/perf/impeller#:~:text=Flutter%20enables%20Impeller%20by%20default%20on%20Android.,to%20the%20flutter%20run%20command. follow this links.
You can disable impeller on debug mode by passing a flag "flutter run --no-enable-impeller"
Here is the issue i'm also facing that by adding
""
this in android manifest the release apks should also disable impeller but it does not. I really hope flutter team will see this and fix this issue really quick as our apps completely jerking off because of impeller . Specially in release mode because in debug mode the flag is working.
Please reply if this work for you in release mode "build apk or appbundle in android"

In the older version, 3.27.0, I haven't noticed this flickering behavior, even when Impeller is enabled, but I do see this flickering behavior in version 3.27.1. Adding the following seems to resolve the bug on 3.27.1:
<meta-data
    android:name="io.flutter.embedding.android.EnableImpeller"
    android:value="false" />

In my case, the flickering can be hard to catch / reproduce (on version 3.27.1). I noticed it mostly while tapping in and out of menus, by pressing navigation buttons lined up on two screens. That way the screen is showing constant motion. I've also seen this while quickly scrolling columns of color-coded widgets. In both of these cases, there is a high contrast from one frame to another, so it's easier to spot when it happens.
The flickering usually lasts for about one or a half second or so, quickly repeating two frames tens of times. And then the app returns to normal, but then it can happen again a second or so later, repeating the flickering behavior several times in quick succession. And then the behavior tends to go away completely for a while, and then may come back later.

Try with a older flutter version like 3.24 or use the flag while debugging
cause impeller pre compile all graphical shaders whivh makes the app faster
and smooth but can cause some animations to flicker. My case was brutal as
after upgrafing to 3.27.1 my app started to flicker so fast that i cant
even see the widget (I had heavy animations on a stack with backdrop filter
-- In a one page) so i used the flag and it worked -- It also worked when i
remove backdrop filter widget from stack - It wasnt idle cause i wanted it
and there were other pages that caused the same issue. anyway when i used
build command to build an apk the manifest declaration doesnt worked as
expected --as the flag. I think i have to go back to flutter 3.24 till the
team fix this issue  when going into production.
Note the flag is also not permanent as its a runtime flag if you close the
app after run command and then open it from the icon on home screen it does
not work you have to rebuild all the time for it to work.
On Mon, 30 Dec 2024, 07:56 Andrew Engelbrecht, @.***>
wrote:

In the older version, 3.27.0, I haven't noticed this flickering behavior,
even when Impeller is enabled, but I do see this flickering behavior in
version 3.27.1. Adding the following
https://docs.flutter.dev/perf/impeller#android seems to resolve the bug
on 3.27.1:

In my case, the flickering can be hard to catch / reproduce (on version
3.27.1). I noticed it mostly while tapping in and out of menus, by pressing
navigation buttons lined up on two screens. That way the screen is showing
constant motion. I've also seen this while quickly scrolling columns of
color-coded widgets. In both of these cases, there is a high contrast from
one frame to another, so it's easier to spot when it happens.
The flickering usually lasts for about one or a half second or so, quickly
repeating two frames tens of times. And then the app returns to normal, but
then it can happen again a second or so later, repeating the flickering
behavior several times in quick succession. And then the behavior tends to
go away completely for a while, and then may come back later.
—
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/160824#issuecomment-2564961438,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFM3UAOJJO4XEVYWEXOSSX32ICVNHAVCNFSM6AAAAABUE7OADOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRUHE3DCNBTHA
.
You are receiving this because you commented.Message ID:
@.***>

The solution is not to disable Impeller. We need Impeller to be stable now.

yeah that's the obvious answer but it's still like a child that hardly walk so we can't expect it to sprint. I believe flutter team or we should come up with a solution to disable impeller on android and ios for production releases then we can improve impeller and learn how to handle complex hierarchies with it. So do you found a solution for production builds ,does the flag worked for you and how can we get flutter teams attention or make a pull request with appropriate actions

I'm devastated as i have to go back to a previous version of the app if i switch back to 3.24 cause I update my codebases to be up to date with framework . So in case anyone found a solution for production builds like getting priority to that metadata in manifest for android please share with me.I checked the merged manifest and it looks fine as it has the metadata for disable impeller included.

For the moment on the version 3.27.1 using this code works correctly for the moment

inside android/app/src/main/AndroidManifest.xml

Sure i'll try , thanks

The test was done again on the device in the video shown here and the flickering seemed to have disappeared.

Sure i'll try , thanks

The test was done again on the device in the video shown here and the flickering seemed to have disappeared.

I had this
"  ```

"
and i changed it to new code and it worked
"```
<meta-data
    android:name="io.flutter.embedding.android.EnableImpeller"
    android:value="false" />

"
I copied the code from official website but somehow it has changed. thanks for the help cause i spend hours trying to fix it and was devastated to launch the app as only the debug flag worked.

Hi @astudilloalex, the code sample shared has lot of third party libraries and widgets. Please share a minimal code sample that reproduces the flicker. And is the flicker with or without impeller?


quiche: implement http stream interfaces

Implement encodeHeader|Data|Trailer.
Implement watermark buffer for QUIC stream and session to limit data buffered in stream send buffer.
Implement readDisable() for QUIC stream to block pushing data when upper stream receive buffer is full.
Risk Level: low, not in use
Testing: added tests in stream test.
Part of #2557

This one is ready for review. PTAL

/assign @wu-bin

ping?

@alyssawilk mind take another look?

Haha, I was already halfway through! It's looking great - only a few nits left on my end

Commented about QUIC_STREAM_NO_ERROR and static_stream. PTAL!


x/tools/gopls: hover in VS Code broken

What did you do?

Checked out this repo at this commit
Opened VS Code
Opened libsecret.go
Hovered the mouse pointer over a method name

What did you expect to see?
Information about the method in a tooltip
What did you see instead?

Result: [{"usePlaceholders":true,"staticcheck":false},null]

[Trace - 21:26:02.965 PM] Sending request 'textDocument/foldingRange - (4)'.
Params: {"textDocument":{"uri":"file:///Users/michael/src/github.com/99designs/keyring/libsecret.go"}}

[Trace - 21:26:03.012 PM] Sending request 'textDocument/codeLens - (5)'.
Params: {"textDocument":{"uri":"file:///Users/michael/src/github.com/99designs/keyring/libsecret.go"}}

[Trace - 21:26:03.032 PM] Sending request 'textDocument/hover - (6)'.
Params: {"textDocument":{"uri":"file:///Users/michael/src/github.com/99designs/keyring/libsecret.go"},"position":{"line":12,"character":7}}

[Trace - 21:26:03.474 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2020/03/03 21:26:03 go/packages.Load\n\tsnapshot = 0\n\tquery = [./... builtin]\n\tpackages = 7"}

[Info  - 9:26:03 pm] 2020/03/03 21:26:03 go/packages.Load
	snapshot = 0
	query = [./... builtin]
	packages = 7
2020/03/03 21:26:04 DocumentSymbols failed: getting file for DocumentSymbols: no PackageHandles
	URI = file:///Users/michael/src/github.com/99designs/keyring/libsecret.go
[Trace - 21:26:04.146 PM] Received response 'textDocument/documentSymbol - (1)' in 1382ms.
Result: []

[Trace - 21:26:04.165 PM] Received notification 'window/logMessage'.
Params: {"type":1,"message":"2020/03/03 21:26:04 DocumentSymbols failed: getting file for DocumentSymbols: no PackageHandles\n\tURI = file:///Users/michael/src/github.com/99designs/keyring/libsecret.go"}

[Error - 9:26:04 pm] 2020/03/03 21:26:04 DocumentSymbols failed: getting file for DocumentSymbols: no PackageHandles
	URI = file:///Users/michael/src/github.com/99designs/keyring/libsecret.go
[Trace - 21:26:04.171 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2020/03/03 21:26:04 go/packages.Load\n\tsnapshot = 1\n\tquery = [file=/Users/michael/src/github.com/99designs/keyring/libsecret.go]\n\tpackages = 0"}

[Info  - 9:26:04 pm] 2020/03/03 21:26:04 go/packages.Load
	snapshot = 1
	query = [file=/Users/michael/src/github.com/99designs/keyring/libsecret.go]
	packages = 0
[Trace - 21:26:04.248 PM] Sending notification '$/cancelRequest'.
Params: {"id":6}

[Trace - 21:26:04.516 PM] Sending request 'textDocument/hover - (7)'.
Params: {"textDocument":{"uri":"file:///Users/michael/src/github.com/99designs/keyring/libsecret.go"},"position":{"line":13,"character":20}}

[Trace - 21:26:04.547 PM] Sending notification '$/cancelRequest'.
Params: {"id":7}

[Trace - 21:26:04.736 PM] Sending request 'textDocument/hover - (8)'.
Params: {"textDocument":{"uri":"file:///Users/michael/src/github.com/99designs/keyring/libsecret.go"},"position":{"line":13,"character":21}}

[Error - 21:26:04.741 PM] Received #2 getting file for AllImportsFixes: no PackageHandles

[Error - 9:26:04 pm] Request textDocument/codeAction failed.
  Message: getting file for AllImportsFixes: no PackageHandles
  Code: 0
[Trace - 21:26:04.747 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2020/03/03 21:26:04 go/packages.Load\n\tsnapshot = 1\n\tquery = [file=/Users/michael/src/github.com/99designs/keyring/libsecret.go]\n\tpackages = 0"}

[Info  - 9:26:04 pm] 2020/03/03 21:26:04 go/packages.Load
	snapshot = 1
	query = [file=/Users/michael/src/github.com/99designs/keyring/libsecret.go]
	packages = 0
[Error - 21:26:05.271 PM] Received #3 no PackageHandles

[Error - 9:26:05 pm] Request textDocument/documentLink failed.
  Message: no PackageHandles
  Code: 0
[Trace - 21:26:05.272 PM] Received notification 'window/logMessage'.
Params: {"type":3,"message":"2020/03/03 21:26:05 go/packages.Load\n\tsnapshot = 1\n\tquery = [file=/Users/michael/src/github.com/99designs/keyring/libsecret.go]\n\tpackages = 0"}

VS Code config
{
    "go.useLanguageServer": true,
    "[go]": {
        "editor.formatOnSave": true,
        "editor.codeActionsOnSave": {
            "source.organizeImports": true,
        },
        "editor.snippetSuggestions": "none",
        "editor.codeActionsOnSaveTimeout": 3000,
    },
    "gopls": {
        "usePlaceholders": true,
        "staticcheck": false,
    },
    "go.languageServerFlags": [
        "-rpc.trace"
    ],
}

$ gopls -rpc.trace -v check keyring.go
2020/03/03 21:36:05 Info:2020/03/03 21:36:05 Build info
----------
golang.org/x/tools/gopls v0.3.3
    golang.org/x/tools/gopls@(devel)
<EMAIL_ADDRESS>h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
<EMAIL_ADDRESS>h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
<EMAIL_ADDRESS>h1:WG0RUwxtNT4qqaXX3DPA8zHFNm/D9xaBpxzHt1WcA/E=
<EMAIL_ADDRESS>h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU=
<EMAIL_ADDRESS>=> ../
<EMAIL_ADDRESS>h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA=
<EMAIL_ADDRESS>h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3U=
<EMAIL_ADDRESS>h1:KaMb5GLhlcSX+e+qhbRJODnUUBvlw01jt4yrjFIHAuA=

Go info
-------
go version go1.14 darwin/amd64

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/michael/Library/Caches/go-build"
GOENV="/Users/michael/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/michael/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/Cellar/go/1.14/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.14/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/michael/src/github.com/99designs/keyring/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/7q/pgl16tb16mbf6gfdbzdr1l9w0000gn/T/go-build923110138=/tmp/go-build -gno-record-gcc-switches -fno-common"
2020/03/03 21:36:06 Info:2020/03/03 21:36:06 go/packages.Load
	snapshot = 0
	query = [./... builtin]
	packages = 7

The problem seems to be caused by the build constraint // +build linux . Removing the build constraint makes the problem go away.
However I would expect gopls to work on files with a build constraint

gopls doesn't yet work automatically with build tags (see https://github.com/golang/go/issues/29202), but you can explicitly specify your build tags in your settings as a work-around. For example:
"gopls": {
    "buildFlags": ["-tags=linux"]
}

OK thanks


Local cluster should support security as a configurable parameter

As per @camerski  this is done and he updated it in https://github.com/opensearch-project/opensearch-build/issues/177


sort api reference headings

Q
A

Bug fix?
No

New feature?
No

BC breaks?
No

Deprecations?
No

Fixed tickets
N/A

Searching through the api reference drove me nuts, I really had to sort the listing. 😄
Maybe I even add some outline in the future. 😌
(Plus I fixed some markdownlint errors)

Also I'm thinking on autogeneration docs form source PHP code. Maybe you are interesting creating such PR?


Upgrade cursor from 0.41.3 to 0.42.2

Latest version of cursor has been pushed to chocolately:
https://community.chocolatey.org/packages/cursoride/0.42.2
Sharing the new data if you'd like it

Awesome. Sounds great! Let's keep doing this in the future. Great work!


Add resource limits to E2E testing

Description
Add resource limits to E2E testing as defined by our operator.
Type of change

[x] Refactor

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

Project coverage is 95.21%. Comparing base (de85e97) to head (420ac7e).
Report is 62 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1047      +/-   ##
==========================================
- Coverage   95.34%   95.21%   -0.13%
==========================================
  Files          54       54
  Lines        2211     2277      +66
==========================================
+ Hits         2108     2168      +60
- Misses        103      109       +6

/lgtm
/approve
but we should lower these limits once we resolve the underlying cause of the high memory usage


Error Omnisharp can't find root directory on Windows

Description
I have the exactly the same vimrc on Mac and it work.
LspInfo reports that it can't find root_dir
Neovim version
NVIM v0.7.2
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
Nvim-lspconfig version
347947355ba0a15d803cbd61b18f8bb8f401c793
Operating system and version
Windows 10
Affected language servers
omnisharp
Steps to reproduce
Just load a minial vimrc
Actual behavior
Omnisharp is not running
Expected behavior
Omnisharp not running
LspInfo reports root directory not found
Minimal config
local lsp_installer = require("nvim-lsp-installer")
lsp_installer.setup{
    automatic_installation = true,
}

local lspconfig = require 'lspconfig'

-- Mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
local opts = { noremap=true, silent=true }
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)

-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
local on_attach = function(client, bufnr)
    -- Enable completion triggered by <c-x><c-o>
    vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')

    -- Mappings.
    -- See `:help vim.lsp.*` for documentation on any of the below functions
    local bufopts = { noremap=true, silent=true, buffer=bufnr }
    vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
    vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
    vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
    vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
    vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
    vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
    vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
    vim.keymap.set('n', '<space>wl', function()
        print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
    end, bufopts)
    vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
    vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
    vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
    vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
    vim.keymap.set('n', '<space>f', vim.lsp.buf.formatting, bufopts)
end

local lsp_flags = {
    -- This is the default in Nvim 0.7+
    debounce_text_changes = 150,
}

 local pid = vim.fn.getpid();
 local omnisharp_bin = vim.fn.stdpath("data") .. "/lsp_servers/omnisharp/omnisharp-mono/OmniSharp.exe"
 lspconfig['omnisharp'].setup{
     on_attach = on_attach,
     flags = lsp_flags,
     use_mono = true,
     cmd = { omnisharp_bin, "--languageserver" , "--hostPID", tostring(pid) }
 }

LSP log
https://gist.github.com/jjiangweilan/45632657aaf65e933c00cb75a6ee1366

Thanks for your report. The configs here are best-effort:

It is hoped that these configurations serve as a "source of truth", but they are strictly best effort. If something doesn't work, these configs are useful as a starting point, which you can adjust to fit your environment.

If you have an improvement or fix to one of the configs here, send a PR!
If you have a specific question we'll try to answer it (keeping in mind the configs in this repo are best-effort and unsupported).
If you found a bug in the Nvim core vim.lsp module (not part of this repo), the best way to get it fixed is to report to Nvim (not nvim-lspconfig) with steps in a to reproduce it without the particular LSP server and other factors particular to your environment. Or better, by adding a failing test case to lsp_spec.lua, which has code to setup a fake LSP server to simulate various scenarios.


DBZ-4877 Upgrade Oracle InstantClient to <IP_ADDRESS>

https://issues.redhat.com/browse/DBZ-4877

There is a subsequent website PR https://github.com/debezium/debezium.github.io/pull/801 that should be merged after the next release to align the versions of the supported Oracle drivers & Instant clients.

@jcechace just wanted to ping you so that you are aware if we have the Oracle instant client cached on our internal Jenkins CI we'll need to account for that upgrade as well as a part of this change too.


Align previous chancellors list

This will display them in lines of three.
Trello card: https://trello.com/c/f12zlzdi/1144-update-former-foreign-secretaries-page-content-requests
Before

After

Agreed. We should change the way we define how they are displayed to not be manual.


[ FEATURE ] Select Autocomplete

I have a huge list of cities for user to choose from, don't want people to use location, instead choose a city.
Is there no Autocomplete Select implementation in React Native Reusables?

Hi @modbender,
There was a select autocomplete but it is now deprecated. You can find it in: packages/reusables/src/components/deprecated-ui/combobox.tsx.

Warning: Use with caution


RemoteControlStatus not working anymore

result: {"timestamp":1706034664860,"status":403,"error":"Forbidden","message":"Verification is missing.","errorCode":"CMA403"}

https://github.com/DurgNomis-drol/mytoyota
Version 1.0.0 only supports the new ctpa-oneapi API endpoints that were introduced with the new MyToyota app. Some functions are not yet implemented and must first be determined due to the lack of API documentation.


[Docker][ROCm] Add minimal ROCm docker

This PR adds a minimal docker for using TVM with ROCm.
@adityaatluri @leandron , could you please help with reviewing this PR

@leandron The motivation is that I have been trying out TVM with ROCm and it took me a bit of time to put the necessary pieces together so I think this improves usability and might allow users to get started more quickly. Next to this, I also think it would be useful to have a tutorial on using TVM with ROCm as there isn't too much material on that.

Yeah, fair enough. I guess we can merge this @tqchen, maybe?

Thanks @jtuyls @leandron


Issue buidling stream_client package

following the 'how to build' instruction.
I get an error when trying to build the stream_client package.
Here is the relevant snippet.

><EMAIL_ADDRESS>build:stream_client
> cd packages/stream_client && npm run build

><EMAIL_ADDRESS>build
> webpack && npm run type

@tiny-web-metaverse/stream_client:
  asset stream_client.bundle.js 832 KiB [emitted] [javascript module] (name: main)
  runtime modules 1.16 KiB 6 modules
  modules by path ../../node_modules/ 741 KiB 84 modules
  modules by path ./src/*.ts 17.4 KiB
    ./src/index.ts 28 bytes [built] [code generated]
    ./src/adapter.ts 15 KiB [built] [code generated]
    ./src/logger.ts 1.4 KiB [built] [code generated]
    ./src/socket_utils.ts 1.03 KiB [built] [code generated]
  @tiny-web-metaverse/stream_client (webpack 5.89.0) compiled successfully in 4667 ms

@tiny-web-metaverse/stream_client_examples:
  asset app.bundle.js 835 KiB [emitted] (name: main) 1 related asset
  runtime modules 1.16 KiB 6 modules
  modules by path ../../node_modules/ 741 KiB 84 modules
  modules by path ./ 20.2 KiB
    ./examples/index.ts 2.81 KiB [built] [code generated]
    ./src/adapter.ts 15 KiB [built] [code generated]
    ./src/logger.ts 1.4 KiB [built] [code generated]
    ./src/socket_utils.ts 1.03 KiB [built] [code generated]
  @tiny-web-metaverse/stream_client_examples (webpack 5.89.0) compiled successfully in 4641 ms

><EMAIL_ADDRESS>type
> dts-bundle-generator -o ./dist/stream_client.bundle.d.ts ./src/index.ts

Compiling input files...
Processing ./src/index.ts

Error: Something went wrong - value cannot be null

running on windows.

Thanks for the problem report. But I couldn't reproduce the problem on my end. I use Windows + MINGW64.
dts-bundle-generator to generate type declare files seems to fail. Can you directly run dts-bungle-generator and check the verbose error messages if possible?

here it is. Ihad to cut out some bit due to my comment being too long (maximum is 65536 characters), I marked them with [...] below
tiny-web-metaverse\packages\stream_client> npx dts-bundle-generator -o .\dist\stream_client.bundle.d.ts .\src\index.ts --verbose
Verbose log enabled
Total entries count=1
Compiling input files...
Using config: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/packages/stream_client/tsconfig.json
dts cache:

dts cache match: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/packages/stream_client/src/index.d.ts
[...] // similar message +100x
Input source files:
  D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/packages/stream_client/src/adapter.d.ts
  src/index.d.ts
  D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>  D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>  D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/header.d.ts

[...] // similar message +100x

  D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>Processing .\src\index.ts

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/packages/stream_client/src/adapter.d.ts =======

======= Preparing file: src/index.d.ts =======
No output for file: src/index.d.ts

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>=======
No output for file: D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>=======
No output for file: D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/header.d.ts =======
No output for file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/header.d.ts

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/readable.d.ts =======
No output for file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/readable.d.ts

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/file.d.ts =======
No output for file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/file.d.ts

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/fetch.d.ts =======
No output for file: D:/Dropbox (UC Enterprise)/Work/Distance Labs/corejs/tiny-web-metaverse/node_modules/undici-types/fetch.d.ts

[...] // similar message +100*

======= Preparing file: D:/Dropbox (UC Enterprise)/Work/Distance<EMAIL_ADDRESS>=======

Error: Something went wrong - value cannot be null

Thanks. Hm, an error seems to be caused with Three.js declartion file?
Very hard to investigate the root issue on my end because I can't reproduce...
I just found that an exception seems to be thrown from here for now.
https://github.com/timocov/dts-bundle-generator/blob/d35f76e67511f9820b1cf745105a3fd65c476c48/src/bundle-generator.ts#L633
The commands I ran are exact same as the one in the readme.
$ git clone https://github.com/takahirox/tiny-web-metaverse.git
$ cd tiny-web-metaverse
$ npm run install:all
$ npm run build:all

I tried on Windows + MINGW64 and Windows + Power shell and the both are fine. Please let me know any clue if you have.

see https://github.com/timocov/dts-bundle-generator/issues/265 and https://github.com/timocov/dts-bundle-generator/issues/266.
npm install<EMAIL_ADDRESS>-D

fixed it for me. I


Kafka 6432: make index lookup more cache friendly

Do a binary lookup at the end of index first, as the end section of the index is more likely to be in the page cache than the median part of the index

cc @cmccabe @junrao

@ying-zheng, thanks for sharing this.  It seems like a nice improvement.
I think the pushback you're getting about the "hot entries" constant is because this feels like a magic number.  People generally don't like magic numbers that they can't configure.  You also admitted that this magic number was based on the Linux page size-- which can itself be different in different operating system configurations, after all.
Maybe there is a way to avoid having a constant here at all.  The midpoint is the optimal place to start the binary search if we assume that what we're looking for is equally likely to anywhere in the log.  Of course, we know in Kafka that that isn't true -- we're much more likely to be asked to find something that's near the last few things we were asked about.  What if we choose the first pivot location based on where it has been, on average, for the last N requests?
You could use a simple moving average filter like this:
private static final int N = 50
double approxRollingAverage (double avg, double new_sample) {
    avg -= avg / N;
    avg += new_sample / N;
    return avg;
}

So if your log is [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], and you search for 9 over and over, your pivot converges to 8.  Then you only do 2 accesses to the array.  (Whereas the naive binary search chooses 5, 8, 9, your search can do 8, 9 instead.)

@cmccabe I have explained in the original ticket. The number has nothing to do with any specific os or any specific processor. it's just the smallest possible page size in today's computer systems.
https://en.wikipedia.org/wiki/Page_(computer_memory)#Multiple_page_sizes
I will add a comment in the code, to explain why we have to use this number.
The fix is trying to avoid page fault, rather than reduce the number of memory access. If the cache entry is in memory, accessing it 1000 times takes about 1 us. If the cache entry is not in memory (i.e. on hard disk), accessing once will take tens ms.
Your algorithm converges faster than standard binary search, if the cache entry interval is about the same. But the algorithm is not more cache friendly. And I think the assumption is a little too strong. For example, when searching in timestamp index, we can't expect the messages are generated in a fixed frequency.

@ying-zheng thanks for the explanation. What I'm thinking is that by making this a configurable value, we can 1) allow users to tune if page size is not 4K, 2) allow users to pin more memory than 4K into cache in their trade-off decisions.
If you're unwilling to make it configurable that is understandable. Maybe we can accept this PR since with a fixed 4KB this improvement still makes sense universally and we can consider whether make it configurable in the future. WDYT @junrao @cmccabe @hachikuji ?

@ying-zheng your latest commit seems in complete, as it did not include the changes on TimeIndex and OffsetIndex?

@guozhangwang the code diff is complete. I tuned the code a little bit. All the code change is now in abstract index.

I see, was looking for hotEntries values before. That makes sense.

@cmccabe I have explained in the original ticket. The number has nothing to do with any specific os or any specific processor. it's just the smallest possible page size in today's computer systems.

You have customized this patch to a specific configuration that not everyone is using, though.  For example, if I use hugepages to set up 4MB page sizes on Linux, I would get a benefit out of setting _warmEntries to something larger than 8192.  But I can't set it with this patch, since it's a constant.

Your algorithm converges faster than standard binary search, if the cache entry interval is about the same. But the algorithm is not more cache friendly.

The algorithm I suggested is cache-friendly.  For example, in the common case where everyone is accessing things close to the end of the log, the initial pivot would get set in a cached region.
As a bonus, the algorithm I proposed also helps in cases where the cache is not in use.  As you pointed out, it converges faster.

And I think the assumption is a little too strong. For example, when searching in timestamp index, we can't expect the messages are generated in a fixed frequency.

I agree that choosing the pivot will always be a probabilistic thing.  After all, if we knew where the entry was, we wouldn't need to search.  However, what I proposed is a good heuristic which is better than what we have now.  i think it's also better than requiring the user to choose a hardware-specific "hot entries" configuration (or hard-coding one for a common OS config).
If I wrote the patch for this, would you agree to test it?  I think it would get better results than the hard-coding here.  One example of a clear win is that changing the pivot helps sequential scans from the beginning of the log, whereas a hard-coded "hot entries" value does not.

@cmccabe

if I use hugepages to set up 4MB page sizes on Linux, I would get a benefit out of setting _warmEntries to something larger than 8192.

No, you can only get penalties rather than benefits, by using 4MB page size. If you use 4MB page, you will anyway get tons of page faults, in spite of what index lookup algorithm is used. The huge page size simply make page cache useless for Kafka.
For example, let's assume between two produce requests on topic-partition A, there were a few thousands messages produced to 2000 other topic-partitions. If you use 4K page, the operations on those 2000 topic-partitions may load 4K * 2000 * 20 = 80MB (assume each operation touches about 20 different pages in average) new data into the page cache.  With several GB physical memory, you can expect the pages needed by topic-partition A are still in the page cache. If you use 4MB page, the 2000 topic-partitions would already load tens GB new data into the page cache. The pages needed by A may already be replaced from the page cache.
Page cache management is quite hard to understand for most users. If we allow users to configure this, there are much more likely to make mistakes rather than getting performance improvements.

I already spent too much effort on this. Confluent does not pay me for doing this. If you don't like this change, you can ignore it.

No, you can only get penalties rather than benefits, by using 4MB page size. If you use 4MB page, you will anyway get tons of page faults, in spite of what index lookup algorithm is used. The huge page size simply make page cache useless for Kafka.

@ying-zheng , that's a very good point.  A 4 MB is probably not useful for a Kafka user, unless they have a really small number of partitions.  However, some other platforms do have different page sizes.  For example, ARM64 has 16kb pages.  There has been more and more talk about deploying ARM64 in data centers.

@guozhangwang wrote:
bq. If you're unwilling to make it configurable that is understandable. Maybe we can accept this PR since with a fixed 4KB this improvement still makes sense universally and we can consider whether make it configurable in the future. WDYT @junrao @cmccabe @hachikuji ?
I can't speak for everyone, but personally I'm OK with committing what we have here and continuing the discussion.  It is an improvement over what we have now and we can continue to refine it.  I do think choosing the pivot adaptively is probably even better for our users, but we can work on that later if we want.
I think the comment should be shortened a lot -- it should be sufficient to say something like "start the binary search near the end of the log to improve cache locality" and then add a brief discussion of why 4,096 bytes is magic.  The current comment explains a lot of things that probably belong in the class javadoc, like how we use mmap, and includes stuff we might implement in the future, which probably belongs in the PRs implementing that stuff :)
I'm willing to do those fixups in a follow-on PR if that's easier as well.

@cmccabe thank you for your comments! I agree that 16KB page makes more sense for Kafka users, and it makes sense to have a larger configurable warm section, when the page size is 16kb.

If we want to any further changes to the current proposed PR and if @ying-zheng doesn't agree on making it as a configurable option. We can take this to follow-up PR.
agree with @cmccabe on code comments. Probably good to have that in the jira section for future reference.  +1 from me after fixing the code comments feedback.
Thanks for you patience and addressing feedback on the PR @ying-zheng

Thanks for the PR @ying-zheng. My thoughts: if we can do it right without a config, then we should. This is clearly an improvement over what we currently have. Colin's suggestion of applying a heuristic is interesting. As suggested, maybe we can do this first and then consider Colin's improvement separately. One question: how do we test that this works correctly? I don't see any tests in this PR.

Maybe we should commit what's here now and I can create a follow-on PR which adds a test and does some cleanup?  What do you think?

Maybe we should commit what's here now and I can create a follow-on PR which adds a test and does some cleanup? What do you think?

That looks good to me.

retest this please

+1 on commit here and follow-up PR. One test failed on jdk 8 is not related to this patch. I'll be committing the patch into trunk.

Thanks @harshach for committing, and thanks to @ying-zheng again for your contributions.

Thanks @ying-zheng for the PR and making changes based on feedback. Thanks, everyone for the reviews.


Flickering of screen when loading font files inside createGlobalStyles

Environment

`## System:

OS: macOS 10.15.1
CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
Memory: 42.50 MB / 16.00 GB
Shell: 5.7.1 - /bin/zsh

Binaries:

Node: 13.2.0 - ~/.nvm/versions/node/v13.2.0/bin/node
Yarn: 1.19.2 - /usr/local/bin/yarn
npm: 6.13.1 - ~/.nvm/versions/node/v13.2.0/bin/npm

npmPackages:

babel-plugin-styled-components: ^1.10.6 => 1.10.6
styled-components: ^5.0.0-rc.2 => 5.0.0-rc.2`
@material-ui/core": "^4.7.0",

Reproduction
I have provided the video link where I have used 1 component with transition and other without it. Where i haven't used transition its working correctly but where I am using transition the whole screen flickers.

Steps to reproduce
import { createGlobalStyle } from 'styled-components';

const GlobalStyle = createGlobalStyle`
  @font-face {
    font-family: "MyFont";
    src: url("static/fonts/Std-Regular.otf");
  }
  @font-face {
    font-family: "MyFont";
    font-weight: bold;
    src: url("static/fonts/Std-Bold.otf");
  }
  @font-face {
    font-family: "MyFont";
    font-weight: 600;
    src: url("static/fonts/Std-SemiBold.otf");
  }

`;

export default GlobalStyle;

Expected Behavior
No flickering on first time pop up
Actual Behavior
https://youtu.be/oah3JzZDOl0

Sorry but this isn't enough information to be able to help. You'll need to provide a codesandbox reproduction for us to be able to diagnose what's going on...

Hey, I got the problem this was happening because I was trying to load fonts in GlobalStyle and once I commented them the flickers stopped.
 /* @font-face {
    font-family: "MY-Font";
    src: url("/static/fonts/FontName-Regular.otf");
  }
  @font-face {
    font-family: "MY-Font";
    font-weight: bold;
    src: url("/static/fonts/FontName-Bold.otf");
  }
  @font-face {
    font-family: "MY-Font";
    font-weight: 600;
    src: url("/static/fonts/FontName-SemiBold.otf");
  }
  font-family: MY-Font, -apple-system, BlinkMacSystemFont, sans-serif;

Can you explain me why its happening.
https://github.com/rahul3103/flicker
Here I have added the project

Optimally you’ll want to put them in a global CSS file, and at the minimum you’ll want to send the correct cache header for them, which will stop the flicker but will still causes Chrome to send a request in development.
I’d really recommend you to avoid createGlobalStyles if it’s static CSS and contains fonts and go for a single global CSS file that resets some CSS and includes your fonts 🙂

@kitten @probablyup  i am using next.js. So, I thought of not using any CSS files. But, do you think if it's the best way. Then I will do the same.

createGlobalStyles is useful for global CSS that still needs to consume theme variables provided via ThemeProvider. If your CSS is truly static though I agree with @kitten and it's probably better to just put it in your _document.js file.

Hey guys, I have a use case here where I'm importing fonts in the same way, except the paths are not static (they're obtained through our Electron app). Therefore, it's not possible to import them in a static CSS file. Is there any clean way to import the fonts via dynamic paths?
createGlobalStyles works but we run into this flicker problem.

Hi, I'd like to bump my use case getting a flickering issue as well; I was hoping to load the user's choice for a local font file from the theme props, but since there is this flickering issue, it's not worth the trade off to sacrifice a constant flickering to user choosing local font. I would love if there was a better work around to this than to just do my @font-face declarations in the App.css file where I cannot load dynamic theme props!


"X" in top right corner of Settings page doesn't have an on hover effect

I confirm (by marking "x" in the [ ] below):

[X] This is not a troubleshooting question. Troubleshooting questions go here: http://www.mattermost.org/troubleshoot/.
[X] This doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository.
[X] I have read contributing guidelines.

Summary
"X" in top right corner of Settings page doesn't have an on hover effect
Steps to reproduce
Windows 10; Mattermost Server 3.6; Mattermost Desktop 3.5

Go to File > Settings
Hover over the "X" in top right corner

Expected behavior
On hover effect following Mattermost UX guidelines.
This can be similar to the on hover effect of the "+" icon in desktop server tab bar.
Observed behavior
No on hover effect

@jasonblais I've made a small PR where the color of the icon changes to the same color as the "add server" icon. In my opinion that is the nicest solution :)


added IAM ppolicies needed to read and write things in vars

In the Secret Reader section it may be misleading to say that you "must" have the kms:Decrypt permission as, if one's using grants, you don't need kms:Decrypt. kms:Decrypt gives the Secret Reader the ability to decrypt all datakeys, regardless of encryption context or grants that have been created. Also kms:Decrypt on resource * would give the Secret Reader the ability to decrypt all datakeys on all masterkeys (even those unrelated to credstash)
Also, get doesn't require dynamodb:Scan unless you use wildcards. Not sure if this is worth mentioning
Also, not sure if it's worth mentioning that since the region and dynamodb table name are variable these policy examples assume the defaults of us-east-1 and table/credential-store
I'd remove the Sid argument as it's not required

I was under the impression that you couldn't specify KMS key ARNs in IAM policy, but I just tried it, and it worked, so I'll fix that.
Good point on the Decrypt permission. Do you really not need kms:Decrypt in the role/user/group policy? I thought that having a grant just means that you dont have to be in the policy on the key object itself? I haven't actually used grants yet.

ok, turns out your IAM principal does not need KMS permissions is you're using a grant or key policies. I'll update the docs

Roles LGTM