[RFC] Rethink our BS 3/4 build system

Motivation
Based on discussions related to refactoring component to outerHTML semantics - as a stepping stone to later do a full migration to Glimmer components - it became clear that outerHTML semantics cause even more code duplication as before. We now have to have many more separate BS3/4 templates, as the elements root element cannot be tweaked anymore by the backing class (no more @classNames, @classNameBindings decorators), for slight difference in class names for example.
Also the often useless, but for our current build system required re-exports by bs3/4 classes are annoying.
Detailed Design
We will introduce macro helpers, that allow us to create (JS/Template) code that differs based on the configured Bootstrap version. These helpers would look like (and initially be) regular helpers, but provide the possibility to be compiled away at build time, so to not have any runtime performance/bundle size overhead. This approach is inspired by established patterns in the Ember ecosystem, like:

@ember/debug / @glimmer/env
ember-composability-helpers
embroider macros

JS
A hasBootstrapVersion util function is introduced:
import { hasBootstrapVersion } from 'ember-bootstrap/compatibility-helpers';

if (hasBootstrapVersion(3)) {
  // do something BS3 specific
}

By a custom Babel plugin, this could be compiled down to this when using BS3:
if (true) {
  // do something BS3 specific
}

For BS4:
if (false) {
  // do something BS3 specific
}

This would later be eliminated completely by terser as part of Ember's minification process for production builds, as this will be recognized as deed code. Just as @ember/debug stuff works.
Handlebars
A hasBootstrapVersion helper is introduced:

With a custom AST transform, this could be compiled down to this when using BS3:

Broccoli tree magic
Our current system of having common/ base / bs3 / bs4 trees could be extended for a transition period, and later eventually removed completely.
By using the above helpers, the need to have BS3/Bs4 specific classes/templates is reduced. A lot of the templates will be moved to the common tree.
For classes, we can introduce an equivalent common tree, that get's merged with the bs3/ bs4 tree at build time. So all components that don't need BS specific code (except for the util introduced above) can be moved to common, eliminating the need for re-exports from base.
This allows to migrate components step by step. Eventually (hopefully) all code (js/templates) will land in the common tree. This would allow us to completely remove the existing tree magic including the common parent folder and treat the addon code just like any other addon. Also the move to build-time helpers and away from broccoli tree magic seems to align well with embroider's philosophy, easing the eventual migration to a native embroider addon when replacing our custom "macros" with those of @ember/macros.
Transition period

Wait for the current outerHTML migrations to settle, to not cause unnecessary churn / merge conflicts
provide the helpers with a basic runtime implementation
add the common tree build changes (see above)
start refactoring existing code to use the macro helpers, moving files to common
refactor the helpers to build time AST transforms
remove the broccoli tree magic when all component code is in common

Open questions

When should we plan do this transition? Before cutting a v4 release, or step by step during the v4.x period?

Thanks a lot for this awesome RFC. I think this is the right direction to move.

Also the move to build-time helpers and away from broccoli tree magic seems to align well with embroider's philosophy, easing the eventual migration to a native embroider addon when replacing our custom "macros" with those of @ember/macros.

We might be able to build our custom macros on top of the existing @embroider/macros right now. They claim to be compatible with both Ember CLI and Embroider builds:

This package works in both Embroider builds and normal ember-cli builds, so that addon authors can switch to this newer pattern without disruption.

Their API is a little bit different from what is proposed in v2 Addon Format (Embroider compatibilty) RFC. The most importance difference for our use case that I have noticed so far is the handlebars condition handling. @embroider/macros provide a {{macroIf}} helper while the RFC proposes a {{macroCondition}} helper that should be used together with native {{if}}:
{{! @embroider/macros }}
{{#macroIf (macroGetOwnConfig "shouldUseThing") }}
  <Thing />
{{else}}
  <OtherThing />
{{/macroIf}}

{{! RFC }}
{{#if (macroCondition (macroGetOwnConfig "shouldUseThing")) }}
  <Thing />
{{else}}
  <OtherThing />
{{/if}}

I don't think this would be a blocker for us. If I got it right, you are suggesting to use domain-specific macros (bootstrapVersion) in our code. So only the AST transform of that macros would be affected by this syntax change.

When should we plan do this transition? Before cutting a v4 release, or step by step during the v4.x period?

I don't see a risk of breaking changes here. It might be useful to enable us to do it sooner than later cause it may speed up development. But I don't think this should be a blocker for v4 release.

Motivation

While I agree with all points listed in this chapter, it's missing an important one in my opinion. Let me cite the Embroider RFC:

While we guarantee that branch elimination will run in production builds, we don't guarantee that in development. The macros are designed so that in development they may have runtime implementations. This is powerful because it lets us produce a single build that works in multiple contexts.

This could be very useful for us for two scenarios:

We could run the tests for Bootstrap 3 and Bootstrap 4 against the same build, which reduces the testing costs.
We could switch between the Bootstrap versions at run-time, which might be a very helpful feature for the docs.

We might be able to build our custom macros on top of the existing @embroider/macros

That seems like a very nice approach!

Their API is a little bit different from what is proposed in v2 Addon Format (Embroider compatibilty) RFC.

Yes, but it seems the RFC API is the more recent, and the existing macros will be updated: https://github.com/embroider-build/embroider/pull/344
That would be even better for us, as we don't need that special macroIf, so we can indeed create an AST transform that translates our domain specific has-bootstrap-version to those macros pretty easily I hope.
Or we drop our own helpers and just use the embroider ones, after all it's just a private implementation detail. It does make the code a bit more verbose though...

Or we drop our own helpers and just use the embroider ones, after all it's just a private implementation detail. It does make the code a bit more verbose though...

Maybe we do a combination of both? We keep a custom helper hasBootstrapVersion and use that one together with macroCondition?
{{#if (macroCondition (hasBootstrapVersion 3)) }}
  <Thing />
{{else}}
  <OtherThing />
{{/if}}

I'm not sure if we would even need a macro condition in that case or this would be supported out of the box as long as the truth status of hasBootstrapVersion could be determined statically.

The Embroider RFC includes a paragraph why they propose an explicit macroCondition function and helper:

Q: Why not allow if (getOwnConfig().thing) instead of if (macroCondition(getOwnConfig().thing))?
A: Because we don't want to leave any confusion over whether branch elimination will be done. Boolean expressions that include a macro like getOwnConfig alongside other runtime-only values are perfectly legal. But those expressions would not allow branch elimination. The ambiguity means you might accidentally defeat branch elimination without noticing. macroCondition is intended to signal -- both to the reader and to the compiler -- that this place absolutely must do branch elimination. It's an error if we can't eliminate one branch or the other.

That's a strong argument that we should consider carefully in my opinion.

@jelhan picking up your suggestion here:
I see your point, and indeed I also realized that the way this is written is not so favorable for eventually introducing BS5 flavors of the components. Your suggestion is quite verbose though...
What about introducing a new helper, somewhat like a switch statement (vs. long chains of "ifs"):
class="... {{if this.showContent (switch-bootstrap 4="show" 3="in")}}"

This could as well be transformed by an AST transform to a static value.

What about introducing a new helper, somewhat like a switch statement (vs. long chains of "ifs"):
class="... {{if this.showContent (switch-bootstrap 4="show" 3="in")}}"

This could as well be transformed by an AST transform to a static value.

I see the point that the solution I had proposed here is very verbose. But I'm not convinced by the switch based approach to be honest:

It does not support block-mode. Or did I missed something?
How to express if a class is not needed for all Bootstrap versions? Would we need an additional {{has-bootstrap-version}} helper? Or must {{switch-bootstrap}} support branch elimination if it does not have a value for used bootstrap version?
It couldn't be used together with macroCondition cause it does not return a boolean value. As said in my last comment in this issue I see strong arguments to also use macroCondition in our version-specific build system.
It would be very different from established patterns in the ember community. I fear we would just replace one entrance barrier for new contributors by another.
A named argument that is only a number looks uncommon to me. Actually my first reaction was: Is this even valid syntax for glimmer templates?

I'm leaning more towards a solution that is directly based on the macro system proposed in Embroider RFC. We may could rewrite the example discussed like this:
class={{bs-join
  (if this.collapse "collapse")
  (if this.collapsing "collapsing")
  (if (macroCondition (has-bootstrap-version 3)) (if this.showContent "in"))
  (if (macroCondition (has-bootstrap-version 4)) (if this.showContent "show"))
}}

This assumes that other template helpers could be used together with macroCondition as long as the value could be determined statically. I'm not sure if that assumption is correct. I raised the question here: https://github.com/emberjs/rfcs/pull/507/files#r379162904 But even if not an AST transform could be used to support such an authoring format.
I also introduce a {{bs-join}} helper in that snippet. It should help to format the code nicely without introducing unnecessary whitespaces. It would join all it's positional arguments as long as they are not empty with a whitespace as a separator. So something like this:
import { helper } from "@ember/component/helper";
import { getConfig } from "@ember/macros";

function bsJoin(items) {
  return items.filter((_) => _).join(' ');
}

export default helper(bsJoin);

I also think that the order in nested {{if}} is critical as soon as it comes to branch elimination. In that case the branch elimination must be done at the most outer {{if}} cause otherwise parts of the statement would remain. E.g. {{if this.showContent (if (has-bootstrap-version 3) "in")}} would be after branch elimination {{if this.showContent undefined}}. Or did I missed something? This is important as soon as we deal with scenarios in which a conditional class is only required for a specific bootstrap version but not at all for the other.

It does not support block-mode. Or did I missed something?

Yes, but I did not suggest this as a replacement for has-bootstrap-version, but as syntactic sugar basically, for the very common use case of having two different class names.

It couldn't be used together with macroCondition cause it does not return a boolean value. As said in my last comment in this issue I see strong arguments to also use macroCondition in our version-specific build system.

Tbh, I don't really understand why we should use macroCondition. In the description you quoted it was stated this is needed to make sure that it can be statically analyzed, while getOwnConfig allows also for runtime semantics. That's at least how I understand it. But we don't use getOwnConfig. So we can make has-bootstrap-version always fail the build if we cannot eliminate it at build time.

It would be very different from established patterns in the ember community. I fear we would just replace one entrance barrier for new contributors by another.

Really? I mean it's a helper, just as has-bootstrap-version, and you do have to understand what it does in any case. But how is it more difficult to understand than any other?

A named argument that is only a number looks uncommon to me. Actually my first reaction was: Is this even valid syntax for glimmer templates?

Yeah, I was also unsure if that actually is valid. If not we can turn it into (switch-bootstrap bs4="show" bs3="in")

I also introduce a {{bs-join}} helper in that snippet.

I see, and personally I also feel some sort of pain when seeing double or trailing whitespace in a class attribute. 😝 But I think this is orthogonal to the other discussed topics, and also not a build-time concern.  And also it could qualify as...

It would be very different from established patterns in the ember community.

:wink: But I am open to this idea. But again, let's treat this separately for now.

But I won't insist on using that construct...
I was just worried about the readability of the original example:
{{if this.showContent (if (has-bootstrap-version 4) "show") (if (has-bootstrap-version 3) "in")}}"

We could also settle this discussion by committing to not use the else-part together with has-bootstrap-version.
As I said I just don't really see the point of using macroCondition.

Tbh, I don't really understand why we should use macroCondition. In the description you quoted it was stated this is needed to make sure that it can be statically analyzed, while getOwnConfig allows also for runtime semantics. That's at least how I understand it. But we don't use getOwnConfig. So we can make has-bootstrap-version always fail the build if we cannot eliminate it at build time.

As I said I just don't really see the point of using macroCondition.

For me the important sentence in the RFC about macroCondition is the following one:

macroCondition is intended to signal -- both to the reader and to the compiler -- that this place absolutely must do branch elimination.

So using it is mostly about clarity of the code not that much about functionality.
Of course {{has-bootstrap-version}} or {{switch-bootstrap}} could also both do branch elimination. They would signal the same in our codebase if they guarantee to either do branch elimination or throw at build-time. But I fear that the signal would not be that helpful to most readers of our source code cause it would require deep knowledge about Ember Bootstrap internals as it would be an ember-bootstrap-specific solution.
I expect the macro system to become a widely used pattern in Ember addons soon after being shipped in a stable release. I assume that most experienced Ember developers will have at least a rough understanding what macroCondition guarantees. I think the main take away for most Ember developers will be:

You should use macroCondition to strip unnecessary code at build time.
Not using it can cause performance issues.

Assuming that these assumptions are right I fear that a custom build system which is not using macroCondition could cause a lot of confusion. Beside adding to the learning curve for first time contributors I'm afraid that it may lead to wrong assumptions about the code quality of Ember Bootstrap and it's build size / performance impact.

This has now been implemented by #1023, although not with custom helpers anymore, but plain @embroider/macros.


Improve the docs for the site #trivial

Makes the inline docs consistent 👍

          1 Warning

:warning:
Tests were not updated

  Generated by :no_entry_sign: danger


Fixed PlatformMgr().Shutdown() for NRF53

Linked to my case on the DevZone https://devzone.nordicsemi.com/f/nordic-q-a/108101/device-crash-when-doing-a-software-reset
When calling the function PlatformMgr().Shutdown(); (intentionally, or through a factory reset) a Hard Fault happens because the communication is broken/not in sync anymore between the App and Net cores of the NRF5340. My fix proposes to first reset the network core then reset the application core.

Hello @LuDuda, thanks for the feedback.
That's indeed on a custom board, but I double checked and the nrf5340_cpunet_reset.c is included properly in the CMakelists.txt. My board was derived from the nRF5340DK to avoid this kind of issues.

Hello @LuDuda, thanks for the feedback. That's indeed on a custom board, but I double checked and the nrf5340_cpunet_reset.c is included properly in the CMakelists.txt. My board was derived from the nRF5340DK to avoid this kind of issues.

@bdlr2 Have you been able to check the newest SDK if the problem still exists? As i mentioned above, I would like to fix this issue outside of the Matter code.

@LuDuda no, I didn't check yet.


ci: automatically deploy (upload + publish) to webstore after version release

fix #9 (adopt solution 2)
resolve #13
Necessary secrets have been added to repo settings:

Since I modified the extension description the other day, the extension is under review. We need to wait until that review process finishes then test this new workflow.


npm run dev gives error

Laravel Mix Version: #.#.# (npm list --depth=0)
E:\xampp\htdocs\kngtravels>npm list --depth=0
E:\xampp\htdocs\kngtravels
+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>+--<EMAIL_ADDRESS>`--<EMAIL_ADDRESS>Node Version (node -v): v9.0.0
NPM Version (npm -v): 5.5.1
OS: Windows 7

Description:
E:\xampp\htdocs\kngtravels>npm run dev

@ dev E:\xampp\htdocs\kngtravels
npm run development

@ development E:\xampp\htdocs\kngtravels
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress
--hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

The system cannot find the path specified.
events.js:193
throw er; // Unhandled 'error' event
^
Error: spawn node_modules\webpack\bin\webpack.js ENOENT
at notFoundError (E:\xampp\htdocs\kngtravels\node_modules\cross-spawn\lib\en
oent.js:11:11)
at verifyENOENT (E:\xampp\htdocs\kngtravels\node_modules\cross-spawn\lib\eno
ent.js:46:16)
at ChildProcess.cp.emit (E:\xampp\htdocs\kngtravels\node_modules\cross-spawn
\lib\enoent.js:33:19)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ development: cross-env NODE_ENV=development node_modules/webpack/bin /webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/we bpack.config.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional log
ging output above.
npm ERR!      C:\Users\welcome\AppData\Roaming\npm-cache_logs\2017-11-09T17_18_5
3_222Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ dev: npm run development
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ dev script.
npm ERR! This is probably not a problem with npm. There is likely additional log
ging output above.
npm ERR!      C:\Users\welcome\AppData\Roaming\npm-cache_logs\2017-11-09T17_18_5
3_263Z-debug.log
Steps To Reproduce:
this is my package.json file
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.16.2",
"bootstrap-sass": "^3.3.7",
"cross-env": "^5.1.1",
"jquery": "^3.1.1",
"laravel-mix": "^1.0",
"lodash": "^4.17.4",
"vue": "^2.1.10"
},
"dependencies": {
"node-sass": "^4.6.0"
}
}

Your npm list --depth=0 result does not include<EMAIL_ADDRESS>Anyway it seems to be a windows os specific process.

I am running into the same problem. Here is the error code:
`
C:\xampp\htdocs\mvchorse\environmental>npm run dev

> @ dev C:\xampp\htdocs\mvchorse\environmental
> npm run development

> @ development C:\xampp\htdocs\mvchorse\environmental
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js

The system cannot find the path specified.
events.js:193
      throw er; // Unhandled 'error' event
      ^

Error: spawn node_modules\webpack\bin\webpack.js ENOENT
    at notFoundError (C:\xampp\htdocs\mvchorse\environmental\node_modules\cross-spawn\lib\enoent.js:11:11)
    at verifyENOENT (C:\xampp\htdocs\mvchorse\environmental\node_modules\cross-spawn\lib\enoent.js:46:16)
    at ChildProcess.cp.emit (C:\xampp\htdocs\mvchorse\environmental\node_modules\cross-spawn\lib\enoent.js:33:19)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ development script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\mike\AppData\Roaming\npm-cache\_logs\2017-11-14T13_35_04_647Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ dev: `npm run development`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\mike\AppData\Roaming\npm-cache\_logs\2017-11-14T13_35_04_787Z-debug.log

`

I was having an issue with node-sass not installing so I deleted the node_modules directory and reinstalled. I am going to try and manually add the laravel-mix directory to the node_modules folder and I will let you know if that solves it.

I found a solution.
npm install node-sass --nodedir=/usr/local
Thanks to @HiMyNameIsIlNano from his posting on: https://github.com/sass/node-sass/issues/1911

make sure that you have webpack installed
run webpack -v
if not installed
run sudo npm install webpack --save

NPM recommends against using sudo to install local packages.

make sure that you have webpack installed
run webpack -v
if not installed
run sudo npm install webpack --save

You are a life saver bro!

For install npx:
npm install -g npx


Fix a repeated term in the storage docs. [phab:D888]

Created by fromberger at 2016-05-14 16:48:35:
Reported by Evan Hughes.

jdennett accepted this revision at 2016-05-16 01:39:08

fromberger closed via commit 892fdb3d824b8b6ad700ed38386f01100eb3707f at 2016-05-16 04:42:21


Use of loopback address as upstream DNS server fails

Hi @m13253 ,
I have noticed that using loopback address as DNS upstream server does not work with current version of doh-server (2.2.4).
DOH-Server Config:
072e6a06e523:/server# cat doh-server.conf
listen = [ ":8053" ]
local_addr = ""
cert = ""
key = ""
path = "/getnsrecord"
upstream = [ "udp:<IP_ADDRESS>:53" ]
timeout = 10
tries = 3
verbose = true
log_guessed_client_ip = false

Curl Test Logs:
072e6a06e523:/# curl -I 'http://localhost:8053/getnsrecord?name=google.com&type=A'
HTTP/1.1 503 Service Unavailable
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, HEAD, OPTIONS, POST
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 3600
Content-Type: application/json; charset=UTF-8
Server: DNS-over-HTTPS/2.2.4 (+https://github.com/m13253/dns-over-https)
X-Powered-By: DNS-over-HTTPS/2.2.4 (+https://github.com/m13253/dns-over-https)
Date: Sat, 26 Dec 2020 05:41:50 GMT
Content-Length: 114

DOH-Server console logs:
072e6a06e523:/server#  /server/doh-server -conf /server/doh-server.conf
2020/12/26 05:41:50 DNS error from upstream udp:<IP_ADDRESS>:53: read udp <IP_ADDRESS>:53131-><IP_ADDRESS>:53: read: connection refused
2020/12/26 05:41:50 DNS error from upstream udp:<IP_ADDRESS>:53: read udp <IP_ADDRESS>:55126-><IP_ADDRESS>:53: read: connection refused
2020/12/26 05:41:50 DNS error from upstream udp:<IP_ADDRESS>:53: read udp <IP_ADDRESS>:55747-><IP_ADDRESS>:53: read: connection refused
<IP_ADDRESS> - - [26/Dec/2020:05:41:50 +0000] "HEAD /getnsrecord?name=google.com&type=A HTTP/1.1" 503 114 "" "curl/7.64.0"

Simple nslookup test using loopback address was successful:
072e6a06e523:/server# nslookup google.com <IP_ADDRESS>
Server:    <IP_ADDRESS>
Address 1: <IP_ADDRESS> localhost

Name:      google.com
Address 1: <IP_ADDRESS>
Address 2: 2607:f8b0:4005:807::200e

Please let me know if this is expected behavior or there is something that needs to be done to allow use of loopback address as upstream DNS server in DOH configuration.
Steps to reproduce

Run docker command to launch doh-server container

docker run -itd \
  --name doh-server \
  -e UPSTREAM_DNS_SERVER='udp:<IP_ADDRESS>:53' \
  -e DEBUG=1 \
  -e DOH_SERVER_VERBOSE=true \
  satishweb/doh-server \
sleep 36000

Start doh-server inside the container in console mode

docker exec -it doh-server /server/doh-server -conf /server/doh-server.conf

Add curl and execute curl test command

docker exec -it doh-server apk add curl
docker exec -it doh-server curl -I 'localhost:8053/getnsrecord?name=google.com&type=A'

To open shell: docker exec -it doh-server bash
Cleanup: docker rm -f doh-server

This was discovered as part of testing done for issue: https://github.com/satishweb/docker-doh/issues/1

Thank you for the report.
This problem is very weird because I also use localhost upstream in my own deployment.
Have you tried this configuration outside Docker?

It works without docker.
Need some help on debugging doh-server inside docker container to find the root cause. We need more logs than just read udp <IP_ADDRESS>:53131-><IP_ADDRESS>:53: read: connection refused.

It works without docker.

I believe there must be something wrong with the docker environment. I mean, I also run doh-server inside docker and it was fine.

Need some help on debugging doh-server inside docker container to find the root cause. We need more logs than just read udp <IP_ADDRESS>:53131-><IP_ADDRESS>:53: read: connection refused.

I would like to provide any help if I can. However currently the only thing I know is that the sendto system call failed with ECONNREFUSED. This is probably because the Linux network stack received a packet of icmp-port-unreachable.
I suggest you check your iptables and/or nftables settings, use ss -lunp to obtain a list of UDP listeners, and try to obtain a packat capture with tcpdump.

I ran into this as well, without any docker involvement. The local DNS server is dnsmasq. My workaround is to use tcp:<IP_ADDRESS>:53 as the only item in the upstream list, but that seems slightly heavy-handed so a real solution would be nice too.
I can try for a packet capture if that is the next step.

I tried your configuration and cannot reproduce.
It would be better if we can have a packet capture.

I tried your configuration and cannot reproduce.
It would be better if we can have a packet capture.

@tycho Was this fixed for you or are you still with the workaround solution? I was not able to reproduce this issue on my system. It happens only inside the docker container for me.

I just built and tested the latest git revision and it seems to work at the moment, without the TCP workaround.

Sounds good. I am going to mark this issue as resolved for now.


Anexia Provider: add support for named VM templates

What this PR does / why we need it:
This PR adds support for named templates. Template IDs may break over time when a new build is released. With named templates the latest build can be selected without specifying the Template ID.
What type of PR is this?
/kind feature
/kind documentation
/kind api-change

Does this PR introduce a user-facing change? Then add your Release Note here:

Anexia Provider: Optionally configure "named templates" instead of (less stable) "template identifiers".

Documentation:

https://github.com/kubermatic/machine-controller/blob/main/docs/anexia.md

/ok-to-test
/assign @ahmedwaleedmalik

/test pull-machine-controller-e2e-anexia

pull-machine-controller-e2e-anexia

@marioreggiori seems like flatcar on v1.26.0 is not working maybe.

pull-machine-controller-e2e-anexia

@marioreggiori seems like flatcar on v1.26.0 is not working maybe.

The installed containerd version on our Flatcar nodes is v1.5.9, but Kubernetes v1.26 requires at least v1.6.0. Not sure yet if this is the only incompatibility.. but the failing Kubernetes v1.26 tests should be unrelated to the changes of this PR.

My advise would be to get the flatcar issue fixed as well, in a separate PR, otherwise we'd end up with broken tests for Anexia.

fixing our template build automation, so we are going to have recent flatcar images in the near future
Your CI probably still uses a hard-coded template ID though, maybe change that to the named template soon :)

/override pull-machine-controller-e2e-anexia


solved Segment-Status issue

This PR is not properly built, this has some issues with HEAD.
A new PR will be created for the issue.
Need to close this PR.


Added Endless Runner game

Adaption of the Endless Runner concept for OpenEarable.
Score increases as the accelerometer identifies a running/jogging motion.
Challenges are thrown at the player with individual sounds.
Currently there are two challenges: 'Jump' and 'Push-Up'.
Challenges increase and challenge timers decrease with a higher score.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[建议] 添加密码模式的数字输入

OK, It will be better to write your issue/comment in English, so more people can understand you.
And this means that more people can help you or benefit from your issue/comment.
Thanks a lot.


[PROD] DREF appearing in 2 different Regional pages

Issue
The DREF MDRHN022 - Honduras - Fire is appearing in two different Emergency pages (Africa and Americas).
Steps to reproduce
https://go.ifrc.org/regions/1/operations
https://go.ifrc.org/regions/0/operations

Expected behaviour
This DREF is for Honduras, so it should only be displayed in the Americas Regional page, not the Africa one.
@tovari @szabozoltan69

Little Update: Seems like the issue is that the filter for Africa Regional page is not working (all other Regional pages look okay!)

The Africa Regional page is actually showing ALL active operations (108 as of today)
@tovari @szabozoltan69

It seems, the Africa page still not filter on the regional appeals:

@tovari It's fixed now on staging!

Looking good from my side in staging!
@frozenhelium @tovari


Update alleycats-core, cats-core, cats-free, ... to 2.0.0-SNAPSHOT

Updates

org.typelevel:alleycats-core
org.typelevel:cats-core
org.typelevel:cats-free
org.typelevel:cats-laws

from 2.0.0-M4-47-g6d29f7b-SNAPSHOT to 2.0.0-SNAPSHOT.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention @scala-steward in the comments below.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [{ groupId = "org.typelevel" }]

labels: semver-pre-release

This is block by missing dependency for scala 2.13
https://mvnrepository.com/artifact/org.scalameta/mdoc
https://github.com/scalameta/mdoc/pull/173


Update the storage path

Thanks for the PR Shavit.
I agree, looking at these docs, that the path does appear to be prefixed with upload/
https://cloud.google.com/storage/docs/uploading-objects#storage-upload-object-nodejs
shows:
curl -X POST --data-binary @[OBJECT] \
    -H "Authorization: Bearer [OAUTH2_TOKEN]" \
    -H "Content-Type: [OBJECT_CONTENT_TYPE]" \
    "https://www.googleapis.com/upload/storage/v1/b/[BUCKET_NAME]/o?uploadType=media&name=[OBJECT_NAME]"

Shouldn't the URL be updated in https://github.com/googleapis/elixir-google-api/blob/master/clients/storage/lib/google_api/storage/v1/api/objects.ex#L432
This seems related to https://github.com/googleapis/elixir-google-api/issues/972


RuntimeError: stack expects a non-empty TensorList

Got this error on running on the images folder
Traceback (most recent call last):
File "test.py", line 94, in
test_miou, test_fb_iou = test(model, dataloader_test, args.nshot)
File "test.py", line 44, in test
average_meter.write_result('Test', 0)
File "/content/Volumetric-Aggregation-Transformer/common/logger.py", line 51, in write_result
loss_buf = torch.stack(self.loss_buf)
RuntimeError: stack expects a non-empty TensorList

Thank you for your interest in our research.
Can you please give us more detail? A screenshot or error message you received will help us a lot.

Actually, I have resolved this issue, further, can you tell me how to train and test on custom Dataset and also your training procedures.

Actually, I have resolved this issue, further, can you tell me how to train and test on custom Dataset and also your training procedures.

@Usama3059 May I know how did you solve the issue?


#129 Ensure that "package_data" are included

Based on your question in https://stackoverflow.com/questions/38384677/python-setup-py-build-ignoring-some-files

Current coverage is 81.67% (diff: 100%)

Merging #139 into master will not change coverage

@@             master       #139   diff @@
==========================================
  Files            23         23
  Lines           906        906
  Methods           0          0
  Messages          0          0
  Branches         71         71
==========================================
  Hits            740        740
  Misses          145        145
  Partials         21         21

Powered by Codecov. Last update 8401c3a...0c154cc

Thanks a lot for the pull request! Would you mind explaining why did you add the zip_safe=False option?

Well, now I see that if you don't explicitly state a value then setuptools does some weird analysis to determine it:
http://peak.telecommunity.com/DevCenter/setuptools#setting-the-zip-safe-flag
So I'm merging this PR as is. Thanks again!

Would you mind explaining why did you add the zip_safe=False option?

Unless you are sure you could accommodate with accessing package data eventually in a zip,  always use zip_safe=False to guarantee that the as-installed package will be unzipped (which is kinda of a moot point when using wheels that are always unzipped, but old habit die hard and eggs are still possible)


For some reason these imports are elided on read the docs

I mean, they are inferable by the reader, but it looks like they are intended to be visible in the finished product and getting eaten somewhere along the publication tool chain?

I would also say that this tutorial reads a little bit bouncier between levels of technical explanation than one might hope.  I think the call out to the reader to supply their own loss function is more of a math textbook kind of exercise left to the reader than something that belongs in explanatory documentation.  The bit about BatchNormalization being dependent on batch size and therefore not properly vectorizable also seems like a theoretical concern that should be left out or handled differently.
https://github.com/google/flax/blob/514c11199152fab44de6002983f44e6b49aa0622/docs/guides/flax_fundamentals/state_params.rst?plain=1#L12

The Sphinx directive testsetup is purposely not shown, so the imports not being shown is as intended.


basePath configuration support in Docket

This pull request allows the configuration of the Swagger basePath from the Docket, e.g:
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .basePath("/myapp")

The project tests pass but there aren't additional tests included in this issue. To check it just generate a new project and add the basePath() info in the Docket. I have checked manually that not adding the basePath() generates "/" as before.
Background context: there was no straightforward or working way to configure the Swagger basePath.
The associated issue is: https://github.com/springfox/springfox/issues/2817

Thanks for the PR! This is solved using PathProvider implementation. What is the problem we're trying to solve here?

@dilipkrish This solution would have been intuitive.
Where can I find documentation how to apply the PathProvider?
We are using springfox-swagger2 2.9.2

@dilipkrish it's not the same thing. Sure, you can add stuff using PathProvider, but you can't substract it. Like let's say you have swagger docs under
localhost/swagger/swagger-ui.html
The base path would be equal to /swagger without any additional configuration. Now, you can make the resource path more specific (e.g.  /swagger/foo) with the help of PathProvider but from what I know, you can't make it more generic, that is just /.
To accomplish that I had to override ObjectMapper bean where if the passed argument is an instance of Swagger the basePath is set to /.
If this PR were to be merged I wouldn't have to use such an unintuitive hack.

@dilipkrish Could you reconsider merging this?

@codependent there are conflicts tho, will you resolve them? also, there are quite a lot of formatting changes, would be nice to revert them (in order to preserve the projects conventions)


Concurrent Modification Exception

Logcat output:
FATAL EXCEPTION: pool-2-thread-1 Process: ir.sobhe.menbar, PID: 6187 java.util.ConcurrentModificationException at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573) at com.liulishuo.filedownloader.FileDownloadTask$FileDownloadInternalLis.callback(FileDownloadTask.java:213) at com.liulishuo.filedownloader.event.DownloadEventSampleListener.callback(DownloadEventSampleListener.java:36) at com.liulishuo.filedownloader.event.DownloadEventPoolImpl.trigger(DownloadEventPoolImpl.java:192) at com.liulishuo.filedownloader.event.DownloadEventPoolImpl.publish(DownloadEventPoolImpl.java:128) at com.liulishuo.filedownloader.FileDownloadEventPool.publish(FileDownloadEventPool.java:111) at com.liulishuo.filedownloader.event.DownloadEventPoolImpl$2.run(DownloadEventPoolImpl.java:159) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818)

Thank you for your feedback, let me check.

Sorry, Could you tell me which version of Filedownloader you are using?

I find it, I will fix it in the next version. Thank you so much.

@Jacksgong Thanks for your quick response.


Handle failed deployments

At present if you deploy something that ends up in CrashLoopBackOff FTL will wait forever. We need to be able to handle failed deployments without hanging.

IIRC this used to work prior to the change to a pull model. As part of the runner state machine, there were timeouts for readiness after which a runner was rejected by the controller and a new runner scheduled.

The runners time out and restart AFAIK, the issue is that if the new runner fails as well the 'deploy' operation just hangs. At some point the controller needs to decide that the deployment just isn't working and abort, keeping the old deployment if it exists.

Ah, I see what you're saying 👍


Create a task manager to keep track of all the cancellation tokens in a Dict<string, CancellationTokenSource>, clean it up on game exit

If cancellation token sources are not kept track of and cts's are not passed in the first place, race conditions will occur when not expected.

Done


Is BUILD_DEB_PACKAGE working

I tried with -DBUILD_DEB_PACKAGE=ON but it didn't created a deb package, am I doing something wrong ?

That feature is not finished yet.
Did you try to execute the make package command or build the PACKAGE.vcxproj target ?

make package works, need this so I can try arm version which I do cross compile. Put that make package is required in readme files, not everyone familiar with cmake.


5.3 support

Current coverage is 47.07% (diff: 100%)

Merging #138 into 2.x will not change coverage

@@                2.x       #138   diff @@
==========================================
  Files            47         47
  Lines           820        820
  Methods         190        190
  Messages          0          0
  Branches          0          0
==========================================
  Hits            386        386
  Misses          434        434
  Partials          0          0

Powered by Codecov. Last update ec27a0b...2ae928b


pfSense + ctrld + VIP Interface

Finding that when using a .toml file with ctrld running under FreeBSD/pfSense, it doesn't properly recognise the VIP interfaces (using CARP).
I can hard-code the listener with the VIP address and ctrld will launch provided the VIP interface is up on that host.  Works great on the Primary (active) node.
I am using a failover cluster and ctrld won't start on the secondary node unless the CARP has been failed over to it first (making the VIP address active on that host) - irt seems like ctrld enumerates active interfaces and will only bind to interfaces that are active?

Can you post a debug log of it failing to start? Launch with a -vv flag.


Fix some of the cabinets' fully qualified names not being properly capitalized/spelled/punctuated

For example, right now one cabinet is "Jr pac man" When it should probably be "Junior Pac-Man" (or "Pac-Man Jr.", not really sure what the cabinet says)
Will probably just change in the raw data file and re-run it

Fixed, pushed


Matchmaking fails in IE and Edge.

match.js doesn't run in IE and Edge.
I believe this is due to JQuery variables.

Fixed.
In detail, this error was caused by our improper use of the append and prepend JQuery functions.
We were using it like this (Chrome and Firefox had no issue with this):
element.append(content);
The issue was resolved by switching to:
$(element).append(content);


update imagefeature in rbd storageclass

update the image feature from layering to layering,exclusive-lock,object-map,fast-diff as this is required to enable the DR workflow on the rbd images created by this storageclass, and also it provides more crash consistent rbd snapshots.
PS: Minimum kernel version required to map images
created from this storageclass is 8.2+
Signed-off-by: Madhu Rajanna<EMAIL_ADDRESS>

/hold

/assign @jarrpa  @ShyamsundarR @idryomov

/assign @jarrpa
/assign @ShyamsundarR
/assign @idryomov

What about deep-flatten? With the RHEL 7 dependency gone, is there a reason to not enable it by default?

@idryomov Thanks for the review. These are the image features we added for the DR use case. what advantages we will get if we enable deep flatten on the rbd images we create for the PVC both for DR and Non-DR workflow? will there be any problems if we enable deep-flatten by default in anycases?

What about deep-flatten? With the RHEL 7 dependency gone, is there a reason to not enable it by default?

@idryomov Thanks for the review. These are the image features we added for the DR use case. what advantages we will get if we enable deep flatten on the rbd images we create for the PVC both for DR and Non-DR workflow? will there be any problems if we enable deep-flatten by default in anycases?

@idryomov deep flatten is not yet supported in cephcsi https://github.com/ceph/ceph-csi/blob/devel/internal/rbd/rbd_util.go#L193-L212. based on the input I will send PR to consider deep-flatten in cephcsi

will there be any problems if we enable deep-flatten by default in anycases (for snapshots/clones etc)?

No, it's been enabled by default in Ceph for years.

While we are at it, is there a reason we are spelling out image features at all?  layering,exclusive-lock,object-map,fast-diff,deep-flatten is actually what librbd has defaulted to for a long time now.  Now that we aren't constrained by an old kernel, let's consider leaving it up for librbd and/or Ceph CSI users and not define any features in the default storage class.

While we are at it, is there a reason we are spelling out image features at all? layering,exclusive-lock,object-map,fast-diff,deep-flatten is actually what librbd has defaulted to for a long time now. Now that we aren't constrained by an old kernel, let's consider leaving it up for librbd and/or Ceph CSI users and not define any features in the default storage class.

@idryomov I sent PR to add this support https://github.com/ceph/ceph-csi/pull/2885. as we need to support older kernel versions in upstream cephcsi, I kept the backward compatibility and if the image feature is not present in storageclass then we will use the defaults.
Thinking about one corner case, if some other new image features become the default in librbd and we still need to support older kernel version (8.2+) in ODF will it be problematic?
As we are adding deep-flatten by default will it also increase the storage consumption on the ceph cluster if we create clones and snapshots? I still need to test this one.
@ShyamsundarR any thoughts?

Had a discussion with @idryomov @ShyamsundarR about adding deep-flatten by default, as there are no known problems with adding it as default parameter, adding to storageclass now. PTAL

@Madhu-1 If this can be merged now, can you rebase and remove hold?

Still not decided yet, waiting for the QE results to merge this one. cc @agarwal-mudit

/hold cancel

/cancel hold

@agarwal-mudit PR is rebased and updated PTAL

/retest-required

/test ocs-operator-bundle-e2e-aws

I0406 10:51:20.452964       1 utils.go:191] ID: 55 Req-ID: pvc-f52e19fb-9001-4a3a-8011-adcbe990ea4e GRPC call: /csi.v1.Controller/CreateVolume
I0406 10:51:20.453078       1 utils.go:195] ID: 55 Req-ID: pvc-f52e19fb-9001-4a3a-8011-adcbe990ea4e GRPC request: {"capacity_range":{"required_bytes":53687091200},"name":"pvc-f52e19fb-9001-4a3a-8011-adcbe990ea4e","parameters":{"clusterID":"openshift-storage","csi.storage.k8s.io/pv/name":"pvc-f52e19fb-9001-4a3a-8011-adcbe990ea4e","csi.storage.k8s.io/pvc/name":"db-noobaa-db-pg-0","csi.storage.k8s.io/pvc/namespace":"openshift-storage","imageFeatures":"layering,deep-flatten,exclusive-lock,object-map,fast-diff","imageFormat":"2","pool":"test-storagecluster-cephblockpool"},"secrets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}},"access_mode":{"mode":1}}]}
E0406 10:51:20.453203       1 rbd_util.go:1291] ID: 55 Req-ID: pvc-f52e19fb-9001-4a3a-8011-adcbe990ea4e failed to validate image features invalid feature deep-flatten
E0406 10:51:20.453227       1 utils.go:200] ID: 55 Req-ID: pvc-f52e19fb-9001-4a3a-8011-adcbe990ea4e GRPC error: rpc error: code = InvalidArgument desc = invalid feature deep-flatten

ci/prow/ocs-operator-bundle-e2e-aws test is failing for the above reason, we need to  update the Rook version to 1.9 to pull the latest cephcsi changes

CI logs https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/red-hat-storage_ocs-operator/1512/pull-ci-red-hat-storage-ocs-operator-main-ocs-operator-bundle-e2e-aws/1511641589942849536/artifacts/ocs-operator-bundle-e2e-aws/gather-extra/artifacts/pods/openshift-storage_csi-rbdplugin-provisioner-58687fb77c-znb5n_csi-rbdplugin.log

rebased to pick up Rook 1.9.0-beta. @agarwal-mudit PTAL

rebased to pick up Rook 1.9.0-beta. @agarwal-mudit PTAL

looks like 1.9 should be available soon too.

rebased to pick up Rook 1.9.0-beta. @agarwal-mudit PTAL

looks like 1.9 should be available soon too.

it should be fine we don't need to wait for 1.9, we need cephcsi 3.6.0 which is present in 1.9-beta we are good

rebased to pick up Rook 1.9.0-beta. @agarwal-mudit PTAL

looks like 1.9 should be available soon too.

it should be fine we don't need to wait for 1.9, we need cephcsi 3.6.0 which is present in 1.9-beta we are good

We don't have cephcsi 3.6.0 in rook 1.9.beta-0 #1631 should update Rook to 1.9.0 to fix it.

rebased to pick up Rook 1.9.0-beta. @agarwal-mudit PTAL

looks like 1.9 should be available soon too.

it should be fine we don't need to wait for 1.9, we need cephcsi 3.6.0 which is present in 1.9-beta we are good

We don't have cephcsi 3.6.0 in rook 1.9.beta-0 #1631 should update Rook to 1.9.0 to fix it.

Considering these are downstream repos, good to sync with stable versions.. , main can be an exception though.

rebased to pick up Rook 1.9.0-beta. @agarwal-mudit PTAL

looks like 1.9 should be available soon too.

it should be fine we don't need to wait for 1.9, we need cephcsi 3.6.0 which is present in 1.9-beta we are good

We don't have cephcsi 3.6.0 in rook 1.9.beta-0 #1631 should update Rook to 1.9.0 to fix it.

Yeah. :+1: ,


Add increase operation

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:
/kind api-change
/kind bug
/kind cleanup
/kind deprecation
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind feature

What this PR does / why we need it:
Needed to manipulate values of number types.
I add number_proxy.go and increase.go for increase operation on Integer and Long types.
Which issue(s) this PR fixes:

Fixes #12
Special notes for your reviewer:
Please provide feedback this PR.
I worried that adding Increase method to Primitive.
That's because there are many other types in 'Primitive' type besides number type.
Does this PR introduce a user-facing change?:

Additional documentation:

@dc7303 Thank you for your contribution. I will review this soon.

@hackerwins Thanks for your advice.
I pushed through the correction work. Please tell us if you have any additional requests :)

@hackerwins Thanks to your advice, I can update. Please tell us if you have any additional requests.
And I think I should add an operation to yorkie-js-sdk. Can I keep working it?
If I can do it, I will proceed from now on.


How to pass unboxer around in a nested setup.

I have data coming in from a server who's media items can come in different types.
They're polymorphic models that is identifiable by the media -> type integer value.
Depending on the media -> type value, the media -> object value inside changes which I would plug into the right class by using associative enum values.
Here's an example of my Media model
    case Photo(PhotoModel)
    case Video(VideoModel)
    case Sound(SoundModel)
    case None
}```

Those models actually are unboxable too.

I also have a `MediaFactory` struct that simply returns the right `Media` enum and associated value.
Here's what the `MediaFactory` struct looks like

import Unbox
struct MediaFactory {
private struct Properties {
static let ServerMediaTypePhotoId = 0
static let ServerMediaTypeVideoId = 1
static let ServerMediaTypeSoundId = 2
}
static func build(type kind: Int, object unboxer: Unboxer) -> Media {
    switch kind {
    case Properties.ServerMediaTypePhotoId:
        return Media.Photo(PhotoModel(unboxer: unboxer))
    //...
    default:
        return Media.None
    }
}

}

Notice how I do the instantiating of the actual model first and then attach it as an associated value to the enum case and return that enum value.

Take the following json object.

dictionary  [
"title": Prince Albert Pub,
"articleId": 13182,
"media": {
type = 0;
object =     {
AspectRatio = 1;
DominantColorHex = "#2b0404|#520506|#bb080f|#80060a|#ec1f22|#f4d7b3";
Height = 2448;
Width = 2448;
id = "26fa72f9-000e-4903-92e0-5a02232ce119";
mediaUrl = "http://img.driftapp.io/26fa72f9-000e-4903-92e0-5a02232ce119.jpg";
};
typeName = image;
}]

Now I'm trying to pass the `media -> object` array of values into the `build` method of my factory struct but it just doesn't unbox properly.

class BasicArticle: Unboxable {
//MARK: - Properties
let id: Int
let title: String
let media: Media
//MARK: - Lifecycle
required init(unboxer: Unboxer) {
    self.id = unboxer.unbox("articleId")
    self.title = unboxer.unbox("title")

    print("dictionary ", unboxer.dictionary)
    self.media = MediaFactory.build(type: unboxer.unbox("media.type", isKeyPath: true), object: unboxer.unbox("media.object", isKeyPath: true) )
}

}

I am aware I'm not passing in correctly the `media.object` object since it doesn't return the type `unboxer`, I have thought about passing `unboxer.dictionary` into the object parameter of my build method but then how do I pass that into the `PhotoModel(unboxer:)` method?The last thing I want to do is build a custom method that parses that dictionary because then that defeats the purpose of me using Unbox in the first place, hehe.

I hope my question makes sense.

... I see what I'm doing wrong, I should instead be unboxing into a model, rather than passing the unboxer object around.
Something like this:
        switch kind {

        case Properties.ServerMediaTypePhotoId:
            let photoModel: PhotoModel = unboxer.unbox("media.object", isKeyPath: true)
            return Media.Photo(photoModel)
        default:
            return Media.None
        }
    }
}

What do you think?

Instead of passing an Unboxer into your factory, I'd create a Media struct that holds a type and a Dictionary, then pass that to the factory which then unboxes the Dictionary from the Media struct and associates it with the enum. Unboxers should generally be kept private within a model's initializer to avoid introducing shared state, which could lead to really hard-to-track-down bugs.

@pavankataria Does my suggested solution work for you? Let me know if I can close this issue :)

Closing due to inactivity.


How do I start a bloodhound search when typeahead:selected fires

Ok this has been driving me nuts all day.
When a user selects from the drop down list a value I want a bloodhound search to be fired. It seems that the default behavior is that new searches are not fired when a selection happens, and you need to do something else to prompt them (is there maybe a configuration value for this?)
currently I have something like the following
$el.on('typeahead:change', function(e) {         console.log(selection);         $el.focus();       }).on('typeahead:selected', function(e, datum) {         selection = datum;         $el.trigger('change');       })
(lots of extra code has been removed that does various things but this is the main part.
The change event is triggered, and I get my console.log statements, but my blood hound search is never ran. If I click on the input or even navigate away from the page and navigate back the search happens (this is why I tried to do $el.focus();)
I've also tried to do
$el.blur().focus(); //maybe it needed to
and
var ev = $.Event('keyup');
ev.which= 13;
$el.trigger(ev);

I can also do the following
$el.trigger('typeahead:autocomplete', [e, datum]);
from within the typeahead:selected event and it comes through, but it still doesn't run a new search.

anyway I figured out how to do it, but is not cleaner than my previous attempt
(also setting caret position in my code below)
var clearSelection = function($el, selection, caretpos) {
setTimeout(function() {
caretpos = (caretpos) ? caretpos : null;
$el.typeahead('val', '');
$el.trigger('blur');
setSelection($el, selection, caretpos);
});
};
var setSelection = function($el, selection, caretpos) {
setTimeout(function() {
$el.trigger('focus');
$el.typeahead('val', selection);
if (caretpos) {
$el.get(0).setSelectionRange(caretpos, caretpos);
}
$el.trigger('typeahead:open');
});
};
called with clearSelection($el, selection, selectedItem.caretpos);
so basically the same as what I tried before but inside of setTimeout to break the event loop.
Seems unnecessarily complicated, but I suppose this is one of the problems with universal libraries.
I will close the issue as fixed.


Relax provider version for 0.12 branch

Another quick PR relaxing the AWS provider constraint so that this module can be used in projects using the 3.x AWS provider and Terraform 0.12.

Released in https://github.com/trussworks/terraform-aws-s3-private-bucket/releases/tag/v2.3.1

Released in https://github.com/trussworks/terraform-aws-s3-private-bucket/releases/tag/v2.3.1


modified test cases

Coverage decreased (-0.01%) to 43.357% when pulling 3c66ebcad7e0f9ad0758f9ba21d422ba8e21a621 on BlBana:master into fb21d1ab49aa397531caa791bb6638b597cc26d5 on wufeifei:master.

Coverage decreased (-0.01%) to 43.357% when pulling 3c66ebcad7e0f9ad0758f9ba21d422ba8e21a621 on BlBana:master into fb21d1ab49aa397531caa791bb6638b597cc26d5 on wufeifei:master.

Coverage increased (+0.4%) to 43.76% when pulling d22acd7797391e9c7170cc45bc2dc18754f0668a on BlBana:master into fb21d1ab49aa397531caa791bb6638b597cc26d5 on wufeifei:master.


WindowBuilders function with_resizable is not mentioned in the glutin documentation

Function with_resizable is not mentioned in the glutin documentation

That's because I never made a glutin release for winit 0.15.1, so the docs were never rebuilt (today I've learned a lesson about the cost of being a bit loose on semver). winit 0.16.0 will most likely be released extremely soon, so the corresponding glutin release for that will include everything.

Ta-da: https://docs.rs/glutin/0.17.0/glutin/struct.WindowBuilder.html#method.with_resizable


⚠ Cioos National CKAN has degraded performance

In 723763d, Cioos National CKAN (https://catalogue.cioos.ca/) experienced degraded performance:

HTTP code: 200
Response time: 11211 ms

Resolved: Cioos National CKAN performance has improved in 99d8d29 after 12 minutes.


(Automatic) successful AP update does not create Event

According to the Firmware-Version and the AP Runtime it seems that my device has been updated automatically at Nov/26/2016.
But if I look at the events it is not documented that anything happened during that time.
The last 2 entries were forced by a manual update - even if the update succeeded, it was written that my devices failed to upgrade.

Please test and re-open if you're still having issues.


Fix swagger ui build

Missed that when doing the PR, the default import tries to load the path library, recommendation is just to import the right bundle directly.

All changed packages have been documented.

You can try these changes at https://cadlplayground.z22.web.core.windows.net/prs/3091/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/prs/3091/


About the Pre-trained ！

Were the pre-training weights in YOLOX trained on the coco dataset? I would like to use Convnext as the backbone of yolox, do I also need to get the pre-training weights by training  on the coco dataset?

@baowenshuwh Yes, it is better to train ConvNeXt on COCO using YOLOX first.

@baowenshuwh Yes, it is better to train ConvNeXt on COCO using YOLOX first.

Ok, thank you for your reply


autocapture user obj doc

notes on enriching autocapture user obj

🚀 Deployed on https://665a4a82ea270e3dd1c14733--cozy-fox-0defec.netlify.app


Temporarily unavailable sites permenantly disabled

Actual behaviour
When a site is temporarily unavailable (e.g. when the local internet connection is down for an extended period), eventually the feed is flagged as broken and can't be refreshed, even when manually clicking on the refresh link.
In the database, "feeds" table, the "enabled" column is set to 0. manually changing this solves the problem
Expected behaviour
Either miniflux should keep checking, or upon the user clicking refresh, it should force the flag to be reset.
Steps to reproduce

Create a number of feeds
Unplug from the internet for several update cycles (I think less than 12 hours, but I can't remember how frequently the update is called)
Note how feeds are now marked as having a problem, and clicking refresh will very quickly return without (apparently) checking the feed.

Configuration

Miniflux version:
commit d4552fd7f11debd518995a09c18bd32f6681807f
Date:   Wed Mar 29 17:08:06 2017 -0400

Database type and version: ??

PHP version: ??

OS: Linux, RPi

Browser: Firefox

Deactivated feeds will be listed first on the Subscriptions page /?action=feeds. But I second you in the fact that reactivating each feed one-by-one is tedious. (My VPS provider recently had an extended network outage and all feeds got deactivated.)
If you repeatedly encounter this issue, you can also set the number of update cycles that need to fail before a feed gets deactivated in your miniflux config file:
// Disable automatically a feed after X parsing failure
define('SUBSCRIPTION_DISABLE_THRESHOLD_ERROR', 10);

In the end, deactivating a feed that consistently fails is a sensible thing and not a bug. You can always set the threshold in your config to a high value.


Call webhook when Teams call starts and ends

Description of the new feature / enhancement
It'd be really helpful if you could make a webhook call when a Teams/Zoom/Skype call starts and ends. Could you perhaps detect the audio being used by Teams/Zoom etc..? I've made a feature request to the Teams developers but I'm guessing you have more flexibility to implement this for more than just Teams calls?
Scenario when this would be used?
When working at home there are many times when it'd be helpful to indicate that you are on a call (so the kids can stay quiet and not interrupt). For example I visualise being able to switch a web connected lightbulb to red or green when in a meeting, however, there are many other home-automation options that might work better for others.
Supporting information
No response

Good idea but no plans. This is something that requires to have deep knowledge of applications and their APIs. Any change then we are in the hook. Same philosophy we took with how we do web searching. Do a pure agnostic approach.


On Windows, a Blank Second Window Appears

On Windows, for some reason an all-black second window appears on top of the main window. I think this has something to do with using multiprocessing. On macOS there is only one window, but a second icon does appear in the dock.

Resolved. Moved NymphesOscProcess to its own file, which doesn't import kivy. This way when the nymphes_osc_process is created kivy doesn't get imported a second time.


the symbol

salamu alaykum,
thank you for this package , verser useful.
but when I make the ( verseEndSymbol ) true, this will happen .

The problem only seems to exist on iOS

I have found that wrong arabic letter codeUnit is used. Just changing arabicNumbers const will solve the problem. We will look for authors action to change that code.
  const Map arabicNumbers = {     "0": "٠",     "1": "١",     "2": "٢",     "3": "٣",     "4": "٤",     "5": "٥",     "6": "٦",     "7": "٧",     "8": "٨",     "9": "٩",   };
Those arabic letters might have look same but have different code units.

Exactly,
Thank you dear friend
May allah rewards you all,
Could you please tell me how to make Quran page by page through your
package ?
On Wed, Feb 21, 2024 at 1:28 PM Abduvali Zokhidov @.***>
wrote:

I have found that wrong arabic letter codeUnit is used. Just changing
arabicNumbers const will solve the problem. We will look for authors action
to change that code.
const Map arabicNumbers = { "0": "٠", "1": "١", "2": "٢", "3": "٣", "4":
"٤", "5": "٥", "6": "٦", "7": "٧", "8": "٨", "9": "٩", };
Those arabic letters might have look same but have different code units.
—
Reply to this email directly, view it on GitHub
https://github.com/aqeelshamz/quran/issues/37#issuecomment-1956342681,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6HN5DKRQDNKK4XD7YHXWL3YUXD4NAVCNFSM6AAAAABDFJ3ZTKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJWGM2DENRYGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

You can utilize these functions for making page by page Quran:

getPageData(int pageNumber) - Takes [pageNumber] and returns a list containing Surahs and the starting and ending Verse numbers in that page
getPageNumber(int surahNumber, int verseNumber) - Takes [surahNumber], [verseNumber] and returns the page number of the Quran
getSurahCountByPage(int pageNumber) - Takes [pageNumber] and returns total surahs count in that page
getSurahPages(int surahNumber) - Takes [surahNumber] and returns the list of page numbers of that surah
getVerseCountByPage(int pageNumber) - Takes [pageNumber] and returns total verses count in that page
getVersesTextByPage(int pageNumber, {bool verseEndSymbol, SurahSeperator surahSeperator, customSurahSeperator}) - Takes [pageNumber], [verseEndSymbol], [surahSeperator] & [customSurahSeperator] and returns the list of verses in that page


Channels fail to save an updated name after a browser refresh or feed update

Describe the bug
Even as of version 1.2.10 channels fail to "save" an updated name and revert to provider naming.
Server (please complete the following information):
OS Ubuntu
Arch 64-bit
Threadfin Version and Build 1.2.10
To Reproduce
Steps to reproduce the behavior:
Change "Channel Name"
Save mapping
Refresh the browser page (navigating between tabs will not suffice)
Channel name will revert
Expected behavior
Renamed channel information retained.
Screenshots
N/A
Desktop (please complete the following information):
OS: Windows
Browser: Chrome
Additional context
N/A

This is currently working fine for me. Is this channel marked as a live event channel in the filter? Is it a linear channel or a live event channel?

All channels that I've tried this on are regular non live event channels. Local networks as well as cable networks. They all accept the update when I click "Done", then click "Save". Browse between tabs and the names stay updated. Refresh the page at all, the names revert.

Yes this happened to me just now. Will have this fixed soon

Same here

same here

Can confirm it still happens with 1.2.15 which makes sense by looking at the commits. Just keeping folks updated. :)

Fixed in 1.2.16


Sublime 3 crashing when opening a file inside the origami split on left or right

As the subject, I'm on sublime 3 (build 3114) and just installed Origami (very cool!).
Steps to make sublime crash, at least on my macbook:

Open the right split (Super + K + right arrow)
Shortcut to open a file (Super + T)
Write to filter

At the first character written on step 3 Sublime crashes.
Can I help you some way?

Note: I also confirm that crashes happens also if opening on the left.
No problems with up and down...

I can't reproduce this. What other plugins do you have installed? I assume Super+T is doing for you what Super+P does for me?

I have many plugins :/ I also can't find a simple way to list them and copy/paste here, do you know how?
Super + T would be on OsX: show the list of files from the current project to browse and open them.

Is there anything in the console? Can you try reverting and only install package control and origami? (then you can un-revert by deleting the new data folder and moving the old one back).

No signs on the console :(
And... from a clean install the problem is gone. Urgh.
Notable plugins I have:
anaconda, vintageous, material theme, emmet, plaintasks.
What can be causing the problem?
Thanks for your plugin and your help...

I have no idea - but package control can help you. You can disable, say, half of your plugins and see if it goes away. If it does, re-enable half of those you disabled, and so on. Once you find out what's conflicting I can help you more!

Hello there, sorry for the 2 weeks delay!
I finally got an hour to spend on this. I was getting crazy as I could not isolate a package with a problem. In fact the problem is not in any package. It was instead in the user configuration.
As soon as I add the configuration option origami_auto_close_empty_panes to true for origami, the bug kicks in in a newly fresh sublime 3 install (current release is changed to 3126).
I reverted to all my packages and can confirm that removing that option the problem is gone.
Can you also confirm?
BTW I added that option by being unable to remove the empty panels opened with origami, the shortcut does not work :)

This looks like it's related to SublimeTextIssues/Core#1252 which is a core issue where if close_windows_when_empty is enabled then ST crashes on start.

This also looks like a duplicate of https://github.com/SublimeText/Origami/issues/111

This also looks like a duplicate of #92

A quick note: my problem doesn't happen when I close, but instead when inside the side (empty) panel I use Ctrl+T to select a file to open.

This happens for me to, related to origami_auto_close_empty_panes. Happens with auto close enabled: create new pane with super+k, then use super+t to open the "switch file" dialogue. First character typed crashes Sublime.
Is there a way round this? Or is it just a problem inside ST's core code, in which case it'll probably never be fixed.


feat: webhookCallback adapter for Azure functions

Codecov Report

Merging #257 (bedf9ab) into main (da2b582) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #257   +/-   ##
=======================================
  Coverage   37.24%   37.24%
=======================================
  Files          17       17
  Lines        4331     4331
  Branches      157      157
=======================================
  Hits         1613     1613
  Misses       2716     2716
  Partials        2        2

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

@vitorleo You might wanna run
deno fmt

This somehow got lost, I don't remember why it wasn't merged yet?
As discovered in #283 already, CI currently fails due to the recent TS 4.8 update. It will be fixed upstream, merged here, and then I'm happy to see this landing right away!

Waiting for a review of #284.

@vitorleo please consider signing your commits in the future. We usually require this—I'll merge anyway now :)

@all-contributors add @vitorleo for code!


Overhaul of grid lines

PR Checklist
If you are contributing to Javis.jl, please make sure you are able to check off each item on this list:

[ ] Did I update CHANGELOG.md with whatever changes/features I added with this PR?
[x] Did I make sure to only change the part of the file where I introduced a new change/feature?
[ ] Did I cover all corner cases to be close to 100% test coverage (if applicable)?
[x] Did I properly add Javis dependencies to the Project.toml + set an upper bound of the dependency (if applicable)?
[ ] Did I properly add test dependencies to the test directory (if applicable)?
[x] Did I check relevant tutorials that may be affected by changes in this PR?
[ ] Did I clearly articulate why this PR was made the way it was and how it was made?

Link to relevant issue(s)
Closes #302
How did you address these issues with this PR? What methods did you use?
Enforced the idea of the Object-Action relationship by converting grid lines and zero lines to Objects being drawn on the background.

Do we want to close this in favor of #422 ?


[WIP] Update/table group docs

No dev review needed.
I'm updating documentation for DataTable component so it can meet the requirements for:

correct english
correct structure
simplicity
etc.

Moved changes to other PR https://github.com/semrush/intergalactic/pull/869


[fix]Continuous optionals should not throw conflict error

fix issue 7925
folder structure [[a]]/[[b]]/+page will throw routes conflict error
the error from the function prevent_conflicts
here:
permutations = [
...permutations.map((x) => x + next),
...permutations.map((x) => x + `<${matcher}>${next}`)
];

will generate permutations [ '//', '/<>/', '//<>', '/<>/<>' ]
but  actually, it' impossible match route  /empty/[[b]] . so '//<*>' should be remove from result.
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[x] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[x] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

Thank you! Could you add a changeset and add a test in the index.spec.js file next to the changed file?

okay, done.

thanks for the test, however for this it's sufficient to create a unit test - you would create another unit test similar to the existing one in create_manifest_data/index.spec.js at line 718.

thanks for the test, however for this it's sufficient to create a unit test - you would create another unit test similar to the existing one in create_manifest_data/index.spec.js at line 718.

thank you, I'll try it.


Type Support for argparse.Namespace()

Hello,
I hope you are well.  I really like Pydantic, and I've found it makes it much easier and also neater to work with classes in python.
Today, I tried to use it to put the arguments parsed from the command line with argparse as an attribute in  class to use composition.  The exact type name is argparse.Namespace.  Because this wasn't able to work, I just converted the arguments to a default dictionary type and used that with pedantic.
This works, but I think it would be much nicer to have the argparse type be able to work work pydantic classes by default, this way I can use the built-in functionality of that, rather than just using dictionary keys to get the arguments.
Would it be possible to add this?
Thanks!

I'm not sure I can see how argparse namespaces can be validated: they are just (dynamic) container classes:
class Namespace(_AttributeHolder):
    """Simple object for storing attributes.

    Implements equality by attribute names and values, and provides a simple
    string representation.
    """

    def __init__(self, **kwargs):
        for name in kwargs:
            setattr(self, name, kwargs[name])

Do you have an example of how validation would work?

I'm not sure I can see how argparse namespaces can be validated: they are just (dynamic) container classes:
class Namespace(_AttributeHolder):
    """Simple object for storing attributes.

    Implements equality by attribute names and values, and provides a simple
    string representation.
    """

    def __init__(self, **kwargs):
        for name in kwargs:
            setattr(self, name, kwargs[name])

Do you have an example of how validation would work?

Hi @Viicos, you bring up a good point.  I am not very familiar with the internals of pydantic and also the namespace class.  I tried to add argparse.Namespace as a type in a pydantic class that inherits from BaseModel, but I got an error message that it couldn't be validated.  I found this a little surprising because it's a built in type.
I believe the error message to try to add a validation of that type to pydantic, but I don't know how to do that.  I thought I would raise a ticket instead.
I can maybe look more into this, but it's not my area of expertise.
I do find it interesting though that if you put the dictionary version of the argparse.Namespace, it is able to work fine with pydantic.  My understanding is that argparse.Namespace is essentially like dictionary with a few other special features such as being able to call the keys as if they are attributes and I think the .get() doesn't work.
I was thinking having support for cli arguments built into pydantic would be really nice to make making cli applications easier. Especially, making it easier to configure cli input types and commands using like types rather than specifying a lot of strings in dictionaries and stuff.

Do you have an example of how validation would work?

I can try to put together an example for validation as you asked.  Do you have a good resource on how to do this though? I am not sure I fully understand what should go into like default validation.


Add oplog events support

Adds support for events when a entry is added to the oplog with a specific operation type.
Described in https://github.com/orbitdb/orbit-db-eventstore/pull/34

Finishing tasks

[ ] Create release v3.2.0 on repo and publish to npm.

update to<EMAIL_ADDRESS>
[ ]  https://github.com/orbitdb/orbit-db-counterstore
[ ]  https://github.com/orbitdb/orbit-db-docstore
[ ]  https://github.com/orbitdb/orbit-db-kvstore
[ ]  https://github.com/orbitdb/orbit-db-feedstore
[ ]  https://github.com/orbitdb/orbit-db-eventstore

Happy to include this in the next orbit-db release


Local values are not taken at all if global is set

Describe the bug
With https://github.com/kubeshop/helm-charts/commit/6f69e0056b5dcdbf0efbca024246a12ec9ba9d27 commit I observed regression in our testkube instance. We are using only local registries on our clusters (as we don't have an internet access there) and for each kind of registry (docker.io, gcr.io) we have separate url. As docker.io is the most common one we used that value as a global one and for each other registry we overwritten them using "local" variables. As far as I understand helm values local ones should overwrite global ones, but right now it's not available. We observed that on operator-pre-upgrade job.
To Reproduce
Steps to reproduce the behavior:

Run helm template . --set="global.imageRegistry=test"
Check that all images uses "test" registry

Expected behavior
If local variables are set the default/global variable should be overwritten
Version / Cluster

Which testkube version? 1.12.9

Based on discussion from https://github.com/helm/helm/issues/5676 it's expected that local overwrites global ones

thank you @michal-jagiello-tmpl we will check it out

Hi @michal-jagiello-tmpl,
Thanks for using Testkube :)
Overriding all local values by setting a global one is working by design. The point was to update the registry in all charts by just changing just one line.
If we try to change this feature now, it will break a functionality for existing users.
Could you please use local variables in your case and leave out global so that it won’t affect the values?
We always try to target the most common scenarios, but sometimes they interfere with each other :(
In any case, we will be glad to add any suggestions for improvements.

Hi @ypoplavs Thanks for response.
In that case overwriting values doesn't work, as global is not used at all, what's in opposite with helm assumptions in my opinion and I'm afraid any new integrator would face the same issue as they would prefer to overwrite registry in one place (global) and (if needed) overwrite registry in sub projects but only if it's different value than in globals. Right now we need to set the same value in two places.
You mention that would broke functionality for existing users -- that's exactly what we faced -- that change broke our installations.
It's hard to believe for me that people in most common scenarios assume that global values won't be used, especially in image registry case. But maybe I don't know some corner cases and it'd useful and easier for me to accept that fact, also understand, if you try to explain me that better.

@ypoplavs please take a look on my change https://github.com/kubeshop/helm-charts/pull/537
It allows you to change image registry in one line, but would use global as default and you could overwrite it with local one.
Currently if you have a local one and global global would be used and not a local

Thanks @michal-jagiello-tmpl! I will take a look.

Thank you for taking time and releasing a PR @michal-jagiello-tmpl ! We have tested it and it does override global variables when locals are set. However, my concern is the following: how the users, that use globals as a mechanism for overriding locals, will transition to that change?
One of the reasons we designed it that way was to follow Bitnami standards since we use Bitnami MongoDB in our charts as well: https://github.com/bitnami/charts/blob/main/bitnami/mongodb/values.yaml#L3

@ypoplavs sorry for late response. Users have to change helm values files to overwrite variables. So if they used globals change is needed only to switch from globals into local variables

Hi @michal-jagiello-tmpl!
In order to switch to that change, the users would need to prepare their values files, change workflows etc, but unfortunately not everyone is keeping an eye on the latest released updates and might not be informed in time. Therefore, as of now we have decided to stick to the current logic of setting the globals.
Thank you for the request. In case there’s a change we will inform you instantly.

Hello @michal-jagiello-tmpl we would love to know a bit more about how you structure your deployment process in helm and see how we can assist you best.
Would you like to hop on a quick call with us to go over this issue and your testing workflow ?
Here's a my callendly for your convenience: https://calendly.com/bruno-at-kubeshop/30min-1

@TheBrunoLopes thanks for an answer. Ok, I created an appointment at 29th August as I start holidays from monday and today and tomorrow your calendar is full :( but no worries, right now it's not a blocker for us


feat: optimize keyForName method in AddressResolver.sol

Describe the feature request
Changing AddressResolver's key generation from
string memory key = string.concat(Strings.toString(chainId), ".", name);

to
string memory key = string(bytes.concat(bytes32(chainId), bytes(name)));

will reduce 2360 gas for proveBlock tx. But it will break many hardhat tests.

Deployment Cost
Deployment Size

proveBlock
49861
56789
49861
126161
49

resolve(string,bool)(address)
4329
4544
4554
10829
100

resolve(uint256,string,bool)(address)
4232
4272
4232
6232
49

Deployment Cost
Deployment Size

proveBlock
47501
54429
47501
123801
49

resolve(string,bool)(address)
3496
3709
3718
9996
100

resolve(uint256,string,bool)(address)
3541
3581
3541
5541
49

Describe alternatives you've considered
Description of the alternatives you've considered here.
Additional context
You can work on top of this draft PR to do comparison by running:
forge test --gas-report -vvv

Created a branch for this issue here

We should probably avoid using string at all. A better way to do resolve is to map a string into a public constant bytes32, then always use it to resolve to an address. For example
bytes32 public constant KEY_SIGNAL_SERVICE = keccack256(bytes("signal_service"));

function resolve(uint chainId, bytes32 key) public view returns(address) {
    bytes32 actualkey;
    assembly {
       actualKey := mul(key, chainId)
   }
  return theMap[actualKey];
}

Implemented in https://github.com/taikoxyz/taiko-mono/pull/13557

@dantaik can we close this issue?


fix: update cache setup

Summary
Another attempt to fix failing tests on CI.
Test plan
All checks fail.

Error occurs only on CI, locally every thing works fine. ATM I am out of ideas how to fix it or what did go wrong.


added endpoint to get all students with pagination

Works fine but it require to pass the page number to the path, otherwise it throws a 500 server error. Maybe just make it optional and as a default pass the first page to the method when we fetch to /student without page number?
@Get('/:pageNumber?')
  findAll(
    @Param('pageNumber') pageNumber?: string,
  ): Promise<GetPaginatedListOfUser> {
    return this.studentService.findAll(pageNumber ? Number(pageNumber) : 1);
  }

I've set parametr "pageNumber" as optional and I changed returned data in JSON.

Added second parametr for pass items per page :)

Resolved conflicts and tested new feature - items per page parameter works as intended with or without the page number param


Inventory changer crash cs

If i enable inventory changer cs crash. Pin changer doesnt work

yeah same...


sorting by data number

is there a way to sory by data number?
https://codepen.io/diomed/pen/BqWBPr
I'd like to be able to sort graph from smallest number to largest
also what could I do to increase height, and to display full text of what is written in bar,
since it gets cut if amount is too small?

Sorting data items is a good suggestion, but in my opinion, needs to be handled externally before injecting data into the chart.
Regarding your second query, there is currently no way to manipulate text other than using label formatters. Also, you can display full text in the tooltip if it gets cropped in the bar data-labels

as you can see, I already have tooltip, so that saves it.
how would this be handled externally?

Something like this
var series = [{
  data: [{
    x: "Apples",
    y: 20
  }, {
    x: "Bananas",
    y: 24
  }]
}]
series[0].data.sort(function(a, b){
  return a.y > b.y;
});

After you sort it, you can then pass that data to the ApexCharts series.


Upload youtube video

Does this package have the ability to upload youtube videos? Anyone tried? If not whats the best way to upload?

No, we deal only with embedding videos


Handling of nullable lists and list components in Amplify Datastore

Consider the following GraphQL schema:
type ListContainer
@model
{
  id: ID!
  name: String
  list: [String]
  requiredList: [String]!
  requiredListOfRequired: [String!]!
  listOfRequired: [String!]
}

GraphQL server allows nullable values for lists and list components Reference.
amplify codegen models for an iOS project generates:
// swiftlint:disable all
import Amplify
import Foundation

public struct ListContainer: Model {
  public let id: String
  public var name: String?
  public var list: [String]?
  public var requiredList: [String]?
  public var requiredListOfRequired: [String]
  public var listOfRequired: [String]

  public init(id: String = UUID().uuidString,
      name: String? = nil,
      list: [String]? = [],
      requiredList: [String]? = [],
      requiredListOfRequired: [String] = [],
      listOfRequired: [String] = []) {
      self.id = id
      self.name = name
      self.list = list
      self.requiredList = requiredList
      self.requiredListOfRequired = requiredListOfRequired
      self.listOfRequired = listOfRequired
  }
}

// swiftlint:disable all
import Amplify
import Foundation

extension ListContainer {
  // MARK: - CodingKeys
   public enum CodingKeys: String, ModelKey {
    case id
    case name
    case list
    case requiredList
    case requiredListOfRequired
    case listOfRequired
  }

  public static let keys = CodingKeys.self
  //  MARK: - ModelSchema

  public static let schema = defineSchema { model in
    let listContainer = ListContainer.keys

    model.pluralName = "ListContainers"

    model.fields(
      .id(),
      .field(listContainer.name, is: .optional, ofType: .string),
      .field(listContainer.list, is: .optional, ofType: .embeddedCollection(of: String.self)),
      .field(listContainer.requiredList, is: .optional, ofType: .embeddedCollection(of: String.self)),
      .field(listContainer.requiredListOfRequired, is: .required, ofType: .embeddedCollection(of: String.self)),
      .field(listContainer.listOfRequired, is: .required, ofType: .embeddedCollection(of: String.self))
    )
    }
}

What should it have generated instead?
// swiftlint:disable all
import Amplify
import Foundation

public struct ListContainer: Model {
  public let id: String
  public var name: String?
  public var list: [String?]?
  public var requiredList: [String?]
  public var requiredListOfRequired: [String]
  public var listOfRequired: [String]?

  public init(id: String = UUID().uuidString,
      name: String? = nil,
      list: [String?]? = nil,
      requiredList: [String?] = [],
      requiredListOfRequired: [String] = [],
      listOfRequired: [String]? = nil) {
      self.id = id
      self.name = name
      self.list = list
      self.requiredList = requiredList
      self.requiredListOfRequired = requiredListOfRequired
      self.listOfRequired = listOfRequired
  }
}

// swiftlint:disable all
import Amplify
import Foundation

extension ListContainer {
  // MARK: - CodingKeys
   public enum CodingKeys: String, ModelKey {
    case id
    case name
    case list
    case requiredList
    case requiredListOfRequired
    case listOfRequired
  }

  public static let keys = CodingKeys.self
  //  MARK: - ModelSchema

  public static let schema = defineSchema { model in
    let listContainer = ListContainer.keys

    model.pluralName = \\"ListContainers\\"

    model.fields(
      .id(),
      .field(listContainer.name, is: .optional, ofType: .string),
      .field(listContainer.list, is: .optional, ofType: .embeddedCollection(of: String.self)),
      .field(listContainer.requiredList, is: .required, ofType: .embeddedCollection(of: String.self)),
      .field(listContainer.requiredListOfRequired, is: .required, ofType: .embeddedCollection(of: String.self)),
      .field(listContainer.listOfRequired, is: .optional, ofType: .embeddedCollection(of: String.self))
    )
    }
}

As you see, the Swift types generated for GraphQL lists do not respect the nullability specified in the user's GraphQL schema, leaving him unable to store null values for certain fields. The defaults for nullable fields are not nil but initialized empty lists which breaks the implementation when the user wants to check for null.

The iOS team is evaluating the impact on developers with these changes https://github.com/aws-amplify/amplify-ios/issues/1116


Turn Provider into a cloneable handle

As discussed on discord, it would be nice to have Provider be a cloneable handle to control the provider and get some info about it.

Implemented in https://github.com/n0-computer/iroh/pull/832


Migrations: Detect primary key property renames

Similar to #5155 (but perhaps not as useful), we could also detect renamed properties that are part of the primary key if...

The number of primary key properties are the same, and
The would-be-added property is in the same position as a would-be-removed property

I need to think about it more, but my initial feeling is that it becomes even less useful for alternate keys, and indices.

Also, I wonder if just doing structural matching (e.g. everything is the same except the name) would cover all these cases for much cheaper.

Triage: we want to have a design discussion about this, including @rowanmiller.

Closing in favor of doing #6582 instead.


Auto Close generics angle brackets when text is selected

I know this a trivial request, but, when there is a text selection, and I press < it would be nice if the selection was wrapped between < and > brackets. Currently it just replaces the text with <.
The C# extension for vscode has this feature, and it only auto closes when there is a text selection. If there is no text selection, it just inserts a new < where the cursor is.

Moving to Microsoft/vscode#62864


I created a viewer for the dataset's lidar data

Hello there!
As a small side project to my research on the dataset, I created a small WebGL viewer for the range images of the dataset displayed as point clouds. For anyone who wants to get a nice visualization of the laser data and bounding boxes.

This is the repo: erksch/waymo-open-dataset-viewer
The repo is very easy to set up and includes a small python server that processes and serves segments (.tfrecord files) of the dataset and streams the frames to the viewer.
~Here is live demo that I deployed on a server.~
Edit: I took the live demo down, sorry :( see for yourself :D
Hope you like it :)

That is awesome!

This is so beautiful!. Great job! @erksch

Thank you very much! If you have more ideas for it, feel free to open issues in the repo :)

@erksch very cool stuff!
For those interested in displaying 3D data from the Waymo Open Dataset without server and frontend dependencies, I have implemented Open3D point cloud viewer. You can find the detailed explanation here. You are kindly welcome to use it:-)


Lens Metrics - Role Bindings

What role bindings does the user need to have in order to view Lens Metrics?
I have a cluster set up with Lens Metrics and everything works great. I'm now trying to create a limited user group, which only has edit access to the default namespace (and list namespaces). I noticed that when I do this, Lens doesn't display the metrics for those limited users. If I bind the edit role to the lens-metrics namespace, it works, but not the view role.
So basically, there is something in the system edit role that Lens appears to want access to in order to view Metrics...? What is it? It would be great if Lens output the results of various failed K8s commands so I could figure this out myself, but in the meantime, what am I missing?

Howdy
I faced this problem. It ended up being Kubernetes sub-resources. I had to explicitly give it access to quite a few subresource (only wit get, list and watch verbs).
Checkout https://gist.github.com/just1689/272f3e78a540c10b7bda390eef9b4473
You could make a more limited version that you give all your users and then user Roles giving particular mutation permissions to a given namespace.

Closing as answered.

Seems that with Lens 5, what we had set up no longer works. Is there a log or something we can review to see what Lens is trying to access and what it's failing on?

@NArnott if you run lens from the terminal, does that help?

Not sure I follow. I'm on a windows dev machine running Lens. Lens is installed as a windows app. We don't normally use a CLI to start Lens...

Yes that is true, but you still can.

Well, just tried, but no difference.

No useful output produced doing it that way.

Experiencing this issue as well


azure data factory - link a shared integration runtime via az cli

I have two data factories. The "shared" data factory has an integration runtime that I'd like to share with the "client" data factory via az cli.
I am able to do this via the portal by navigating through the "shared" data factory \ Integration Runtimes \ Edit \ Sharing tab and selecting "Grant permission to another Data Factory or user-assigned managed identity".
My problem comes when trying to achieve the same via az cli. I have tried the following sequence of two az cli commands:
az datafactory integration-runtime self-hosted create --factory-name adf-rb-shared `
  --integration-runtime-name shir01 `
  --resource-group rg-adf-shared

az datafactory integration-runtime linked-integration-runtime create `
  --factory-name adf-rb-shared `
  --integration-runtime-name shir01 `
  --resource-group rg-adf-shared `
  --data-factory-name adf-rb-client-001

The first command seems to work and does create a new integration runtime in the "shared" data factory.
However, the second command gives the following error:

(UnsupportedVersionForSharableIR) None Code:
UnsupportedVersionForSharableIR Message: None Target:
/subscriptions/sub-number-here/resourceGroups/rg-adf-shared/providers/Microsoft.DataFactory/factories/adf-rb-shared/integrationruntimes/shir01

Anyone see where I went wrong?

datafactory


Support for z.union of z.literal

Is there any plans to support a select / dropdown / radio for selecting one of the options as input?

I really want this :)


install-cygwin-python-packages.bat errors out on Windows 10

I try to install latest v1.0 toolchain on Windows 10
It does not have installer. I download source code to C:\PX4 and run install-all-components.bat
It errors out on install-cygwin-python-packages.bat:
** Installing Python Packages in Cygwin for PX4 Toolchain
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python2.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/cygdrive/c/Users/IPETRO~1.BYT/AppData/Local/Temp/pip-install-VdtpnI/pyulog/setup.py'"'"'; __file__='"'"'/cygdrive/c/Users/IPETRO~1.BYT/AppData/Local/Temp/pip-install-VdtpnI/pyulog/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base '/cygdrive/c/Users/IPETRO~1.BYT/AppData/Local/Temp/pip-pip-egg-info-uMBNA8'
         cwd: /cygdrive/c/Users/IPETRO~1.BYT/AppData/Local/Temp/pip-install-VdtpnI/pyulog/
    Complete output (8 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/cygdrive/c/Users/IPETRO~1.BYT/AppData/Local/Temp/pip-install-VdtpnI/pyulog/setup.py", line 14, in <module>
        import versioneer
      File "versioneer.py", line 1739
        file=sys.stderr)
            ^
    SyntaxError: invalid syntax
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

How to install latest toolchain on Windows 10 properly? Is it supposed to be used on Windows10?

@MaEtUgR Suggestions?
@copterspace FYI personally I use http://docs.px4.io/main/en/dev_setup/dev_env_windows_wsl.html#windows-wsl2-based-development-environment because it works for building the head revision of PX4, and I am not sure that Cygwin does at the momement (Matthias, can you confirm)?
For Windows 10 you have to run the simulations HEADLESS.

Thanks for suggestion. I use Jmavsim, so headless run is not sufficient for my case.


Improvements to iOS docs

Small improvement to the iOS doc to show the critical import that's necessary in AppDelegate.m

Thanks @jonmountjoy!