Peer rejected:insufficient capacity

[ Subject of the issue ]
Description
Describe your issue in as much detail as possible here.. We have 65 peers. 25 are boot nodes. 40 are validators. On a few of the boot nodes, we get this error. Our  --max-peers set at 100
Your environment

OS and version. Ubuntu 20.04
The version of the Polygon Edge.    0.6.1
(Confirm the version of your Polygon edge client by running the following command: polygon-edge version --grpc-address GRPC_ADDRESS)
The branch that causes this issue.
Locally or Cloud hosted (which provider). AWS cloud
Please confirm if the validators are running under containerized environment (K8s, Docker, etc.). no

Steps to reproduce

Tell us how to reproduce this issue.
Where the issue is, if you know.
Which commands triggered the issue, if any.
Provide us with the content of your genesis file.
Provide us with commands that you used to start your validators.

polygon-edge server --max-peers 100 --data-dir ./newchain --chain genesis.json --libp2p <IP_ADDRESS>:1478 --jsonrpc <IP_ADDRESS>:10002 --price-limit<PHONE_NUMBER>000000 --max-slots 40960000 --seal

Provide us with the peer list of each of your validators by running the following command: polygon-edge peers list --grpc-address GRPC_ADDRESS.
Is the chain producing blocks and serving customers atm? yes

Expected behavior

Tell us what should happen. Run without errors
Tell us what happened instead. We get the output below

Logs
Provide us with debug logs from all of your validators by setting logging to debug output with: server --log-level debug
-12-08T11:02:10.725Z [INFO]  polygon.server.ibft.consensus: sequence started: height=144082              │·····································································································2022-12-08T11:02:10.725Z [INFO]  polygon.server.ibft.consensus: round started: round=0                       │·····································································································2022-12-08T11:02:11.206Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································iu2HAm1Kr667HcnaRMHxNukSfSXgffiHXbj4gDuJXUbi2owYmv err="peer rejected; insufficient capacity"                │·····································································································
2022-12-08T11:02:11.206Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································iu2HAmCyVHRmX9JHp83tHy7m1PzGUfkFGswXdH45NfYfzQhkdV err="peer rejected; insufficient capacity"                │·····································································································
2022-12-08T11:02:11.206Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································iu2HAmJiGCv3zj3ayDufia5qrtLECgFuAGjT1atPSNKtiKteim err="peer rejected; insufficient capacity"                │·····································································································2022-12-08T11:02:11.206Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································
iu2HAmSAsAbuyiWMMB61ABo2srknccXZDvar7SPvn1NTnPFsA7 err="peer rejected; insufficient capacity"                │·····································································································2022-12-08T11:02:11.207Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································
iu2HAmKAAUkxTDQKVkRyzD5EyPNq97kC2XYMsHV4vi56wsCDVF err="peer rejected; insufficient capacity"                │·····································································································2022-12-08T11:02:11.207Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································
iu2HAmFMLK2coEznboxnt2tm4J2qe4L3BwGHHi5PG8WiRGf6RJ err="peer rejected; insufficient capacity"                │·····································································································2022-12-08T11:02:11.207Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································
iu2HAmRyXwWVjsevF5S4tmsStVcug7DJ4o9VXTMST7tBwb9UkK err="peer rejected; insufficient capacity"                │·····································································································2022-12-08T11:02:11.207Z [ERROR] polygon.network.discovery: Failed to add new peer to routing table: peer=16U│·····································································································
iu2HAmSE9vH7EwYgmPgsVBV34zDXq2BWrxzBTHDpfjwStnvAYW err="peer rejected; insufficient capacity"                │·····································································································
2022-12-08T11:02:14.098Z [INFO]  polygon.blockchain: new block: number=144082 txs=0 hash=0x275177d0618b2cd940│·····································································································
59e2198c89bfd7c1b72c58ffbfcf753e74e4edcbf22189 parent=0x3dd74b926d4891fcb9255647325c7141d892f2c24c4d5f2acf248│·····································································································
23ba539322d generation_time_in_seconds=3                                                                     │·····································································································
2022-12-08T11:02:14.423Z [INFO]  polygon.blockchain: block already inserted: block=144082 source=consensus   │·····································································································
2022-12-08T11:02:14.423Z [INFO]  polygon.server.ibft: block committed: number=144082 hash=0x275177d0618b2cd94│·····································································································
059e2198c89bfd7c1b72c58ffbfcf753e74e4edcbf22189 validation_type=bls validators=65 committed=44               │·····································································································
2022-12-08T11:02:14.423Z [INFO]  polygon.server.ibft.consensus: sequence done: height=144082                 │·····································································································
2022-12-08T11:02:14.423Z [INFO]  polygon.server.ibft: canceled sequence: sequence=144082                     │·····································································································
2022-12-08T11:02:14.423Z [INFO]  polygon.server.ibft.consensus: sequence
Proposed solution
If you have an idea on how to fix this issue, please write it down here, so we can begin discussing it

@laviniat1996 Can I have your help on this one please?
Thanks, Nex

Hi @Nexsuperne101 , did you add the max peers command for each node?

@Nexsuperne101  PoS, right?

@laviniat1996 yes it's PoS and every single node runs the seal line above.
Thanks

when you add the staker to the contract does it go as expected, without any errors?

It stakes as expected, and the BLS key registration does as it should. The list of stakers is here
Current validators list [
'0x6a54e3C419b7482b213CA242bFb655eDB96D7813',
'0x847A24c3f371c20e60f7B192d0EcEde4faD6c31a',
'0x810F86Ce461fC0E06a8Abfc5a2F8D689836c1804',
'0xA86d5525ac9F47e2614B88f3Bf8AEB21b0BFD10B',
'0x87a347D2a57b491b0B7Da95a54f4D11cf9e891c1',
'0xf284be6A011E8F89F895Fbc20ead554166046F8b',
'0xD7c83b4CF4aA9b790A53564aF15bd191090fe985',
'0xEc4488A92b6C686575bc8Df9512810bea707a9c2',
'0xeBe599Ec13a98C55A0c3DCcAf5145Ac4D34549b9',
'0xbB93C6d0C4062503294d08598F8cE245cB45944F',
'0x2cb54ea7f953bFCe78D335F0b29BA64624F2b46f',
'0x3eB2A4121C0A3BCF6763910cd627B2aA401f2873',
'0x81082deac3AA2275AEcfb4F78EE9817EdBAC3ebC',
'0xf5a0aFF33fA8a3eB37c038AE84791e95CeCD7543',
'0x733529C3763E7B7785F74Eb9BF307EFd258e1065',
'0xda7AA518b47Fc1f5F5c0dE9eE4419610d0F88D21',
'0x804af9907E6A5b453449D7A78459Ed9c8D63aF72',
'0x11182c9973b0A9aBA5fdA6aF9492c39D1DfD3CCe',
'0x1da5B740C285c0b4fa1139dF0b2076B934E24503',
'0x278A02149EdD7a0EC11ceb2c0E9Cc4869c06761E',
'0x3420BFc907093d3DDD7eE609C36fB50Fdb1e1752',
'0x5A7C18b1F6E0A8C5ebAbafDC119496D28A796D88',
'0xA0d4427e7D606B70DeDa934c529d9F4a1B45186e',
'0x3e6Df8eDeEFb87F05Acefb9dC58e5E9397B2daA2',
'0x7dEF5FCA303fE833cA052E9CC86320d5c3bf922D',
'0xFEa74A2DC509787833AB9e5bf899f5a3BfC4af96',
'0xe5E127B406ee46342e231A70fF0fE459C0412ace',
'0x61F15A8E3DDaC28f3715A47F350a7938361B1E59',
'0x7d3AaFf5B5785a884a198A8B82C85C8F91C19C70',
'0x4b13E1007A9E2E95BC88e13b4F1bB5d2c51C2B03',
'0xE02E04C311Acd1409a1aAfAc681DdC18725A50Be',
'0x076544215E2a55f74d09e2027C473Fe84dAfa938',
'0x63302A101d50A2F7Cc73EA64Fa04C112EDf94817',
'0x5e456F5b0eC66559b168A41CE43219808aEb9f47',
'0x995E7b0B9C268dbceEE4055d75aF4078cC6BA14E',
'0xb8761a3c1E763479b8E5648f3be5B40619604647',
'0x7782379C3A99a7008DBD3239f413A50aFe628A26',
'0x66CA080A532D4BAef081500bE99333b74B615Dd5',
'0x6f8eF38860F102C84b0Eb0Bb07D5D82857575850',
'0xE4CaED38588F8ce0f82911a08982fb1337110255',
'0x7e37D28b2cA8Ae83bFA449A3D73A9CeB23d7177E',
'0xDD35702d51c5e9F30e8be9639A71D9eb0e3398C1',
'0x9Ca48BD0fB6005E1886e4E2683e17A85A3765537',
'0x0D6Da4C662CD745Ce26fc0976a629ACAce855f4B',
'0x607c3789eA2ebf1fE0aEA56A2d798dFB4ABbF869',
'0xb5BC904e4c84acC470db452c214aF9D34bF31539',
'0x2962E260b4b234B4BA4C6d964bbfFD46A443EDf4',
'0x0a54f4a72306270179A0769bDD81CA62EeBAF5d5',
'0x1eE774BbC05fFa9DE05c70451d86e62416c5342a',
'0x968a3CbC21468aEf09Cd644AFC90cdFcc4Cc90B0',
'0xb302E80859D249fFB73473758aB395d160176215',
'0x0976EdC3E31Ed046EcEe6EEBCd470354b09A4fcd',
'0x00B10E1E2d9361e11cE4c3B353c781732D3B3083',
'0x0913038904DA2F08215D04F8c86d9847f9e898De',
'0x70CAaD3d454466dA7e51f9aB704B37FbdB4752Aa',
'0xf16e245F8fe0525EcD2097C9787c17d8193e6DD2',
'0x166F4cc3Fd8D2CD353f3336e958F5aFD46a70501',
'0xB50EEF098276c3979fC3Df98f41c46FCC9D8Afbc',
'0x8c1fFde45F92cfAa2DA6574e4E4bD356fdA0fF2d',
'0x58BDBE702276d2b1976AB70E6ac0591A85DBDa9E',
'0x5d2c3E0A6eBd66E4cFFA4f22E2574e3dd01593bB',
'0xF73B36330aD3c3238041D42DE2F92839C9AC4837',
'0x677b3814854FB63bf35F8c17ef7577f22c4cD905',
'0x1884a1cFB4E6459FB1646D906cb5206Ce08f05bc',
'0x9751Ff7dB33B115e21BBBe732B6c0859DDd2F700'
]
BLS Public Keys [
'0x950d4458a54dd2edfbffb23d4a5f67975cb98df9bf186097a2e4a6b34feb595d4566cf1b4ef2503b030abd197876d9e5',
'0x98d3ec098f822a47703cf977c7d86558f713104735eb2b5b55e6c6e1e350297a85f5d8d49d9f092b3ca89df3a77c016a',
'0x8349cebb82aabd5853040fff0878cbbb6921e075617e0acaa1aad741cfac7ed9035ab1581e4cab06cbfc736567c32b44',
'0x8040227caa5821cda9384c7fdcaa096b27578c8f8d02fbb0e6cd736ac1a3ec5e68ea1ddb034b907f3d40a7c8672df5b3',
'0xa44d8c959f994649554ad16deca9f7ec1402c53ef88f245594a663b91bfbe13c828a9244102bf3fe1750ceb74f5f01e3',
'0xb9c8edb73ac38017abd421081cc644ce0b326e7d14645f08f45b7a74421b8ecdedb7623acf8a6dad679873f7e281d85a',
'0xa768ddb749f0cf31d891050d456f14817ceac366d0db04a7a8e22140a5004d0d20585196d2ef2b7da6e5124095637f3f',
'0x8573d7578ba9a1309e6a45da86dbcb215f87868a4f8d3a0478b6ef56d8d1133d7eb2c3872f42944452e2e711f14f4d34',
'0xa4205ce71f268ad9738d2757409887cff7626295e150b122b445ae70445dfd836f8e403ae10acf86d01b375867457b1d',
'0xaf227b62024df083ec1ce613e4a453daeeb7d3814f84a8541a20baa95e9fc0c95b05c69ea41f07344a9e0b33c9b86de1',
'0xb033fb56111f68a4f07168baf4573ce981de8836310333e0f74990e8c616e9c814183329d393c172d1b778c14afbe121',
'0x8d2451ed0bbe2c87ded7d2f23568319716d37f8f9eb5ef1be90ac56e37e3bf1b3b1d0bc9839275f92d1a9ca6d79f3a6b',
'0xa1da5095c0d2093f90e8ce1efc66cdbafe3438a6baaa1b72643f85b0d6d4c9d9d55065a1192c9cb38a1f3730cea8f64c',
'0x8dbc7d475c1c5275fa65babc889c6ace5e041f0b68b190adb2f339d6d9253c6492a80c463e6b28489c8e62c5397084aa',
'0x93cf173b0777beb2fe9d467aab6ae4c4386998091ab6f1a5891c0e3a7db16146fce943be5d5b3cc39dee1cabb83816e3',
'0xab5b7e40bdaa17a3c9ce709674113bacad473547ad2eddd0d17323b94b402d2820ad8c8d591f40a0d10fa91ee7be48cb',
'0x8757918fa654211d388ff052140d4f7c1c175c7ca2f1892fe7cb7796e12e7aead9a127cfd106a503fc06bf8170f39374',
'0xb76bedabbdf230888a39bb4c27080d3375f311194aa82eb6ff640fac4cf254f5491055dcb4f8873114e95c946d29810f',
'0xb3a81051813ec2fc8467194b73b4c2263c2d3b939d09973adc550f1919e67e4d3fde1af2b010281403fb0bfe7be1b58b',
'0xa4b81379ca1e0b31c476179f550d49103d4cb38bac137e0c93488665759a5d809a615c249c9ac46925e506e0ffd20f55',
'0x8655012d26a0e6cf0f5de12be0f06304bca3e6b1907b55b16e38dcc0ecbcabef22c8747a159533e6e7472ef1811a0980',
'0xb8a60e7e162f8abac97e8c6e5dbc317d12e572e00b95979fa416d9b4bbf49a631706c7e03aa908794af1db2b5b4370fd',
'0x93e9a94977c3197cc92a43d0db9f77d8506e88a092c8a2ebd1377fe7fc7520af0e0034641a78e1844010d025bc6f7365',
'0x96888571a864f47035d57dcd3f2e7125ef1da7300aa6541e73758197aa236f652888f7313f9ea7bbc1e8ee93730123c9',
'0x8fe5d304066d31431b3419f8cc4bd9288e74e327248f230f89e92f52d5c0581bb81d0e3b5cbd14d8798d445d8d53018c',
'0x9330fe92f001f806d103b8c98bafa451eb609f765640d999016e07803e6ee25aabb2a3252428919b7478acf9fec9c0fa',
'0xa99fc78b006a7bced197460ebc4749ab078d2433886cc8719866424a2e4ab89817dff3845d8a76ca0dec3345973dc3e7',
'0x8eeb72188ca68f272af25aab4f77c498fa8fe2d9417e2392702a857a49af7fc463e386b549ec2266835f027759d5f505',
'0xa4696067a2c40ae1a066bbc93a50d3005e99ff2a19ba94736c9a72175bd3dc84867134e8dd9b4c1d17b80ff1c1aec951',
'0x947d52deee7d7880e7a3790c125ca219c1e713d3920c93bdf9a9bf06bcdf081c3d1003459e1ee23ceb70dded018f0f56',
'0xa29b0f466d68572875cecd35ce7786d8f8c71f2bfa6f89ec032ee060bf5cd17dcb6880aa30ff593d7747859e7f49a583',
'0xb676895927e089835ad23398e2b3c8b5b9ea1eac3a996beae69646a874d8a36563938c6b5d5098f1af7e2e74b9449a28',
'0xa56d108d87a2cbcbffa239da3711910adb8e4e4887c9db3298179f8ac24846950fb7be468dcd1ac796f4e630b78bb5c8',
'0xa126a60e8bb7addf64404f60982fd6a5006849e0269244c8e830c5ab95d12113e14858a707e1dc536c79a612516e8251',
'0xb9efbbe3fe1cfa1f701950fe6659b9f5e5c4d102ddb7374dfd3c776800c719e1ac06cecb80ccca307117ad443d3852eb',
'0x862ddbb136f1e28a14f0060f6060bfc7a338a4f724fa9b14b97bf157553e0f8df146736c552d2cd204fcadbbedbda10d',
'0x92c0a2ece114a264c1b2a7c6455128e989cc3b61fa7b6d221b9082f9125f6ebe5aea523832356b4e62dcaf450c8e4a4e',
'0xa8cd53b7e405c5fe082bc83af2bc0a1ecdc9eb86d993261f14c86c2f9b277b49c5f4fb1525d5990c0e4d6c1cf7a9a9ef',
'0xa9942e32c31a08c5ff7323585fb5713a6f9203ac3e17e5b54cbd97735ff37bdb57eb9b3f3f99ccf19e12bf5c572fec16',
'0xb2146df890b699dfca7f8d9fc1293e9a02e4bdf52c8c76f4ad8d36139da0343b5a935d99268041c364a3d51c08518e4d',
'0xab0c3a253e8d3f509f19b00f6c7cb771add5cfb246a8b0365bcb67af899429610ebb9986d72e30556673f30851428813',
'0x83aa5be9831c7e5a9260310a696c548238f7f2278eb316f8a3007a4d908a8b714dfdf0620c49b4f2a5b53e56ae696a8c',
'0x86bc5d19933ca5d0f4cfc95ac42e2344ec7cb459403a887b771a01872c5ad0c65e86756664c9f15e64d37a29fdc27e11',
'0x85d49b088bbdd6cee38bd37b8e5d8cf84ad8658f4c6f3fc0d9ee89881a7fbee643e1fcdb843fd9c65f56dd52bf4e6b03',
'0x8f2f6ce284de83af32fedcb153df0aad83c443027079ae22d86ad8ecddaa3ce6c1d7bcbb6348e7ab01ad0254b38ec80d',
'0xa0078f00efb3c7961c0fc4b83015ef63b4614875b06ada1439dcdf6abc6b45032db0d4470217e8460f75061bd9874a7d',
'0xab8e549cacb57996b7cd70c77e627e94c8a8a0a766a857357f1b7b104249599047768f85f3f466fd05a64d98c6fb3ce6',
'0x949a127589b8957a34f4e7bdf60b7ebc5b27f9c0355d18c6cba9b2cc906ae8d4a44b7d29221aa8a41985d9a7d340ebd3',
'0x97ce6fd7cf9a92f570ffc8bff64ab206ff21e7ea5ee3424c64dc31edcd4ce7815e077cef4bb2695901d38fac5492e041',
'0xb8f3568d9f80bbd7a455aee2d3c4a558f310a86f7aa040a310b69eef249e197ac48e64ed9794226fb67d3a7e5f1ec3bf',
'0xb05e71b31eae6b8e38ab5977c30d2d64bccdd326e118777ba9ac8c07ecefc8da821b32e8c2423b432d166fb36a5016e3',
'0xb53b0d864d475e1ba5740e81a77b9bfa2fe97ce409ed9ade02ec3ed3f35edc5bb0a566b283599d3208ad680fc1a58049',
'0xb6a269a8012a002671c18053fabc5aea03b884088b4e2049142ed8ce368a1f4cdb88d5e04f6daa2eb34c2b6a76fd4904',
'0x830cc23c248bf21282f477033e3192e72c46f6d3d816dcc25625fd1de14429c7105eaa9c4869690f5fb4798b26c1eea1',
'0xb78af98ba1fa1512e53f1e5c4710d43f720c1b547fd46c996672fc8ca81921b1c503ae8f6b184dc6b2f669c054c68a3c',
'0x874af9468e3120cee1d1970699cc7f009ae88c43dfa13a9b8d627d1834e4b9142119b387bbe9e0a1509e25feea9a583a',
'0xb2cba0ab0c909dec91de37461e6906af70d535ac61e64fd754af9df2c4e6d91f08570b4cd39f21b80ff52cf4ca4314eb',
'0x8283d083f366d856d1a08f65d0feb1d5b841ebf9e139b1f08abfef6fc4359e609d48a279b73b27888301b544b24d5fb2',
'0x818c71fed379c0d6655df42645de2a2401e6ae76d2c5c560b52dcc13e226de1a5c3ce6b3b78fa13adae2b83b35b6f211',
'0xa98519699571228fe91ebd158d033c69864fee02d4a9184f6c14e84e5f7711ab8c0b986138a3f0a9aea0c9f848840e7b',
'0x962dc22e6987078ea68edbb3e126a8655147efb3c61c87d800361c2ec59e26c7ac55ebe6400db0bb7014fd14c42fc893',
'0xb1652d1eda8dc5f61302bc17115b11d6c1c798e24043c6e7126c1e203d7eaa836feedb5438dad7050000e433d6d926a7',
'0xa29b789b09f30d88134a7ed857c8f068db73d8b4acbb8ed455eed775088d530e4fedaa24fb9a9575e0a43b0c30809b08',
'0x94c1bbc5707dc7ca31871fe994acfdfabd34750494392b38be9aaa5cb8ae22c2643c63188d4c11aa16d94db1d882ca0e',
'0x80883107f43d75b05466b84d8ae3563658504329f3ff15bdc4e8aa3ec333f8ae3a9b05a1b632aff4c4efc6350f8d76ba'
65 for 65. We did have a couple of issues where installs had been altered, so the node was on new secrets and validator.key details, but still running on the original staked values. We think we have redone them all now. There were 3 like this,

@Nexsuperne101 After how many peers did you start seeing that error?

@laviniat1996 about 50. When we did this last time, and I didn't have the --max-peers 100 set, we never made it passed 51. Chain locked up. I think that was more down to --max-slots being set way too low.

@Nexsuperne101 Thanks for all the info. I am looking into it today and trying to find a solution. Will keep you posted.

ok, thank you.

@Nexsuperne101 You see the error only on bootnodes?

@laviniat1996 yes, only bootnodes.

@laviniat1996 Blocks are still going.

@laviniat1996
Did you manage to find a solution to this please? The chain crashed completely yesterday, when just 2 bootnodes out of 25 stopped working. Node 5, the one above, was displaying more and more errors about peer rejected. The --max-peers was set to 100 on all nodes, and we only had 66 nodes on the chain at the time.  At the moment, we are trying to get it to restart, but if there is an update that addresses the issue, then we'd like to install that first.
Thanks, Nex

@Nexsuperne101 did those nodes display any other errors?
I found the cause of this issue, and we are working on it. But I couldn't tell you for sure when it will be ready.
I just want to make sure the node stopped because of that, and not cause of other issues that might have happened.

@laviniat1996 no, that's the only issues that it has shown so far. We did have a max-slots error on the first attempt, but that was cured with the new --max-slots value in the seal line.
Thanks for your help, I look forward to a fix.

@Nexsuperne101 I saw that you thought you had this issue too: cannot parse long array: cannot parse array value: cannot parse empty string

@laviniat1996
I think that was an AWS server write issue. I restored the backup to a completely new instance on another server, and that cured it. Interestingly, one of the others saw the same issue on the N. Virginia servers a few days later. That's now on Ohio.

@Nexsuperne101 If your chain has halted, stop all the nodes and start them again (that's the easiest way). Regarding that error, I will let you know when we have updates. This is all we can do for now.

@laviniat1996 What about the validator that is probably on Round=14 by now? Won't that stop us? We have 66 peers, how many do we need online to get it to restart please? I can co-ordinate it so that they are all started within seconds of each other.
Thanks, Nex

If you try to get them on the same round, it could take an extremely long time. The time between rounds increases exponentially. If you stop them all, and then restart them, it will be much faster and easier.

@laviniat1996
We can't find out who owns that last one. Is there any way to kick it from the network?
Thanks, Nex

@Nexsuperne101 What do you mean by who owns the last one?  Is there a way round this situation?
Thanks, Nex

@Nexsuperne101 try to remove it from the staking contract: https://wiki.polygon.technology/docs/edge/consensus/pos-stake-unstake#unstaking-funds, and then stop and start again the nodes (without that one ofc). If that node is not a validator anymore, it shouldn't affect the rounds.

@Nexsuperne101 sorry, just realised that you probably don't have the private key for it :)

@Nexsuperne101  Then that node isn't a validator. If it didn't stake, then it can't be part of the validators list.

One thing I have noticed is that we have 66 peers online, but only 30 show up in the peers list on each node. Are they just the ones connected to that particular node? I thought it would show system-wide?

@Nexsuperne101 That's great news. So is the chain working now?
If you are talking about the peers-list command, it is normal that each node know only about certain other nodes, not all of them.

@laviniat1996  Yes, the chain went live about 37 hours ago now, much to my relief!
Thanks for your reply, Nex

@Nexsuperne101 You are very welcome, glad I could help. May I close this issue now?

Good morning. Have you managed to find a solution to the peers connection error? We are trying to list with a centralised exchange, but they are concerned that their node shows this error every so often. I know you said you had identified the cause.
Thanks, Nex


Proofreading the README

I wanted to describe make commands to build release and debug versions, because I used debug version since I was trying to figure out the cause of #16 , wanted to create release one, but forgot how. :)
Then I noticed typo in exaple, and to not do a PR with just one typo, decided to add some more improvements:

Proper capitalization of some common proper nouns: Neovim, OpenGL, MacOS, Godot, etc... BTW, I'm not sure if "neoray" should be capitalized. It's a proper noun, so it maybe should, but since it is only capitalized at the start of the sentences, maybe it's your choice as an author to write it lowercase.
Hyperlinks to issues and releases page of the repository
some style and formatting improvements

I could remove some changes you disagree with. I'm myself is not a native English speaker, so my changes probably have more mistakes.

Maybe we also capitalize Neoray. I writed it lowercase because it seemed better to me but now I am thinking that writing all Neoray's capitalized is better. I am also curious about your opinion.

Well, on the one hand, we have "Vim" and "Neovim", but on the other hand - "vi" and "grep" (probably to have the name match case sensitive command). There are CamelCase names ("GitHub"), and even dromedaryCase examples of names like "iPhone" or "eBay". So anything is equally possible and correct: "Neoray", "neoray", "neoRay", "NeoRay". It's up to the author of the project to choose best name.

I actually end up with Neoray because neoray is not seems better at beginning of sentence and there is also a product named NeoRay. Feel free to change this name. Also thanks for this pr.


Minor fixes to chapters 2 and 3.

wow thanks for all the fixes!  I need to figure out how to enter unicode superscript / subscript characters -- I usually use latex but that isn't the best for all formats.  Actually I need to double check that it renders fine in latex now that I think of it.

Yeah turns out that those unicode guys don't work -- replaced with e.g., $Na^+$ latex form.


Added EntityRef to ResponseDef

Implements

EntityDef field containing properties and name of the referenced entity in ResponseDef
Code to add Entity and its properties to a response in the input reader

One other possibility was to add the Entity as it already was defined to a ResponseDef, though that would require somehow passing it through multiple method calls.
My proposition would be to leave it like this with an added comment in the wiki to create an issue that more info should be added to this when someone needs it

If the Entity has been already added to the model, you could simply retrieve it again in java code. Then you would not need to pass it around.


Popover Menus: Prevents mousewheel scroll while user has pointer over popover menu.

This fix prevents users from scrolling with mousewheel while pointer is hovering over a popover menu.

Fixes: #25980

Screenshots and screen captures:
(In case it's not clear, I'm trying to scroll with the mousewheel when the menu is open.)
https://github.com/zulip/zulip/assets/18102814/a4f10054-91c4-403b-805b-c5bee29086fc

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

@ghughes13 thanks for working on this. Can you please update the commit messag to match the commit message guidelines. Specifically you need to update the line-wrapping and make the "Fixes .." line end with a period.

Thanks for pointing that out. Believe it should be fixed now.

Thanks for the update.
@amanagr are you up for reviewing this?

LGTM

I think this fix is wrong -- it will break scrolling within popovers that may contain a scrollbar, like the read receipts one.
Also -- is the here a duplicate of the bug fixed in 4fde4e7c0d945e96eafb5b64b46b4a031f39e083? It's possible we should close both this and the issue.

Yeah, nice catch! I don't see a good solution for this case then. For touchpad users, having scrolling close the popover is actually preferrable to me. Other direction is to disable scrolling for the whole app when a popover is open which I don't think is what we want.
https://github.com/zulip/zulip/commit/4fde4e7c0d945e96eafb5b64b46b4a031f39e083 handles the case when scrolling inside a scrollable popover only.
@ghughes13 let me know if you have any ideas, otherwise it makes sense to close this.


fix: make create_model_from_typeddict mypy compliant

Change Summary
make create_model_from_typeddict mypy compliant
Related issue number
closes #3008
Checklist

[x] Unit tests for the changes exist
[x] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[x] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)
[ ] My PR is ready to review, please add a comment including the phrase "please review" to assign reviewers

Nice one, thanks!


Allows the user to decide where drop shadows are applied to text

Description of change
Since porting over games from v4 to v5, an issue was noticed where drop shadows were looking different to how they did in v4 (due to my PR https://github.com/pixijs/pixi.js/pull/5375) Namely, for v4, drop shadows occurred only on the 'fill', but for v5 they occur on both the fill and the stroke.
I went around the houses on how to solve this, and I've finalised on letting the user decide what they want. With a new text style property, they can decide whether they want the drop shadow to only occur on the 'fill' (default behaviour, which matches v4), or if they want it to only occur on the stroke (new for v5), or they want it to occur on both (accidental buggy behaviour which v5 does now).
Sorry about introducing the bug in the first place :/
Pre-Merge Checklist

[x] Documentation is changed or added
[x] Lint process passed (npm run lint)
[x] Tests passed (npm run test)

To compare how things look across the versions, here are some uploads of the text style tool so you can have a play
http://www.moonrat.co.uk/html5/pixi-drop-shadow/v4/
http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5/
http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5-new-settings/

With both fill and stroke
v4: Does both because of a bug: http://www.moonrat.co.uk/html5/pixi-drop-shadow/v4/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
v5: Does both, but because it uses native canvas drop shadows, actually uses the blur property unlike v4 http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
v5 fixed: can choose what you want http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5-new-setting/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
With just a fill
v4: works, but still doesn't do the blurring properly http://www.moonrat.co.uk/html5/pixi-drop-shadow/v4/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A""%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
v5 works perfect http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A""%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
v5 fixed still works, but if you change the drop shadow type to stroke, then correctly no drop shadow appears... because there is no stroke http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5-new-setting/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A""%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
With just a stroke
v4 doesn't show a drop shadow http://www.moonrat.co.uk/html5/pixi-drop-shadow/v4/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A""%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
v5 shows a drop shadow, even tho v4 didn't http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"fill"%3A""%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
v5 fixed does if set the location to 'stroke', but doesn't if you set it to 'fill' http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5-new-setting/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A5%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"dropShadowLocation"%3A1%2C"fill"%3A""%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}

Open to making 'both' the default of course. v4 does it but that's not the intent of the code. And the overlapping drop shadows means alpha doubles up so shadows look a lot darker than the settings imply

The "both" option gets weird with alpha because it doubles up the transparency where the fill and stroke shadows overlap.
My developer expectation is that the drop shadow is always both, and the opacity of the stroke + fill is applied evenly (is that even possible?). The user decides if they want a stroke or fill by enabling those Text features.
There are two visual cases with the PR that I'm not convinced it's worth supporting:

You have a stroke and fill on Text, but ONLY stroke shadow
You have a stroke and fill on Text, but ONLY fill shadow

Maybe there's a case that if you need a fill shadow + Text with stroke might be because you want a rollover text effect or something without that changing the shadow. But that case seems small to me. Would like to hear your thoughts about these cases.

So first assumption I made was wrong, v4 does attempt in code to have a drop shadow contain both the fill and the stroke. But it only tries to do a drop shadow at all if a fill exists. So for v4
Fill & Stroke: drop shadow on both
Fill: drop shadow on fill
Stroke: no drop shadow
Which is odd.
The problem is, the way the Canvas API works, the stroke and the fill always overlap, so using the API to just draw both, either it's via 2 separate draw calls (like v4) or via the native canvas api (like v5).... there is always that overlap.
The situation that started this rabbit hole was for situations like: http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5-new-setting/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.4%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A1%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"dropShadowLocation"%3A2%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
This is the new version, set to 'both'. Look at the 2 L's; notice how the drop shadow appears over the top of the stroke? This was what we wanted to avoid. So by separating out the drop shadow setting, you can just have a drop shadow on the stroke, but blur it a lot to fill it in.
http://www.moonrat.co.uk/html5/pixi-drop-shadow/v5-new-setting/#{"style"%3A{"dropShadow"%3Atrue%2C"dropShadowAlpha"%3A0.7%2C"dropShadowAngle"%3A1.5%2C"dropShadowBlur"%3A13%2C"dropShadowColor"%3A"%2380ff00"%2C"dropShadowDistance"%3A43%2C"dropShadowLocation"%3A1%2C"fill"%3A"red"%2C"fontSize"%3A80%2C"fontWeight"%3A"bold"%2C"letterSpacing"%3A1%2C"lineJoin"%3A"round"%2C"miterLimit"%3A5%2C"padding"%3A10%2C"stroke"%3A"yellow"%2C"strokeThickness"%3A8%2C"wordWrapWidth"%3A0}%2C"background"%3A"%23aaaaaa"}
It's not perfect, but it's better than drop shadows appearing over the top of the stroke.
Now, why does that occur? Because, for some reason, since the very first version of PIXI, the order has been "draw the stroke, then draw the fill". This isn't the way I'd draw text in real life, I'd draw the fill, and then the stroke. And if Pixi did that, my artists wouldn't have noticed anything ;) But if we made that change, then text on everyones Pixi creations would look a lot different. As the stroke and fill overlap, you'd notice strokes effectively look thicker, as they're taking piority over the fill. I'd say that is the correct way, but I don't think we could ever make that change.
v4 doesn't have this issue because it has 2 separate draw calls drawing the shadow underneath manually. But then because of that the 'blur' part of drop shadows really doesn't work well.
So yeah, this PR is to solve an issue caused by something else that cannot be changed!

Codecov Report

Merging #5943 into dev will increase coverage by 0.02%.
The diff coverage is 72%.

@@            Coverage Diff             @@
##              dev    #5943      +/-   ##
==========================================
+ Coverage   70.38%   70.41%   +0.02%
==========================================
  Files         208      208
  Lines       10493    10507      +14
==========================================
+ Hits         7386     7399      +13
- Misses       3107     3108       +1

Impacted Files
Coverage Δ

packages/text/src/TextStyle.js
96.94% <100%> (+0.08%)
:arrow_up:

packages/text/src/const.js
100% <100%> (ø)
:arrow_up:

packages/text/src/Text.js
68.49% <61.11%> (+0.56%)
:arrow_up:

Continue to review full report at Codecov.

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

Closing in favour of https://github.com/pixijs/pixi.js/pull/5947


Write down a formal grammar for Maud

This would be nice as an appendix of the book.

Here's an initial attempt, using EBNF:
markups = { markup | ';' } ;
markup = literal | special form | element | splice | block ;

special form = '@',
    ( 'if', expression, block
    | 'if', 'let', pattern, '=', expression, block
    | 'while', expression, block
    | 'for', pattern, 'in', expression, block
    | 'match', expression, match body
    | 'let', pattern, '=', expression, block
    ) ;
match body = ... ;  (* this is complicated *)

element = name, { normal attribute | empty attribute }, ( markup | '/' ) ;
name = identifier, { '-', identifier } ;
normal attribute = name, '=', attribute value ;
attribute value = literal | special form | splice | attribute block ;
attribute block = '{', attribute value, '}' ;
empty attribute = name, '?', [ '[', expression, ']' ] ;

splice = '(', expression, ')' ;

block = '{', markups, '}' ;

identifier = ? Rust identifier ? ;
literal = ? Rust string literal ? ;
expression = ? Rust expression ? ;
pattern = ? Rust pattern ? ;

Seems pretty straightforward, except for the @match syntax (I'm not really familiar with that part of the parser).

I don't think anyone is asking for this.


log.SetLogger(...) was never called; logs will not be displayed.

Detected at:
	>  goroutine 57 [running]:
	>  runtime/debug.Stack()
	>  	/usr/local/go/src/runtime/debug/stack.go:24 +0x5e
	>  sigs.k8s.io/controller-runtime/pkg/log.eventuallyFulfillRoot()
	>  	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/log/log.go:60 +0xcd
	>  sigs.k8s.io/controller-runtime/pkg/log.(*delegatingLogSink).WithName(0xc00013d9c0, {0x192fee6, 0x14})
	>  	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/log/deleg.go:147 +0x45
	>  github.com/go-logr/logr.Logger.WithName({{0x1bc01f0, 0xc00013d9c0}, 0x0}, {0x192fee6?, 0xc0002f0000?})
	>  	/go/pkg/mod/github.com/go-logr/logr@v1.3.0/logr.go:349 +0x3d
	>  sigs.k8s.io/controller-runtime/pkg/client.newClient(0x0?, {0x0, 0xc0003aa7e0, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0})
	>  	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/client/client.go:122 +0xec
	>  sigs.k8s.io/controller-runtime/pkg/client.New(0x7f16dabb7108?, {0x0, 0xc0003aa7e0, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0})
	>  	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.16.3/pkg/client/client.go:103 +0x7d
	>  github.com/open-feature/flagd/core/pkg/sync/kubernetes.GetClients()
	>  	/src/core/pkg/sync/kubernetes/kubernetes_sync.go:64 +0x85
	>  github.com/open-feature/flagd/core/pkg/runtime.NewK8s({0xc0001d81e0, 0x49}, 0xc0001e9c50)
	>  	/src/core/pkg/runtime/from_config.go:247 +0x37
	>  github.com/open-feature/flagd/core/pkg/sync-store.(*SyncBuilder).SyncFromURI(0x16ec100?, {0xc0001d81e0, 0x49}, 0xc00027a570)
	>  	/src/core/pkg/sync-store/sync_store.go:290 +0x8b7
	>  github.com/open-feature/flagd/core/pkg/sync-store.(*SyncStore).watchResource(0xc000050940, {0xc0001d81e0, 0x49})
	>  	/src/core/pkg/sync-store/sync_store.go:190 +0x274
	>  created by github.com/open-feature/flagd/core/pkg/sync-store.(*SyncStore).RegisterSubscription in goroutine 56
	>  	/src/core/pkg/sync-store/sync_store.go:127 +0x525
2023-12-06T23:11:33.011Z	info	kubernetes/kubernetes_sync.go:111	starting kubernetes sync notifier for resource: openfeatureplayground-team70-preprod-cd/sample-flags	{"component": "sync", "sync": "kubernetes"}

It seems like this is happening because the kubernetes sync of the flagd-proxy is using the k8s.io/controller-runtime client, which is intended to be used in an operator, such as the OF operator. The controller runtime has the requirement of the log.SetLogger() function to be called within 30 seconds after the application has been started (see [1]), otherwise the error message will be shown. I just verified this be starting flagd-proxy, waiting 30 seconds, and then doing a call to SyncFlags, resulting in the message being shown. If SyncFlags is called within 30 seconds, no error message is printed.
This however does not affect the logging of the flagd-proxy, as can also be seen in the log posted in the issue description. Only the logs generated by the controller runtime will not be displayed, but since the proxy is not an operator this does not have an effect.
To get rid of this error message we would need to make sure the said log.SetLogger() function is called during startup of flagd-proxy. However, I would recommend to switch to the client go [2] library instead, as this is more intended for this kind of application, whereas using the client from the controller-runtime is a bit of a misuse in this setting.
Switching to the client-go library will require making some changes in the usage of the client, but could be done with relatively low effort imho.
References:
[1] - https://github.com/kubernetes-sigs/controller-runtime/blob/1ea2be573f7887a9fbd766e9a921c5af344da6eb/pkg/log/log.go#L78
[2] - https://github.com/kubernetes/client-go

Thanks for the detailed explanation @bacherfl. Should a separate issue be opened for switching libraries?

I've created an issue here with a clear goal to change this.


Dev Lake Phase 2 Plan - step 1 [8/24-8/26] Provide a foundation for collaboration

WHY
According to Dev Lake Phase 2 Plan · Issue #266 · merico-dev/lake, we are switching to Golang, before anything could be done, an project skeleton is required for all of us to collaborate. This time, we are going to implement a simple and naive one to make everyone start contributing ASAP.
HOW
In order to achieve this small goal, the following tasks are to be done:

README @narrowizard - https://github.com/merico-dev/lake/issues/278
API @narrowizard - Issue: https://github.com/merico-dev/lake/issues/276
Task Execution @klesh
Plugin (JIRA/GITLAB) @klesh
Plugin Configuration @klesh
App Configuration @narrowizard - Done - https://github.com/merico-dev/lake/blob/go-main/.env.example
Database ORM (gorm) @narrowizard - Issue: https://github.com/merico-dev/lake/issues/275
Testing (@joncodo ) #273
Github pipeline (@joncodo ) #270

Anyone working on this issue could open new issue and link to this one or submit PR directly.
Any PR should be minimal, easy to review and verify, documentation is vital.
If you were to say "I dont think so" when reviewing, please comment with a reason or proof to your point.
Any suggestion of design improvement will be not accepted for this step
Hardcoded stuff are expected
WHAT
Following artifacts shoud be deliveried:

A working code base could be checkout on our local machine to verify
A guide to show how to checkout/compile and run.
A JIRA plugin to show board/issue collection

Following features should be fulfilled:

An API endpoint to accept user request and trigger a plugin execution (no dependency graph of any kind)
A JIRA plugin to demo board/issue collection
Implementation should be minimal and naive, no task-queue, no micro-service for this step.

Done


Fix all the typos

@EricLBuehler Found few misspellings.
That is all!

Thank you!

Glad to contribute.


JSONTypeHintField works only in one direction with subclasses

I have only tested this quickly but I have the nagging feeling that
@JSONTypeHintField("fooType")
sealed trait Foo
case class(bar: String) extends Foo

Works only in one direction, i.e. when parsing the incoming JSON string, but not when serialising it.

Thanks for reporting this! I guess that the classes you want to serialize/deserialize look like this:
@JSONTypeHintField("fooType")
sealed trait Foo
case class FooSubtype(bar: String) extends Foo

This kind of code works fine for many of our usages. There are some pitfalls though. You need to make sure that you import annotations from right package. In my experience this can cause some issues. Can you please test with following imports:
import io.sphere.json._
import io.sphere.json.generic._

I would be also helpful if you could show the resulting JSON (the result of serialization).

Sorry for the late reply on this one.
I tried with the imports above but to no avail, the resulting JSON still contains the type field:
{"id":"550d8f72d4c62f87e235923c","tables":["550c1bd1d4c69c374569e6ca"],"floor":"550c1bc4d4c69c374569e6c5","min":1,"max":2,"user":"550c1b43d4c69c374569e6b8","timestamp":"2015-03-21T15:34:10.589Z","type":"GroupAdded"}

With the following annotation:
@JSONTypeHintField("foo")
sealed trait UserEvent extends Event {
  def timestamp: DateTime
  def user: ObjectId
}

The import resolves to the type alias JSONTypeHintField define in the package object io.spehere.json.generic
I'm not entirely sure why the annotation isn't taken into account, though I do remember having debugged the code and never having seen in step through any place looking for the annotation in the case of a sealed trait as super-type.

I could reproduce your error.
A current workaround is to use an abstract class instead of a trait:
@JSONTypeHintField("foo")
sealed abstract class UserEvent extends Event {
  def timestamp: DateTime
  def user: ObjectId
}


Add README.md for test directory

What this PR does / why we need it

Adds README.md for test directory.
Details for the Release Notes (PLEASE PROVIDE)

NONE

Which issue(s) this PR fixes

Fixes: #
Describe testing done for PR

NA
Special notes for your reviewer

Merging this. Any additional changes can be done in upcoming PRs


ReactSearchkit: hide components when zero results

Closes #745

@ntarocco I checked only for the frontsite search

@ntarocco I checked only for the frontsite search

and the search page in the Serials details page in the frontsite?
can you have a look to the backoffice too? You can fix also there or please do not close the issue, just update it mentioning that it has been fixed for frontsite only.
Thanks!

@ntarocco I fixed the series details search and the backoffice and I also removed the SeriesLiteratureResultsList.test.js because it failed and there were no tests for the respective DocumentSearchResultsList,DocumentSearchResultsGrid and SeriesLiteratureSearchResultsGrid


Transient Publishing

#787

@funkyboy Yap. I'm looking at them now 😄

@paddybyers @mattheworiordan So, I'm facing a lot of failing tests related with ACK's/NACK's because some of the tests were created with the original intention to queue an array of messages and wait for the ATTACHED state. With this, it resulted in one only ACK message with multiple acknowledgments.
Now, with the Transient Publishing implementation that I did, the behaviour is different because the array of messages is sent right away because the connection is ready, resulting in multiple ACK messages.
Should I revisit all those failing tests and update them with the new behaviour? Or the existing tests should work as usual?

@ricardopereira the existing tests that now fail are testing ... what? If they're not related to transient publishing, can't those tests continue to work in the same way by calling attach() before the first publish?

@paddybyers They're not related to transient publishing. Ok, attaching the channel before the publish should work, I'll try. Thanks.

@paddybyers The test "should reset msgSerial serially if the connection does not resume" is failing. It receives 2 or 3 ACKs and sometimes only 1 but it's not consistent like it was before the new code https://github.com/ably/ably-ios/blob/e6e0c6dcf76f0ede6ea630a92d9f72cece25e90a/Spec/RealtimeClientConnection.swift#L1046
In Transient Publishing, in that case, how can I get only one ACK?

It receives 2 or 3 ACKs and sometimes only 1 but it's not consistent like it was before the new code https://github.com/ably/ably-ios/blob/e6e0c6dcf76f0ede6ea630a92d9f72cece25e90a/Spec/RealtimeClientConnection.swift#L1046

In Transient Publishing, in that case, how can I get only one ACK?

You should stop making assumptions about the number of ACKs you receive. The server is free to roll up multiple acks into one (using a count > 1), or not, at its discretion, to achieve some balance of latency minimization vs efficiency. You can not assume any particular way it will do this, other than that if the transport remains active every message will be acked/nacked eventually.

@ricardopereira when do you expect this PR to be able to land?

@mattheworiordan I can work on this next week.

Ok, please do, it's worrying to have a PR open for this long

I realise you've done a lot of work on iOS recently @ricardopereira, but hopefully once the push stuff is out the way, we can rebase this and get it merged.


The examples in the zip file in the release have not been updated

The example codes in the main branch has already been updated to use Tuple instead of KeyValuePair, but the example codes in the 2.0.200 zip Release here https://github.com/Microsoft/Mobius/releases still use KeyValuePair (although the implementation has already been updated).
People using the examples from that Release zip file will run into issues with a few functions not found. The zip package should be updated.

@skaarthik : it looks like each of the zips contain old code within the examples folder.

@perthcha thanks for reporting.
@dwnichols thanks for looking into this.
Examples always use the last stable release. The way we package examples worked fine for releases within the same major version. In the case of last stable release, there was a change in major version and that's why examples were broken. When we build a stable release, examples cannot reference that same build. So, when Mobius 2.* stable release was built, examples could not reference that because 2.* binaries were not yet available in nuget.
We need a good solution to this problem in general. For now, we need a good way of updating the release zip.


Added url.js

url.js from joyent/node@de0b8d60
Since punycode isn't a public node base module, I decided on the shortcut of putting resolve.core.punycode = true; in lib/wrap.js instead of forking node-resolve.

I'm just going to assume that browsers are smart enough to handle IDN. Makes the url.js builtin simpler.

Any chance this can get merged? Anything else I need to do?

Thanks, @substack for adding url.js in 07f7768f3c3237af6b36cacdc338708195eba913 :beer:


Webpack 5 support overview

Overview of tasks needed for updating CRA to Webpack 5 - Some of the work will support both Webpack 4 + 5 but some plugins only support Webpack 5 + the webpack config itself has breaking changes.
Prerequisites

[X] #9977 Move .eslintcache into .cache (part of fixing test suite)
[X] #10217 Fix CRA test suite to validate the pull-requests for Webpack 5 changes

Loaders / plugins [multiple pull-requests]

[X] #9751 Use the ESLintPlugin instead of eslint-loader
[X] #9205 Update GenerateSW changed signature (Fixed in PR #9205 using InjectManifest instead?)
[X] #9805 Fix ModuleScopePlugin.js (might have been fixed?)
[X] ~Update PnpWebpackPlugin (supported as default in WP5 - is this plugin still required? - also seems like tests PnP are broken)~
[X] ~#7914react-error-overlay Move node polyfills in webpack to prepare for webpack 5 closed for now~
[x] #10198 formatWebpackMessages.js remove usage of chalk in client code
[ ]  #10456 Update postcss-loader postcss8
[ ] #10004 ForkTsCheckerWebpackPlugin
[ ]  #10005 use css-minimizer-webpack-plugin instead of OptimizeCSSAssetsPlugin
[ ] #10121 or #10098 or #9943 ? Update / support both WP4 and WP5 message format in formatWebpackMessages.js (message is an object in WP5)
[ ] #10204 The ManifestPlugin plugin is slowly getting up to speed / maintained again (use 3.0.x check for updates)
[ ] #10205 Update ModuleNotFoundPlugin.js adding support for SingleEntryPlugin -> EntryPlugin

Webpack 5 specific [single pull-request]

[ ] #10006 Update IgnorePlugin changed signature (TODO: Remove version check, only support wp5)
[ ] Use terser-webpack-plugin from webpack 5 (no apparent changes needed, remove usage of cache/cacheKeys/sourceMap Read changelog)
[ ] Update html-webpack-plugin to 5.0.0
[ ] Webpack 5 dropped nodejs builtin package shims - not sure if we need to still support this. (packages like axios still need this afaik, maybe just drop support?, POC)
[ ] The webpack config it self has minor changes, a filename to be updated etc. Read about more findings here and Branch

Webpack 5 maybe later?

[ ] webpack-dev-server is currently in v4.0.0-beta.0 for webpack 5 support (v3.x also seem to work?)

Regarding federated modules:
~* [ ] The Webpack dev server doesn't yet support federated modules so we'll likely have to wait a bit on that.~
Out of scope - read more in #9510
Notes:

PnP is supported as default in Webpack 5 and fork-ts-checker-webpack-plugin as I read it - but it would be great to QA / fix the tests

References:

Webpack 5 Draft pull-request
Experimental branch
More findings

pnp won't be needed once you upgrade to Webpack 5, so maybe you can remove it as part of the single PR
https://webpack.js.org/migrate/5/#clean-up-configuration
What pnp tests are broken?

@jasonwilliams cool, I'll stike out the PnP task - regarding tests it's the yarn docker:e2e --test-suite  (one of them ends with a PnP test that breaks, but more tests are actually breaking atm. I have a stash for fixing the simple test when I need it)

@raix do you need help on anything? Looks like its just PRs waiting to be reviewed

@jasonwilliams I think if the simple e2e test passes it should be good to complete (unfortunately for the tests to run there is missing support for the new JSX babel transformation when testing + .eslintcache needs to be git ignored in each of the templates)

@jasonwilliams I need to QA 3 of the pr's and address review comments in 10005 / I'll likely only get to those comments in the weekend, if you have time feel free to jump in to QA/resolve comments or make pr's the other updates.

@raix theres some I looked at, how are you testing? Are you linking the repo then launching with npx?

@iansu can we pin this issue?

@raix https://github.com/facebook/create-react-app/pull/10121

chalk is only being used for 1 function here https://github.com/facebook/create-react-app/blob/master/packages/react-dev-utils/formatWebpackMessages.js#L83
The problem is its being bundled into client side builds. Is it worth keeping for that 1 function?
If we choose to keep it, whoever uses formatWebpackMessages will need to prune it from client side builds going forward.

Also on the front end process won't be defined here:
https://github.com/facebook/create-react-app/blob/master/packages/react-dev-utils/webpackHotDevClient.js

An update for you all here: https://github.com/shellscape/webpack-manifest-plugin/issues/222#issuecomment-736969974
FWIW the 3.0 RC has basically been tossed out the window and I'm reapplying fixes in there atop the refactored codebase.

@jasonwilliams not sure about the process - the global should be defined from .env + environment variables already (I didn't experience any issue there - the only thing is about chalk not being browser compliant)

If you remove chalk it solves the process issue

https://github.com/facebook/create-react-app/pull/10198 for removing chalk from formatWebpackMessages.js

@raix are you going to make changes to the https://github.com/facebook/create-react-app/pull/10004 PR since the questions seem to have been answered?

@raix  maybe this helps? https://github.com/facebook/create-react-app/pull/7914/files   i can rebase the PR if you need to base your work on it.

yep, I'll address comments in #10004 tomorrow - the rest should be fine to complete (I think the maintainers are likely low on time atm. but agree there have been added quite a few pull-requests - I would suggest fixing the test suite first)
@andriijas is that pr related to Webpack 5 dropped nodejs builtin package shims or is it related to #10198 (or similar issue?)

@raix  yes but i agree its better to remove support rather than pollyfilling.

@andriijas ok - I've added it to the list but with a strikeout for now (I'm not sure if we still need to handle the error overlay or if it still works)

@shellscape will v3 of webpack-manifest-plugin also work in webpack 4? (trying to figure out if we can just update the package or if it should be shipped along webpack 5)

Yes

@andriijas #10003 #10005 #10006 are ready for review I've done manual QA (and run the simple test for some of them)
#10004 is also working when doing manual QA but awaiting input on include/exclude options - the rest of the code is ready for review

@andriijas We can make the final Webpack 5 pull-request when all the minor updates have been merged
Not sure if we can make a feature branch for that work - I know @sebinsua and others have attempted to update to webpack 5 would be a nice way to share experiences and join forces?
I've moved terser and the webpack config changes to be in the final webpack 5 pull-request as it will only work on webpack 5
@jantimon just got unblocked on his work on html-webpack-plugin seems like v5.0.0 will only work with Webpack 5 - I also moved that to the final PR

@raix that's correct:

html-webpack-plugin 3.x - out of support - fully compatible to webpack <= 4
html-webpack-plugin 4.x - only bug fixes - fully compatible to webpack 4 & partially compatible to webpack 5
html-webpack-plugin 5.x - active branch - fully compatible to webpack 5

@andriijas It would be great to get #10121 or #10098 merged as they fix issues with webpack 5 when builds fail. They’re both compatible with webpack v4 so they can go in at any time.

@ianschmitz not sure how to read your comment:
Let's make the final change once we cut over to webpack 5, instead of supporting both versions in the config. Thanks for all these PRs though!
Not sure if you want to close this issue with the overview^^ and the pull-request that will work in both versions then?
(it's not clear to me, I'll leave it for you to decide / take over / close)

chalk is only being used for 1 function here https://github.com/facebook/create-react-app/blob/master/packages/react-dev-utils/formatWebpackMessages.js#L83
The problem is its being bundled into client side builds. Is it worth keeping for that 1 function?
If we choose to keep it, whoever uses formatWebpackMessages will need to prune it from client side builds going forward.
@iansu can we remove it? It causes more problems than it solves (its only used for coloring the text on the terminal)

I'd be fine removing chalk due to its limited usage. It has been a source of pain in the past by breaking when used in IE. We're also considering moving to a newer error overlay such as the one provided by the fast refresh plugin.

html-webpack-plugin@5 is now in beta and the feedback is promising
right now there is only one open issue with double compilations: webpack/webpack#12283

html-webpack-plugin@5 is now in beta and the feedback is promising
right now there is only one open issue with double compilations: webpack/webpack#12283

it looks like html-webpack-plugin v5 just came out of beta and was published!

@bpowers its been out of beta for a couple of days, but only released today - I updated the overview when it was published 🙂
Btw. Thank you @jantimon for all the hard work

Really appreciate the hard work here by everyone. I was wondering if anyone had an idea what kind of time frames are expected for CRA to release with webpack v5 support?

@ianschmitz would it me easier to review and test if we create a feature branch for Webpack 5 support?
(It could be a way to move forwards without risking breaking the main branch for bugs etc. - the feature branch could also open up for the community to start testing Webpack 5)

Update / support both WP4 and WP5 message format in formatWebpackMessages.js (message is an object in WP5)

Just pointing out there is also this PR I reviewed and confirmed it's working https://github.com/facebook/create-react-app/pull/9943 (didn't know about the other ones, sry)

@ianschmitz would it be easier to review and test if we create a feature branch for Webpack 5 support?
(It could be a way to move forwards without risking breaking the main branch for bugs etc. - the feature branch could also open up for the community to start testing Webpack 5)

@raix  I agree with this, having a feature branch would be really helpful! Upgrading packages incompatible with v4 like terser-webpack-plugin or html-webpack-plugin would be simpler on a feature branch with webpack v5 already installed.
I upgraded to v5 on a fork but here I am kinda lost as I would also have to upgrade webpack itself on my PR's :thinking:

@ianschmitz would it be easier to review and test if we create a feature branch for Webpack 5 support?
(It could be a way to move forwards without risking breaking the main branch for bugs etc. - the feature branch could also open up for the community to start testing Webpack 5)

@raix I upgraded a fork to Webpack v5 and having a feature branch like you mentioned would be of great help for contributing If I can be of any help =)
Maybe like this we would also be able to open multiple PR's instead of one for those plugins with breaking changes?

Thats true, we could have smaller pull requests for also the webpack 5 specific things if we had a feature branch to target instead of main.
Also more of the loader start to require wp5.
Persistent caching, wds v4 etc. could also be separate pull requests and so on.

Regarding the removal of process from the frontend in webpack 5: it looks like the advice from the v5 migration guide is to stop using process.env becuase "Node.js specific and should be avoided in frontend code." Given that CRA only supports custom build variables via process.env, should I expect this to change in the next version? i.e. will CRA continue using process.env?
I ask because I author a library which has a customization API accessible with custom variables defined at compile time. We added support for CRA here (https://github.com/palantir/blueprint/pull/3691) and I am considering removing it in the move to webpack v5 (suggesting that users now use webpack.DefinePlugin({ CUSTOM_VAR }) instead of process.env.CUSTOM_VAR).

Is there an ETA of when webpack 5 will be supported? I am hoping to take advantage of this bug fix in webpack without having to eject, https://github.com/webpack/webpack/issues/9520

@josh-osiq We could create a webpack 5 pull-request merging all of the above work + extras - but it seems like the maintainers of this project have other priorities atm. I'm personally also low on time so I can relate, but also not going to invest more time until I see progress.
(We have moved to internal rewritten build setup based on Webpack 5/typescript/federated modules, can only say that we are doing benchmarks of builds, and webpack 5 is performing really well with the new cache)

@adidahiya Not sure if I read the guide in the same manner - yes webpack 5 is no longer auto stubbing nodejs builtin modules (often used in old cross environment packages eg. axios) - But haven't seen any guide stating to remove the usage of process.env do you have a link to it (I might have missed out on that)
The EnvironmentPlugin is still supported - it will mount on process.env

I've added a CRA webpack 5 brach/draft pr for this work in case anyone want to test - https://github.com/facebook/create-react-app/pull/10656

webpack-dev-server now is webpack serve. Need or remove this dependency?

I dont think we need to change anything in that regard - at least for now?

webpack-dev-server now is webpack serve. Need or remove this dependency?

webpack serve  spawns webpack-dev-server

@raix please direct the PR to the new wp5 branch :) thanks!

exciting! any guess on when wp5 will be merged to master?

any news on a possibility to 'eject' being on webpack 5 already?

Not sure if it's related to this issue, but @svgr/webpack is not yet supporting webpack 5. That package is a dependency in react-scripts. So I guess that one needs to be added to the TODO-list as well.

@Sandstedt I work on Docusaurus, we merged the Webpack 5 PR recently and @svgr/webpack seems to work fine for me, you can see it in action here: https://docusaurus.io/docs/next/markdown-features/assets#inline-svgs

@slorber Probably not the best place to have this discussion, but had a problem when importing as React Component (import { SvgFile as ReactComponent } from "path/to/svgfile.svg"). There's an open issue about it here

I've updated the webpack-update to target the wp5 branch instead (also keeping file loaders for now, updating to asset type could be done later) #10961 - will try to get the wp5 branch into a good shape this weekend :crossed_fingers:

The webpack 5 update branch is passing tests, feel free to help review and QA #10961

A hero for us. Thank you very much

@Sandstedt svgr / svg react component import should work now on the wp5-update branch
The only thing concerning me with the branch is it seems to output errors twice and also reoutputs in the console - If anyone as time to debug would be great otherwise I'll look in to that in the weekend to come 🤞

Update for anyone following: #10961 was merged into the wp5 the other day

is there a way to start testing things before a package released, maybe by using git links in package.json?

I managed to run CRA with wp5 support using the amazing work by @raix . Here is the guide

@hasanayan reading your blog this reverted commit might be of interest https://github.com/facebook/create-react-app/pull/10961/commits/c7c916e2b29ed1e953e2a26d472023020fce1d20 (had an issue with split chunks or alike so I reverted it for now, but would be nice to fix)

@raix thanks for the update, but this doesn't affect what I shared in the post as it was only about getting react-scripts to work with wp5 (without module-federation). I did manage to activate module-federation using craco. I could do a pull-request for it. Should. I open a PR to your fork or directly to the wp5 branch here?

Another note, dev builds are extremely slow due to WatchMissingNodeModulesPlugin plugin. I mean it's more preferable to me to run the app without the plugin and restart each time I need to update a package. I've been away from CRA for a few months since I needed module-federation in my project but, if I remember correctly, dev builds were much faster before than they are now (with WatchMissingNodeModulesPlugin).

Opened a PR to enable module federation support https://github.com/facebook/create-react-app/pull/11125

Nice. Will it be possible to enable the external-remotes-plugin?
On Mon, Jun 21, 2021 at 2:40 AM Hasan Ayan @.***> wrote:

Opened a PR to enable module federation support #11125
https://github.com/facebook/create-react-app/pull/11125
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/facebook/create-react-app/issues/9994#issuecomment-864642563,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABT6DZNWPP4OOYEQZ5IBOLTT2DA5ANCNFSM4TIATUYQ
.

Nice. Will it be possible to enable the external-remotes-plugin?
…
On Mon, Jun 21, 2021 at 2:40 AM Hasan Ayan @.***> wrote: Opened a PR to enable module federation support #11125 <#11125> — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#9994 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABT6DZNWPP4OOYEQZ5IBOLTT2DA5ANCNFSM4TIATUYQ .

It can be added using CRACO for now. otherwise, I believe, it should be added/removed based on a flag if its going to be a part of CRA

@raix what else is necessary to finish this work, at least to get some pre-release packages? I would like to help.

@hasanayan when starting "yarn start" it outputs multiple times in the terminal, I'm planning to investigate if the compilation hook needs changes. (Mid this week, but if anyone gets to it before/figuring out the root cause would be helpful)

@raix I was able to @hasanayan 's branch up and running by adding this rule for dependencies that had issues with module resolution.
{
    test: /\.(js|mjs|jsx|ts|tsx)$/,
    include: [
      /node_modules\/aws-amplify/,
      /node_modules\/graphql/,
      /node_modules\/react-error-overlay/,
    ],
    resolve: {
    // fix for libs mjs|js module resolution
      fullySpecified: false,
      // fix for aws-amplify's crypto-js dep
      fallback: {
          crypto: false
      }
    }
},

I had to switch to yarn as npm as I had some issues with conflicting versions of webpack.

@InSuperposition the change to the config seem very project specific, that said, for now the wp5 branch (like webpack 5) does not support node js builtin shimming (eg. The crypto fallback - it's a breaking change as described in the top description of this issue)
Best advice is to not use backend related code on the frontend.

@InSuperposition will have a look at dependencies - if updating a project you will likely have to nuke the node_modules folder.
I'll take a look at the npm issue, using 'yarn why' to figure out what dependencies are causing the issue.

@raix pls check https://github.com/SolidZORO/mkn repo.

@InSuperposition I could not replicate the issue on the wp5 branch - I did update webpack to 5.41.1 but had npm install and run fine - that said we are updating dependencies on the wp5 branch, it might improve the flattening of webpack dependencies. (I've added your comments outlined in the top description as potential issues to investigate - will convert to issues if I can reproduce)

@raix Please consider to update css-loader and mini-css-extract-plugin to the latest version (bug fixes) will be only for these version, also we done rc release for webpack-dev-server and we will do stable release on this week (couple small issues), so will be great to update this too

Thanks @alexander-akait will update and keep and eye on wds 👍

Hey, wondering what the latest tag/branch is so we are able to help test it :)

@luu-alex awesome! the pr linked to this issue
(wp5->main we are likely to do an alpha release within the next couple of days, I'm currently on vacation time with the family but will try to adress issues primo next week, issues could be defered to push the alpha out though)

Thanks, looking forward to it

Would it be possible to include a switch to ts-loader when using TypeScript in the upcoming release? It would add support for future TS versions and TS enums.
Code,
https://github.com/gsoft-inc/craco/blob/master/recipes/use-ts-loader/craco.config.js

@arogozine I think it's a good idea because it's actually reading the tsconfig etc. Babel would likely still be needed but limited to env & react presets + fast refresh - more importantly the jest configuration should be updated to use ts and do actual typechecking on test files. Lets create a separate issue for this "[v5] Use ts loader and ts in jest"?

How complicated is it to migrate from CRA v4 to the version that includes webpack v5?
I have a new project coming up in the next few days and would like to implement it based on webpack v5.
Since, the beta version has not been released yet.
I am considering whether to create the project based on CRA V4 first and then migrate it later.

@xyy94813 try nextjs in spa mode

@xyy94813 we aim to not have breaking changes, that said webpack 5 no longer shim nodejs builtin packages - if you depend on backend or certain polymorphic packages it might be a problem (likely in most builds depending on wp5 or rollup)

@raix Any news on the alpha release?

@arobert93 Im waiting for some feedback in the maintainer group, hope to get it cleared out later today on the last parts. (Issue with the hmr and error overlay afaik, and module federation pr)
Really hope for an alpha ultimo this week 🤞

@raix did you get the feedback you were waiting for last week ?

Yes, it's down to @iansu or @mrmckeb to cut the alpha release - I've defered some feedback into v5 issues for further discussions in order for us to push the alpha out asap.

Can the community help somehow? It seems like most of the PRs listed in the milestone are ready to be merged.

Hey, I hate to beat a dead horse but does someone have plans to get a beta release out any time soon? I would be infinitely grateful for a yes or no.
A no is perfectly acceptable, it would just be nice to know. Nobody owes us anything and we all owe a lot of appreciation to the hard work the maintainers have put in since CRA started.
That being said, it is very hard to plan a technical direction for a project without knowing the fate of one of your key dependencies.


Identity Config cleanup

Not sure why it didn't trigger codecov feedback.
https://codecov.io/gh/centrifuge/go-centrifuge/commit/e3b4ac81ec624179d83e35c28621d539f77592d9

@mikiquantum any chance we can improve the coverage for this ?

@vedhavyas I could improve the test coverage for areas that are not related to the change, if that is what you are asking.


[freetype] Fix wrong brotli linkage

closes #20810
@Be-ing please test

I tested cherry-picking this to my branch and building qtbase with brotli installed from Homebrew, then uninstalling brotli from Homebrew and building Mixxx. I confirm this fixes the build error I encountered in #20810. Thanks for fixing this so quickly!


Define the maximum number of documents to embed in a single request

I couldn't find confirmation for the maximum  number of documents to embed in a single request in any of the official sources. This is the only source, but empirically this seems to hold.
Please correct me if I'm wrong about it.

Hey! There is no limit on the number of item you pass in, the limit is based on the number of tokens in the array, for ada-002, the limit is 8192 tokens so you can pass 8192 single token items in an array and it will work.


ubuntu 14.04 c# intellisense

From @iwnow on January 16, 2016 23:21
not working intellisense .cs files, when i start type using namespace, it's not appears my namespaces from project.json file after dnu restore. Ver: 0.10.6
Copied from original issue: Microsoft/vscode#2063

I've solved the problem to installed the last mono runtime, may closed.

ok. thanks for getting back to us


Fix weird formatting on REPL documentation page

The | character causes Jekyll to think you're trying to create separate columns, which then makes reading the sentence a bit more of chore. Adding code tags around it stops that behavior.

Landed! Thank you!


Userguides

Codecov Report

Merging #75 (9907809) into master (9e9e7a1) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #75   +/-   ##
=========================================
  Coverage     72.63%   72.63%
  Complexity      429      429
=========================================
  Files            74       74
  Lines          1312     1312
  Branches        139      139
=========================================
  Hits            953      953
  Misses          321      321
  Partials         38       38

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


拖拽到项目中，bundle引用问题

手动复制到项目中，所有的LYWebViewControllerLocalizedString都引用不到。请问需要怎么设置?

你好，先看下你的项目里是否配置了国际化：project->Info->Localizations

设置之后如果报xxx.strings 文件找不到可以试下这个方法：

Try to run the app, it will show the mentioned error
Now, right-click on storybook file and click on “Show in Finder”
From the directory location, move out the .storyboard file from Base.lproj folder
Now go back to Xcode, and remove the storyboard file (only reference)
Now, drag the .storyboard file from its new location into the project


Please dont use $_SERVER

Is there a way to not override PHP's super global constant $_SERVER with the contents of the library?

Yes. phpdotenv is very modular and flexible using composition. You can use the repository builder class without the default adapters, and then call create directly: https://github.com/vlucas/phpdotenv/blob/master/src/Dotenv.php#L83.


Parse file_version string when creating new file

Like the PointFormat class is created from an int.

Now that I think about it I think it would be better to move those 2 conversions inside the LasHeader.__init__ 🤔

Now that I think about it I think it would be better to move those 2 conversions inside the LasHeader.__init__ 🤔

I agree, I put it in LasHeader.init first, and then moved it when I saw where was the point_format conversion.

I agree, I put it in LasHeader.init first, and then moved it when I saw where was the point_format conversion.


Docker build/deploy return unhelpful error if you don't have docker installed

https://sentry.io/resinio/cli/issues/264667068/
Error: connect ENOENT /var/run/docker.sock
  File "util.js", line 1018, in Object.exports._errnoException
  File "util.js", line 1041, in exports._exceptionWithHostPort
  File "net.js", line 1086, in PipeConnectWrap.afterConnect [as oncomplete]

Error: connect ENOENT /var/run/docker.sock

Yeah I just hit this in support, the actual user visible error is
No such file or directory: undefined

which is even more unhelpful than the sentry reported error as it doesn't even hint that docker might be related - it took a long time to figure out the cause

This came up on the forums as well: https://forums.resin.io/t/resin-unattended-deploy/1525/5

In the next CLI release, if the docker socket doesn't exist or is not accessible, this will now fail with:

Docker seems to be unavailable (using socket #{socketPath}). Is it installed, and do you have permission to talk to it?


sql: filter result of SELECT from view, return exception when search cond isn't in create

> select * from v2 where y = 0;
{"winStart =<PHONE_NUMBER>274":{"x":49.0,"SUM(x)":49.0}}
> select x from v2 where y = 0;
{"winStart =<PHONE_NUMBER>274":{"x":49.0}}
> select `SUM(x)` from v2 where y = 0;
{"winStart =<PHONE_NUMBER>274":{"SUM(x)":49.0}}
> select a from v2 where y = 0;
{}

> select * from v1 where y = 0;
{"x":49.0,"SUM(x)":49.0}
> select x from v1 where y = 0;
{"x":49.0}
> select `SUM(x)` from v1 where y = 0;
{"SUM(x)":49.0}
> select a from v1 where y = 0;
{}

> select a from v where y = 0;
{}
> select x from v where y = 0;
{"winStart =<PHONE_NUMBER>000 ,winEnd =<PHONE_NUMBER>000":{"x":49.0}}
> select * from v where y = 0;
{"winStart =<PHONE_NUMBER>000 ,winEnd =<PHONE_NUMBER>000":{"x":49.0,"SUM(x)":49.0}}

> select * from v3 where x = 0;
Client Error: ClientIOError (GRPCIOBadStatusCode StatusAborted (StatusDetails {unStatusDetails = "VIEW is grouped by \"y\", not \"x\""}))

I am going inspect failed test now
just noticed CI is failed


Ignite 2.5.1 p165 ign10720

Closing PR, which seems to be test-only. Feel free to reopen if needed.


Refactor Service File Generators for Better Maintainability

Description:
The current implementation of both the Systemd Service File Generator and the Docker File Generator embeds their templates directly within the index.jsx of their respective components. This approach, while functional, poses challenges in maintaining and updating the templates.
Proposal:
To enhance maintainability and allow for easier updates, especially by non-developers, I recommend refactoring the components. We should externalize the templates into dedicated files, namely SystemdTemplate and DockerComposeTemplate.
Benefits:

Separation of Concerns: By decoupling the templates from the core logic, we reinforce the principle of separation of concerns.
Ease of Update: Non-technical contributors can easily view and modify the templates without the risk of inadvertently breaking the core functionality.
Enhanced Collaboration: This setup would foster a collaborative environment where users can contribute to the template's improvement without delving into the component logic.

I'm eager to gather feedback from the community on this suggestion. Your insights would be invaluable as we strive for continuous improvement! 😄

The corresponding improvements have been made to both generators to ensure their maintainability.


Update uplink-java to the latest uplink-c

This patch includes the following changes:

uplink-c is bumbed to the latest version
error handling is fixed to avoid segfaults with latest Java SDK
Github action is created to provide quick feedback on pull requests
Build uses storj-up to make easier the testing for external contributors (docker images no external requirement)
Example code is added to the doc and to the project hierarchy
Using maven instead of gradle to make it easier to upload artifacts later (and using LD_LIBRARY_PATH out-of-the-box)

The build is failing maybe it help to change this url from git:// to https://
https://github.com/storj/uplink-java/blob/c2e3b3988d1635b1775694bd9ddbf94630b3e0dc/Jenkinsfile#L5

@Erikvv @mniewrzal Are you fine with this approach? Would like to release artifacts in the next step, if this is fine...

Yes it's agreed but I still don't see a working github and jenkins build.

Ups, I was confused by the green checkmark, I thought it was the build, but realized that it's just task-list-completed step.
The builds are working well on the fork::
https://github.com/elek/uplink-java/actions
I don't know why is not visible here. My best guess is that the build descriptor should be placed on the main branch first.
I would suggest merging it and re-test with a new pr (and fix if it doesn't work). I couldn't commit the descriptor right now because it uses the new pom.xml.
If you agree: @Erikvv: can you please remove the change requested status?

I would suggest merging it and re-test with a new pr (and fix if it doesn't work). I couldn't commit the descriptor right now because it uses the new pom.xml.

Sounds good. Just maybe let's wait with doing an official release until we will be sure everything (including the build) works well.

. Just maybe let's wait with doing an official release

Sure thing. It requires more pom.xml changes anyway (for including all the metadata + sign jars + generate javadoc...). So will see how build is working with PRs.

Awesome, thank you!


What does the "amdName" do?

What does it do?
https://github.com/developit/preact/blob/master/package.json#L3

@lewis617 It used to be used by the rollup configuration to define the name on window that Preact installs itself into. It ended up being the same as rollup's default though, so it's no longer used. We can remove it :)


Update dimensions and location of icons in topology after pf 2.9 upgrade

@miq-bot add_label ui, providers/containers
@martinpovolny please review

@miq-bot add_label topology


[KOGITO-2753] Processes: Remove model transformations from REST endpoint

Model interface extends MapOutput and MapInput interfaces
xxxTaskOutput classes implements MapOutput (generated code does not
longer need to invoke toMap when building HumanTaskTransition)
New methods toModel on InputModel and toOutput on Model
Add chechError to ProcessInstance
Modification on templates to use them (removing mapInput, mapOutput and
getModel)

jenkins retest this

jenkins retest this


JSString should not be a instance of PFromJSVal

AFAIK JSString should never contain null or undefined.
However, it is an instance of PFromJSVal, which means the following compilable code will crash
print . unpack . pFromJSVal $ nullRef

I think the same could be said of all the instances of pFromJSVal apart from the Maybe instance.  When we use pFromJSVal we have to make sure the JSVal is valid and of the correct type.  If it might be null we can use something like:
print . maybe "Value was null" unpack . pFromJSVal $ nullRef

I see. So the pFromJSVal is an 'unsafe' interface like unsafeCoerce. Maybe the comments could be updated to that effect?


to dicuss

well sorry, I know that expert is obvious keep C, but I think that it would be good give options to play with "native functions", and give options to write own struct to OpenCL ..., unfortunatly it there compiler Error:
v . -cg
In file included from /tmp/v_1000/vcl_opencl_fractals_one_argument.2680217353268587034.tmp.c:928:
In file included from /home/matejmag/.vmodules/vsl/vcl/vcl.h:7:
In file included from /usr/include/CL/cl.h:21:
/usr/include/CL/cl_platform.h:543: warning: #warning Need to implement some method to align data here
/tmp/v_1000/vcl_opencl_fractals_one_argument.2680217353268587034.tmp.c:4377: error: ',' expected (got "it")
builder error:
==================
C error. This should never happen.

This is a compiler bug, please report it using `v bug file.v`.

https://github.com/vlang/v/issues/new/choose

You can also use #help on Discord: https://discord.gg/vlang

Hey! I like the idea. Will create a PR using yours as base and merge it soon. I'll follow the same patterns we are using on other modules 😊

I just played with this on a branch I created and I won't change vcl design for now. We will do it on demand once we need to support any other backend. Not needed for now. Will reach out if we decide to support other backend such as WebCL

ok


Enable swipe-to-refresh for browser tabs

Including SwipeRefreshLayout dependencies & adapted fragment

Minor fix for DuckDuckGoWebView to work with SwipeRefreshLayout

Resolves: #33
Description:
Based on PR by @malmstein #750. Fixes the weird swipe behavior in conjunction with the custom WebView (was too sensitive and did not block WebView scrolling/tapping during refresh swipe).
Some concerns and open issues:

Refresh triggered by swipe does not change or block the toolbar refresh button. Can be added if required. I left it out for now as there's no behavior so far on that button (can be tapped multiple times).
Had some problems with the swipe refresh indicator's edge/shadow showing at the toolbar when one releases early. Solved this with l. 858 BrowserTabFragment - there's probably a nicer way to do this? Sorry I'm not really much of an Android dev.
Could not find a way to handle a scrollable area (e.g. textarea) at the top of the page, not sure if this a blocker? Here's an example https://jsfiddle.net/4koayw5g/show - Chrome seems to handle this. WebView does not seem to support telling us whether we are scrolling some element on the page.

@malmstein do you want to take this PR since it's based on your previous code?
Please check if previous UX feedback from @CDRussell (posted in https://github.com/duckduckgo/Android/pull/750) also applies here.

Thanks for this @Usiel! I'll take a look in the following days and get back to you

I found a blocker related to the scrollable content within the WebView unfortunately (see last point in the PR description). Same problem appears also when the page contains a full screen map or similar content. The user will not be able to drag up as the refresh will be triggered. Try https://www.openstreetmap.org/ for example.
I'll have a look in a bit if I can find any solutions for this.

OK found something that works. There's still some work to do (overscroll indicators), but happy to hear if the approach is fine by you.
New approach somewhat emulates Chrome's behavior:
If user swipes up we only trigger the swipe-refresh if the user was at the top of the WebView before. We keep track of the clampedY state basically. Works nicely on pages such as openstreetmap.org. I'll have some more time tomorrow to test a bit more hopefully.

Great job @Usiel! I like the implementation and the feeling after your latest changes, but I'm going to ask for internal feedback before moving forward and get back to you.
Thanks for taking care of it!

@Usiel besides the overscroll indicators, I've found something that would love to have fixed. Some sites have already implemented their own version of Pull to Refresh (if you navigate to twitter.com and pull to refresh you'll see their own version) and we'd like that our implementation does not override the one from the site.
A few ideas on how to overcome this:

Detect if a site has pull to refresh implemented
Map the host url of a few sites that have it implemented to the current url and use a flag in the BrowserViewState that indicates if PTR should be enabled or not.

What do you think?

@malmstein I agree that should definitely be fixed. I think a combination of your ideas could make sense. It would be great if less known sites with PTR would also still work.
Detection of PTR or similar: I tinkered a bit with Javascript injection & interfaces just now. That would allow us to get additional information about events, which are not available via the WebView/WebViewClient. With that I managed to allow the Twitter PTR - though the native PTR can still be triggered: Trigger Twitter PTR -> their JS stops handling events -> native PTR can be triggered.
I feel like there will always be these edge cases, so that's why a combination of your ideas makes sense to me; ensuring a great experience on popular sites and a good experience on less popular sites.
Pushed some code on my fork on feature/usiel/swipe_to_refresh_javascript. I think I'll only be able to dig a bit deeper & polish the code on the weekend though.
By the way if it's more in line with the DDG workflow we can also make this PR a draft or close it & discuss on the issue if you prefer. I suspect there will be a few more cases that need to be handled to make this perfect. Apparently there's a reason I couldn't find any open source browser (using WebView) that implements this properly ;)

OK hope this one should do it. Solution is based on the CSS overscrollBehavior prop. Here's some additional information on that: https://developers.google.com/web/updates/2017/11/overscroll-behavior

This is a very interesting approach @Usiel, thanks for taking the time to writing it. Although I'm not a huge fan of adding Javascript interfaces, I appreciate why this could be a good solution. Let me think about it and discuss with the rest of the team.
Nonetheless, I really appreciate your effort here. Good job!

We can avoid the JS interface with evaluateJavascript, which is slightly nicer I guess. Other than that I couldn't find any way to access the computed CSS style unfortunately.

Hey @Usiel I really like how this is looking!
Using evaluateJavascript makes more sense to me than the JS interface. Just a comment on that, I'd prefer to have that method in the DuckDuckGoWebView instead. Something like:
/**
 * Allows us to determine whether to (de)activate Swipe to Refresh behavior for the current page content,
 * e.g. if page implements a swipe behavior of its own already (see twitter.com).
 *
 * https://developers.google.com/web/updates/2017/11/overscroll-behavior
 */
fun detectOverscrollBehavior() {
    evaluateJavascript("(function() { return getComputedStyle(document.querySelector('body')).overscrollBehaviorY; })();") { behavior ->
        setContentAllowsSwipeToRefresh(behavior.replace("\"", "") == "auto")
    }
}

And then from the BrowseTabFragment we'd call:
if (!viewState.isLoading) {
    swipeRefreshContainer.isRefreshing = false
    webView?.detectOverscrollBehavior()
}

After testing with different websites I've only found one issues. If you merge the current develop branch with yours, do a fresh install and launch a query you'll get to this:

Blank Browser

Steps to test this PR:

Fresh install the app
Open it
Launch a query
See that Browser is blank

If you then close the app and open it again the results are there
If instead you navigate back and then forward again the results are there.
I looked with the LayoutInspector and nothing seems odd, but this behavior doesn't happen with the current develop. Can you take a look?

Thanks for the refactor suggestion @malmstein. Added that, seems much cleaner.
Regarding the blank screen: I was not able to reproduce this on my physical device and a few virtual devices (API 25, 26, 28). Did you encounter the issue on a specific device?
Here are the steps for me with a fresh install with the latest code (up-to-date with this repo's develop):

Thanks for the refactor @Usiel!
The issue appeared in one of the emulators API 25 and my Nexus 3a. Will continue to test with your changes and come back to you. Other than that, this is looking good and. Thanks for putting in the work!

@Usiel thanks for your work on this! This feature will be part of the next release that will likely be available next week. Good job!

Great to hear! Thanks for the review @malmstein. By the way I have some additional changes lying around to allow cancelling a refresh/load, similar to Chrome. I can create an issue + PR for that in the coming days if you'd like.

That sounds good @Usiel, I'll make sure to take a look once it's opened.

I'm trying to eliminate my dependencies on Google by installing apps fro F-Droid, instead. I noticed that the F-Droid version lacks swipe-to-refresh due to a non-free library. I have a few questions/suggeations:

Is there an alternate way of implementing this feature for the FOSS version?
If no to #1, you might consider adding a note to the F-Droid and/or GitHub pages to break down this and other potential differences.
Also if no to #1, would you consider hosting your own F-Droid repository for those of us who want to avoid Google Play but are willing to accept the non-free libraries? You could then add a note regarding the repository to the F-Droid description and GitGub README.

I'm trying to eliminate my dependencies on Google by installing apps fro F-Droid, instead. I noticed that the F-Droid version lacks swipe-to-refresh due to a non-free library. I have a few questions/suggeations:

Is there an alternate way of implementing this feature for the FOSS version?
If no to #1, you might consider adding a note to the F-Droid and/or GitHub pages to break down this and other potential differences.
Also if no to #1, would you consider hosting your own F-Droid repository for those of us who want to avoid Google Play but are willing to accept the non-free libraries? You could then add a note regarding the repository to the F-Droid description and GitGub README.


chore: initial code

Signed-off-by: David Seapy<EMAIL_ADDRESS>

@dseapy Can we add pom.yaml and build and push the artifact to maven repo?

@dseapy sorry for the delay,  we are in kubecon. I will review it this weekend.

@dseapy sorry for the delay, we are in kubecon. I will review it this weekend.

No rush at all, enjoy kubecon!

@dseapy how is concurrency on the gRPC server it is similar to the HTTP server? Do we need to handle in function or sink level?

Concurrency is handled by grpc-java, specifically the executor passed to the serverbuilder.  Currently this PR doesn't override the default executor used by the grpc-java serverbuilder, so a cached thread pool is used.  There is a lot of discussion about which executor is optimal (ref: https://github.com/grpc/grpc-java/issues/7381), for which there seems to be varying opinions/trade-offs.

@dseapy how is concurrency on the gRPC server it is similar to the HTTP server? Do we need to handle in function or sink level?

Concurrency is handled by grpc-java, specifically the executor passed to the serverbuilder. Currently this PR doesn't override the default executor used by the grpc-java serverbuilder, so a cached thread pool is used. There is a lot of discussion about which executor is optimal (ref: grpc/grpc-java#7381), for which there seems to be varying opinions/trade-offs.

There are also FunctionServer and SinkServer constructors (i.e. https://github.com/numaproj/numaflow-java/pull/1/files#diff-b46ed048cbc73098c1fe762914bbfba6e1558503a24752f4c3c990647da1687fR45) for overriding the default executor by providing a custom ServerBuilder if someone using the sdk wants to pass in their own.


Screen emulation not working for Ripple

Root cause:
console.log(screen.height);
screen.__defineGetter__("height", function () { return 2; });
console.log(screen.height);
//Expected to be 2, but returns the original value.

See this issue for more info: https://github.com/blackberry/Ripple-UI/issues/258 I've closed that issue since all work will need to be done here.

The issue I mentioned in 258 also exists in the chrome extension.

@pocopina I've just tried this again in the Chrome Extension and could not reproduce the problem. I looked at your screen shot and it shows the standalone product. Do you have a site or some sample code where this does not work for you in the Chrome Extension? I'll investigate ASAP.
Thanks,
Dan.

Check out http://andybright.ws/mobile/size.html - this is the page I'm getting different values with.
In particular take a look at what happens when you change the viewport meta from initial-width=1 with target-densitydpi=device-dpi.
I also think that the Blackberry sim for the 9900 is reporting the wrong value for devicePixelRatio, I'm expecting 1.5 based on the window width value...With my url above the iPhone 4 reports Window: 320x460 and devicePixelRatio 2 - which makes sense.

Hi @pocopina, I just tried your link and this is what I got: http://dl.dropbox.com/u/14172300/Screen shot 2012-01-10 at 12.04.57 PM.png Is this not what you're getting?
We don't currently support the viewport meta tag, but I'll open up a separate issue for a feature request to support the viewport meta tag.

I do get that. The lack of viewport support explains it. +1 for the feature request.