[jvm] HorizontalPager can't be scrolled using the mouse

Describe the bug
Using the HorizontalPager on jvm artifact will have this weird behaviour that no drag interaction can change pages. On Mac for instance, only either switching pages programmatically or scrolling on the trackpad will work. Shouldn't a mouse drag be working just like on mobile platforms ? Also scrolling using the trackpad won't pan on entire page : stopping mid "scroll" will keep the pages in a weird state where it doesn't magnet to the new "currentPage"
Affected platforms
Select one of the platforms below:

Desktop

Versions

Kotlin version*: 1.9.10
Compose Multiplatform version*: 1.5.10-beta02
OS version(s)* (required for Desktop and iOS issues): MacOS
OS architecture (x86 or arm64): arm64
JDK (for desktop issues): JDK shipped with Android Studio Hedgehog | 2023.1.1 Beta 5

To Reproduce
Steps and/or the code snippet to reproduce the behavior:

Create a project which will have a screen with a HorizontalPager holding few dummy pages
run
Try to "scroll" horizontally using the mouse
nothing happens

Expected behavior
It should be possible to scroll just on the other mobile platforms. When scrolling using the trackpad, it should land to "full" currentPage instead of just be in a weird interstate
Additional context
I took a quick snippet from another issue just to check if it wasn't my implementation which was introducing such issues and could reproduce the issue right away
    val state = rememberPagerState(
        pageCount = { 3 }
    )

    ...
    HorizontalPager(
        modifier = Modifier.fillMaxSize(),
        state = state,
    ) { index ->
        when (index) {
            0 -> Box(modifier = Modifier.fillMaxSize().background(Color.Red))
            1 -> Box(modifier = Modifier.fillMaxSize().background(Color.Black))
            2 -> Box(modifier = Modifier.fillMaxSize().background(Color.Yellow))
        }
    }

+1on windows,
scrolling works only via

vertical wheel
horizontal shift + mouse wheel

but it can't be simply dragged by mouse click + drag...
also it seems to be working simply as scrollable container, there is no "snap scrolling effect"

scrolling works only via

Fair enough, it can be easily circumvented even tho the nowadays use cases all revolve around inverted behaviour where everything now matches touchscreens :p (interestingly, it reminds me I didn't check using a laptop with touchscreens)

also it seems to be working simply as scrollable container, there is no "snap scrolling effect"

this is problematic as the whole purpose of a "pager" is to actually introduce said snap scroll. Otherwise, this is simply a lazy horizontal list

Now it's a duplicate of #3447

Awesome, I'll update this one then. Almost finished to work onto something which may be (hopefully) cleaner than using a LaunchedEffect

Thanks to @alexzhirkevich
It is duplicate of Issue https://github.com/JetBrains/compose-multiplatform/issues/3447

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Agent: shutdown deadlock on LogWorker exclusive sleep affects automatic agent version upgrades

There is a deadlock in the kontena-agent 1.4.0 Agent.shutdown logic used to handle automatic agent version upgrades, which means that the agent will keep reconnecting to the server instead of shutting down. It seems like the agent will eventually shutdown once a 300s timeout expires, which should allow it to get re-started with the new version?
The effective deadlock is in Kontena::WebsocketClient#on_close => Kontena::Agent.shutdown => Kontena::Workers::LogWorker#terminate => Kontena::Launchers::Etcd#running?, because the LogWorker will be stuck in an exclusive sleep waiting for etcd actor to be ready, which will not happen until the websocket is connected and the server sends the node info.
It looks like this was introduced in #2728 for 1.4.0, because it wrapped the entire LogWorker#start method in exclusive { ... }, including the wait_until!("etcd running") { Actor[:etcd_launcher].running? }. It looks like exclusive { sleep } will also block actor termination, causing the @supervisor.shutdown to block.

Tracing Celluloid.shutdown, this exclusive sleep prevents Kontena::Agent.shutdown from completing if the etcd launcher is not yet running:
I, [2017-11-21T12:54:50.071965 #1]  INFO -- Kontena::WebsocketClient: connecting to master at ws://<IP_ADDRESS>:9292
I, [2017-11-21T12:54:50.099709 #1]  INFO -- Kontena::WebsocketClient: unsecure connection established without SSL
D, [2017-11-21T12:54:50.113744 #1] DEBUG -- Kontena::RpcServer: rpc notification: Kontena::Rpc::AgentApi#master_info [{"version"=>"1.4.0.dev"}]
D, [2017-11-21T12:54:50.117461 #1] DEBUG -- Kontena::WebsocketClient: Server closed connection with code 4010: agent version 1.5.0.dev is not compatible with server version 1.4.0.dev
E, [2017-11-21T12:54:50.117534 #1] ERROR -- Kontena::WebsocketClient: master does not accept our version (1.5.0.dev): agent version 1.5.0.dev is not compatible with server version 1.4.0.dev
I, [2017-11-21T12:54:50.117602 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T12:54:50.117645 #1]  INFO -- Kontena::Agent: Shutting down...
TERMINATE Kontena::Workers::Volumes::VolumeManager @ /app/lib/celluloid/shutdown_tracer.rb:4:in `terminate'
JOIN #<Celluloid::Proxy::Actor(23a72b2b-b124-490a-8b2a-000000020016) alive>... @ /app/lib/celluloid/shutdown_tracer.rb:24:in `join'
....
TERMINATE Kontena::Workers::LogWorker @ /app/lib/celluloid/shutdown_tracer.rb:4:in `terminate'
JOIN #<Celluloid::Proxy::Actor(23a72b2b-b124-490a-8b2a-00000002000c) alive>... @ /app/lib/celluloid/shutdown_tracer.rb:24:in `join'
D, [2017-11-21T13:17:04.240718 #1] DEBUG -- Kontena::Workers::LogWorker: waiting 1.0s of 300.0s until: etcd running

Depending on the exact ordering of how the supervised actors are shut down (not sure if deterministic or not?), this means that the agent will actually keep reconnecting instead of shutting down:
I, [2017-11-21T13:17:04.722431 #1]  INFO -- Kontena::WebsocketClient: connecting to master at ws://<IP_ADDRESS>:9292
I, [2017-11-21T13:17:04.741880 #1]  INFO -- Kontena::WebsocketClient: unsecure connection established without SSL
D, [2017-11-21T13:17:04.743424 #1] DEBUG -- Kontena::Workers::LogWorker: waiting 1.5s of 300.0s until: etcd running
D, [2017-11-21T13:17:04.746609 #1] DEBUG -- Kontena::RpcServer: rpc notification: Kontena::Rpc::AgentApi#master_info [{"version"=>"1.4.0.dev"}]
D, [2017-11-21T13:17:04.747783 #1] DEBUG -- Kontena::WebsocketClient: Server closed connection with code 4010: agent version 1.5.0.dev is not compatible with server version 1.4.0.dev
E, [2017-11-21T13:17:04.748006 #1] ERROR -- Kontena::WebsocketClient: master does not accept our version (1.5.0.dev): agent version 1.5.0.dev is not compatible with server version 1.4.0.dev
I, [2017-11-21T13:17:04.748619 #1]  INFO -- Kontena::WebsocketClient: reconnect attempt 1 in 0.65s...
I, [2017-11-21T13:17:05.403846 #1]  INFO -- Kontena::WebsocketClient: connecting to master at ws://<IP_ADDRESS>:9292
I, [2017-11-21T13:17:05.421485 #1]  INFO -- Kontena::WebsocketClient: unsecure connection established without SSL
D, [2017-11-21T13:17:05.429609 #1] DEBUG -- Kontena::RpcServer: rpc notification: Kontena::Rpc::AgentApi#master_info [{"version"=>"1.4.0.dev"}]
D, [2017-11-21T13:17:05.432411 #1] DEBUG -- Kontena::WebsocketClient: Server closed connection with code 4010: agent version 1.5.0.dev is not compatible with server version 1.4.0.dev
E, [2017-11-21T13:17:05.432640 #1] ERROR -- Kontena::WebsocketClient: master does not accept our version (1.5.0.dev): agent version 1.5.0.dev is not compatible with server version 1.4.0.dev
I, [2017-11-21T13:17:05.433248 #1]  INFO -- Kontena::WebsocketClient: reconnect attempt 1 in 0.61s...
D, [2017-11-21T13:17:05.748214 #1] DEBUG -- Kontena::Workers::LogWorker: waiting 2.5s of 300.0s until: etcd running

This continues until the LogWorker#start wait_until eventually times out and crashes the actor:
E, [2017-11-21T13:21:19.560751 #1] ERROR -- Kontena::WebsocketClient: master does not accept our version (1.5.0.dev): agent version 1.5.0.dev is not compatible with server version 1.4.0.dev
I, [2017-11-21T13:21:19.560977 #1]  INFO -- Kontena::WebsocketClient: reconnect attempt 1 in 0.41s...
D, [2017-11-21T13:21:19.840345 #1] DEBUG -- Kontena::Workers::LogWorker: waiting 256.6s of 300.0s until: etcd running
...
W, [2017-11-21T13:22:03.810677 #1]  WARN -- Kontena::Workers::LogWorker: timeout after waiting 300.1s of 300.0s until: etcd running
E, [2017-11-21T13:22:03.811809 #1] ERROR -- : Actor crashed!
Timeout::Error: Timeout after waiting 300.0s until: etcd running
	/app/lib/kontena/helpers/wait_helper.rb:66:in `wait_until!'
	/app/lib/kontena/workers/log_worker.rb:78:in `block in start'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:97:in `exclusive'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid.rb:421:in `exclusive'
	/app/lib/kontena/workers/log_worker.rb:77:in `start'
	/app/lib/kontena/workers/log_worker.rb:105:in `on_connect'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/call/async.rb:7:in `dispatch'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'

Which allows the @supervisor.shutdown to complete:
TERMINATE Kontena::Workers::NodeInfoWorker @ /app/lib/celluloid/shutdown_tracer.rb:4:in `terminate'
JOIN #<Celluloid::Proxy::Actor(23a72b2b-b124-490a-8b2a-000000020001) alive>... @ /app/lib/celluloid/shutdown_tracer.rb:24:in `join'
E, [2017-11-21T13:22:08.920108 #1] ERROR -- Kontena::Workers::NodeInfoWorker: publish_node_info: undefined method `request' for nil:NilClass
W, [2017-11-21T13:22:08.941160 #1]  WARN -- Kontena::Observable::Registry: crashing observables owned by actor Kontena::Workers::NodeInfoWorker: Actor terminated
D, [2017-11-21T13:22:08.943099 #1] DEBUG -- Kontena::Observable<Kontena::Workers::NodeInfoWorker>: crash: Actor terminated

D, [2017-11-21T13:22:08.943262 #1] DEBUG -- Kontena::Observable<Kontena::Workers::NodeInfoWorker>: dead: Kontena::Observer<Kontena::NetworkAdapters::Weave>
D, [2017-11-21T13:22:08.945885 #1] DEBUG -- Kontena::Observable<Kontena::Workers::NodeInfoWorker>: dead: Kontena::Observer<Kontena::Workers::NodeStatsWorker>
D, [2017-11-21T13:22:08.946100 #1] DEBUG -- Kontena::Observable<Kontena::Workers::NodeInfoWorker>: dead: Kontena::Observer<Kontena::Workers::StatsWorker>
D, [2017-11-21T13:22:08.946192 #1] DEBUG -- Kontena::Observable<Kontena::Workers::NodeInfoWorker>: dead: Kontena::Observer<Kontena::Workers::FluentdWorker>
D, [2017-11-21T13:22:08.946270 #1] DEBUG -- Kontena::Observable<Kontena::Workers::NodeInfoWorker>: dead: Kontena::Observer<Kontena::Workers::ServicePodManager>
D, [2017-11-21T13:22:08.946343 #1] DEBUG -- Kontena::Observable<Kontena::Workers::NodeInfoWorker>: dead: Kontena::Observer<Kontena::Workers::Volumes::VolumeManager>
I, [2017-11-21T13:22:08.951174 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T13:22:08.951297 #1]  INFO -- Kontena::Agent: Shutting down...
I, [2017-11-21T13:22:08.951622 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T13:22:08.951690 #1]  INFO -- Kontena::Agent: Shutting down...
I, [2017-11-21T13:22:08.951898 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T13:22:08.951961 #1]  INFO -- Kontena::Agent: Shutting down...
I, [2017-11-21T13:22:08.952228 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T13:22:08.952301 #1]  INFO -- Kontena::Agent: Shutting down...
I, [2017-11-21T13:22:08.952495 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T13:22:08.952554 #1]  INFO -- Kontena::Agent: Shutting down...
....
I, [2017-11-21T13:22:09.112549 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T13:22:09.112592 #1]  INFO -- Kontena::Agent: Shutting down...
I, [2017-11-21T13:22:09.112721 #1]  INFO -- Kontena::Agent: Got signal shutdown
I, [2017-11-21T13:22:09.112764 #1]  INFO -- Kontena::Agent: Shutting down...
TERMINATE! Celluloid::Supervision::Service::Root @ /app/lib/celluloid/shutdown_tracer.rb:8:in `terminate!'

There's also a minor bug in the agent WebsocketClient in that it will still attempt to reconnect if it gets a close message and decides to shut down, but I don't think that would actually cause any issues apart from looking silly in the logging.
Normally the Kontena::Agent.shutdown would terminate the WebsocketClient actor fast enough that it won't have a chance to reconnect, but that's a timing race because the shutdown can stall before the WebsocketClient actor gets terminated...

A SIGINT will also break the deadlock, because that invokes the Celluloid.shutdown handler, which terminates all actors in parallel using terminate!, which allows the LogWorker actor to also crash because the Etcd actor terminates:
E, [2017-11-21T13:42:02.471066 #1] ERROR -- : Actor crashed!
Celluloid::DeadActorError: attempted to call a dead actor: running?
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/proxy/sync.rb:9:in `method_missing'
	/app/lib/kontena/workers/log_worker.rb:78:in `block (2 levels) in start'
	/app/lib/kontena/helpers/wait_helper.rb:33:in `block in wait_until'
	/app/lib/kontena/helpers/wait_helper.rb:32:in `loop'
	/app/lib/kontena/helpers/wait_helper.rb:32:in `wait_until'
	/app/lib/kontena/helpers/wait_helper.rb:63:in `wait_until!'
	/app/lib/kontena/workers/log_worker.rb:78:in `block in start'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:97:in `exclusive'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid.rb:421:in `exclusive'
	/app/lib/kontena/workers/log_worker.rb:77:in `start'
	/app/lib/kontena/workers/log_worker.rb:105:in `on_connect'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `public_send'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28:in `dispatch'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/call/async.rb:7:in `dispatch'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50:in `block in dispatch'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76:in `block in task'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339:in `block in task'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/task.rb:44:in `block in initialize'
	/usr/lib/ruby/gems/2.4.0/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14:in `block in create'

Maybe the Kontena::Agent.shutdown should use Celluloid.shutdown instead of @supervisor.shutdown?


silero_vad.jit Unknown type name 'NoneType':

model=init_jit_model(model_path='silero_vad.jit')
File "/Users/miniconda3/lib/python3.9/site-packages/torch/jit/_serialization.py", line 161, in load
cpp_module = torch._C.import_ir_module(cu, f, map_location, _extra_files)
RuntimeError:
Unknown type name 'NoneType':
Serialized   File "code/torch/torch/nn/modules/conv.py", line 7
bias : Optional[Tensor]
training : bool
_is_full_backward_hook : NoneType
~~~~~~~~ <--- HERE
transposed : bool
_reversed_padding_repeated_twice : List[int]

Which PyTorch version do you have?

Most likely caused by an older PyTorch version.
Since there was no response, closing the issue.


Fetch and rebase branch for SonarCloud

The background is that I discovered Prow fetches commits manually but doesn't appear to collect references SonarCloud needs, for example here were the image build commands from my test repo for a PR:
mkdir -p /go/src/github.com/${REPO_OWNER}/${REPO_NAME}
git init
git config user.name ci-robot
git config user.email<EMAIL_ADDRESS>git fetch https://github.com/${REPO_OWNER}/${REPO_NAME}.git --tags --prune
git fetch https://github.com/${REPO_OWNER}/${REPO_NAME}.git ${BASE_BRANCH_HASH}
git checkout ${BASE_BRANCH_HASH}
git branch --force ${PULL_BASE_REF} ${BASE_BRANCH_HASH}
git checkout ${PULL_BASE_REF}
git fetch https://github.com/${REPO_OWNER}/${REPO_NAME}.git ${PR_BRANCH_HASH}
GIT_AUTHOR_DATE=1644630248 GIT_COMMITTER_DATE=1644630248 git merge --no-ff ${PR_BRANCH_HASH}
git submodule update --init --recursive

This also results in a merge commit that SonarCloud can't reconcile with anything on any branch because it doesn't exist anywhere in GitHub. Fetching the references, rebasing, and switching to a branch of the same name seems to help SonarCloud reconcile the commits:
git remote add origin https://github.com/${REPO_OWNER}/${REPO_NAME}
git fetch origin
git rebase origin/${PULL_BASE_REF}
BRANCH=$(curl -s "https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/pulls/${PULL_NUMBER}" | jq ".head.ref")
git branch ${BRANCH}
git reset --hard origin/${PULL_BASE_REF}
git checkout ${BRANCH}

I implemented it as a big ugly one-liner so that it wouldn't fail when trying to fetch and rebase with the openshift/release repo. I couldn't test a postsubmit, but theoretically it should work since the commands are the same in the build (except it doesn't fetch and merge the commit reference from the PR).

/lgtm


Compile times

I'm struggling with rapidly increasing compilation times when implementing a recursive expression parser. It's based on the expr parser in the nano_rust example, but adds layers of foldl for each operator type / precedence.
For each operator I add, compilation times increase significantly. With just the unary, additive and multiplicative ops, the project compiles in seconds. However, by the time I've added all operators, it will not compile after several minutes of waiting on a Ryzen 5800x.
The code I'm referencing is a bit messy as I'm still getting used to chumsky, but you can see it here  / here
Any tips on how to improve compilation times here, or how to split the operator parser closures into their own separate functions?
Thanks

Edit: After trying some things and looking through other people's projects using Chumsky, I discovered that I can use Parser::boxed to allow implementing the op functions separately from the expr parser function. I then use a loop instead of repeated foldr's to create the parsers, like this:
let bin_parsers = [
    multiplicative().boxed(),
    additive().boxed(),
    bitshift().boxed(),
    relational().boxed(),
    equality().boxed(),
    bit!(And).map(|_| BinaryOp::BitwiseAnd).boxed(),
    // etc ...
];

let mut binary = unary.boxed();

for parser in bin_parsers {
    binary = binary
        .clone()
        .foldl_with_state(
            parser.clone().then(binary).repeated(),
            |lhs, (op, rhs), state: &mut ParserState| {
                state
                    .current_unit_mut()
                    .new_expr(Expr::BinaryOp { lhs, op, rhs })
            },
        )
        .boxed();
}

binary

I can't exactly explain why, but this brought me back to compiling in seconds. Most likely due to IR generation bloat / monomorphization as some other issues have mentioned.
Closing this since my specific issue is resolved, but definitely would be worth documenting use cases that will result in slow compile times, and related workarounds.

Yep, boxed uses dynamic dispatch and so results in the compiler performing less trait solving work. Also see the guide for more information on reducing compilation times :)


State does not expose a clean way to set client configurations

The state module in js core exposes a way to get a client  configuration. But it does not expose an API to create new configuration.
Currently the only way to create new configurations is to call j.core.state.clientConfigGet with and then update the data attribute of the client and finally call save method.
It will be nice to create a new thin method clientConfigCreate/Set that also return a new client config.

fixed by https://github.com/Jumpscale/core9/pull/139


WDI Seattle 2015-03-16 :: Nick Cronquist

Add logic to play console rock, paper, scissors.

Failed Travis CI build with an unhelpful error. Will try to resubmit pull request once more without changing code to see if it was weird build error. If that doesn't work, I'll update the code.


Add core.query/serialize?

Not sure if this is something you'd be interesting in having in the core here/in utils, is the leftover helper modules I created while maintaining my fork.
As I was writing HPI_API I added a core.serialize and core.query to my HPI fork as well.
It is quite magical (as it just resolves the function name with a string) but it lets me do some simple queries pretty easily, and play around with pipelines in the shell without having to worry about how to interop with python/dumping something from the REPL
https://github.com/seanbreckenridge/HPI/blob/master/my/utils/query.py
https://github.com/seanbreckenridge/HPI/blob/master/my/utils/serialize.py
and then a script that exposes that info:
https://github.com/seanbreckenridge/HPI/blob/master/scripts/hpi_query
As some examples, 5 songs I listened to recently:
$ hpi_query my.mpv history | jq -r '.[] | .path' | grep -i 'music' | head -n 5
/home/sean/Music/Radiohead/1994 - The Bends/11 - Sulk.mp3
/home/sean/Music/Radiohead/1994 - The Bends/02 - The Bends.mp3
/home/sean/Music/Nujabes/Nujabes - Metaphorical Music (2003) [V0]/10. Next View.mp3
/home/sean/Music/Earth, Wind & Fire/Earth Wind And Fire - Greatest Hits - [MP3-V0]/16 - After The Love Has Gone.mp3
/home/sean/Music/Darren Korb/Darren Korb - Transistor Original Soundtrack[2013] (V0)/14 - Darren Korb - Apex Beat.mp3

I also use this in my menu bar, to print how many calories/water I've drank today:

Like:
#!/bin/bash
# how many water I've had today

((BLOCK_BUTTON == 3)) && notify-send "$("${REPOS}/HPI/scripts/water-recent")"

HPI_QUERY="${REPOS}/HPI/scripts/hpi_query"
{
	"${HPI_QUERY}" --days 1 'my.food' 'water' | jq -r '.[] | .glasses'
	echo 0
} | datamash sum 1

Have even had some fun creating graphs like this in the terminal:
hpi_query my.food food | jq -r '.[] | "\(.on)\t\(.calories)"' | datamash groupby 1 sum 2 | sort | termgraph | head

2020/09/26: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1380.00
2020/09/27: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1150.00
2020/09/28: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1155.00
2020/09/29: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 2200.00
2020/09/30: ▇▇▇▇▇▇▇▇▇▇▇ 870.00
2020/10/01: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1070.00
2020/10/02: ▇▇▇▇▇▇ 505.00
2020/10/03: ▇▇▇▇▇▇▇▇▇▇▇▇▇ 995.00
2020/10/04: ▇▇▇▇▇▇▇▇ 640.00

could probably remove the click/simplejson dependencies, they were just thrown in there because it was fast and I always have those installed anyways
Maybe query could be a subcommand on the hpi script? instead of installing it as a separate script

Yeah, looks awesome! Also been pondering about something like this!
Could also have something like --fzf mode integration for even more interactivity.
Some simple terminal plots would also be useful for sanity checks (maybe not in doctor, but a separate mode like hpi stat or something like that). Will dig up my notes later on libraries/tool I bookmarked.

simplejson

IIRC it's just backported json (builtin) module? I.e. in json.dump/loads there is cls argument that can be used to pass custom codecs.. but I might be wrong.
But yeah generally I think it would be good to figure out what's the best (robust & flexible) way toy serialize/deserialize stuff into json -- it could be helpful for many things.

click

I think actually maybe it makes sense to adopt click? It's pretty mature, and in my understanding it's a bit more 'composable' than argparse? But I maybe separately/later so it's consistent for now.

I'll take a closer look tomorrow!

IIRC it's just backported json (builtin) module

It has a couple extra options/flags that make it nice, especially its handling of namedtuples/dataclasses, and it lets you use a function instead of having to write a custom JSON encoder like the stdlib.
But, its probably better if we just wrote a custom JSON encoder using the builtin json module as its brings in less unknowns, and gives us more fine tuning ability with special cases for namedtuple/dataclasses or pandas frames.

click

I've used it for years now, I think its good. Only downside is that since you use decorators most of the time, doing anything especially complicated requires you to use global vars/write your own decorators
This script is simple enough that I can just port to argparse with an epilog, but is something to consider

But, its probably better if we just wrote a custom JSON encoder using the builtin json module as its brings in less unknowns, and gives us more fine tuning ability with special cases for namedtuple/dataclasses or pandas frames.

Yeah, I guess the reason why I was thinking of library is because it seems to be reinvented all over again, e.g. https://github.com/karlicoss/HPI/blob/02a9fb5e8f64c3720f902d78fee2643d7e912e72/my/core/common.py#L534-L554
Or in cachew I also have some code that essentially serializes dataclasses (although it's a bit different I guess since it also 'flattens' them out onto the database).
Oh btw, there is also guess_datetime: https://github.com/karlicoss/HPI/blob/0585cc4a89c7b6e0023b55c14cb72b63a4d39bec/my/core/common.py#L499-L509, kinda similar to datefunc? Although yours looks more elaborate.. But I guess can always find something better & switch later, probably more important to have usecases/tests so we can figure out what we want from it.

seems to be reinvented all over again

Yeah, I've done the same in HPI_API, and my autotui lib and then here again.
I think simplejson also just does the _asdict check, but it has a couple extra flags and probably handles it nicer than another reimplementation.
If core.serialize replaces all these other serialization/helper functions, it could probably also be used in HPI_API.
I'll probably try implementing a custom JSON encoder to see how much more work it is, else use simplejson.
I did quite a bit of research back when I was making the autotui library since thats essentially a JSON encoder/decoder which attaches/prompts for types.
ujson is good for speed but it often messes up unicode chars/doesn't handle dataclasses/custom types out of the box.
simplejson sits somewhere a bit above the regular json module, handling namedtuple/dataclasses and giving you a nice interface to be able to extend
One I have yet to try but looks pretty good is orjson, which describes itself as: fast, correct Python JSON library supporting dataclasses, datetimes, and numpy

orjson supports CPython 3.6, 3.7, 3.8, 3.9, and 3.10. It distributes x86_64/amd64 and aarch64/armv8 wheels for Linux and macOS. It distributes x86_64/amd64 wheels for Windows. orjson does not support PyPy

Is this a problem for you? I haven't come across many people who aren't using CPython, so I think its fine to use orjson is used as the default - means less of the custom serialization code has to be in HPI. If anyone is using numpy, I believe they're under similar restructions.
Unlike simplejson (which has been around for 15 years, and is seems to be mostly on maintenance-mode), orjson is still in development and they keep adding more types, which may be nice to have. I'd still be fine with using simplejson, if you'd prefer a pure-python solution.
Could be done by sending a warning message like logzero does, and default back to a basic json.dumps if its not installed.
Currently using orjson I'm pretty much done, and its quite compact:
https://github.com/seanbreckenridge/HPI-to-master/commit/0593c690566ccbbf54aea24f3e0ce3613e6603da
Regarding

Yeah, I guess the reason why I was thinking of library is because it seems to be reinvented all over again

I think the reason is because its not often super simple to convert any object, it requires checks for recursive calls and dealing with unknowns, you have to manually list out all the primitives, container types and deal with state while traversing an object, which is pretty much rewriting a JSON parser - so you implement what you think the common case is and it works almost all the time.
I think its possible to have that function which checks a bunch of primitives, it can just become pretty complicated pretty fast. Even libraries that do this - orjson and simplejson don't support complex numbers or frozenset, even if they're builtins. The line is always seems to be drawn right before what you see as reasonable/what you stop implementing.
Left a note:
# note: it would be nice to combine the 'my.core.common.asdict' and _orjson_default to some function
# that takes a complex python object and returns JSON-compatible fields, while still
# being a dictionary.
# a workaround is to encode with dumps below and then json.loads it immediately

guess_datetime

The reason datefunc exists is so that we're able to sort iterators by date.
The idea for datefunc was to reduce overhead by just checking what attribute to use for the first item in the generator -- it then 'Returns a function which when called with this object returns the date'. Then that can be passed to sorted, instead of having to find the value with datetime on it for every object in the iterator
I've since realized that that wouldn't work for lists which have mixed types, so the options are to:

Not support mixed typed lists, failing when the datetime isnt on the same attribute for every object
use something closer to guess_datetime, which requires you to search over every item to find the datetime
relatively more complicated -- maintain a global dictionary which:

{class: function which when called on an instance of this type returns the date-like object}

That would reduce the searching for a date-like object to just once per type.
The third is probably more efficient, but I'm leaning towards implementing a combination of the first and second:
First, try to just do what I did originally, checking the first item and assuming the rest in the generator follow a similar schema. If theres an error while doing that, restart and approach it more like guess_datetime, manually searching for the DateLike field for each object.
This is also just only considering sorting by date -- eventually we may want to be able to specify a key and sort by that instead. results sorted by datetime just seems like a useful thing to be able to query by, especially when trying to do queries from the CLI/extract some useful info from your data
I think I should be able to use my.core.common.asdict in datefunc, instead of the dir hack I did earlier.

Nice, orjson looks good!

Is this a problem for you? I haven't come across many people who aren't using CPython, so I think its fine to use orjson is used as the default - means less of the custom serialization code has to be in HPI. If anyone is using numpy, I believe they're under similar restrictions (i.e. CPython)

Yeah, me neither. And yeah, pypi seems like a fairly esoteric requirement -- worst case always possible to fallback onto something pypi compatible (like you did with json in your commit).

I think the reason is because its not often super simple to convert any object, it requires checks for recursive calls and dealing with unknowns

Yeah true, it's always domain dependent as well. I guess in our case recursive objects are fairly rare (I can't come up with any?) -- so mainly I meant handling ADT-like types.
I guess for now we're only concerned with serializing? Good to keep deserializing in mind too, although it's even trickier.
Seems that there is [JSONDecorer.object_hook](https://docs.python.org/3/library/json.html#json.JSONDecoder object_hook) which might work to some extent.
Maybe in principle modules could also provide 'extra' type bindings (so extra default/object_hook) if they do some complicated types? That way would be possible to keep core simple.

so mainly I meant handling ADT-like types

Yeah, this is true, but sometimes there could be an ADT which has an attribute which is also a NamedTuple/dataclass, and then there has to be additional code to handle that.

Maybe in principle modules could also provide 'extra' type bindings

Perhaps, but then you'd have to be importing additional modules to check whether the hook exists. I had two other ideas (could potentially implement both, are easy to do):

Just like _asdict with namedtuples, any NT/dataclass thats defined in HPI could optionally implement a _serialize function, which returns a serialized version of the data, with any complex types removed/handled. That attribute could be checked for in the _orjson_default function.
The user can optionally pass an additional default function to dumps here which is used in addition to _orjson_default. something like:

def _orjson_default(obj: Any, default: Optional[Callable[[Any], Any]] = None) -> Any:
    .... other things handled by default
    if hasattr(obj, '_serialize') and callable(obj._serialize):
        return obj._serialize()
    if default:
        return default(obj)  # this function has to raise a TypeError if it can't serialize
    raise TypeError...

The idea for datefunc was to reduce overhead by just checking what attribute to use for the first item in the generator

Oh nice! Also something I thought about, but didn't get to do.
I think mixed types are useful at the very least because of Exception (error handling). But also for some data providers you're merging multiple different Python types, but they are the same in terms of monkey typing (i.e. even have different attributes, so they might have different sets of fields).

If theres an error while doing that, restart

I guess need to be careful here because of iterables. Possible to use itertools.tee, but it means consuming more memory (not an issue in most cases, but still). Or alternatively need to actually call the iterable 'provider' again to get a fresh one?

relatively more complicated -- maintain a global dictionary which

Yeah, I think it's the most robust even if somewhat complicated? One thing to keep in mind is that at this point the actual types might be 'erased' (if we're processing the 'json objects'), but in that case maybe can use 'key sets' as a proxy? (not sure about the performance though).
But maybe a hybrid approach you're suggesting is good to start with. Perhaps it could accept a 'hint' -- so if someone really cares about the performance for a particular usecase they could provide it.

This is also just only considering sorting by date -- eventually we may want to be able to specify a key and sort by that instead. results sorted by datetime just seems like a useful thing to be able to query by, especially when trying to do queries from the CLI/extract some useful info from your data

Yep! I guess makes sense to prototype on datetimes, maybe possible to generalize later.

any NT/dataclass thats defined in HPI could optionally implement a _serialize

I guess classes are often 'forwarded' from the original modules (like 'data access layers'), so this would require setting attributes dynamically on these classes?
Alternatively could either define a hook in the module (e.g. it could return an extra dict of type -> serializer mappings).. Or just allow explicitly registering the hooks from within the module (i.e. from my.core.serialize import register_json_hook; register_json_hook(MyType, ...)). Not sure which is best?

classes are often 'forwarded' from the original modules

Ah right. Could also use a combination of all three of these approaches. The hook approach also seems fine, would just require looping over the (I assume top-level) dict in the module in default function.
Will try to implement

would just require looping over the (I assume top-level) dict in the module in default function.

Yeah, something like this? You mean the top level dict in my.core.serialize?
I guess in principle would be nice to only have these custom types there over the course of the call of the serializing, e.g. perhaps possible to achieve via decorating entries() or something like that, to minimize the pollution of global serializers namespace (and potential conflicts?).
But probably in most cases any HPI call only uses a single data provider, so hopefully it won't be an issue.

Defining a hook in the source module seems a bit too hacky/magical,

Yeah good point -- the upside would be keeping it a bit more declarative, but maybe too complicated for now. Hopefully in 90% cases it will be possible to get away with default serialization anyway.

You mean the top level dict in my.core.serialize

Yeah

I guess in principle would be nice to only have these custom types there over the course of the call of the serializing

yeah. maybe contextlib works here? I haven't used with blocks much personally
Probably won't implement the register_json_hook yet, because most of the time it won't be needed (agreed, in 90% cases it will be possible to get away with default serialization, I've been using this for months as has HPI_API). Also maybe  my.core.init will have some shared hook machinery with the register_json_hook.

yeah. maybe contextlib works here? I haven't used with blocks much personally

Yeah via contextlib, with here would be a bit intrusive. So ideally you can decorate the function with a small hint so it doesn't change its implementation

Also maybe my.core.init will have some shared hook machinery with the register_json_hook.

Yep, makes sense!

Switched HPI_API over to use my.core.serialize instead:
https://github.com/seanbreckenridge/HPI_API/commit/8a4d77dd5a0f5ccc1c9ed5c84164c08089c496f1

Only remaining task for this issue is to create a CLI for query. to combine my.core.query.select and my.core.serialize.dumps, (and probably creating a couple helper functions in my.core.query to glue the two together)
I think I can implement that well enough in argparse for now, and the switch to click can be later


References

http://adsabs.harvard.edu/abs/2017ApJ...845...65N
http://adsabs.harvard.edu/abs/2017AJ....154..111M
http://adsabs.harvard.edu/abs/2015MNRAS.450.1879E
http://adsabs.harvard.edu/abs/2015MNRAS.453.3821P
http://adsabs.harvard.edu/abs/2013A&A...549A...9C
http://adsabs.harvard.edu/abs/2013A&A...556A..86N
http://adsabs.harvard.edu/abs/2011A&A...529A..75C
http://adsabs.harvard.edu/abs/2011MNRAS.413.1515H
http://adsabs.harvard.edu/abs/2006A&A...450.1231G

Thanks!


Fix RFC 7235 violation

Hi,
When an unauthorized/unauthenticated user attempts to send a request on a compy instance requiring authentication, compy sends back the WWW-Authenticate header field, instead of the expected Proxy-Authentication header field in the HTTP 407 Proxy Authentication Required reply.
This behaviour violates RFC 7235, which states in section 3.2:

The proxy MUST send a Proxy-Authenticate header field (Section 4.3) containing a challenge applicable to that proxy for the target resource.

This is a high priority fix IMHO: a standards-compliant browser doesn't send back the authentication prompt, and lands on a blank page with the offending version.
Kind regards

@ggramaize Thank you for your contribution!  Did you experience problems with a specific browser?

Fixed Travis failure in 807a3c31c07eaa2e16dd77ec071dd98e14a88fc7.

@gaul With Firefox 63 (Nightly), when I set the proxy, the browser returned a blank page without asking a proxy password. Correcting this using this solved the issue.
Moreover, I've had issues with authentication on HTTPS websites, because when proxying a connection, the proxy shall authenticate the CONNECT, but not the inner HTTP session (which is theoretically not MITMed, thus untouched ;) ).
To solve this, in proxy/proxy.go, after checking that p.user isn't unset (on line 114), I also checked that the request TLS context doesn't equals to nil. That solution is, however, flawed, because I expect it would bypass authentication if you set TLS on the client side (with -cert and -key options), but I've not tested that hypothesis right now.

Speaking of your original question, I've also experienced issues with the unpatched version with wget, curl and lynx.


Bugs

Found new bugs . Bug number 1 - it is possible to go through the stone texture . Bug # 2 - You can go through the foundation. Of textures can shoot and do damage to players. Russian language is still not displayed in the console.

One Issue per bug please, and the language thing is already a open issue


feat: Adds max_healthy_percentage and skip_matching to autoscaling group

Description

Adds max_healthy_percentage and skip_matching to aws_autoscaling_group instance_refresh.preferences.
Small aside: also updated the examples to look for an Amazon Linux 2 AMI rather than an Amazon Linux AMI which is EOL.
Motivation and Context

These two settings were added in the AWS Terraform provider and currently there is no way to specify them using this module.
max_healthy_percentage was added in v5.32.0 (see changelog)
and
skip_matching was added in v4.13.0 (see changelog)
Breaking Changes

No
How Has This Been Tested?

[x] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[x] I have tested and validated these changes using one or more of the provided examples/* projects

[x] I have executed pre-commit run -a on my pull request

This PR is included in version 7.4.0 :tada:


chore(main): release audit 1.49.0

:robot: I have created a release beep boop
1.49.0 (2023-09-04)
Features

better package metadata retrieval (3cce2e7)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/sandworm-hq/sandworm-audit/releases/tag/audit-v1.49.0 :sunflower:


2.1.0 needs to be pushed to CocoaPods trunk

Looks like 2.1.0 hasn't yet been pushed to CocoaPods trunk, so it isn't visible to anyone using Argo through CocoaPods.

Sorry about that, it's up now.
I'm going to open an issue about automating this. Shouldn't be too hard.


Allow Multiple Cards from Feature In Combo

Some combos are going to require us to use multiple cards from a particular feature. For example, using 2 token doublers, using 2 Clones, etc. We will need a way to specify either a quantity or add it multiple times. Then, the program will need to generate each unique combination, of course avoiding using the same card multiple times in a particular variant.

Example of combo that would use this: https://backend.commanderspellbook.com/admin/spellbook/variantsuggestion/484/change/

This is going to take me a long time, but it's a necessary evolution of the current variant generator. I'll develop this feature later this year, when I find the time required for this.

Design notes:

If feature needed in combos get an amount (small integer field), then implicitly produced features should get that too, resulting in the necessity to turn produced features into inlines instead of a table
The code that generates variant will probably increase in complexity by a lot: it will have to take into account amounts to satisfy feature requirements for each combo, computing every possible combination of recipes that will have each requirement amount satisfied.
The minimal set of sets, which is a TrieSet under the hood, will probably become obsolete, resulting in really worse performances for complex combo networks (this needs testing)


[Feature Request]: Ability to set PathLength for Sub CA certificates

Describe why this change is needed
With this PR https://github.com/cert-manager/aws-privateca-issuer/pull/55 we are introducing the ability to issue subCA certificate when the isCA flag is toggled. This is a feature request to add the ability to modify the subCA template ARN to use something besides a path length of zero.
Describe solutions and alternatives considered (optional)
This could possibly be done as a flag set on the issuer, that when set, is evaluated and used to set the appropriate template arn when issuing the subCA certificate.
Is there anything else you would like to add?
No response

We opened this issue to gauge interest from users of this plugin. There hasn't been any feedback but please re-open and comment if you need this feature.


Update to the exported webflow.js file to fix a missed issue where some faq items not expanding.

Also includes removal of unusual line separators from institutions.html

The webflow JS change is minified and basically un-auditable. I'm merging this one, but we need to find a better way to fix up our JS. In the future we may want to require that we only commit un-minified code, and add minification as a build step on merge.


tests are close/over the limit, so upped the timeout

What does this PR do?
extends the timeout to fix the failing tests that are hitting the old timeout

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2023-01-04T13:01:04.729+0000

Duration: 62 min 3 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
3398

Skipped
42

Total
3440

:green_heart: Flaky test report
Tests succeeded.
:robot: GitHub comments
Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.

run benchmark tests : Run the benchmark tests.

run jdk compatibility tests : Run the JDK Compatibility tests.

run integration tests : Run the Agent Integration tests.

run end-to-end tests : Run the APM-ITs.

run windows tests : Build & tests on windows.

run elasticsearch-ci/docs : Re-trigger the docs validation. (use unformatted text in the comment!)


Fix/Remove NPM Mocha  "next" tag

https://www.npmjs.com/package/mocha?activeTab=versions

So what's progress on this?

Very keen to see the 6.1.0 milestone completed as it includes security audit fixed required by a project I am working on right now.

the problem with this issue is that it is one of "fix" or "remove", or maybe that means both.  I'm not entirely sure what to do with the next tag.  remove it?  move it to the latest release?

I'm gonna go with "move it to the latest release" in case some poor schmo has it in package.json.
note to self: once you use a tag, you can't really un-use a tag.

this is done; next is the same as latest.


Can I generate a link to download vod with youtube-dl

It is working in browser, but can I get direct link to this playable vod to download it with youtube-dl?

after you've installed the extension, open up inspect element and go to the network tab. after that play whatever vod you want and search for .m3u8 in the network tab. there should be an index-dvr.m3u8.
now you can use the link to that .m3u8 with yt-dlp or youtube-dl.
the m3u8 it gives you might be the resolution you selected on twitch, so try setting the resolution you want first, then copy that .m3u8 link as using -F in yt-dlp only shows one download version.

There is also a proposition here if you want: https://github.com/BlueWorld1/twitch-vod-downloader


  Mirador then only loads manifests passing through the filter - including drag & drop - so this should be enforced at the data loading layer.

I'm considering removing this from the milestone. How important is this? It could be simple, but requires some more discussion (and design).

It's of minor importance at this point, so you can remove it from the 2.1 release but please leave it as an active feature request.

I moved it to 2.2. It's definitely something that gets asked for a lot.

This ticket is being closed as part of the Mirador 3 issues review. We encourage all Mirador 2 implementers to try out Mirador 3 and leave feedback in new tickets.
Filtering manifests in in the add manifest selection process has not been implemented in Mirador 3. Once there are some proposed designs for this, it could be implemented as a plugin.


inclusion validator bug?

   inclusion: function(element, options) {

...
for (value in options['in']) {
if (value.toString() === element.val()) return;
value is the index of the array element -- not its value. So this validation always fails.

Same issues

I found it fixed in master branch


How do I install this?

Is there a guide somewhere on how to install this. Im on windows and use Reaper if that matters. I'm not really a techy person I just play the guitar :(

When you've download
https://github.com/brummer10/Ratatouille.lv2/releases/download/v0.4/Ratatouille.lv2-v0.4-win64.zip
unpack it and copy it to
/Program Files/Common Files/LV2
in case you didn't have a LV2 directory under /Program Files/Common Files/, create it before.
Reaper should find it then on the next start (maybe you must rescan the plugs)

Thanks for the help but I got a new problem. The NAM Model A and B slots are working but the IR slots wont take anything. It pops up for a quarter of a second and goes back to none.

Mmm, I need to fire up my windows box to check what's going on. I just did a quick check using wine under linux and that works as expected. Give me some day's, I'll check and come back.
In the mean time, maybe you could check if this one works for you:
https://github.com/brummer10/ImpulseLoader.lv2/releases/download/v0.2/ImpulseLoader.lv2-v0.2-win64.zip
it is the plain IR loader, it use the same technic then the ones in Ratatouille. Would be helpful to know if this one works for you.

Just tried it. Yup it doesn't work. Also I noticed that when I browse for all supported files without the UI it only lists .audio whereas Ratatouille lists .audio and .wav. All of my IRs are wav files.

So now I'm puzzled. I've just tried it (windows10) with Reaper and it all works as expected. No problem loading IR files here.

Next day, restarted my pc now its working. Thank you so much!


Add Support Number 08xxx

Hi, Thank you for contributing.
I am sorry we can't merge this PR because we are in mission to supporting all country and not only indonesia's phone number


Use MapRequestPayload for admin blog controller

Fix #1434
Unfortunately there is no Rest endpoints in the demo, I think it would have been more interesting to use it then.

@94noni I didn't do it because of https://github.com/symfony/demo/issues/1434#issuecomment-1761098715 "Maybe we could do it only in one controller". Unfortunately there is not much to do in any controller. The best would be to introduce a restful api in the demo.

oki got it
for the api part, there were already a discuss on that topic

Closing as "won't merge" for the reasons explained in https://github.com/symfony/demo/issues/1434#issuecomment-1987942195
Sorry!


lower "learning_rate" as this is what optimizers use internally now

Lowering "lr" does nothing as optimizers use "learning_rate" now.

closed until further testing


Memory leak on connection failures

Versions

Sarama
Kafka
Go

1.27.1
2.6.0
1.14

Logs
Following logs also have &b.opened values along with the already present log message to highlight the issue.
logs: CLICK ME

Dec 15 14:18:58 [machineid] kafka_exporter[2611756]: [sarama] 2020/12/15 14:18:58 Failed to connect to broker hostname:9092: dial tcp [ipv6_addr]:9092: i/o timeout (mem ref:<PHONE_NUMBER>80)
Dec 15 14:18:28 [machineid] kafka_exporter[2611756]: [sarama] 2020/12/15 14:18:28 Failed to connect to broker hostname:9092: dial tcp [ipv6_addr]:9092: i/o timeout (mem ref:<PHONE_NUMBER>76)
Dec 15 14:18:28 [machineid] kafka_exporter[2611756]: [sarama] 2020/12/15 14:18:28 Failed to connect to broker hostname:9092: dial tcp [ipv6_addr]:9092: i/o timeout (mem ref:<PHONE_NUMBER>80)
Dec 15 14:17:58 [machineid] kafka_exporter[2611756]: [sarama] 2020/12/15 14:17:58 Failed to connect to broker hostname:9092: dial tcp [ipv6_addr]:9092: i/o timeout (mem ref:<PHONE_NUMBER>76)
Dec 15 14:17:58 [machineid] kafka_exporter[2611756]: [sarama] 2020/12/15 14:17:58 Failed to connect to broker hostname:9092: dial tcp [ipv6_addr]:9092: i/o timeout (mem ref:<PHONE_NUMBER>80)
Dec 15 14:17:28 [machineid] kafka_exporter[2611756]: [sarama] 2020/12/15 14:17:28 Failed to connect to broker hostname:9092: dial tcp [ipv6_addr]:9092: i/o timeout (mem ref:<PHONE_NUMBER>76)
Dec 15 14:17:28 [machineid] kafka_exporter[2611756]: [sarama] 2020/12/15 14:17:28 Failed to connect to broker hostname:9092: dial tcp [ipv6_addr]:9092: i/o timeout (mem ref:<PHONE_NUMBER>80)

Problem Description
The way atomic has been used to track connections, it leaks memory on connection timeouts and potentially other failures as well. I have noticed this while debugging increasing memory usage for kafka exporter which uses sarama
this seems to be the cause as it simply keeps using up memory space for new connections and is not cleared which is troubling in the case of failed connections.
Thanks!

Not stale, as https://github.com/danielqsj/kafka_exporter/issues/54 still is being updated. I personally have not been able to test this again since my last comment.


probe_sensor in raspiraw.c is leaking

If the while loop does not find any sensor, the function still return the last sensor searched, instead of NULL.

Not really a leak as there is no allocation involved.
It is true that it does return the last sensor.
(a) it is really only test code. Error handling is pretty minimal.
(b) I'm actually making use of that at the moment whilst developing something else!
(c) it could really do with more sensible command line parsing, and that should allow specifying the sensor and also the use of I2C_FORCE_SLAVE to ignore kernel drivers that have registered the I2C port/address combination.

Fixed.


Change default date of nix store to increase compatibility?

Issue description
I often see problems like https://nixos.org/nixpkgs/manual/#python-setup.py-bdist_wheel-cannot-create-.whl due to the default timestamp on NixOS. It seems that dates after 1980 are widely supported across UNIX and DOS, whereas prior to 1980 is often not supported by DOS programs that are later ported to UNIX.
Given that Jan 1, 1970 is completely arbitrary and made up, can we change to the DOS date for nix store to increase compatibility? eg SOURCE_DATE_EPOCH=315532800 instead of 1.

We use this hook by default: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh

I understood it as the issue with 1970-01-01 00:00:00 timestamp which is fixed by many hacks across nixpkgs:
https://github.com/NixOS/nixpkgs/blob/526c4292ae62e63b5711f8d112290fcd2613d8b3/pkgs/top-level/all-packages.nix#L120-L131
https://github.com/NixOS/nixpkgs/blob/92a047a6c4d46a222e9c323ea85882d0a7a13af8/pkgs/development/libraries/opae/default.nix#L26-L32
https://github.com/NixOS/nixpkgs/blob/786cbba7be276bc1f2a5580e3c83b17f8ab6e508/pkgs/build-support/release/functions.sh#L27-L28
https://github.com/NixOS/nixpkgs/blob/44aca430c3745c8a5de75afc7b170f5dc0e21bd0/pkgs/development/python-modules/cx_freeze/default.nix#L15-L18
https://github.com/NixOS/nixpkgs/blob/44aca430c3745c8a5de75afc7b170f5dc0e21bd0/pkgs/development/python-modules/pycrypto/default.nix#L10-L11
https://github.com/NixOS/nixpkgs/blob/ba34ffc6657d502322733837695d0b5b1ce87202/pkgs/tools/filesystems/ceph/generic.nix#L113
https://github.com/NixOS/nixpkgs/blob/2c5f92a7238cbc8241c936fbc70194a2936a23ca/pkgs/development/compilers/graalvm/default.nix#L86-L89
setting $SOURCE_DATE_EPOCH to the latest mtime does not help in many cases (when the timestamped files are inside a zip-archive, etc)
But changing 1970-01-01 00:00:00 to, say, 2000-01-01 00:00:00 would fix the 1980-issue as well as other vague issues (overflow/underflow of timestamp arithmetics, ...)

It's just switching from one arbitrary date to another.  When doing this, I'd anticipate that some "new modern framework" will come that will assume that anything before 2010 can be ignored.  The shift might help in practice, though... but I suspect nixpkgs/stdenv won't be enough and we'd need to shift nix store dates as well, i.e. break its compatibility.

Yes, thanks @volth. @vcunat you are right that  developers are free to hardcode other date assumptions and the problem often happens with nix store dates

I don't see this happening so closing.

It's just switching from one arbitrary date to another. When doing this, I'd anticipate that some "new modern framework" will come that will assume that anything before 2010 can be ignored.

The date could be the nixpkgs version, 2019-03-01 00:00:00 for 19.03

Just a note that you can't build epub documents using sphinx due to this. Further, it seems to be choking on pulling a mimetypes file from the store (as predicted would happen)... :grin:
$ make epub
...
Traceback (most recent call last):
  File "/nix/store/aar6diwl9bw72bckp21zpiclmcpyg9hr-python3.8-sphinx-3.0.3/lib/python3.8/site-packages/sphinx/cmd/build.py", line 280, in build_main
    app.build(args.force_all, filenames)
  File "/nix/store/aar6diwl9bw72bckp21zpiclmcpyg9hr-python3.8-sphinx-3.0.3/lib/python3.8/site-packages/sphinx/application.py", line 348, in build
    self.builder.build_update()
  File "/nix/store/aar6diwl9bw72bckp21zpiclmcpyg9hr-python3.8-sphinx-3.0.3/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 297, in build_update
    self.build(to_build,
  File "/nix/store/aar6diwl9bw72bckp21zpiclmcpyg9hr-python3.8-sphinx-3.0.3/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 364, in build
    self.finish()
  File "/nix/store/aar6diwl9bw72bckp21zpiclmcpyg9hr-python3.8-sphinx-3.0.3/lib/python3.8/site-packages/sphinx/builders/html/__init__.py", line 623, in finish
    self.handle_finish()
  File "/nix/store/aar6diwl9bw72bckp21zpiclmcpyg9hr-python3.8-sphinx-3.0.3/lib/python3.8/site-packages/sphinx/builders/epub3.py", line 82, in handle_finish
    self.build_epub()
  File "/nix/store/aar6diwl9bw72bckp21zpiclmcpyg9hr-python3.8-sphinx-3.0.3/lib/python3.8/site-packages/sphinx/builders/_epub_base.py", line 730, in build_epub
    epub.write(path.join(outdir, 'mimetype'), 'mimetype', ZIP_STORED)
  File "/nix/store/z65l1jqvxa58zzwwa3bvglb6asj4y8cv-python3-3.8.5/lib/python3.8/zipfile.py", line 1741, in write
    zinfo = ZipInfo.from_file(filename, arcname,
  File "/nix/store/z65l1jqvxa58zzwwa3bvglb6asj4y8cv-python3-3.8.5/lib/python3.8/zipfile.py", line 539, in from_file
    zinfo = cls(arcname, date_time)
  File "/nix/store/z65l1jqvxa58zzwwa3bvglb6asj4y8cv-python3-3.8.5/lib/python3.8/zipfile.py", line 362, in __init__
    raise ValueError('ZIP does not support timestamps before 1980')

Was looking through the zipfile.py source code though, and happened to notice this
        if not strict_timestamps and date_time[0] < 1980:
            date_time = (1980, 1, 1, 0, 0, 0)
        elif not strict_timestamps and date_time[0] > 2107:
            date_time = (2107, 12, 31, 23, 59, 59)

Looks like the default is strict_timestamps=True, could be a reasonable point to apply a patch
    def from_file(cls, filename, arcname=None, *, strict_timestamps=True):

stdenv was changed in https://github.com/NixOS/nixpkgs/pull/89794


Implement ignoreSearch for ServiceWorker

Chrome does not support it right now, so probably manual opening cache and comparing will work here instead of using built-in match() method.

Fixed in v3 branch.


Save the .

I often search through text or code and use the . command to repeat my change (for example change a name etc.).
Halfway through I notice another change I'd like to make (e.g. remove a misplaced comma, add an s to the end of a word ...) but by making the change my . command would be cleared.
So now I either have to interrupt my workflow, make the change and then start again or remember the position to go back later.
I think being able to save the action of the . to a register and later repeat it as a macro would solve the problem.

I really like this idea, and think that this would be a great addition. Here's some brainstorming on how this could be offered:

If the last change command and applicable scope / motion could be represented in a meaningful way, so that it could also be synthesized by plugins, such functionality could also make any plugin action repeatable, and would allow to natively support what many plugins today use the repeat.vim plugin for (which remaps the . and u keys to hook into the redo system). That would be really great.

If clients would only be able to treat the value of a hypothetical getlastchange() / setlastchange() as an opaque blob, it would be far less useful, allowing not much more than what you suggest, though I would love to have a mapping that makes the next normal mode command exempt from being recorded as the last change, too.

Somewhat in between, if last change and scope could be described, but that representation would not be enough to synthesize new artificial changes (maybe because the internal structure within Vim is complex), a change history could be offered, like q: for Ex commands (e.g. via a new q. command). This could be used to restore any previous change, covering your use case (of skipping the most recent change) and also allowing access to earlier changes, too. This solution would offer what is described in the previous paragraph more or less automatically through histget() / histadd().

Item from the todo list which may be relevant:

Redo only remembers the last change.  Could use "{count}g." to redo an older
change.  How does the user know which change?  At least have a way to list
them: ":repeats".  Add to history, like search history and command line history.

I've wished for this for a long time, going back to my vi days.
Like there's a scratch register for deleted or changed text, could there be a scratch register that records every change? So macro recording is always on?

On 2020-06-19, lacygoill wrote:

Item from the todo list which may be relevant:
Redo only remembers the last change. Could use "{count}g." to redo an older
change. How does the user know which change? At least have a way to list
them: ":repeats". Add to history, like search history and command line
history.

I like that.  I had thought of keeping each change in a stack, so
that you could pop the last change off the stack if you wanted the
one before, but I like this better.  It would be especially nice if
"g." (without a count) executed the next-to-last change.
Regards,
Gary

On 2020-06-19, lacygoill wrote:

Item from the todo list which may be relevant:
Redo only remembers the last change. Could use "{count}g." to redo an older
change. How does the user know which change? At least have a way to list
them: ":repeats". Add to history, like search history and command line
history.

I like that.  I had thought of keeping each change in a stack, so
that you could pop the last change off the stack if you wanted the
one before, but I like this better.  It would be especially nice if
"g." (without a count) executed the next-to-last change.

There are some questions about how this behaves exactly.  E.g. after
using "3g." does that redo operation become the current one, so that "."
will redo it again?  That's a bit like how the command history works.
Then will "3g." do the same thing, or have the entries shifted?
:repeats could list them with the "g.", "2g.", etc. command that would
execute them.
I would find this most useful when going through a list of matches,
either with "n" or ":cn", and seeing something else that needs changing.
If that is only one operation that using "g." would work, but if that
ends up being two or three changes, you get lost.  Perhaps we need a way
to "save the current redo" and "restore the saved redo"?  Or switching
between two redo histories.
--
If cars evolved at the same rate as computers have, they'd cost five euro,
run for a year on a couple of liters of petrol, and explode once a day.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

When I first thought how handy something like this would be, the way I imagined it working would be to automatically store the relevant keys for the previous change in a read-only register.

I think there even was a patch for accessing the . register floating around. Here it is: https://groups.google.com/d/msg/vim_dev/TIH6wsD4Qo4/msUMWHnWt3oJ

There are some questions about how this behaves exactly. E.g. after using "3g." does that redo operation become the current one, so that "." will redo it again? That's a bit like how the command history works. Then will "3g." do the same thing, or have the entries shifted?

Yes, I would expect it to become the current one, so I can continue using it with . (especially when going through matches).
Just having g. would be great because you still remember what that does. I'm not sure if I would find a :repeats as helpful ... maybe for the case where you do multiple changes before you go to the next match.

Thank you @chrisbra .  I really like this idea and would love to see it in mainline Vim.

:repeats could list them with the "g.", "2g.", etc. command that would execute them.

@brammool maybe [also] working with 'g,', 'g;' would be better, enhance it: echo the last 'repeat' at that location, then 'g.' switch to it, now '.' can repeat that one ..

I use g. to repeat n. on the Visual area or the remaining buffer.  No, it's not released anywhere, pretty sure someone has done the same (in a more polished manner) (using which key combo?).  Just want to point out a conflicting use ... which IMHO is even more useful, and also is a candidate for a builtin command.

@chrisbra thanks for the link! I've updated it, added setreg() support and created a PR. Could you take a look at it? #6346

jump-in .. :)
um, what was that gg link saying? (no chance to open gg link -_-#)
i was thinking 'g.' working with 'g,' and 'g;', but now - your pr, if so, no 2,3,4..g. but only 2, then how or was there still 'g.' to switch ?

I think it would be really really nice if vim implemented functionality of repeat.vim natively (so developers can repeat not only last command, but last group of commands), I can't use vim without repeat.vim. Macros are nice but hard to use, and you need to remember to start recording.


1.3 (33)

Updated to Xcode 11 and iOS 13:

dark mode support!
new default view controller presentation style used all over

Fixed bug where issue description suggestions wouldn't get updated after setting a description

As it's been approved by apple now, I'll go ahead and merge this.


Add more info on flask server to readme

Quoting @milancurcic comment from #2

Add a note on what address and port will the server run and give a minimal request example (e.g. curl -X POST ...) so the user knows how to try it out.

I'm just dropping the curl request exampple on this issue, meanwhile. I'll push it with the next PR, if that's okay.
curl --location --request POST '<IP_ADDRESS>:5000/run' \ --header 'Content-Type: application/json' \ --data-raw '{   "code": "program hello\nprint *, \"Hello World New Line\"\nprint *, \"Hello Mars\"\nend program hello" } '
Please use proper formatting on code key. It's easier to do it with the editor.


expose getvalidhash

This exposes Bundle.getValidHash() as Bundle.GetValidHash(), for applications that use an external component for signing the bundle. Maybe not the optimal solution though,

Thank you


A logical problem with Line Number Active Foreground

VSCode Version: 1.24.0
OS Version: Mac 10.13.4 (17E202)

As always, thanks a lot for the great stuff you bring to vscode.
Since the new version of Visual Studio Code added this beautiful Line Number Active Foreground Coloring feature for the themes I noticed a little problem in the logic:

See, I guess 4 must remain active when the cursor is on the wrapped portions of the line, shouldn't it?

Duplicate of #45365


Add show password feature

Feature request-
Add functionality to hide and show password on log-in page.

Note:

Do mention if your are working under GSSoC'21.
If you want to work on an issue, you should check if it has already been assigned to anyone. If the issue is free you can comment /assign to get the issue assigned to you.
If you are raising a new issue and want to work on it then also you should comment /assign under the issue to get it auto assigned.
Please refrain from adding labels to your issue/pull-request on your own. It is the job of the Project Admin and the Mentors to review your issue/pull-request and add labels accordingly.
According to the level of the issue, respective time will be allotted under which the task needs to be completed/resolved by the assigned person. If the issue is not resolved within the given time, it will be assigned to the next person. In case of any discrepancies, the decision of the maintainer will be final.

level - 0: 2 days
level - 1: 3 days
level - 2: 4 days
level - 3: 5 days

/assign

Can you raise a new issue and also do this for sign-up page ?

Okay


dx_id should not start with a number

While writing FlexModel, I realized the ID service can generate an id that starts with a number. This is not compliant with the ID property for HTML.
We could:

Prefix in our classes ("d" + id)
Change the ID service.

For now I am going to prefix.

isn't this only an HTML4 constraint? (will add a "d" that's fine i guess)

@auniverseaway agrees on closing this https://github.com/adobe/adobe-dx/pull/77


Re-Licencing

In this PR, all the files that we touched are relicensed, to GPLv3.0

I have modified all files that I think are changed in our sprint. @haerdib, please take a look if I missed some files you were working on for WebSocket stuff.


Map interaction KeyboardZoom and KeyboardPan doesn't work on Google Chrome 45 and Firefox

Hi,
i've problem with interactions KeyboardZoom and KeyboardPan in the browsers Google Chrome and Mozzila Firefox. This interactions in these browsers doesn't working, only browser where problem doesn't occure is Internet Explorer.
Interaction KeyboardZoom you can try out at this link:
http://openlayers.org/en/v3.9.0/examples/full-screen-drag-rotate-and-zoom.html
Regards,
Tomas

See http://openlayers.org/en/v3.9.0/examples/accessible.html. And see the keyboardEventTarget Map option: http://openlayers.org/en/v3.9.0/apidoc/ol.Map.html.

Thanks for the help.


Simplify the Nuxt app loading screen

Describe the feature
I beg you please consider users with older computers and for the sake of our mother earth remove the heavy CSS Nuxt loading screen loads please please please 🙏🙏🙏

Best regards!
Additional information

[X] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

If you hover over the top right corner, you can disable it - your preference is saved in local storage 😊

I purge my localStorage about 5 times a day plus I don't think it is green IT solution.
Would you please consider setting this by default ?
Thank you for your time :)


Can't send photos

Please add this feature

Too vague! Might want to include more information. More details the better.
example: platform, version, specific problem and how to recreate it.

closing this because it is a duplicate of this one https://github.com/ifedapoolarewaju/igdm/issues/3


Add documentation for autoscaling feature

Why are these changes needed?
Give user better guidance on enabling autoscaling.
Checks

[x] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[x] Manual tests
[ ] This PR is not tested :(

Can not find reviewer for this one. This is for experimental feature and let's merge it for v0.2.0 release.


feat: Add deploymentName tag to pod and container

Relevant information

Added k8s.deploymentName tag to pod and container entity types

Checklist

[x] I've read the guidelines and understand the acceptance criteria.
[x] The value of the attribute marked as identifier will be unique and valid.
[x] I've confirmed that my entity type wasn't already defined. If it is I'm providing an explanation above.

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


hydro_imgw: Error on device update!

Hi Piotr, I need to raise the issue which comes after HA update(2021.9.0). Error log as follows:
First occurred: 13:07:15 (1 occurrences)
Last logged: 13:07:15

hydro_imgw: Error on device update!
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 169, in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py", line 96, in create_connection
    raise err
  File "/usr/local/lib/python3.9/site-packages/urllib3/util/connection.py", line 86, in create_connection
    sock.connect(sa)
TimeoutError: [Errno 110] Operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 382, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 1010, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 353, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.9/site-packages/urllib3/connection.py", line 181, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f71b25a50a0>: Failed to establish a new connection: [Errno 110] Operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.9/site-packages/urllib3/util/retry.py", line 574, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='hydro.imgw.pl', port=443): Max retries exceeded with url: /api/station/hydro/?id=152210170 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f71b25a50a0>: Failed to establish a new connection: [Errno 110] Operation timed out'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 431, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 633, in async_device_update
    await task
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/hydro_imgw/sensor.py", line 84, in update
    request = requests.get(address, headers=headers)
  File "/usr/local/lib/python3.9/site-packages/requests/api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/requests/api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='hydro.imgw.pl', port=443): Max retries exceeded with url: /api/station/hydro/?id=152210170 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f71b25a50a0>: Failed to establish a new connection: [Errno 110] Operation timed out'))

@PiotrMachowski

It's possible that this error was caused by a temporary network problem. Does the sensor update the data now?

Unfortunetly no, let's give it couple of hours and I will return to you ok?

Hmmm, I have checked my setup and I also have this error... It's possible that they have added some traffic filtering mechanisms, I will have to create a workaround if it is the case.

But until literally no more than an hour, an issue occur, so something has changed there since then.

The last successful update in my HA was ~6h ago

The problem seems to be solved

Great!


Actually Additions "Crushed Black Quartz" stopped processing in Smelter

Please use the search functionality before reporting an issue. Also take a look at the closed issues!
Issue description:
I had setup, ages ago, an elite smelter to handle AAs Crushed Black Quarts to smelt it into Black Quartz. Just recently I noticed that the whole process came to a screaming halt. On investigation I found the Crushed Black Quartz was just sitting in the Smelter. I've had to swap over to an Electric Furnace from Thermal Expansion.
Steps to reproduce:

Put "Crushed Black Quartz" in a Smelter
Observe it doing nothing

Version (make sure you are on the latest version before reporting):
Forge: 1.10.2-<IP_ADDRESS>6
Mekanism: 1,10.2-<IP_ADDRESS>1
Other relevant version:
If a (crash)log is relevant for this issue, link it here: (It's almost always relevant)
N/A

I'm pretty sure Mekanism didn't change anything that could cause this. Mekanism uses the default provided smelting list of Minecraft/Forge to smelt it's items in the smelter.
If it does smelt in a furnace, but not in a smelter, then it's a Mekanism bug. Could you test if it works in a vanilla furnace and the Mekanism smelter has enough energy to process it?


Operator run completion feed service

Closes #357 .
Tasks

[x] new http service exposed
[x] add configuration including default setup (no upstreams)
[x] iterate over upstreams proxying the request on
[x] test
[ ] Documentation updated

Documentation updated?

Documentation updated?

Am doing, but in doing am thinking about changing the structure of the crd a little but wont stop you reviewing

Documentation updated?

133dc5b

ok to test


snet: Simplify the api

There are a number of places where snet's API has multiple similar functions where it would be simpler to use and understand if there was one:

SCIONNetwork constructors:

NewCustomNetwork
NewCustomNetworkWithPR
NewNetwork
NewNetworkWithPR

SCIONNetwork Dial methods:

DialSCION
DialSCIONWithBindSVC
and the package-level functions

SCIONNetwork Listen methods:

ListenSCION
ListenSCIONWithBindSVC
and the package-level functions

Proposal: it would be a lot simpler to use config structs for each of these cases.
For SCIONNetwork constructors:
type SCIONNetworkCfg struct {
    IA addr.IA

    // Only one of these may have a non-zero-value. If neither are set, snet
    // will not use sciond.
    SciondPath string
    PR pathmgr.Resolver

    // One (and only one) of these must be set.
    Dispatcher reliable.DispatcherService
    PktDispatcher PacketDispatcherService
}

For Dial*:
type DialSCIONCfg struct {
    Network string
    Laddr *Addr
    Baddr *Addr
    RAddr *Addr
    Svc addr.HostSVC
    Timeout time.Duration
}

And for Listen*:
type ListenSCIONCfg struct {
    Network string
    Laddr *Addr
    Baddr *Addr
    Svc addr.HostSVC
    Timeout time.Duration
}

Instead of timeout being in the config struct it should be passed in as a parameter in form of a context.

@scrye I up-vote this issue. Touching the snet pkg was very confusing because of all the different APIs.
A cleanup, and well-defined interface would have been great.

I agree, I've discussed it with @sustrik as well. A lot of the APIs are no longer needed (bind addresses, path managers, multiple network constructors), and some of the semantics are unclear. The documentation is also lacking.
I feel like after a few rounds of removing stuff, we can have something that is as straightforward as the standard library net (or, at the very least, that's why we should aim for).
After cleaning up the addresses this is definitely something that we need to do, and once we do that, we should start moving down the parser stack and clean stuff down there too.

Regarding the suggestions in the first comment, we might be able to simplify even further.
Type by type breakdown below. Note that sometimes the following yet-to-be-implemented address types are used:
type UDPAddr struct { // snet.UDPAddr
  IA addr.IA
  UDP *net.UDPAddr
  Path Path
  Underlay net.Addr
}

type SVCAddr struct { // snet.SVCAddr
  IA addr.IA
  SVC addr.HostSVC
  Path Path
  Underlay net.Addr
}

type Network
Current API:
type Network interface {
    ListenSCIONWithBindSVC(network string,
        laddr, baddr *Addr, svc addr.HostSVC, timeout time.Duration) (Conn, error)
    DialSCIONWithBindSVC(network string,
        laddr, raddr, baddr *Addr, svc addr.HostSVC, timeout time.Duration) (Conn, error)
}

Simplified API:
type Network interface {
    Listen(ctx context.Context, laddr *snet.UDPAddr, svc addr.HostSVC) (*SCIONConn, error)
    Dial(ctx context.Context, laddr, raddr *snet.UDPAddr) (*SCIONConn, error)
}

type SCIONNetwork (implements Network)
Current API:
type SCIONNetwork struct {
    // contains filtered or unexported fields
}

func NewCustomNetworkWithPR(ia addr.IA, pktDispatcher PacketDispatcherService) *SCIONNetwork
func NewNetworkWithPR(ia addr.IA, dispatcher reliable.DispatcherService,
    querier PathQuerier, revHandler RevocationHandler) *SCIONNetwork

Suggested API:
type DefaultNetwork struct { // implements interface Network
    AddressFamily string // udp4, udp6, etc., thus no longer need during Dial/Listen
    Dispatcher PacketDispatcherService
    PathQuerier PathQuerier
    RevocationHandler RevocationHandler
}

// constructors deleted; objects built using fields directly

// delete methods that are not part of interface Network

type PacketDispatcherService
Current API:
type PacketDispatcherService interface {
    RegisterTimeout(ia addr.IA, public *addr.AppAddr, bind *net.UDPAddr,
        svc addr.HostSVC, timeout time.Duration) (PacketConn, uint16, error)
}

Suggested API:
type Dispatcher interface {
    Register(ctx context.Context, registration *snet.UDPAddr, svc addr.HostSVC) (PacketConn, *snet.UDPAddr, error)

type Conn
Current API:
type Conn interface {
    Read(b []byte) (int, error)
    ReadFrom(b []byte) (int, net.Addr, error)
    ReadFromSCION(b []byte) (int, *Addr, error)
    Write(b []byte) (int, error)
    WriteTo(b []byte, address net.Addr) (int, error)
    WriteToSCION(b []byte, address *Addr) (int, error)
    Close() error
    LocalAddr() net.Addr
    BindAddr() net.Addr
    SVC() addr.HostSVC
    // RemoteAddr returns the remote network address.
    RemoteAddr() net.Addr
    // SetDeadline sets read and write deadlines. Implements the net.Conn
    // SetDeadline method.
    SetDeadline(deadline time.Time) error
    SetReadDeadline(deadline time.Time) error
    SetWriteDeadline(deadline time.Time) error
}

Suggested API: Delete completely. net.PacketConn and net.Conn should be used instead.
type PacketConn
Renamed to DispatcherConn.
type SCIONConn
Renamed to Conn.
Remove methods BindSnetAddr, BindAddr.
type SCIONPacket
Renamed to Packet.
type SCIONPacketInfo
Renamed to PacketInfo
type SCIONPacketConn
Should be renamed to something that isn't as confusing (right now this clashes with net.PacketConn). No idea yet what the name should be.

This is great, even just cleaning up the names will be a very nice improvement! :rocket:
@scrye Under "type Network", it might be even nicer if the Listen function could take svc as a pointer so that we can pass nil instead of SvcNone.
One alternative approach to this interface with a Network type, could be to do what net does: keep very simple package level Listen and Dial functions which just pick the default settings. For the dispatcher and sciond sockets paths, we could have a standard path and allow overriding over environment variables (similar to what net does with the name resolver settings).
Then, to allow specifically overriding advanced settings, we could have ListenConfig and Dialer types, analogous to net.
What do you think?

@matzf Re taking svc as a pointer. I think it isn't a good idea. While it makes it easier for places where SvcNone is desired it will make it awkward for callers which want to pass and actual value, because in go you cannot take the address of a constant. So I think it makes more sense to keep the svc argument as a constant. Additionally IMO it's much more readable if I see a call Listen(..., addr.SvcNone, ..) vs Listen(...., nil, ...) I immediately see what the argument is about when using the constant, but when using nil I don't know what it means.
Regarding the Network interface: Since the IA is a property of the network the listen addresses can be *net.UDPAddrs.

https://github.com/scionproto/scion/pull/3521 is a step towards the new Network interface

related https://github.com/scionproto/scion/issues/3675

As a part of this story, we need to have snet.Write/Read to return a meaningful error when the path is not set or the next hop is not set.

This is outdated by now. The current API is much simpler than what we had when this issue was created, but there is still room for cleaning it up further. We'll tackle those in smaller issues.

This is outdated by now. The current API is much simpler than what we had when this issue was created, but there is still room for cleaning it up further. We'll tackle those in smaller issues.


[Minor] Anonymous new Runnable() can be replaced with lambda

Make sure set the target branch to develop
What is the purpose of the change
XXXXX
Brief changelog
XX
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Coverage decreased (-0.06%) to 51.892% when pulling b3e0fccb85fede6a25f5c2f74a3b3b907b3795ce on li-xiao-shuang:feature_lambda into 1a72ffd20041e7fa1514abb92195e2414054c80a on apache:develop.

@Git-Yang  Can  also deal with this PR？


Allow owner of the room to remove message

Allow owner of the room to remove unappropriate messages.

Were you offended today?


ITE soc/it8xxx2/linker: add sections for hw sha256 calculation

IT8XXX2 HW support sha256 calculation, and its calculation is faster than FW. We place SHA256 message, hash and key data (total 512bytes) in RAM. If we enable this config, because HW limits, the sha256 data must place in top 4KB of RAM. We add sections for hw sha256 calculation in linker.
Signed-off-by: Dino Li<EMAIL_ADDRESS>Signed-off-by: Ruibin Chang<EMAIL_ADDRESS>

This change will be used to fix the following issues:
https://partnerissuetracker.corp.google.com/issues/242474986
https://partnerissuetracker.corp.google.com/issues/260762509

Hi @keith-zephyr could you re-review the requested changes? Thanks!


SanityImageEntity error triggered on gatsby-build for Gatsby v4

I am a bit conscious before posting this here because this might not be gatsby-plugin-sanity-image specific issue since from the past I have @coreyward has always been on the forefront and proactive in bridging Gatsby gaps with Sanity.
Context
I am seeing these error when I ran gatsby build for this repo
There was an error in your GraphQL query:

Unknown type "SanityImageEntity". Did you mean "SanityImageFit", "SanityImageAsset", "SanityImage", "SanityImageCrop",
 or "SanityImageHotspot"?

   1 | fragment GatsbyImageSharpFluid on ImageSharpFluid {
   2 |   base64
   3 |   aspectRatio
   4 |   src
   5 |   srcSet
   6 |   sizes
   7 | }
   8 |
>  9 | fragment ImageWithPreview on SanityImageEntity {
     |                              ^
  10 |   ...Image
  11 |   asset {
  12 |     metadata {
  13 |       preview: lqip
  14 |     }
  15 |   }
  16 | }
  17 |
  18 | fragment Image on SanityImageEntity {
  19 |   asset {

File path: /Users/minimaru/Sites/ajmalafif.com/web/src/templates/blog-post.js
Url path: /notes/learning-in-public/
Plugin: none

So when I am investigating and searching for SanityImageEntity points me to a node_modules folder for gatsby-plugin-sanity-image:

I apologize in advanced if this is out of scope or my lack of understanding. Appreciate any pointers and guidance if its relevant else feel free to close the issue! Thanks again!

Is there a way to go around SanityImageEntity or its required that I use it?

You can specify a different fragmentTypeName in your config if you'd like (anything other than SanityImage that doesn't conflict with another type in your app), but I don't think it will change the issue you're having. From your original post, you are showing a file that has different fragments in it than what is in gatsby-plugin-sanity-image:

You might have a local file that is .gitignore'd or have something cached strange. Deleting node_modules and re-installing dependencies might help if so.

This should be fixed in<EMAIL_ADDRESS>See #20 for more detail.


fix Center + improve Readme and bump version

Loads of fixes so it works out of the box. Also fixed examples so they are displayed on index page when examples app loads.

Thank you for contributing.


Added CleverGo framework

a  web frameworks building upon the HttpRouter package.

Coverage remained the same at 100.0% when pulling c013a742b70020dcce35411896cc4e44102b2b7e on headwindfly:master into 0729217d031ab353a3e34b94e8544e167f7ce9a4 on buaazp:master.


Empty file upload causes error "unknown error: unable to unzip 'file'"

When  I upload empty file (0 bytes size) using input element (and SendKeys command), following exception is thrown:

Message: OpenQA.Selenium.WebDriverException : unknown error: unable to unzip 'file'
from unknown error: archive error: (unknown error: could not unzip archive), entry error: (unknown error: could not unzip archive)
(Session info: chrome=69.0.3497.81)
(Driver info: chromedriver=2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706),platform=Linux 4.4.0-130-generic x86_64)

@olegbaslak what is the use case of uploading zero byte file?

@olegbaslak what is the use case of uploading zero byte file?

It is one of the cases to test on client's file uploading

Looks like it can be a poblem of ZipStorer that is used in RemoteWebDriver for transferring files to upload

I have created an issue in selenium's repo: https://github.com/SeleniumHQ/selenium/issues/6529


On building: "'pwsh.exe' is not recognized as an internal or external command" for every project in SLN

We've noticed in our build logs seemingly for every project in our large solution, the following (I obfuscated actual project name and path):
2021-05-17T11:30:38.9018123Z        Lib:
2021-05-17T11:30:38.9018123Z          All outputs are up-to-date.
2021-05-17T11:30:38.9018123Z          ABC.vcxproj -> <path>ABC.lib
2021-05-17T11:30:38.9954123Z        AppLocalFromInstalled:
2021-05-17T11:30:38.9954123Z          pwsh.exe -ExecutionPolicy Bypass -noprofile -File "C:\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "<path>ABC.lib" "C:\vcpkg\scripts\buildsystems\msbuild\..\..\..\installed\x86-windows\bin" ".\Release\ABC.tlog\ABC.write.1u.tlog" ".\Release\vcpkg.applocal.log"
2021-05-17T11:30:38.9954123Z          'pwsh.exe' is not recognized as an internal or external command,
2021-05-17T11:30:39.0110123Z          operable program or batch file.
2021-05-17T11:30:39.0110123Z          The command "pwsh.exe -ExecutionPolicy Bypass -noprofile -File "C:\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "<path>ABC.lib" "C:\vcpkg\scripts\buildsystems\msbuild\..\..\..\installed\x86-windows\bin" ".\Release\ABC.tlog\ABC.write.1u.tlog" ".\Release\vcpkg.applocal.log"" exited with code 9009.
2021-05-17T11:30:39.0266123Z          "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -noprofile -File "C:\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "<path>ABC.lib" "C:\vcpkg\scripts\buildsystems\msbuild\..\..\..\installed\x86-windows\bin" ".\Release\ABC.tlog\ABC.write.1u.tlog" ".\Release\vcpkg.applocal.log"

I have a few questions:

It seems it is trying to find a local PowerShell then falling back to an installed one, is this a problem and if not can I somehow reduce the amount of logging we get?
Why is it running Powershell for every project anyway? I looked at the script file and it's unclear what it's for.
We actually only use vcpkg for about 20 projects out of ~200 in the SLN, with custom triplets in a main .prop file. But I see vcpkg stuff going on for every single project. In VS I can see "Use Vcpkg : Yes" in project properties, can I default this to "no" somehow and turn it on only when desired?

  <PropertyGroup Label="Globals">
    <VcpkgTriplet Condition="'$(Platform)'=='Win32'">x86-windows-custom-vcpkg</VcpkgTriplet>
    <VcpkgTriplet Condition="'$(Platform)'=='x64'">x64-windows-custom-vcpkg</VcpkgTriplet>
  </PropertyGroup>

Looking further, I realise that about 100 of our projects do not use the props file above, which commands the use of custom triplet. This means that when we started using vcpkg, 100 projects gained a link to x86-windows and have Use Vcpkg = yes.
What I would like ideally is that vcpkg is only used by projects using our .props file. In other words <VcpkgEnabled>false</VcpkgEnabled> would be the VS default. As it is, I have to go add this to 100 projects and I would very much prefer an opt-in approach to vcpkg.
Is this possible?

AFAIK, the scripts\buildsystems\msbuild\applocal.ps1 helps install dependent dlls to your project, so it executes in each proejct.
For setting VcpkgEnabled, please refer to https://github.com/microsoft/vcpkg/issues/16165#issuecomment-777840155.

Hi @PhoebeHui thanks for the link - but while there's interesting discussion there I don't see a clear and definitive answer how I can change the default for VcpkgEnabled. It's set to true in the vcpkg props file, one person suggests hacking that file. Another says I can set VS_GLOBAL_VcpkgEnabled to false but where and how do I do this?
Since we have a solution-level .props I simply want to have vcpkg off unless my props file turns it on.

@jdx-john, sorry for late response!
You can set VcpkgEnabled to false in https://github.com/microsoft/vcpkg/blob/master/scripts/buildsystems/msbuild/vcpkg.props#L18 by default, then every new msbuild project would not use vcpkg by default. Or you can set 'use vcpkg' to 'No' in your specific project property, but that only works in that project.
If your project is a cmake project, you can passing '-DVS_GLOBAL_VcpkgEnabled=false' to cmake, and the project disable the vcpkg in default.


Error Creating Restore Job

1.6759603221844468e+09  ERROR   Reconciler error        {"controller": "restoremariadb", "controllerGroup": "database.mmontes.io", "controllerKind": "RestoreMariaDB", "restoreMariaDB": {"name":"restore","namesp: 1 error occurred:\n\t* error reconciling batch: error creating Job: jobs.batch "restore" is forbidden: cannot set blockOwnerDeletion if an ownerReference refers to a resource you can't set finalizers on: ,
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:273
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:234
Looks Like fix is: (I'm still on old CRD naming convention)

apiGroups:

database.mmontes.io
resources:
restoremariadbs/finalizers
verbs:
update

Thanks for reporting this @parkerg21 !
This is most likely an RBAC issue as you pointed out. I encourage you to upgrade to the latest version, as we are introducing significant improvements in this alpha version.
Anyway, could you confirm the following?

Kubernetes version
MariaDB operator version
Installation flavour

Source: kubectl, helm or olm
Bare minimum or recommended

Thanks for using MariaDB operator!

Sure, where can we see features being introduced in alpha version? The roadmap page?
OpenShift version: 4.10.0-0.okd-2022-05-28-062148
Kubernetes version: v1.23.5-rc.0.2071+3afdacbd018325-dirty
Channel: stable-4
MariaDB operator version: v0.0.5
Installation: kubectl and oc
Using argoCD for gitOps automation

Sure, where can we see features being introduced in alpha version? The roadmap page?

The upcoming features can be checked in the ROADMAP.md , more to be added soon.
Then, regarding the issue, I've just submitted a patch to the helm chart to fix this, it should be published in AftifactHub and OperatorHub shortly. Make sure you update to the 0.6.7  version:

https://github.com/mmontes11/mariadb-operator/pull/43

Closing! let me know if you need further help.