p2p connect fails

Celestia Node version
0308aea76857ff27484946fce99004ebf10a3cb8 / v0.13.7
OS
ghcr.io/celestiaorg/celestia-node container on MacOS M1.
Install tools
docker/podman
Others
No response
Steps to reproduce it
celestia light init --p2p.network celestia --core.ip rpc.celestia.pops.one
celestia light start --p2p.network celestia --core.ip rpc.celestia.pops.one
Expected result
successfully running light node
Actual result
Error: node: failed to start: header/p2p: failed to open a new stream: failed to dial: failed to dial 12D3KooWQpuTFELgsUypqp9N4a1rKBccmrmQVY8Em9yhqppTJcXf: all dials failed

[/ip4/<IP_ADDRESS>/tcp/2121] dial backoff

Relevant log output
2024-06-18T06:08:16.254Z        INFO    node    nodebuilder/module.go:26        Accessing keyring...
2024-06-18T06:08:16.275Z        INFO    badger4 v4@v4.2.1-0.20240106094458-1c417aa3799c/levels.go:171   All 1 tables opened in 1ms
2024-06-18T06:08:16.276Z        INFO    badger4 v4@v4.2.1-0.20240106094458-1c417aa3799c/discard.go:66   Discard stats nextEmptySlot: 1
2024-06-18T06:08:16.276Z        INFO    badger4 v4@v4.2.1-0.20240106094458-1c417aa3799c/db.go:368       Set nextTxnTs to 143
2024-06-18T06:08:17.150Z        INFO    pidstore        pidstore/pidstore.go:67 Loaded peers from disk  {"amount": 0}
2024-06-18T06:08:17.150Z        INFO    module/header   header/config.go:66     No trusted peers in config, initializing with default bootstrappers as trusted peers
2024-06-18T06:08:17.170Z        INFO    header/p2p      p2p/subscriber.go:81    joining topic   {"topic ID": "/celestia/header-sub/v0.0.1"}
2024-06-18T06:08:17.170Z        INFO    header/p2p      p2p/exchange.go:99      client: starting client {"protocol ID": "/celestia/header-ex/v0.0.3"}
2024-06-18T06:08:17.170Z        INFO    pidstore        pidstore/pidstore.go:67 Loaded peers from disk  {"amount": 0}
2024-06-18T06:08:17.468Z        INFO    pidstore        pidstore/pidstore.go:84 Persisted peers successfully    {"amount": 0}
2024-06-18T06:08:17.468Z        WARN    header/p2p      p2p/subscriber.go:92    unregistering validator: no validator for topic /celestia/header-sub/v0.0.1
2024-06-18T06:08:17.468Z        INFO    basichost       basic/natmgr.go:112     DiscoverNAT error:no NAT found
2024-06-18T06:08:17.469Z        INFO    badger4 v4@v4.2.1-0.20240106094458-1c417aa3799c/db.go:546       Lifetime L0 stalled for: 0s

2024-06-18T06:08:17.476Z        INFO    badger4 v4@v4.2.1-0.20240106094458-1c417aa3799c/db.go:625
Level 0 [ ]: NumTables: 00. Size: 0 B of 0 B. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 16 MiB
Level 1 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 2 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 3 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 4 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 5 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 6 [B]: NumTables: 01. Size: 3.5 KiB of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level Done
Error: node: failed to start: header/p2p: failed to open a new stream: failed to dial: failed to dial 12D3KooWQpuTFELgsUypqp9N4a1rKBccmrmQVY8Em9yhqppTJcXf: all dials failed
  * [/ip4/<IP_ADDRESS>/tcp/2121] dial backoff

Notes
While I tried to run light node in any of p2p networks, it fails to connect via p2p
However, it seems like network-related issue, 'cause when I used mobile internet provider, it successfully started.
I remember having similar issue in one of my projects, where we solved it by increasing p2p timeout a bit.
Is it possible to configure celestia with increased p2p timeout or solve the issue in some other way?

@vlad2095 what network are you trying to connect to? if it's mainnet, you do not have to pass the --p2p.network flag, or if you want to, you can pass --p2p.network mainnet

@vlad2095 what network are you trying to connect to? if it's mainnet, you do not have to pass the --p2p.network flag, or if you want to, you can pass --p2p.network mainnet

Hi @renaynay I have the same results
Is there a way to increase p2p timeout?

Attempt to run manually from this repo was a success:
make build
./build/celestia light init --p2p.network celestia --core.ip rpc.celestia.pops.one
./build/celestia light start --p2p.network celestia --core.ip rpc.celestia.pops.one

Output:
Started celestia DA node
node version:   v0.14.0-14-g1fa5aa6a
node type:      light
network:        celestia

/_____/  /_____/  /_____/  /_____/  /_____/

The p2p host is listening on:
*  /ip4/<IP_ADDRESS>/tcp/36799/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
2024-06-27T15:33:08.031+0300    INFO    das     das/worker.go:94        finished sampling headers       {"type": "catchup", "from": 1, "to": 1, "errors": 0, "# of headers skipped as outside of sampling window": 1, "finished (s)": 0.000020708}
*  /ip4/<IP_ADDRESS>/udp/36799/quic-v1/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip4/<IP_ADDRESS>/udp/36799/quic-v1/webtransport/certhash/uEiBJc3-yrgTAxE_cxd25ZXMRu4x1GN-A0ZxudceRSoTmew/certhash/uEiDsXeQEqY3k3fWoFW3_JLwyV2TmK-R-J4z9zHN21eNSaA/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip4/<IP_ADDRESS>/udp/2121/quic-v1/webtransport/certhash/uEiBJc3-yrgTAxE_cxd25ZXMRu4x1GN-A0ZxudceRSoTmew/certhash/uEiDsXeQEqY3k3fWoFW3_JLwyV2TmK-R-J4z9zHN21eNSaA/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip4/<IP_ADDRESS>/tcp/2121/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip4/<IP_ADDRESS>/udp/2121/quic-v1/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip4/<IP_ADDRESS>/udp/2121/quic-v1/webtransport/certhash/uEiBJc3-yrgTAxE_cxd25ZXMRu4x1GN-A0ZxudceRSoTmew/certhash/uEiDsXeQEqY3k3fWoFW3_JLwyV2TmK-R-J4z9zHN21eNSaA/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip6/::1/tcp/2121/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip6/::1/udp/2121/quic-v1/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD
*  /ip6/::1/udp/2121/quic-v1/webtransport/certhash/uEiBJc3-yrgTAxE_cxd25ZXMRu4x1GN-A0ZxudceRSoTmew/certhash/uEiDsXeQEqY3k3fWoFW3_JLwyV2TmK-R-J4z9zHN21eNSaA/p2p/12D3KooWJasWutWWCjKxiuJSg3Zg47VnvGrU8rNgmJEhyARAvVyD

2024-06-27T15:33:12.495+0300    INFO    share/discovery discovery/discovery.go:325      discovered wanted peers {"topic": "full", "amount": 5}

hey @vlad2095 my apologies, celestia is actually a valid input for --p2p.network
Interesting -- there might be some issues with reachability running the node in docker on Mac. We will investigate, thanks.

@renaynay not exactly related to Mac.
I thought that too, but when I switched internet connection to mobile 4G I was able to connect.
Also my friend from Lisbon didn't have such issues in the first place while running the same way in Docker on M1

Thanks for the info @vlad2095

@renaynay I was just pulled celestia-node repo and played a bit with.
While with default config it successfully run on my Mac 👍
But when I decreased it by adding libp2p timeout config below
nodebuilder/p2p/host.go#L85
libp2p.WithDialTimeout(time.Microsecond * 100)

I experience same result as I did inside Docker

While increasing it to 500 millisecond fixed the issue

--
So I guess Docker introduce some delays.
Is it possible to make this parameter configurable, with a flag?

@vlad2095, that must be a flake. The default setting for this timeout is 15 seconds, so setting 500ms decreases the timeout.

(I don't have any good ideas on what could cause this issue for you. The only fact that 4G works suggests that this is unlikely related to Docker)

@vlad2095, another thing you could try is increasing the StartupTimeout in the node config

@Wondertan how would I increase StartupTimeout?
Yeah and 4G in my region actually is slower than cabel, so maybe it's a more "low level" network issue.
We tested in different location on MacOS with docker, and getting different results, like it works in Portugal but fails in Poland and Ukraine.

how would I increase StartupTimeout?

In the config .celestia-light/config.toml

unfortunately, doesn't work

Can you ping those IPs? At least to see that they are accessible from your network on ICMP level

Looks like they are

Hello @vlad2095,
If this issue only happens when running the node in a docker container, please try the following:

Make sure your Macbook has the latest updates
Make sure Docker Desktop has the latest updates
Restart Docker Desktop
Factory reset Docker Desktop
Restart your Macbook

Please let me know if the issue still persists after trying these things.

@vlad2095 can we consider this resolved? Please close if so


bug/#690 - secondary tile overlay does not refresh when tiles download

I explained how to make things work in my comments of issue #690, and I fixed the demo.
Impacted class:

SampleWithTilesOverlayAndCustomTileSource: added an explicit call to setTileRequestCompleteHandler

that's a brilliantly simple fix

The way osmdroid works is actually a bit counterintuitive:

we don't display what is in the providers but what is in the memory cache (which is eventually the output of the providers)
by default we don't refresh the display when we successfully download new tiles (which makes sense if we think about CacheManager download feature)


Current state of the library, milestones and current development

Please bear with me, I have never heard of fsspec and adlfs. I am trying to assess the state of this library coming frome the Python SDK for Azure Blob Storage. I used them in a personal project in order to implement concurrent (asyncio) IO of multiple blobs from Azure Cloud and now I wish to have a common interface to swap the cloud fs to a local fs, so here I am.
I was wondering what is the current state, e.g.:
AFAIK, this library is built on top on the Python SDK, levearing it. What does it offer though or how should it be used? Are there examples of use-cases when this wrapping is useful to download/upload multiple files concurrently or in other cases? What if the blob is no longer a blob but the user wish to optimize for particular content type? (for instance if all my blobs are .parquet files)

I think https://filesystem-spec.readthedocs.io/en/latest/ will answer most of those questions.


Unable to catch exception caught by logger

Hi,
Bandit is throwing exceptions for me from some malformed requests that are probing my site. I can easily filter out that exception with a before_send callback:
  def filter_non_500(%Sentry.Event{original_exception: exception} = event) do
    cond do
      match?(%{message: "Timeout waiting for space in the send_window"}, exception) ->
        false
      true -> event
    end
  end

but it appears the error is also getting captured by the log handler which has original_exception set to nil. What do I do in this situation?
%Sentry.Event{
  event_id: "59d88cdc444f4ae6a10e08eeccd16d92",
  timestamp: "2024-06-09T19:04:48.273951",
  breadcrumbs: [
    %Sentry.Interfaces.Breadcrumb{
      type: nil,
      category: "web.live_view.mount",
      message: "Mounted live view",
      data: %{},
      level: nil,
      timestamp:<PHONE_NUMBER>
    }
  ],
  contexts: %{
    runtime: %{name: "elixir", version: "1.16.2 (compiled with Erlang/OTP 26)"},
    os: %{name: "darwin", version: "23.3.0"}
  },
  dist: nil,
  environment: "dev",
  exception: [],
  extra: %{
    domain: [:elixir],
    logger_level: :error,
    logger_metadata: %{line: 225, file: "lib/bandit/pipeline.ex"},
    user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0",
    socket_id: "phx-F9drao1fyRZrWQGC"
  },
  fingerprint: ["{{ default }}"],
  level: :error,
  logger: nil,
  message: %Sentry.Interfaces.Message{
    message: nil,
    params: nil,
    formatted: "** (RuntimeError) Timeout waiting for space in the send_window\n    (visual_garden 0.1.0) lib/visual_garden_web/live/home_live/show.ex:15: VisualGardenWeb.HomeLive.Show.mount/3\n    (phoenix_live_view 0.20.14) lib/phoenix_live_view/utils.ex:354: anonymous fn/6 in Phoenix.LiveView.Utils.maybe_call_live_view_mount!/5\n    (telemetry 1.2.1) /Users/theron/code/visual_garden/deps/telemetry/src/telemetry.erl:321: :telemetry.span/3\n    (phoenix_live_view 0.20.14) lib/phoenix_live_view/static.ex:281: Phoenix.LiveView.Static.call_mount_and_handle_params!/5\n    (phoenix_live_view 0.20.14) lib/phoenix_live_view/static.ex:116: Phoenix.LiveView.Static.render/3\n    (phoenix_live_view 0.20.14) lib/phoenix_live_view/controller.ex:39: Phoenix.LiveView.Controller.live_render/3\n    (phoenix 1.7.12) lib/phoenix/router.ex:484: Phoenix.Router.__call__/5\n    (visual_garden 0.1.0) lib/visual_garden_web/endpoint.ex:1: VisualGardenWeb.Endpoint.plug_builder_call/2\n    (visual_garden 0.1.0) lib/visual_garden_web/endpoint.ex:1: VisualGardenWeb.Endpoint.\"call (overridable 3)\"/2\n    (visual_garden 0.1.0) deps/plug/lib/plug/debugger.ex:136: VisualGardenWeb.Endpoint.\"call (overridable 4)\"/2\n    (visual_garden 0.1.0) lib/visual_garden_web/endpoint.ex:1: VisualGardenWeb.Endpoint.call/2\n    (phoenix 1.7.12) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4\n    (bandit 1.5.2) lib/bandit/pipeline.ex:124: Bandit.Pipeline.call_plug!/2\n    (bandit 1.5.2) lib/bandit/pipeline.ex:36: Bandit.Pipeline.run/4\n    (bandit 1.5.2) lib/bandit/http1/handler.ex:12: Bandit.HTTP1.Handler.handle_data/3\n    (bandit 1.5.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3\n    (bandit 1.5.2) /Users/theron/code/visual_garden/deps/thousand_island/lib/thousand_island/handler.ex:379: Bandit.DelegatingHandler.handle_info/2\n    (stdlib 5.0.2) gen_server.erl:1077: :gen_server.try_handle_info/3\n    (stdlib 5.0.2) gen_server.erl:1165: :gen_server.handle_msg/6\n    (stdlib 5.0.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3\n"
  },
  modules: %{
    "site_encrypt" => "0.6.0",
    "certifi" => "2.12.0",
    "telemetry" => "1.2.1",
    "asn1" => "5.1",
    "comeonin" => "5.4.0",
    "parent" => "0.12.1",
    "expo" => "0.5.2",
    "phoenix_html" => "4.1.1",
    "ecto_sql" => "3.11.1",
    "plug" => "1.16.0",
    "iex" => "1.16.2",
    "jose" => "1.11.10",
    "kernel" => "9.0.2",
    "x509" => "0.8.8",
    "phoenix" => "1.7.12",
    "runtime_tools" => "2.0",
    "unicode_util_compat" => "0.7.0",
    "esbuild" => "0.8.1",
    "mix" => "1.16.2",
    "phoenix_live_reload" => "1.5.2",
    "castore" => "1.0.7",
    "phx_component_helpers" => "1.4.1",
    "timex" => "3.7.11",
    "hpax" => "0.1.2",
    "tailwind" => "0.2.2",
    "logger" => "1.16.2",
    "nimble_options" => "1.1.0",
    "ssl" => "11.0.2",
    "inets" => "9.0.1",
    "compiler" => "8.3.2",
    "makeup_elixir" => "0.16.2",
    "finch" => "0.18.0",
    "mime" => "2.0.5",
    "makeup" => "1.1.1",
    "decimal" => "2.1.1",
    "telemetry_poller" => "1.0.0",
    "crypto" => "5.2",
    ...
  },
  platform: :elixir,
  release: nil,
  request: %Sentry.Interfaces.Request{
    method: "GET",
    url: "http://localhost:4000/home/?",
    query_string: "",
    data: %{},
    cookies: %{},
    headers: %{
      "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
      "accept-encoding" => "gzip, deflate, br, zstd",
      "accept-language" => "en-US,en;q=0.5",
      "connection" => "keep-alive",
      "host" => "localhost:4000",
      "priority" => "u=1",
      "referer" => "http://localhost:4000/users/log_in",
      "sec-fetch-dest" => "document",
      "sec-fetch-mode" => "navigate",
      "sec-fetch-site" => "same-origin",
      "upgrade-insecure-requests" => "1",
      "user-agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0"
    },
    env: %{
      "REMOTE_ADDR" => "<IP_ADDRESS>",
      "REMOTE_PORT" => nil,
      "REQUEST_ID" => "F9draorliQYSa1kAAAFi",
      "SERVER_NAME" => "localhost",
      "SERVER_PORT" => 4000
    }
  },
  sdk: %Sentry.Interfaces.SDK{name: "sentry-elixir", version: "10.5.0"},
  server_name: "Therons-Air.hsd1.fl.comcast.net",
  tags: %{},
  transaction: nil,
  threads: nil,
  user: %{user_id: 1},
  culprit: nil,
  attachments: [],
  source: :logger,
  original_exception: nil
}

Also, does this mean that all of my errors are being double-caught? Once as the error itself and then secondly as part of the logger? That doesn't seem like the desired behavior.

@hunterboerner this might be a problem with the :domain setting (see https://github.com/getsentry/sentry-elixir/commit/c4b2facee4b7c2235fd132b8513c0c9f97a947ac), but I see that it's just [:elixir] above. @mtrudel any idea what's going on here, if it's something Bandit-related?

We only added :bandit as the logging domain in 1.5.5, released on 19 Jun. If you're running a version older than that I think you should expect to the see the behaviour you're seeing

@hunterboerner could you give the newly-releases Sentry 10.6.2 + Bandit >= 1.5.5 a try? I think they should fix this up.

Haven't heard back on this so assuming that this has been fixed. Please feel free to comment and we'll reopen if this is still an issue 🙃


style guidelines discussion thread

https://github.com/GoogleChromeLabs/llaminator/pull/64 landed, so we have some default style rules. The question is, do we like them?
Leaving for open discussion for the moment.

I ran eslint --fix and uploaded the result as PR #66, the following issues couldn't be automatically fixed:
/Users/peconn/github/llaminator/service_worker/index.ts
  20:1  error  This line has a length of 87. Maximum allowed is 80  max-len
  24:7  error  'mainDBName' is assigned a value but never used      no-unused-vars
  25:7  error  'objStoreName' is assigned a value but never used    no-unused-vars
  26:7  error  'mainImageName' is assigned a value but never used   no-unused-vars
  46:1  error  Missing JSDoc comment                                require-jsdoc

/Users/peconn/github/llaminator/src/components/llama-header.ts
  21:8   error  Missing JSDoc comment                                require-jsdoc
  26:19  error  Missing JSDoc comment                                require-jsdoc
  30:9   error  Missing JSDoc comment                                require-jsdoc
  34:1   error  This line has a length of 90. Maximum allowed is 80  max-len

/Users/peconn/github/llaminator/src/components/llama-select-fab.ts
  21:8   error  Missing JSDoc comment  require-jsdoc
  24:19  error  Missing JSDoc comment  require-jsdoc
  28:20  error  Missing JSDoc comment  require-jsdoc
  42:9   error  Missing JSDoc comment  require-jsdoc

/Users/peconn/github/llaminator/src/index.ts
  49:1  error  This line has a length of 122. Maximum allowed is 80  max-len
  52:1  error  This line has a length of 109. Maximum allowed is 80  max-len
  52:1  error  Missing JSDoc comment                                 require-jsdoc
  61:1  error  This line has a length of 143. Maximum allowed is 80  max-len
  61:1  error  Missing JSDoc comment                                 require-jsdoc
  77:1  error  This line has a length of 92. Maximum allowed is 80   max-len
  77:1  error  Missing JSDoc comment                                 require-jsdoc
  88:1  error  This line has a length of 90. Maximum allowed is 80   max-len
  88:1  error  Missing JSDoc comment                                 require-jsdoc

/Users/peconn/github/llaminator/src/storage.ts
   66:8   error  Missing JSDoc comment                                require-jsdoc
   69:22  error  Missing JSDoc comment                                require-jsdoc
   74:22  error  Missing JSDoc comment                                require-jsdoc
   88:12  error  Missing JSDoc comment                                require-jsdoc
  111:13  error  Missing JSDoc comment                                require-jsdoc
  115:16  error  Missing JSDoc comment                                require-jsdoc
  125:12  error  Missing JSDoc comment                                require-jsdoc
  135:21  error  Missing JSDoc comment                                require-jsdoc
  142:1   error  This line has a length of 93. Maximum allowed is 80  max-len
  142:15  error  Missing JSDoc comment                                require-jsdoc
  143:29  error  Expected an error object to be thrown                no-throw-literal
  147:18  error  Expected an error object to be thrown                no-throw-literal

/Users/peconn/github/llaminator/tests/puppeteer.test.js
  17:1  error  This line has a length of 82. Maximum allowed is 80  max-len
  27:1  error  This line has a length of 86. Maximum allowed is 80  max-len

Personally I'm fine with all of the suggestions, with the exception of object-curly-spacing (no spaces after '{' or before '}') and possibly require-jsdoc (more info about possible checks here.

Unorganized thoughts:
from https://github.com/GoogleChromeLabs/llaminator/pull/66/files, in order:

port: 8888 -> port: 8888, and similar: good
import { StaleWhileRevalidate } from 'workbox-strategies'; -> import {StaleWhileRevalidate} from 'workbox-strategies'; and similar: I feel like this will be unpopular. Personally I kind of think it makes sense, but from what I've seen, the spaces are fairly common in this world. I defer to others.
declare var self: ServiceWorkerGlobalScope; -> declare let self: ServiceWorkerGlobalScope;: good
adding semicolons: good
createRenderRoot() { return this; } -> createRenderRoot() {\n    return this;\n  }: seems unnecessary, I don't see an issue with a one-line function if it's this trivial
adding {} around if blocks, even when it's not strictly necessary: I like it. Let's not goto fail
only 1 space between code and comments: this way is my personal preference, but it's quite low on my list of things to care about
: of ternary being on the end of the previous line, vs the beginning of the next line: again, very low on my priorities, I could go either way

un-auto-fixable items:

20:1  error  This line has a length of 87. Maximum allowed is 80  max-len, etc: having a line length limit is probably a good thing. Personally I think 80 is lower than it needs to be. 100 or even maybe 120(?) would be my personal preference.
46:1  error  Missing JSDoc comment                                require-jsdoc: it's annoying, but probably valuable
 143:29  error  Expected an error object to be thrown                no-throw-literal: haven't decided yet

other stuff
There are lots of custom rules in https://github.com/GoogleChromeLabs/bubblewrap/blob/main/.eslintrc.json that we could potentially steal, but I haven't looked through them yet

Unorganized thoughts:
from https://github.com/GoogleChromeLabs/llaminator/pull/66/files, in order:

port: 8888 -> port: 8888, and similar: good
import { StaleWhileRevalidate } from 'workbox-strategies'; -> import {StaleWhileRevalidate} from 'workbox-strategies'; and similar: I feel like this will be unpopular. Personally I kind of think it makes sense, but from what I've seen, the spaces are fairly common in this world. I defer to others.
declare var self: ServiceWorkerGlobalScope; -> declare let self: ServiceWorkerGlobalScope;: good
adding semicolons: good
createRenderRoot() { return this; } -> createRenderRoot() {\n    return this;\n  }: seems unnecessary, I don't see an issue with a one-line function if it's this trivial
adding {} around if blocks, even when it's not strictly necessary: I like it. Let's not goto fail
only 1 space between code and comments: this way is my personal preference, but it's quite low on my list of things to care about
: of ternary being on the end of the previous line, vs the beginning of the next line: again, very low on my priorities, I could go either way

Agreed on all counts. I really like the extra spaces in e.g. import { StaleWhileRevalidate } from ..., that's the only one I would consider arguing for in this list.

un-auto-fixable items:

20:1  error  This line has a length of 87. Maximum allowed is 80  max-len, etc: having a line length limit is probably a good thing. Personally I think 80 is lower than it needs to be. 100 or even maybe 120(?) would be my personal preference.

Agreed on a line length limit of 100. My editor displays vertical lines on :80 and :100 already.

46:1  error  Missing JSDoc comment                                require-jsdoc: it's annoying, but probably valuable

Can we require jsdoc for anything that's public, but not require it for private methods? TS has visibility keywords that can help here.

 143:29  error  Expected an error object to be thrown                no-throw-literal: haven't decided yet

We should adopt this.

46:1  error  Missing JSDoc comment                                require-jsdoc: it's annoying, but probably valuable

Can we require jsdoc for anything that's public, but not require it for private methods? TS has visibility keywords that can help here.

I don't think so


1.17.1 don´t detect player perms as it should on bungee conected server

Description
I can´t run any /lp command I don´t have permission even if i have luckPerms.*  . works on the server you play on fine but not on the hub.
https://i.imgur.com/mtIwwq6.png
https://i.imgur.com/olniYZb.png
Reproduction Steps
I have not do more an install it and the bungee on the bungee server. Have be like this for weeks or more.
Expected Behaviour
should allow me run lp commands with out use op.
Server Details
1.17.1 408
LuckPerms Version
5.3.98
Logs and Configs
No response
Extra Details
No response

Your storage type is H2 so permissions won't sync between servers.
See here for more info https://luckperms.net/wiki/Syncing-data-between-servers

Ofc not. I have set the permissions on right server.

So it should work without need sync to the other servers, when already set the permissions on the hub too


ScanOSS for Java

We are currently using Java for our SonarQube application. We are manually trying to integrate the ScanOSS CLI into our application using a plugin. Can we use the deprecated version of the CLI for JAVA for our plugin? Is there a better way to integrate python cli into Java? What is the best route for us?
Please let me know.
Thank you!

Hi,
We are investigating and will get back to you shortly...
SCANOSS

Hi,
Based on our offline conversation we have agreed that it's better to leverage the CLI integration (calling it from Java).
Thanks! SCANOSS


Untriggered dropdowns near right edge cause horiz. scrollbar

@jeffmcmahan mentioned this issue at the end of a F3.x discussion thread here:
https://github.com/zurb/foundation/issues/896#issuecomment-19510028
This issue is because the off-screen, yet-to-be-triggered dropdowns are positioned 9999px upwards from their originating position. There is no special left/right positioning before they're triggered. Therefore, if the dropdown originates towards the right edge of the browser, it causes a horizontal scrollbar.
One can see this clearly by opening up Firebug, finding the yet-to-be-triggered dropdown in the DOM, and scrolling the Style pane down to reach this rule:
.f-dropdown {
    margin-top: 2px;
    top: -9999px;
}

Disable the top: -9999px; rule (and if applicable, the same rule being applied to .f-dropdown.content just above it), and you'll see the untriggered dropdown causing the horizontal scrollbar.
The simplest fix would probably be to display: none; the dropdowns.
EDIT: Adding the following code fixed the issue for me, but I have no idea what repercussions this may have beyond the immediate issue:
.f-dropdown
{
    display: none;
}
.f-dropdown.open
{
    display: block;
}

I have a terrible Solution, but better than nothing I think
put these tow line when document is ready ;)
$('#drop-id-or-other-type-of-selector').trigger('click');
$('#another-dom-object').trigger('click');


Cannot read property 'kind' of undefined during version 9 update

This issue impacts 9.0.0-rc.0 and happened while updating https://github.com/vmware/clarity.
The following migration failed while running, interrupting the update process.
>  Undecorated classes with DI migration.
   As of Angular 9, it is no longer supported to use Angular DI on a class that does not have an Angular decorator.
   Read more about this here: https://v9.angular.io/guide/migration-undecorated-classes

    This migration uses the Angular compiler internally and therefore projects that no longer build successfully after the update cannot run the migration. Please ensure there are no AOT compilation errors and rerun the migration.. The following project failed: src/clr-angular/tsconfig.prod.json

    Error: error TS100: Cannot determine the module for class ButtonViewTestComponent in D:/sandbox/clarity/src/clr-angular/button/button-group/button.spec.ts! Add ButtonViewTestComponent to the NgModule to fix it.
    Cannot determine the module for class TestIndex in D:/sandbox/clarity/src/clr-angular/emphasis/alert/alerts-pager.spec.ts! Add TestIndex to the NgModule to fix it.
    Cannot determine the module for class TestInstance in D:/sandbox/clarity/src/clr-angular/emphasis/alert/alerts-pager.spec.ts! Add TestInstance to the NgModule to fix it.
    Cannot determine the module for class BasicWizardTestComponent in D:/sandbox/clarity/src/clr-angular/wizard/test-components/basic-wizard.mock.ts! Add BasicWizardTestComponent to the NgModule to fix it.
    Cannot determine the module for class HeaderActionsTestComponent in D:/sandbox/clarity/src/clr-angular/wizard/test-components/header-action-wizard.mock.ts! Add HeaderActionsTestComponent to the NgModule to fix it.
    Cannot determine the module for class TemplateApiWizardTestComponent in D:/sandbox/clarity/src/clr-angular/wizard/test-components/api-wizard.mock.ts! Add TemplateApiWizardTestComponent to the NgModule to fix it.
    Cannot determine the module for class DynamicWizardTestComponent in D:/sandbox/clarity/src/clr-angular/wizard/test-components/dynamic-wizard.mock.ts! Add DynamicWizardTestComponent to the NgModule to fix it.
    Cannot determine the module for class UnopenedWizardTestComponent in D:/sandbox/clarity/src/clr-angular/wizard/test-components/unopened-wizard.mock.ts! Add UnopenedWizardTestComponent to the NgModule to fix it.

Cannot read property 'kind' of undefined
git HEAD was at ef1733759ceeff88ceb7ab7ff01f5da604fb79cb before migrations.
×  Migration failed. See above for further details.

The kind of undefined error surfaces due to #16035. All of the migrations make the assumption that the  tsconfig files are valid. This is no longer the case due to the CLI migration failure.
I'll fix this in the framework migrations, as apparently it cannot assume that the tsconfig is always valid.

@devversion also mentioned that this can happen when test files are included, which happens in library project because the tsconfigs used by ng-packagr automatically filter out spec files. Maybe we should update these configs to exclude the test files.

Could this be related https://github.com/angular/angular/issues/33143
(nit: after moving from single-app to monorepo ( multi projects/ in workspace) I don't have this error anymore)

I'm not sure if that is related. This issue seems to be because of #16035 where program.getSourceFile() returns undefined. The other issue you linked to seems to originate from the AngularCompilerProgram. I'd love to investigate this, but I'm not sure how I can reproduce this.

Assigning to Filipe for verification

For reference: The error is no longer thrown as part of the migration and we now gracefully report if the tsconfig of a migration target has failures. I think the CLI migration that generates these invalid tsonfigs has been fixed, so I think that can be closed.

I can confirm Cannot read property 'kind' of undefined is no longer shown on that update.


How to check asset amount in wallet?

thinking i may have to use algod for this? i want to keep purchasing an asset until I spend all ALGO, I don't want to purchase it all at once because slippage will be too high

You can use account_info in py-algorand-sdk. https://py-algorand-sdk.readthedocs.io/en/latest/algosdk/algod.html#algosdk.algod.AlgodClient.account_info
BTW, Wallet does not have asset or algo. Account has.

:gift:
def get_wallet_asset(asset, fetch=True):
  global WALLET
  if (fetch):
    WALLET = client.algod.account_info(client.user_address)
  try:
    return asset((next(
      item for item in WALLET['assets'] if item['asset-id'] == asset.id
    ) if asset.id else WALLET)['amount'])
  except:
    return asset(0)

Thank you for the question and answers. The issue looks like resolved.
I will close this issue, feel free to reopen it.


[CODESTYLE] Replace phpcs with php-cs-fixer and use pre-defined / Laravel compatible config

Intro
The initial idea was to simply ensure to automate (and keep it consistent) with the short array syntax => https://github.com/barryvdh/laravel-ide-helper/pull/493#issuecomment-570712736

sure

The more I looked at it, it become clear that the general code style wasn't really coherent.
I've used https://github.com/matt-allan/laravel-code-style in the past, basically just a pre-set of php-cs-fixer config settings, most suitable for Laravel related packages.
Thus, this PR switched over to php-cs-fixer and uses that config with some "useful additions".
Since this PR could not be green without actually including the style fixes, the final diff of course 'sploded 💥
I therefore suggest to rather focus on the diff except the last 3 commits first
Summary

Replace phpcs (PHP_CodeSniffer) with php-cs-fixer and use https://github.com/matt-allan/laravel-code-style with some more config options

Still integrated into grumphp

Run it on github actions instead of travis
Fixed the whole codebase and adapted tests

I left some in-line comments to raise some eyes on selected parts.

 To the best of my knowledge, nothing "broke" with it.
Not sure if we want it, but seeing all the inconsistencies fixed (which phpcs didn't report at all) somewhat gives a good overall feeling.

Rebased with master, all green @barryvdh

I guess this is going nowhere 😅

Yeah sorry for the lack of response. I find these kind of PRs difficult. I understand the need for consistency, but it usually leads to a lot of merge conflicts with open pull requests, with little 'real' value for users.
And as stated, I believe PSR-12 is better suited.

Yeah sorry for the lack of response. I find these kind of PRs difficult. I understand the need for consistency, but it usually leads to a lot of merge conflicts with open pull requests, with little 'real' value for users.

@barryvdh in the hopes of being not too annoying, I'd like to ask one more time about this
I would like to propose to move to php-cs-fixer because IMHO its results are better/more useful/practical and we'll be able to fix a lot of the inconsistencies automatically we still have

And as stated, I believe PSR-12 is better suited.

I totally agree! But to the best of my knowledge, there's no "finished" PSR-12 out-of-the box config yet, but IMHO it's not such a big issue as I would propose to already not deviate from PSR-12 where we can align it (some things are always up for debate, no PSR is going to specify each and every character).
Needless to say I've used this approach in multiple projects successfully: even more consistent code base and with GHA auto-commit, less friction for contributions anyway.
Yes, existing PRs are always going to suffer a bit but let's be honest: I don't see so many of them being merged anytime soon and am I'm happy to assist them where possible; I think I've proven that.
Thanks!

So what do you want to do exactly? Reformat all a psr-12, or use the Laravel can fixer?

So what do you want to do exactly?

switch to a tool (php-cs-fixer instead of phpcs) which I believe can do a better job at formatting
psr-12; at least as good as it gets with php-cs-fixer currently

however I ask to have patience as no Code Style PSR12 will ever answer all code style question and there's always room for discussion in between

The gist is, it wouldn't matter to me if Laravel CS or PSR-12 (but yes, preferring PSR-12) but to also have a tool which IMHO does a better job and we can use to fix many more smaller issues (like automatically reforming unused use imports [which phpcs can't] and others).
Thanks!

But we're already using PSR-12?
PSR-12 is fine by me and if you think php-cs-fixer does a better job then that's also fine with me :)

Sent in https://github.com/barryvdh/laravel-ide-helper/pull/1030


Add a note that we use an auth certificate from letsencrypt.org for the Kubeflow UI

We should add a note in the docs that we use an auth certificate from letsencrypt.org for the Kubeflow UI.
We do have a brief, by-the-by mention on this page:
https://github.com/kubeflow/website/blob/master/content/docs/guides/gke/private-clusters.md
But we need a more authoritative mention so that users are aware they're using the services of Let's Encrypt.
More info:

Search Kubeflow core for "letsencrypt": https://github.com/kubeflow/kubeflow/search?q=letsencrypt&unscoped_q=letsencrypt

Let's Encrypt recommends renewing certificates automatically when they have a third of their
total lifetime left. By default the certificates are valid for 90 days, which means you need to renew 30 days before expiry. See https://letsencrypt.org/docs/integration-guide/

For Let's Encrypt questions and support, visit https://community.letsencrypt.org/

/assign

The docs currently mention Let's Encrypt here:
https://www.kubeflow.org/docs/gke/deploy/monitor-iap-setup/

/close


Added release notes changes

@hardikhdholariya  - We also need to include all the doc changes necessary for this stuff.


Add check existence of storage group of path for MManager, MGraph and MTree

Add a method to check whether the storage group of a input path exists or not. This method will be used in Cluster module. It helps data state machine to decide whether it needs to execute null-read in meta group while applying a task of adding path or not.

Test coverage:

￼


Revising Metric: Issues Active

Name of the Metric Being Revised
Issues Active

Website: https://chaoss.community/metric-issues-active/
File: https://github.com/chaoss/wg-evolution/blob/main/focus-areas/issue-resolution/issues-active.md

Link to Original Metric Release Issue
#287
Specific Metric Details that Require Attention

As in a few other metrics, we offer specific instructions to implement in GrimoireLab. We should make sure these instructions are still correct, or remove them to avoid having to keep up with this in the future. There is no mention of Augur.
The Description section is very light (maybe this is ok?)
There are parameters which seem to be filters to me
Synonyms are listed in Data collection strategies and not in Description
Do we need references?

Checklist

Process

[x] Create the “revising metric” labeled issue in the authoring WG’s repo for comments during review period
[ ] Create pull request of revised metric to WG’s repo (after checking Content Quality and Technical Requirements below)
[ ] Add the metric revision to release notes issue in working group repo
[ ] Update the Metrics Spreadsheet to indicate that the revised metric is under review
[ ] Create issue in CHAOSS/Translations repository to kick-off translation to other languages (please use the the translation issue template)
[ ] "Metric Candidate Release" label added to the metric release candidate issue when fully ready fo release

When above steps are completed:

[ ] Announce new/updated metric on mailing list, newsletter, community Zoom call, and Twitter. This can be coordinated with the community manager and can be done as a collective of all revised metrics from the CHAOSS community.

Content Quality (check all that apply)

[ ] Date of last review has been added to the revised metric at the bottom of the markdown file (month/year)
[ ] Formatting changes have been made
[ ] Minor editorial changes have been made
[ ] Major editorial changes have been made
[ ] Metric adheres to the current metrics template
[ ] Metric name has changed and necessary updates are made to the WG README table and metrics tracking spreadsheet

Technical Requirements for any Revisions

[ ] Metric file name is the full metric name and only contains lower case letters and hyphens (“-”) for spaces
[ ] Images are included using markdown and absolute path links (as described in the metrics template)
[ ] Images have at least one empty line above and below them
[ ] Images are placed in image folder and followed naming convention
[ ] If new a focus area is created, ensure focus area is added to wg repo readme and focus area folder readme
[ ] There is no HTML code in the metrics markdown file

Note the "Specific Metric Details that Require Attention" comments above


Windows based demo containers

All the containers in dockerfiles should have a Windows equivalent and we should expand the makefile to build them

As I was working in https://github.com/openservicemesh/osm/pull/3921
I realized that we are running into a fundamental issue with how I was planning on building Windows containers from the CI.
I discussed internally with the team that produces the insider version of containers (https://hub.docker.com/_/microsoft-windows-nanoserver-insider/) and I found out that these containers can be used with docker buildx.
This means that for the time being we have two options for building the Windows demo containers:

Add a Windows host in the CI and build the demo containers from there. The obvious downside is that these involves maintenance and it will need to be deprecated in a couple of months when Windows Server 2022 is GA.
Manually push the images and have no automation at this point. When Windows Server 2022 is GA we should be able to add #3921 as it is.

@michelleN @draychev wdyt?

How often would images need to be pushed?

Where would the Windows host be located?

How often would images need to be pushed?

Not sure, hopefully not that many times but we might need to iterate 1-2 times as we work through the demo and the tests.

Where would the Windows host be located?

It will be a VM on Azure.

Manually push the images and have no automation at this point. When Windows Server 2022 is GA we should be able to add feat(windows): [Do not merge] Adds demo containers based on Windows #3921 as it is.

I think the demo images change infrequently enough that this would be fine as a stop-gap for a few weeks. However, since the CI assumes the control plane and demo images use the same tag which changes for every commit, we'd either have to completely decouple those or manually re-tag and push the demo images manually and somehow synchronize that during CI runs, which doesn't seem feasible to me. Decoupling the control plane and demo image tags doesn't sound too bad, but would involve a pretty wide set of changes that I highly doubt we'd get right the first time.
Overall, my hunch is adding a Windows machine to the CI seems like it would be the easier and less disruptive option. How much upkeep would we expect to need for that VM over the next few weeks?

Depending on the time estimate, I like option 1. +1 to Jon's point

Sorry got confused by what Windows Host means in this case. I thought you meant for the k8 cluster but it is probably in the context of the CI.
The windows host should be available on AzureDevops as a managed option. i.e. we do not need to maintain it

See https://github.com/actions/virtual-environments#available-environments

Awesome, option 1 it is, I will work on adding a Windows based job on the CI that will only build the demo containers.

Sorry got confused by what Windows Host means in this case. I thought you meant for the k8 cluster but it is probably in the context of the CI.
The windows host should be available on AzureDevops as a managed option. i.e. we do not need to maintain it

Yep, meant in the context of the CI. Are you able to build the insider images from Windows Server 2019?

Are you able to build the insider images from Windows Server 2019?
I haven't tested it but I think it should be possible with hyper-v isolation mode

@ksubrmnn was right and it is not possible to build these images from Windows Server 2019.
With this info I think that manually pushing the container images and building them locally is the best way forward now. I think it might be too much work to self-host a build agent for a couple of months. WDYT?

Sounds good to me. There aren't a ton of examples of using insider builds for these purposes. Waiting until GA for automation seems very reasonable

Could you please write some short documentation about this process?

We could just keep it in the repo instead of osm-docs since it's still in development.
You could write docs in osm-docs but explicitly state that the project is in development and not GA/ready for customer testing.

I prefer option 1 since I don't think it's feasible for customers to try this out themselves just yet, but it would be good to have dev docs so others can try building these images themselves.
@nojnhuh what do you think?

Yeah, keeping docs in the osm repo makes the most sense to me.

I recommend making a windows directory in https://github.com/openservicemesh/osm/tree/main/docs


Convert patients/search/NoPatientsExist.test.tsx to RTL

Fixes #30

@nobrayner is this PR looks good? ready to merge?

Some one else raised a PR. Closing this.


README improvements

Joy Payton here.  A few suggestions / notes on the edition2 branch:

[ ] In Ch. 2 README (and propagate forward), add the link to storage: https://console.cloud.google.com/storage/browser
[ ] In Ch. 3 README (and propagate forward), correct the ./ingest_from_crsbucket instructions:

include .sh extension (copy how you do it in Ch 2 README?)
make clear that "bucketname" should be replaced  (copy how you do it in Ch 2 README?)

[ ] In Ch. 3 README (and propagate forward) indicate that one has to run ./bqload.sh  csv-bucket-name YEAR to populate BigQuery before executing the step that runs ./create_views.sh
[ ] In Ch. 3 README consider adding horizontal lines or other break to distinguish the optional part beginning and end
[ ] In Ch. 4 README, Warn users about error possibility and venv workaround on the first step of Batch processing transformation in DataFlow.  Explain that if they wait too long to execute everything and lose their venv, they'll have to rerun the step.
[ ] In Ch. 4 README, after the "catch up" section, guide user to navigating into ~/data-science-on-gcp/04_streaming
[ ] In Ch. 4 README, Indicate that you should replace text (bucket, project) in Read/write to Cloud step
[ ] In Ch. 4 README, Enable api at https://console.developers.google.com/apis/api/dataflow.googleapis.com/overview before running df07.py
[ ] In Ch. 4 README, Add "in the cloud dataflow section" to after df07 and/or link https://console.cloud.google.com/dataflow/jobs
[ ] In Ch. 4 README add a link to BigQuery before the query itself (https://console.cloud.google.com/bigquery)
[ ] In Ch. 4 README, in the step Simulate Event Stream, learner has just been in transform so change the cd command to cd ../simulate or a path from ~
[ ] In Ch. 4 README, in the Real-time Stream Processing step:

explain how to open a new cloudshell
again, provide the path from home directory for the cd command
make project and bucketname substitution more obvious
describe expected output and that you'll have a foreground process
specify using ctrl-c in the correct terminal window
make explicit that "you need to run this in dataflow" will be handled by the next script
add step tp enable pubsub api at https://console.developers.google.com/apis/api/pubsub.googleapis.com/
suggest view name for ATL delays

@pm0kjp thanks a lot for these comments. Finally code works :)


LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210910153408349 to main

LEGO: Pull request from lego/hb_04604851-bac4-4681-9f74-73de611d6e48_20210910153408349 to main with localized lcls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 41.635%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
26395

Relevant Lines:
57409

💛  - Coveralls


(ok.ru) HTTP Error 400: Bad Request

[X] I'm reporting a broken site support
[X] I've verified that I'm running youtube-dl version 2021.04.17
[X] I've checked that all provided URLs are alive and playable in a browser
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones

Verbose log

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://ok.ru/video/381828403604']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.04.17
[debug] Python version 3.8.6 (CPython) - Linux-5.8.0-50-generic-x86_64-with-glibc2.32
[debug] exe versions: ffmpeg 4.3.1, ffprobe 4.3.1, rtmpdump 2.4
[debug] Proxy map: {}
[Odnoklassniki]<PHONE_NUMBER>04: Downloading webpage
[Odnoklassniki]<PHONE_NUMBER>04: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 400: Bad Request
[debug] Default format spec: bestvideo+bestaudio/best
[debug] Invoking downloader on 'https://vd297.mycdn.me/?expires=1618913293719&srcIp=XXX.XXX.XXX.XXX&srcAg=CHROME&ms=<IP_ADDRESS>&type=5&sig=2Q7MMATljB8&ct=4&urls=<IP_ADDRESS>&clientType=0&id=358157257424'
ERROR: unable to download video data: HTTP Error 400: Bad Request
Traceback (most recent call last):
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1967, in process_info
success = dl(filename, info_dict)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1906, in dl
return fd.download(name, info)
File "/usr/local/bin/youtube-dl/youtube_dl/downloader/common.py", line 366, in download
return self.real_download(filename, info_dict)
File "/usr/local/bin/youtube-dl/youtube_dl/downloader/http.py", line 351, in real_download
establish_connection()
File "/usr/local/bin/youtube-dl/youtube_dl/downloader/http.py", line 116, in establish_connection
raise err
File "/usr/local/bin/youtube-dl/youtube_dl/downloader/http.py", line 110, in establish_connection
ctx.data = self.ydl.urlopen(request)
File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2279, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/lib/python3.8/urllib/request.py", line 531, in open
response = meth(req, response)
File "/usr/lib/python3.8/urllib/request.py", line 640, in http_response
response = self.parent.error(
File "/usr/lib/python3.8/urllib/request.py", line 569, in error
return self._call_chain(*args)
File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
result = func(*args)
File "/usr/lib/python3.8/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
<

Description
I've got this error when downloading from OK.RU,
Tested it on windows and it works great...
Tried ipv4, ipv6, proxy, geo restrictions, no help, still same problem
BR

You must provide reproducible environment.


test: add unit-test for proxy/has port

Ⅰ. Describe what this PR did
#1641 add unit-test for proxy/has port
Ⅱ. Does this pull request fix one issue?
NONE
Ⅲ. Describe how you did it
NONE
Ⅳ. Describe how to verify it
NONE
Ⅴ. Special notes for reviews
NONE

Codecov Report

Merging #1668 into master will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1668      +/-   ##
==========================================
+ Coverage   41.16%   41.17%   +0.01%
==========================================
  Files         274      274
  Lines       18091    18091
==========================================
+ Hits         7447     7449       +2
- Misses       9729     9730       +1
+ Partials      915      912       -3

Impacted Files
Coverage Δ

daemon/mgr/system.go
75% <0%> (-1.73%)
:arrow_down:

ctrd/image.go
77.47% <0%> (-0.55%)
:arrow_down:

daemon/mgr/container.go
50.23% <0%> (+0.15%)
:arrow_up:

ctrd/image_proxy_util.go
9.37% <0%> (+1.56%)
:arrow_up:

daemon/logger/jsonfile/utils.go
73.17% <0%> (+1.62%)
:arrow_up:

LGTM, thanks a lot for your work. @mengjiahao


Added support to loc-key notification content

According to Apple Developer Guide it is possible to use also a Dictionary as aps alert field value:
{
  "aps":{
    "alert": {
      "loc-key":"localizable_string_key"
    },
    "badge":1,
    "sound":"default"
  }
}

This commit added loc-key value support to localize alert title message.

Thank u so much  ：）

@pikacode thank you too for the fast integration!
When is it supposed to be released on cocoapods central registry? When is scheduled the next official release?
We need it in a project ASAP and we'll temporary point to the commit in the Podfile

ok, maybe in 3 days.

Hi, any news about the publication on cocoapods?
Thanks.


add normalize dependency

Since we expect normalize in order to make Foundation function (at least in SCSS builds) now, it needs to be a true dependency, not just a dev dependency
Half the fix to #9412

@ncoden you did the normalize change... can you confirm I'm not crazy thinking this should be an actual dependency given we expect people to primarily use scss?

@kball Well... people can use the Foundation repository to:

contribute to it -> they need standard and dev dependencies.
use foundation.css in their projects -> normalize is compiled inside, they don't need any dependencies (if they import jQuery themself).
use foundation.scss or partials in their projects -> they need normalize.

So yes, normalize should be a standard dependency.


Publish this resource as docker-image

To be able to easily use this resource on any concourse using a resource_type, it could be nice to have it published as a docker image. Tentative seems to exist on cron-resource@dockerhub.
I've done something here cron-resource-builder, if you want to reuse it.

@o-orand We fixed the 'automated build' for our cron-resource on Dockerhub. We have some teams that is already using this as a docker image on their Concourse workers. Please let us know if you'd like us to add anything else.
https://hub.docker.com/r/cftoolsmiths/cron-resource/


Append tootltip to column header

How do i add a question mark tooltip to the Column header ? I tried several possibilities but the tags are displayed as it is in screen

Any idea as to how we can try this ?

Currently it would be a bit tricky, it's pretty easy to just add the appearance but it's another thing to get the behavior of a tool-tip. I'll mark this a s a feature request as I think it's something we should support but I can't say when I'll have time to look at it.

How to add the appearance at least ? since am not gonna use jquery to append a span with "?" symbol . I want to achieve it the Angular way

Any idea as to how we can access the header and modify them ? I know columnComponent is there to achieve it for column values , is there something like that for header too ?

Hi, sorry for the late reply. This feature will part of next release which I hope will be released in a few days:)

Thanks :)

feature available in v4.9.0, checkout this example

Thanks mate ! does it facilitate localization ?


Fix #1677, Add Message API Functional Test

Describe the contribution

Fixes #1677

Contributor Info - All information REQUIRED for consideration of pull request
Paul Oberosler, Individual

Commit message typo - it should reference #1677.

Commit message typo - it should reference #1677.

I also noticed, I will push it immediately

I have not yet managed to run a MemoryProfiler with the unit test to find out what checksum an empty message with id 2 has. Could someone help me with this? (for the ut of GenerateChecksum)
These are the lines

Duplicate of #1745

I have not yet managed to run a MemoryProfiler with the unit test to find out what checksum an empty message with id 1 has. Could someone help me with this? (for the ut of GenerateChecksum)
These are the lines

See comments on #1745 - really GenerateChecksum just inserts the correct value into the message, so verification is just to run ValidateChecksum before and after and make sure it passes after.  There actually is no GetChecksum API anymore since we couldn't come up with a use-case from an application context.


Failed import (creature type)

It doesn't import the creature type. here's the statblock. It does this for several of the statblocks from the same book, Monster manaul I expanded. (and the latter books in the series)
Aboleth Slime Lord
Large Aberration, Typically Lawful Evil
Armor Class 18 (natural armor)
Hit Points 195 (23d10 + 69)
Speed 10 ft., swim 40 ft.
STR DEX CON INT WIS CHA
22 (+6) 9 (-1) 16 (+3) 18 (+4) 16 (+3) 18 (+4)
Saving Throws Con +8, Int +9, Wis +8
Skills History +14, Perception +13
Damage Immunities acid
Senses darkvision 120 ft., passive Perception 23
Languages Deep Speech, telepathy 120 ft.
Challenge 14 (11,500 XP) Proficiency Bonus +5
Amphibious. The aboleth can breathe air and water.
Acidic Mucous Cloud. While underwater, the aboleth is surrounded
by transformative mucus. A creature that touches the aboleth or that
hits it with a melee attack while within 5 feet of it takes 7 (2d6) acid
damage and must succeed on a DC 16 Constitution saving throw.
On a failure, the creature is diseased for 1d4 hours. The diseased
creature can breathe only underwater.
Probing Telepathy. If a creature communicates telepathically with
the aboleth, the aboleth learns the creature's greatest desires if the
aboleth can see the creature.
Actions
Multiattack. The aboleth makes three Tentacle attacks. Alternatively,
it can use two Slime Orb attacks.
Slime Orb. Ranged Spell Attack: +11 to hit, range 120 ft., one target.
Hit: 14 (4d6) acid damage and the target must succeed on a DC 16
Strength saving throw or be restrained until the end of the aboleth's
next turn.
Tentacle. Melee Weapon Attack: +11 to hit, reach 10 ft., one target.
Hit: 13 (2d6 + 6) bludgeoning damage plus 10 (3d6) acid damage.
If the target is a creature, it must succeed on a DC 16 Constitution
saving throw or become diseased. The disease has no effect for 1
minute and can be removed by any magic that cures disease. After 1
minute, the diseased creature's skin becomes translucent and slimy,
the creature can't regain hit points unless it is underwater, and the
disease can be removed only by heal or another disease-curing spell
of 6th level or higher. When the creature is outside a body of water,
it takes 6 (1d12) acid damage every 10 minutes unless moisture is
applied to the skin before 10 minutes have passed.
Tail. Melee Weapon Attack: +11 to hit, reach 10 ft., one target.
Hit: 15 (3d6 + 5) bludgeoning damage plus 10 (3d6) acid damage.
Enslave (3/Day). The aboleth targets one creature it can see within
30 feet of it. The target must succeed on a DC 16 Wisdom saving
throw or be magically charmed by the aboleth until the aboleth dies
or until it is on a different plane of existence from the target. The
charmed target is under the aboleth's control and can't take reactions,
and the aboleth and the target can communicate telepathically with
each other over any distance.
Whenever the charmed target takes damage, the target can repeat
the saving throw. On a success, the effect ends. No more than once
every 24 hours, the target can also repeat the saving throw when it is
at least 1 mile away from the aboleth.
Legendary Actions
The aboleth can take 3 legendary actions, choosing from the options
below. Only one legendary action option can be used at a time and
only at the end of another creature's turn. The aboleth regains spent
legendary actions at the start of its turn.
Tail Swipe. The aboleth makes one Tail attack.
Psychic Drain (Costs 2 Actions). One creature charmed by the
aboleth takes 17 (5d6) psychic damage, and the aboleth regains hit
points equal to the damage the creature takes.
Slime Sphere (Costs 3 Actions). The aboleth conjures a ball of
acidic slime that explodes at a point it can see within 120 feet of
it. Each creature in a 20-foot-radius sphere centered on that point
must succeed on a DC 16 Strength saving throw. On a failed save, a
creature takes 14 (4d6) acid damage and is restrained until until it
escapes the slime. Any creature can use its action to make a DC 16
Strength check to free itself or another creature in the net, ending
the effect on a success. Dealing 10 fire damage to the slime (AC 12)
destroys the slime and frees the target. A restrained creature takes
10 (3d6) acid damage at the start of each of the Aboleth's turns. On
a successful save, a creature takes half as much damage and isn't
restrained.

The issue here is that the type checking is case sensitive, and this past year WotC swapped from all lowercase to capitalizing the types.

I'll look at this in a bit, but the parser doesn't check for letter case. It might be the "typically" throwing it off. It's possible that the Foundry 5e system doesn't support that as an identifier.

Fixed in v1.67.


[6.x] Use SKIP LOCKED for mysql 8.1 and pgsql 9.5 queue workers

Using SKIP LOCKED on MySQL 8.0.19 I was able to get 516,783 jobs processed by 50 workers in 25 minutes on a 3GB RAM - 1 CPU core DigitalOcean server. No deadlocks.
Running the same test without SKIP LOCKED I started getting deadlocks after a few minutes.

This breaks compatibility with MSSQL server @taylorotwell. It does not support the "SELECT FOR UPDATE" syntax. Whenever I now try to run the queue with queue:work I am getting this error:
Illuminate\Database\QueryException SQLSTATE[42000]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Line 1: FOR UPDATE clause allowed only for DECLARE CURSOR. (SQL: select top 1 * from [jobs] FOR UPDATE where [queue] = default and (([reserved_at] is null and [available_at] <=<PHONE_NUMBER>) or ([reserved_at] <=<PHONE_NUMBER>)) order by [id] asc)
Queues are unusable in MSSQL now because of this commit. It should be reverted until a proper solution that covers all currently supported databases is implemented.

@Krunch locks are skipped for SqlServer, same as Sqlite

Not with this commit @themsaid. If I put ->lockForUpdate() back instead of this commit ->lock($this->getLockForPopping()) the MSSQL Queues work again.

With this commit the SQL query generated on MSSQL is this: select * from [jobs] FOR UPDATE where [queue] = ? and (([reserved_at] is null and [available_at] <= ?) or ([reserved_at] <= ?)) order by [id] asc
Before this commit: select * from [jobs] with(rowlock,updlock,holdlock) where [queue] = ? and (([reserved_at] is null and [available_at] <= ?) or ([reserved_at] <= ?)) order by [id] asc
As you can see the locking part is drastically different. @themsaid

We're experiencing the same problem with SQLServer after updating to 6.14, the queue-workers don't process the queue.

I opened Issue #31368 for this specific bug.


[0.11.x] Remove System.out.println, fixes #1356

Backport: https://github.com/Hyperfoil/Horreum/pull/1374

Fixes Issue: #1356

This should not be backported, my mistake


Missing Documentation

[x] Variables & params - #49
[x] RawCypher
[ ] (HOW TO) Using it with typescript
[ ] (Getting Started) Connecting to neo4j-driver
[ ] Composition and concat
[ ] Procedures

Putting this here as it seems most relevant.
I don't know if I'm doing something fundamentally wrong. But I would appreciate it so much if you could provide an example of created an edge between two arbitrary nodes.

Hi @Mearman
The best space for questions at the moment is the Discussions page.
To achieve what you want, probably 2 MATCH statements and a CREATE is probably the best way
If you need more details, please open a discussion with more details about the Cypher statement you want to create

Apologies, didn't see you had discussions enabled


fetch games by userId

I made a very little but necessary tweak to the code we created on video call
I also added a seeder folder containing a mock json for our database in case it gets cleared

CC: @NdubuisiJr kindly approve your change requested is fixed ✔


make the editor font zoom shortcuts trigger the new terminal zoom commands when terminal has focus

I'd like to request that these three commands introduced in Feb this year, and unbound by default, be bound to the standard editor font zoom keys (ctrl+= for zoom in, ctrl+- for zoom out, ctrl+0 for zoom reset) when terminal has focus.

AFAIC these bindings do not conflict with any existing ones, and arguably better conform to user expectations.
At the very least, I'd like know how to write a when-expression that will allow me to do this on my own!

ctrl+-/+ resize the whole window, not just the editor. We can't replace that as it would be inconsistent


App crashes

Hey I just downloaded it from F-Droid and as soon as I type anything into the search box, the app crashes.

What device/android version were you using? If possible, can you send a logcat log?

I'm temporarily without it, but it's Android 4.4. I'll look into logcat soon when I get it back.

I no longer have that device so I can't reproduce it. I'm using a newer Android device and not having problems. Closing now.


[wip] k3s: 1.22.3+k3s1 -> 1.23.3+k3s1

Closes #156615
THIS IS AN EARLY DRAFT
Building K3s is currently broken so I'm attempting to use buildGoModule instead. It is broken still. Trying to sort out things out. And Yes, I have no idea on what I'm doing. And
I wouldn't mind keeping things as they are if updates weren't broken.
I'll try to mimic this (haven't yet):
https://github.com/k3s-io/k3s/blob/master/scripts/build
UPDATE:
K3s builds when using buildGoModule. But tests are failing still.
Code I'm using:
pkgs/applications/networking/cluster/k3s/default.nix
let
  k3sVersion = "1.23.3+k3s1";     # k3s git tag
  k3sCommit = "5fb370e53e0014dc96183b8ecb2c25a61e891e76"; # k3s git commit at the above version
  k3sRepoSha256 = "0vlsqy4iccjmf4nslmr0a7w5pbb4891j2qk5dr5fsbvgdnq6xm6i";
in
    buildGo117Module rec {
      name = "k3s";
      version = k3sVersion;

      src = fetchgit {
        url = "https://github.com/k3s-io/k3s";
        rev = "v${k3sVersion}";
        sha256 = k3sRepoSha256;
      };

      vendorSha256 = "sha256-9+2k/ipAOhc8JJU+L2dwaM01Dkw+0xyrF5kt6mL19G0=";

      subPackages = [ "." ];

      passthru.tests = { inherit (nixosTests) k3s-single-node k3s-single-node-docker; };
    }

Please ignore:

Update script
Patch
Traefik
Junk

Tests are breaking as:
nix build .#k3s.passthru.tests.k3s-single-node
Error: unknown command "kubectl" for "kubectl"
Exception: command `k3s kubectl cluster-info` failed (exit code 1)

Full logs: https://termbin.com/gi7p
I've added a wrapper, and the wrapper when tested in ./result/bin/* seems fine. The applications are executed as expected.
@euank @bryanasdev000

I like the idea of switching to buildGoModule if we can.
I'm pretty sure when I first packaged this, it wasn't using go modules yet upstream, so that wasn't an option.
It looks like upstream is using go modules now, so we might be able to switch.
Unfortunately, most of the complexity isn't captured in this PR yet, so there's still work to do.
I'll try to outline the steps that k3s goes through upstream, and what challenges we have mimicing it, which I think might help explain the state of what we had, and why I think this PR is still missing some stuff.
How k3s is built upstream
Firstly, scripts/ci is the sorta default "here's how k3s is built". If you just run 'make' in the k3s repo, that's the script that's run to build the final binary.
It has three steps that we care about: download, build, and package. Let's look at each of those three steps.
download
This script.
Effectively, this downloads:

The traefik chart, which will be referenced in 'package'
a 'k3s-root' release, also referenced in 'package'
source code for containerd & runc, referenced in 'build'

These can be modeled in nixpkgs as fetchurl / fetchFromGitHub / etc.
We'll come back to these in build/package steps where they're actually used.
build
This step.
The goal of 'build' is to produce the following binaries:

'bin/k3s' (from ./cmd/server; formerly called 'bin/containerd' confusingly) -- This is most of the binaries k3s bundles, all as one multi-call binary. Confusingly, this is not the final k3s binary you run as a user (also named 'k3s'), but rather this is one layer down. I'll explain this below.
bin/cni (from github.com/rancher/plugins.git) -- This is all the CNI plugins k3s supports
bin/containerd -- I think this used to be part of bin/k3s, but got split out.
bin/runc

So, in 1 above I mentioned that this isn't the final k3s binary. The reason for this is that k3s operates in a kinda weird way. When you run k3s kubectl --version, what happens is:

k3s creates a data dir and extracts kubectl to it ($HOME/.rancher/k3s/data/$hash or /var/lib/rancher/k3s/data/$hash for root)
k3s runs $dataDir/bin/kubectl

What this PR is currently doing is building the 'bin/k3s' mentioned above, which is not the thing that normally gets shipped, hence why we have 'kubectl command not found' etc.
Anyway, on to package.
package
The important parts are in package-cli.
This does the following:

Create ./build/data/${HASH}.tar.zst, which is a tarball of bin/k3s, /bin/cni, ./bin/containerd, ./bin/runc, all the multi-call symlinks (bin/kubectl etc), and some config data.
run 'go generate', which takes 'build/data/$HASH.tar.zstd', the k3s-root mentioned above, and the traefik chart mentioned above, and uses 'bindata' to turn them into go source code (giant byte array consts more or less). See pkg/codegen.
build the final 'k3s' command from ./cmd/k3s/main.go. This includes the compiling in the go-bindata generated data.tar.zstd mentioned above.

The end result of this build is now the actual binary that people usually think of as the 'k3s' binary.
What does this mean for nixpkgs packaging of k3s?
The main challenge we have building k3s comes from the 'data.tar.zstd' step. Basically, the final k3s binary has a giant compressed blob in it, and that blob contains binaries which may be dynamically linked (in fact are dynamically linked in the previous k3s build. Upstream they're not, but nixpkgs can get away with more dynamic linking and probably should).
The compression means that we have to propagate any dynamically linked contents of that tarball (cni, k3s, containerd, runc).
The easiest way to do that seems to be modeling those contents as a separate nix derivation and using 'propagatedBuildInputs'.
What alternatives do we have?
There are a few different things we can think about doing to make things easier here. First of all, we can consider whether we use upstream's exact commits for runc & containerd, or whether we use the existing nixpkgs ones. We could probably just include a symlink in the tarball, propagate the input, and not even have to duplicate the data. This seems like it's a good idea for runc (since k3s doesn't carry runc patches). For containerd, I think they're planning to move it back into the multi-call binary, and so it's probably diverging a step too far.
We also need to figure out if buildGoModule can actually work for us or not. I'm pretty confident it can work for the 'build' bit (what this PR already does), but I'm not 100% sure if it can work for the 'package' step. That step requires that we have run go generate at some point. Maybe we can model it as k3s-build, and then do a separate derivation that transforms $src to go-generated-source, which would be an intermediate derivation that is $src + k3s-build binaries + go generate, and that src is used for the final package buildGoModule? That seems like it might work.

Anyway, that's kinda my thought dump about how upstream builds this and the troubles nixpkgs faces in mimicing it.
I do think we're forced to mimic the packaging setup somewhat closely, or else we don't really have k3s anymore at all.
All that said, thanks a ton for spending some time looking at this! I'm happy to help update this further since the packaging is sorely in need of some improvements, and it's clear upstream made some changes which necessitate doing them sooner rather than later.

@euank Thanks for the comprehensive answer. I had no idea of some the things you mentioned. Really happy to have you here!

the 'package' step requires that go generate at some point. Maybe we can model it as k3s-build, and then in the final buildGoModule derivation, we can do a preBuildPhase that copies in the binaries and runs go generate? That seems like it might work.

In Linkerd, I have succesfully used go generate in buildGoModule, as:
  preBuild = ''
    env GOFLAGS="" go generate ./viz/static
  '';

*GOFLAGS="" was necessary for Linkerd but may not be necessary here.

I do think we're forced to mimic the packaging setup somewhat closely, or else we don't really have k3s anymore at all.

Sure.

All that said, thanks a ton for spending some time looking at this! I'm happy to help update this further since the packaging is sorely in need of some improvements, and it's clear upstream made some changes which necessitate doing them sooner rather than later.

Your contribution here is very important. Your awareness of K3s inner workings is much better than mine. If I were to fully re-package K3s myself likely you'd have to patch it too much. It might be more productive if you could fix the packaging. And I'd fix the auto-update script. Let me know.

I should have some time to go through the update sometime this week. I'll give it a go, and report back here.

I got a draft PR up over here that seems to mostly work: https://github.com/NixOS/nixpkgs/pull/158089
It switches to buildGoModule, and it feels mildly better than the previous derivation, but it still has a couple patches, and still feels somewhat complicated.
My current plan is to fix the few remaining bits (which I've noted on that draft PR), switch my own k3s cluster to it, and if those things both go well I'll move it out of draft.

Closed in favor of #158089


Handling uncaught exception and rejected future by using process events (in browser as well)

https://github.com/inf3rno/o3/issues/83

We can begin with these:
// Only Chrome & Opera pass the error object.
window.onerror = function (message, file, line, col, error) {
    console.log(message, "from", error.stack);
};
// Only Chrome & Opera have an error attribute on the event.
window.addEventListener("error", function (e) {
    console.log(e.error.message, "from", e.error.stack);
});

// the node way
process.on('uncaughtException', function (err) {
  console.log(err.stack);
})

The only question here how to graceful degrade if we don't get the error object...
We could maintain an error log at least by custom errors. They could have an id, and we could guess the actual error by message, file and line. Not much but costs much, since we need to avoid a memory leak. This means we need expiration dates, GC, etc... I am not sure I want to do this.
Another way to inject somehow the id e.g. into the message, and parse the message to get the id. This is tricky and I don't want to do this either. What about the error object? It does not always contain the stack, but what is it? Is it a completely new error object with these properties or is it the one was thrown but not captured? I have to test this before doing anything. The stack does not matter, at least custom errors capture the stack by creation. Native errors don't, but I don't care about them, there is no way to get the necessary info...

I think we need to work with the errors we got from the api... Probably creating a CompositeError would be nice. So the code could be something like the following:
new CompositeError({
    uncaughtError: (event.error instanceof UserError)?event.error:new NativeError(event.error)
});

At least we could add a single frame to the stack based on the available information.

I will check stacktrace.js code, maybe it contains some workaround I could use. I highly doubt it, but who knows...

How to degrade?
message, file, line -> new Error(message), at least we could save the file and line values, so we could have a half frame, but it is really complicated to inject this info for example into a NativeError instance. A workaround could be to use Object.create on the Error.prototype and override the message, file, line, stack properties. This might work by v8 too, but I have to check it first.
Identifying the error object without getting it from the API is only possible by UserError classes and it is hard to implement, so I won't bother with it.


Snazzify the Console Output and move the extension methods to Interfaces

This is a pre-req for aspnet/XRE#1314 that pulls logging in to the core runtime. It doesn't fully fix #119, but it does the first half by pulling the Extension methods over to the Interfaces assembly. I don't have the cycles to do the rename part :(.
@davidfowl suggested a minor tidy up of Console Logger if we're going to use it in the runtime:

/cc @BrennanConroy @davidfowl @muratg

Hi @anurse, I'm your friendly neighborhood Microsoft Open Technologies, Inc. Pull Request Bot (You can call me MSOTBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Andrew Stanton-Nurse). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla2.msopentech.com.

TTYL, MSOTBOT;

You don't need the NotNull file anymore, use Microsoft.Framework.Internal

:+1: removed!

:shipit:

yes :shipit: very nice!


Use Roslyn for converting expression trees into activities

The way the .NET Framework version of WF parses expressions is with a custom, unsupported compiler for VB and an MSBuild task for C#. It would be a significant improvement to use Roslyn for the .NET Standard/Core version of WF.

So this requires us to load a WF activity and implement the equivalent to TextExpressionCompiler(settings).Compile(); with Roslyn instead of the previous compiler?
We should base ourselves on the API of the TextExpressionCompiler.cs to limit the changes to WF, I guess?

I haven't abandoned this, but hoping for some quiet time over the holidays to progress.
The public facing API of TextExpressionCompiler is very small and it seems that only Compile is called in the WF code. I haven't found a call to GenerateSource.

Having used Roslyn in a small project recently, I'll try to apply her here.

#47 Covers this functionality.


[BUG] Error: spawn ETXTBSY

Environment

chromium Version: 119.0.2

puppeteer / puppeteer-core Version: 21.7.0

Node.js Version:  20.11.0

Yarn Version: 3.6.1

Lambda / GCF Runtime:  -

Environment: K3s Cluster - Containerd Runtime - I run my application on the container.

Expected Behavior
After restarting the container/pod, the binary file should be released.

Current Behavior
The chromium executable binary held by a process. Even if I restart the process and although binary file is not called multiple times,  I can not launch the puppetter because of the file is locked.
Stack trace
Something went wrong during puppeteer.launch Error: spawn ETXTBSY
    at ChildProcess.spawn (node:internal/child_process:421:11)
    at Object.spawn (node:child_process:761:9)
    at new Process (/app/dist/index.js:77190:56)
    at launch (/app/dist/index.js:77149:14)
    at ChromeLauncher.launch (/app/dist/index.js:88071:54)
    at async generatePdf (/app/dist/index.js:275048:15)

Steps to Reproduce

import puppeteer from "puppeteer-core"
import chromium from "@sparticuz/chromium"

const width = 595
const height = 842
const defaultViewport = { width, height }

async function generatePdf() {
let args = ["--font-render-hinting=none"]
let browser

args = args.concat(...chromium.args)
console.log(chromium.args)
try {
		browser = await puppeteer.launch({
			args,
			defaultViewport,
			ignoreHTTPSErrors: true,
			headless: "new",
			executablePath: await chromium.executablePath(),
		})
	} catch (err) {
		console.error("Something went wrong during puppeteer.launch", err?.stack)
		throw Error("Something went wrong during puppeteer.launch")
	}
}

Possible Solution
I suspect that binary file remains in locked status if process killed and not gracefully shutdown.

I've never tried it with anything other that plain lambda. You can try increasing the memory available? Though if you are using a container, I'd probably just install normal chromium in the container.

I've never tried it with anything other that plain lambda. You can try increasing the memory available? Though if you are using a container, I'd probably just install normal chromium in the container.

Okay. Thanks for your answer.


Allow implementing custom Rate Limiters. Allow configuring number of …

…requests per minute in existing RateLimitManager.

#111

That looks fine. I think we'd probably want to tweak the interface a little at some point if others start wanting to extend it more, but it should work fine for now.
Thanks!


After merging capacitypool branch marketplace solution info don't work

Clicking on workloads does not show info in marketplace page

Merged on branch: development

Commit_ID bc194af0a83371ba74376daa351ebcb4e099f233 , Branch development


What's the proper way to use RGBA for something like SetFillStyle?

Every thing I've tried (while studying the parseColor function, line 83 color.go) it chokes on the Alpha number.
I can't quite figure out what type it expects for that fourth value.
I would love to just send it a string like SetFillStyle("rgba(240, 236, 206, .5)") and it looks like it's supposed to be able to do that, but it doesn't seem to work.
Sending it a string like "rgb(240, 236, 206)" DOES work, so I'm thinking there might be a problem with line 209 on color.go.
I don't know if it's a bug or if I'm just stupid.

Hi, sorry for the late reply, have been busy lately.
You're right, the rgba format doesn't get parsed according to the standard at the moment. It does work currently if you use rgba(240, 236, 206, 128), since the alpha component is just interpreted as a byte as well, not a zero to one floating point. I just didn't realize that the web standard uses that format. Then I guess I will change it to conform to the web standard.

I'm getting by with RGB and just using SetGlobalAlpha when I need transparency, seems like a good enough workaround.


Titanfall 2 gets stuck

the issue is that titanfall 2 launched without northstar mod starts normally, but with it gets stuck on main menu background (im using it from gamepass from ea app)
It's even weirder cuz it worked normally yesterday.

reinstalled northstar(deleted all northstar files and pasted them) and it worked


New options for groupset of properties in the editor

Working on the option to disable social buttons in Bootstrap and it struck me that as a groupset of properties gets more complex it might be nice to have some instructions appear within the box also... Something like this:

Also, what about a columns option for the groupset so that they don't need to be one after the other (which could get lengthy). So as above you would have:

That would be great!

+1 :-)

Hi @ronm123, I have added instructions box and columns (you can have up to 3). When cols= option not added to xwd then you just get a normal box but with columns it could be difficult to tell which option the checkbox is for so do you like this:

better than this:

Or any other suggestions before I commit?

Sorry @JohnSmith-LT missed your question here but looks great!

Cheers @ronm123. I figured that there was no point holding off once I was done... Really pleased with how it came out myself...


Release nodejs-googleapis-common v0.3.0

This pull request was generated using releasetool.

Release is at https://github.com/googleapis/nodejs-googleapis-common/releases/tag/v0.3.0


throw er; // Unhandled 'error' event

I am getting the following output from nexe -i myscript.js:
events.js:141
      throw er; // Unhandled 'error' event
      ^
SyntaxError: Unexpected character '�'

Only modules I use in the script are:
var bleacon = require('bleacon');
var async = require('async');

I have already tried replacing the above modules names to full path to their main .js files but im still getting same error.
Any idea how to investigate on this? Can it be because of something wrong in my script?

Duplicate of #206 (hard to tell!)


404 error when accessing https://covid19.quebec.ca/PreuveVaccinaleApi/issuer/.well-known/jwks.json

Tried with a QR that was produced on July 28.
out/ contents.
"payload": {         "iss": "https://covid19.quebec.ca/PreuveVaccinaleApi/issuer"
    "verifications": {  "trustable": false   }
curl -i https://covid19.quebec.ca/PreuveVaccinaleApi/issuer
HTTP/1.1 404 Not Found
Request-Context: appId=cid-v1:83d2d660-f9fc-4bf4-8f8d-c14090c51237
Strict-Transport-Security: max-age=15724800; includeSubDomains
X-Cache: CONFIG_NOCACHE
X-Azure-Ref: 0EO0CYQAAAAB7H9RvofX1TJ6Tt3IXqjSyWU1RMDFFREdFMDkxMgA5YTcwM2E4NS1mYTQ1LTQyNWYtYTE0NC00NDQ3ZTZhMDc0ZGY=
Date: Thu, 29 Jul 2021 18:01:51 GMT
Content-Length: 0

Hello @Stavr0, has explained here : #2 , according to the Smart Health Cards standard, the public keys required to validate the trustworthiness of the data should be published at {issuer}/.well-known/jwks.json (with {issuer} corresponding to the iss field in the payload). However, it seems that the government has not published those keys, probably to avoid that anybody starts validating QR codes.
Knowing this,  it is not an issue that the server returns "trustable": false since we cannot get the keys, we cannot ensure the QR code's data is trustable.
Have a nice day !

... and I just noticed no less than 2 other issues for this very problem.   :)

Dont worry ☺


updates notes_controller for pre-gened answers, added rake tasks to r…

…emove duplicate answers and init answers for all questions

looks good Sam. Just need to fix the broken test.


Media in DMs is nil

i'm sure i have sent a picture in dm, i tried fetching dms to see if i can save the picture in dm but i couldn't get anything since media field in InboxItem struct is nil
result:
&{ID:30179181517345856745445460340113408 UserID:50228679252 Timestamp:1636016708247038 ClientContext:6861951351702761258 IsShhMode:false TqSeqID:0 Type:media Text: Like: Reel:<nil> Media:<nil> ActionLog:<nil> Link:{Text: Context:{Url: Title: Summary: ImageUrl:}}}
what could be wrong anyway?

Thanks for reporting, I'll investigate it

@Davincible any update on this?

Harvey had the time yet. Will try to make time for it this weekend :)

@Davincible thanks take your time....

The cause of your issue is a json property reference mismatch. Here:
https://github.com/Davincible/goinsta/blob/172c4b597032ba02bc1bd4c51dd2fd5041b677b2/inbox.go#L111
It should be:
Media               *Item      `json:"media"`
MediaShare     *Item      `json:"media_share"`

Where Media represents directly shared media, and MediaShare represents shared media.
I need to iron out some other bugs with DMs not showing up in the data struct before I push the commit

Its pushed!
See:
https://github.com/Davincible/goinsta/releases/tag/v3.0.4

@Davincible thank you so much! it works like charm for media type message, I'm able to get item struct of the media. However, is there anyway to have the same thing for voice_media type and raven_media? Media field is nil when the message is voice_media or raven_media. Or is it not possible by the api itself?

Ahh it should be possible, but haven't encountered them yet. What is raven media exactly? I'll play around with the voice message one

Added voice message compatibility, check the latest commit

From what, I could see raven_media has visual_media. Added that

thanks u're pretty fast! thanks for being so active. voice message works like charm. But we don't seem to be able to get media url or bytes from raven_media? it's view once message or repalyable message

Check again :)

thanks it all work now! closing...


Bug: Linter Opening Files on Sidebar

[x ] I have verified that I am on the latest version of the Linter 1.23.2

Describe the Bug
Switching between file tabs or panes will momentarily try to open a file in the sidebar and then close it immediately, taking away pane focus
How to Reproduce
Steps to reproduce the behavior:

Have my config (of note: lint on change, yaml-timestamp)
Have sidebar open (or don't, sometimes it will open on its own
Click between two file panes or switch files

edit: yes the same config on a sandbox with no other plugins does the same behavior
Expected Behavior
Not for there to be skittish file behavior in the sidebar. That linting (/on change) happens without impacting the user experience in an annoying way.
Screenshots
https://youtu.be/yCxhI-YMmJw
Device

[x ] Desktop
[ ] Mobile

Additional Context
Add any other context about the problem here.
No debug-level logs to be found (watch the vid).
Attached

Console logs from video
My enabled plugins list
My config

Hey @sisi-sh , thanks for mentioning this. It looks like you have a blank custom command which is causing this behavior.
When custom commands exists, there is a need to have a file open in order to run the custom commands. Thus on active file change, which fires after the the active file has changed, I have to open the last opened file in the sidebar to run custom commands.
It seems this is not the first time that users have accidentally created or left a blank custom command in their config as their only custom command which causes problems, so I am guessing I need to have a boolean setup to determine if the custom commands present include any valid custom commands and use that to determine what to do with custom commands since the length is not viable.

Oh awesome that did fix it. Thanks!

That's good. I will see about handling all blank custom commands.
But using custom commands will create that experience with lint on file change since the previous file has to be the active file in order for the custom commands to run properly.

I believe I have a fix for blank custom commands running in the sidebar. However I would like to make it clear that custom commands running in the sidebar is expected when custom commands are present and you have lint on file change enabled.

I have gone ahead and merged what I believe should prevent the scenario you saw with the invalid running of custom commands. It should be in master now and go out in the next release. Please let us know if either has a problem.


Fix Project Settings array/dicts initial value being shared instances of the current value.

Fixes #55856
There could be other ways to fix the issue, but this works. The issue originates here:
https://github.com/godotengine/godot/blob/3c9bf4bc210a8e6a208f30ca59de4d4d7e18c04d/core/config/project_settings.cpp#L1035-L1042
->set(...) is done with same same value passed into ->set_initial_value(...), so for arrays and dicts that will be the same instance. Thus when you change the project setting value, it changes the initial too, so you can't revert or detect changes when saving.
The change in ProjectSettings::_property_get_revert(...) is required for the same reason, if you just return initial there, you will be changing the initial array/dict.
Tested with editor/script/search_in_file_extensions and various built-in input map inputs.

This looks ok to me on the ProjectSettings side, but I am not familiar with the action editor. Maybe @groud wants to review?

It's not clear to me what the editor-side changes are doing. Isn't the duplication in ProjectSettings enough to prevent sharing the array/dicts?

Previously you could not revert to default for the default shortcuts/actions. This pr allows you to do that. Did you want me to split it into two PRs perhaps?

Previously you could not revert to default for the built in shortcuts/actions. This pr allows you to do that. Did you want me to split it into two PRs perhaps? They are stored in arrays hence the relevance but I Can see how it might be out of the scope for solving the issue specifically.

No it's fine as is, it was just not obvious to me from the description.

Thanks!


Correct image names in Helm README.md.htpl

Checklist
- [ ] Investigated and inspected CI test results
- [ ] Unit test and regression tests added
- [ ] Evaluated and added CHANGELOG entry if required
- [ ] Determined and documented upgrade steps
- [ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)
If any of these don't apply, please comment below.
Testing Performed
No testable changes

/retest-required

/retest

/retest

/retest


Pasted images upload with original filename and overwrite existing image with same name

This was fixed as part of #567 and reported as fixed but nothing has changed in that uploadImage.php file yet it is now broken again... perhaps something has changed since the update to CKEditor 4 but it definitely needs looking at again.
Can you reproduce this @ronm123 ?

I've modified the uploadImage.php file to fforce it to call pasted images pasted_image.EXT, pasted_image(1).EXT, pasted_image(2).EXT etc where EXT retains the extension/type of the original file.
I've also commented out several functions including sanitiseFilename since it's not needed if we are renaming the files to a format of our choosing...

@JohnSmith-LT I'm not sure about this and have not had a problem with the way this has worked up to now. But I think I do have a problem with the way it works after your changes! ;-)
I might be wrong but my perspective on this is as follows and I thing we need to differentiate between drag and dropped files vs copy and paste images...
With the wysiwyg editor window open if I have a screenshot or something in my clipboard and click paste I expect that image to be uploaded and automatically named e.g. image.jpg. If I then repeat that process either with the same image or a different image I expect the same to happen again e.g. the new paste becomes image(1).jpg and doesn't overwrite my original because I'm effectively pasting unnamed images. I usually then rename and re-select those files within the media browser so that I don't have loads of images without useful names.
However if I drag and drop an image file from my drive into the editor named for instance ron1.jpg and then repeat that by dragging a new copy of ron1.jpg that I have made changes to then I don't want that renamed e.g. I'm saying update ron1.jpg with this newer version. I also expect the same to happen when uploading via media and quota. As an example I've done this many times where I've uploaded a logo and then resized or made other changes to the logo and then uploaded the new copy to replace the old copy.
Your change now seems to force the image to be renamed even when it's an already named file being uploaded and I don't think that should be the case. Is that your intention? Perhaps I'm wrong about what should happen here - what do @FayCross and @torinfo think?

 Problem is that I couldn't get paste to actually work because I couldn't figure out how to enable it in the browser (perhaps that's something we need to add somewhere as a tooltip)
Leave this one with me and i'll figure that out and commit changes - there was something funky going on with the sanitiseName() function though because wasn't setup to have the 2nd parameter passed and upon my debugging $response is being set in that function but not being passed back.

@JohnSmith-LT just to be clear - when you say you couldn't get paste to work how/what were you pasting? e.g.

I've always expected and assumed this should work like it does in an open email for instance e.g. If I have an image open and selected in PowerPoint, or Snagit or Photoshop etc and select copy and then switch to the email or Xerte and select paste then I expect that to paste and see the image in the page.

However if I simply select a file in a local folder and select copy or Ctrl + C then I don't expect that to paste, even if the file is an image and as I'd expect, that doesn't work.

However if I drag that image file onto the Xerte editor window I do expect it to upload and appear as an image (using the name of that file) - at least since we've had all that working in whatever version it became available.

Is your copy and past that doesn't work 1. or 2.?

Ok @ronm123 sorry about that... I've put it all back the way it was with that missing $response in place and i've restarted my machine and all seems to be working now. Can you check it's back the way it was for you?
I was definitely doing 1. above but a service must've stopped or something as it was only Chrome that didn't work and initially I got a purple-ish popop (like the upload successful message) which said something like Ctrl-C and Ctrl-V need to be enabled to do this. I only saw the messga eonce though and then googling said Chrome should be enabled always.... so I have no clue...

@JohnSmith-LT yes seems like it works like it did again now.
I replied to #869 though and can replicate the error you reported with that install/server but assumed that was a server/firewall issue rather than Xerte code.


                add ability to specify options to backup

Resolves issue #80

Adds loop to templates/restic_script_Linux.j2
Adds usage info to README.md
Fixes a few spelling and grammar errors in README.md

It turns out that this is sort of unnecessary. You can actually just specify additional options in the list of sources ... they will just get passed along through that loop.

You can't quite stuff the variables in sources because sources are tied in with forgetting.
I have a more workable patch coming.

I ran into another issue that I had to fix testing this. We have multiple database servers, each responsible for their own backups. Restic handles this fine, but forgetting requires an exclusive lock, so if the forgetting happens when one of the other servers is still backing up, it throws an error. I added a conditional to skip the forgetting for the case when multiple servers operate in parallel. I will need to generate another script to do the forgetting at a time different than the backups.
I made the default behavior unchanged, so it does not really affect people using a single source, but does allow the option of running with several hosts in parallel without throwing errors.

does not handle files-from quite correctly (the script is not synced because there is no source)

Your PR is marked as a draft: is there a reason for that?
I'm also interested in this option (to specify "--one-file-system").

I did some cleanup...so I marked it draft until I was sure I had it right. Then I got distracted. I'll try to get back to it.