Functional Confusion Matrix with Multi-Label

🐛 Bug

I am trying to analyze a model that has multi-label predictions. When creating a confusion matrix with the functional confusion_matrix method, I get a much different result than expected. I may be misunderstanding how this is supposed to work so any help would be appreciated!
To Reproduce
Steps to reproduce the behavior:

Predict multi-label data that has had torch.sigmoid applied to the output (N,C) and have a matching shape truth data.
Use the functional confusion_matrix method on the data

Code sample
>>> from torchmetrics.functional import confusion_matrix
>>> import torch
>>> x = torch.tensor([[.4,.5,.6,.7],[.3,.4,.7,.1]])
>>> y = torch.tensor([[0,0,0,1],[0,1,0,0]], dtype=torch.int32)
>>> cm = confusion_matrix(x, y, num_classes=4, normalize='none')
tensor([[3., 3., 0., 0.],
        [1., 1., 0., 0.],
        [0., 0., 0., 0.],
        [0., 0., 0., 0.]])

Expected behavior
I would expect the confusion matrix to count the classes that were predicted for each true class. I may be wrong
tensor([[0, 0, 0, 0],
        [0, 0, 1, 0],
        [0, 0, 0, 0],
        [0, 1, 1, 1]])

Environment

PyTorch Version (e.g., 1.0): 1.7
OS (e.g., Linux): Linux
How you installed PyTorch (conda, pip, source): conda
Python version: 3.8.8
CUDA/cuDNN version: 11.03
GPU models and configuration: Nvidia Tesla V100

Thanks for the great project and help!!

So I guess the more usefull expected behavior would be the Multi-Label Confusion Matrix output like sklearn.metrics.multilabel_confusion_matrix where the output is (n_outputs, 2, 2). It appears like torchmetrics is kind of doing this but extending the 2x2 matrix to the size of num_classes where the multi-label confusion matrix occupies the first two rows and columns. pytorchmetrics is also then summing along the first axis and only returning the overall matrix instead of class-wise.

IMO yes if the philosophy is to create a pytorch optimised sklearn.


Adopt DCO

To graduate a project from CNCF, they must adhere to the CNCF IP Policy which involves adopting a DCO: https://github.com/apps/dco
I suggest Prometheus slowly adopt this over the next month or so, experiment first with node_exporter

cc: @juliusv @brian-brazil

@caniszczyk  the DCO app is now enabled across the entire organisation.
Is there anything else we need to do or can close this as resolved?

This is done.

@brian-brazil I believe we actually need to mention the DCO and at least link to https://developercertificate.org/ from all of our CONTRIBUTING.md files, otherwise the signed-off tag is meaningless.

Closed by #4211 regarding the Contributing guide.


(Python): does not work with CDK >=2.26

I'm using the package

[ ] iam-floyd
[x] cdk-iam-floyd

I'm using the package in language

[ ] TypeScript/JavaScript (npm)
[x] Python (pip)

Describe the problem
After upgrading CDK from 2.25 to 2.26, my app doesn't synth anymore, throwing an error on iam-floyd's service initialization lines.
Example code (project is a aws_codebuild.PipelineProject):
project.grant_principal.add_to_principal_policy(
     statement.Codeartifact()
     .to_get_authorization_token()
     .on_domain(
         domain_name=codeartifact.domain_name,
         account=target_env.account,
         region=codeartifact.region,
      )
)

Error:
...
statement.Codeartifact()
  File "/home/gshpychka/venvs/mm_infra/lib/python3.10/site-packages/jsii/_runtime.py", line 86, in __call__
    inst = super().__call__(*args, **kwargs)
  File "/home/gshpychka/venvs/mm_infra/lib/python3.10/site-packages/cdk_iam_floyd/__init__.py", line 106942, in __init__
    jsii.create(self.__class__, self, [props])
  File "/home/gshpychka/venvs/mm_infra/lib/python3.10/site-packages/jsii/_kernel/__init__.py", line 290, in create
    response = self.provider.create(
  File "/home/gshpychka/venvs/mm_infra/lib/python3.10/site-packages/jsii/_kernel/providers/process.py", line 344, in create
    return self._process.send(request, CreateResponse)
  File "/home/gshpychka/venvs/mm_infra/lib/python3.10/site-packages/jsii/_kernel/providers/process.py", line 326, in send
    raise JSIIError(resp.error) from JavaScriptError(resp.stack)
jsii.errors.JSIIError: Cannot set property principals of [object Object] which has only a getter

cdk-iam-floyd version: 0.376.0
Simliar thing has happened before in #145

The relevant CDK change is here: https://github.com/aws/aws-cdk/compare/v2.25.0...v2.26.0#diff-0ae3b84aa2e09276610b62695ce2b3485fde733b8ae0708053e6a075e17c6c11
It introduces a couple of new props which conflict with internal floyd props. But also it introduces public methods that conflict with the Floyd API: notActions, notResources and notPrincipals. I had to rename them to singular: notAction, notResource and notPrincipal
This is a breaking change that might be hard to spot by the user, since the methods are still there... but nothing I can do about that  ¯\_(ツ)_/¯


you broke linux builds, again

Working Build
Broken build (no artifacts)
so commit "update appveyor's" broke it, great

kade figured out the issue with not being able to make more appveyor projects, linux builds are no longer on daniel11420/kade-engine-linux

i'll have to look at what it says again idk, p sure its still failing so.


[windows][cws][wkint-485] Add collection of module loads.

Introduces new ETW listener on the kernel-process notifications. Collects an event when a module is loaded.
Note that filename is of the format \Device\HarddiskVolume1\Windows\System32\ntdll.dll, rather than canonical c:\....
PR includes automated tests.
PR does not actually implement new functionality.  Needs CWS consumer to do something with it.

@derekwbrown Hey ! Do we still need this ?


CI is intermittently timing out on master

Some of the jobs are failing, and others are timing out.

Some of the jobs are failing, and others are timing out.

I'll add counters and @asserts to the while loops to try and find out where it's getting suck.

I'll add counters and @asserts to the while loops to try and find out where it's getting suck.

It looks like the timeouts may be a Windows problem.

It looks like the timeouts may be a Windows problem.

CI is now passing on master, so I'll close this.

CI is now passing on master, so I'll close this.

Reopening this.

Reopening this.

Failure on 1.5 and 1.6:
https://github.com/chriselrod/ThreadingUtilities.jl/runs/1725829471?check_suite_focus=true

Failure on 1.5 and 1.6:
https://github.com/chriselrod/ThreadingUtilities.jl/runs/1725829471?check_suite_focus=true

One timeout is on Linux, and one timeout is on macOS. So presumably it's not an OS-related bug.

One timeout is on Linux, and one timeout is on macOS. So presumably it's not an OS-related bug.

Maybe run some kind of loop on your local machines?
E.g.
import Pkg

while true
    Pkg.test("ThreadingUtilities")
end

You could do the loop in bash instead of Julia.
And maybe run all of that inside of rr? So that when you finally catch a timeout, you can replay it?

Maybe run some kind of loop on your local machines?
E.g.
import Pkg

while true
    Pkg.test("ThreadingUtilities")
end

You could do the loop in bash instead of Julia.
And maybe run all of that inside of rr? So that when you finally catch a timeout, you can replay it?

Here's another failure, on macOS: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726038737

Here's another failure, on macOS: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726038737

Got another failure, this time on Linux: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726061663

Got another failure, this time on Linux: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726061663

Here's a failing job: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726160608
And here's a passing job on the same commit: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726160653
Log for the failing job:
┌ Info:
└   Threads.nthreads() = 5
┌ Info:
└   Sys.CPU_THREADS = 2
┌ Info:
└   VectorizationBase.NUM_CORES = 2
┌ Info:
└   length(ThreadingUtilities.TASKS) = 1
[ Info: Beginning to run the ThreadingUtilities test suite
Test Summary: | Pass  Total
THREADPOOL    |    4      4
  0.468356 seconds (741.25 k allocations: 41.449 MiB, 19.53% gc time, 99.50% compilation time)
Test Summary: | Pass  Total
Internals     |    3      3
  0.004237 seconds (266 allocations: 32.570 KiB, 92.60% compilation time)
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Error: The operation was canceled.

Log for the passing job:
┌ Info:
└   Threads.nthreads() = 5
┌ Info:
└   Sys.CPU_THREADS = 3
┌ Info:
└   VectorizationBase.NUM_CORES = 3
┌ Info:
└   length(ThreadingUtilities.TASKS) = 2
[ Info: Beginning to run the ThreadingUtilities test suite
Test Summary: | Pass  Total
THREADPOOL    |    4      4
  0.299020 seconds (741.38 k allocations: 41.456 MiB, 2.36% gc time, 98.06% compilation time)
Test Summary: | Pass  Total
Internals     |    3      3
  0.004492 seconds (256 allocations: 32.102 KiB, 80.02% compilation time)
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Test Summary: | Pass  Total
Aqua          |    7      7
 10.775370 seconds (2.96 M allocations: 175.123 MiB, 0.57% gc time, 19.82% compilation time)
[ Info: foo 1
[ Info: foo 2
[ Info: foo 3
[ Info: foo 4
[ Info: foo 5
[ Info: foo 6
[ Info: foo 7
Test Summary:         | Pass  Total
ThreadingUtilities.jl |    2      2
[ Info: Finished running the ThreadingUtilities test suite
     Testing ThreadingUtilities tests passed

Here's a failing job: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726160608
And here's a passing job on the same commit: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726160653
Log for the failing job:
┌ Info:
└   Threads.nthreads() = 5
┌ Info:
└   Sys.CPU_THREADS = 2
┌ Info:
└   VectorizationBase.NUM_CORES = 2
┌ Info:
└   length(ThreadingUtilities.TASKS) = 1
[ Info: Beginning to run the ThreadingUtilities test suite
Test Summary: | Pass  Total
THREADPOOL    |    4      4
  0.468356 seconds (741.25 k allocations: 41.449 MiB, 19.53% gc time, 99.50% compilation time)
Test Summary: | Pass  Total
Internals     |    3      3
  0.004237 seconds (266 allocations: 32.570 KiB, 92.60% compilation time)
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Error: The operation was canceled.

Log for the passing job:
┌ Info:
└   Threads.nthreads() = 5
┌ Info:
└   Sys.CPU_THREADS = 3
┌ Info:
└   VectorizationBase.NUM_CORES = 3
┌ Info:
└   length(ThreadingUtilities.TASKS) = 2
[ Info: Beginning to run the ThreadingUtilities test suite
Test Summary: | Pass  Total
THREADPOOL    |    4      4
  0.299020 seconds (741.38 k allocations: 41.456 MiB, 2.36% gc time, 98.06% compilation time)
Test Summary: | Pass  Total
Internals     |    3      3
  0.004492 seconds (256 allocations: 32.102 KiB, 80.02% compilation time)
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Skipping Base.active_repl
Skipping Base.active_repl_backend
Skipping Base.Filesystem.JL_O_RANDOM
Skipping Base.Filesystem.JL_O_SEQUENTIAL
Skipping Base.Filesystem.JL_O_SHORT_LIVED
Skipping Base.Filesystem.JL_O_TEMPORARY
Skipping Base.BinaryPlatforms.compiler_abi
Test Summary: | Pass  Total
Aqua          |    7      7
 10.775370 seconds (2.96 M allocations: 175.123 MiB, 0.57% gc time, 19.82% compilation time)
[ Info: foo 1
[ Info: foo 2
[ Info: foo 3
[ Info: foo 4
[ Info: foo 5
[ Info: foo 6
[ Info: foo 7
Test Summary:         | Pass  Total
ThreadingUtilities.jl |    2      2
[ Info: Finished running the ThreadingUtilities test suite
     Testing ThreadingUtilities tests passed

This is where it gets really interesting. From my PR that triggered these jobs:
https://github.com/chriselrod/ThreadingUtilities.jl/blob/7db38832f2c335232e9e0d568eb8a8d52aa4189f/test/runtests.jl#L78-L85

This is where it gets really interesting. From my PR that triggered these jobs:
https://github.com/chriselrod/ThreadingUtilities.jl/blob/7db38832f2c335232e9e0d568eb8a8d52aa4189f/test/runtests.jl#L78-L85

It never got to line 83 (the @info "foo 1" ) line.
So this implies that the timeout... is actually happening inside the Aqua.test_all(ThreadingUtilities) .

It never got to line 83 (the @info "foo 1" ) line.
So this implies that the timeout... is actually happening inside the Aqua.test_all(ThreadingUtilities) .

It might not be Aqua. https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726363081?check_suite_focus=true

It might not be Aqua. https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726363081?check_suite_focus=true

I suspect the timeout is in __init__() then.

I suspect the timeout is in __init__() then.

Me too. I'm particularly suspicious of that pause() inside a while loop.

Me too. I'm particularly suspicious of that pause() inside a while loop.

pause only takes a few nanoseconds.

pause only takes a few nanoseconds.

Yeah but what if the condition in the while loop never evaluates to false?

Yeah but what if the condition in the while loop never evaluates to false?

julia> using VectorizationBase

julia> @code_native syntax=:intel pause()
        .text
; ┌ @ VectorizationBase.jl:317 within `pause'
        pause
        ret
        nop     word ptr cs:[rax + rax]
; └

pause is an assembly instruction that hints to the CPU that you're inside a spin loop, waiting for another thread to do something.
Yes, I suspect that the condition never evaluates to false.

julia> using VectorizationBase

julia> @code_native syntax=:intel pause()
        .text
; ┌ @ VectorizationBase.jl:317 within `pause'
        pause
        ret
        nop     word ptr cs:[rax + rax]
; └

pause is an assembly instruction that hints to the CPU that you're inside a spin loop, waiting for another thread to do something.
Yes, I suspect that the condition never evaluates to false.

In this job, we never successfully import the package, which smells like an init problem: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726922690

In this job, we never successfully import the package, which smells like an init problem: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726922690

What is supposed to happen:
        m = THREADPOOL[tid]
        GC.@preserve m _atomic_min!(pointer(m), SPIN) # set to SPIN

We set it to SPIN.
We then wake up the thread:
        t = Task(m); t.sticky = true # create and pin
        # set to tid, we have tasks 2...nthread, from 1-based ind perspective
        ccall(:jl_set_task_tid, Cvoid, (Any, Cint), t, tid % Cint)
        TASKS[tid] = t
        wake_thread!(tid) # task should immediately sleep

When awake, it runs:
function (tt::ThreadTask)()
    p = pointer(tt)
    memory = tt.memory
    max_wait = 1 << 20
    wait_counter = max_wait
    GC.@preserve memory begin
        while true
            if _atomic_cas_cmp!(p, TASK, LOCK)
                _call(p)
                @assert _atomic_cas_cmp!(p, LOCK, SPIN)
                wait_counter = 0
                continue
            end
            pause()
            if (wait_counter += 1) > max_wait
                wait_counter = 0
                if _atomic_cas_cmp!(p, SPIN, WAIT)
                    wait()
                    _call(p)
                    @assert _atomic_cas_cmp!(p, LOCK, SPIN)
                end
            end
        end
    end
end

It should be set to SPIN (because we just set it to SPIN), and then immediately the wait_counter should be greater than max_wait, so that  if _atomic_cas_cmp!(p, SPIN, WAIT) is true, and it gets set to WAIT.
Then of course
        while !_atomic_cas_cmp!(pointer(m), WAIT, WAIT)
            pause()
        end

_atomic_cas_cmp!(pointer(m), WAIT, WAIT) is true, and thus ! the condition is false and the loop is done.

What is supposed to happen:
        m = THREADPOOL[tid]
        GC.@preserve m _atomic_min!(pointer(m), SPIN) # set to SPIN

We set it to SPIN.
We then wake up the thread:
        t = Task(m); t.sticky = true # create and pin
        # set to tid, we have tasks 2...nthread, from 1-based ind perspective
        ccall(:jl_set_task_tid, Cvoid, (Any, Cint), t, tid % Cint)
        TASKS[tid] = t
        wake_thread!(tid) # task should immediately sleep

When awake, it runs:
function (tt::ThreadTask)()
    p = pointer(tt)
    memory = tt.memory
    max_wait = 1 << 20
    wait_counter = max_wait
    GC.@preserve memory begin
        while true
            if _atomic_cas_cmp!(p, TASK, LOCK)
                _call(p)
                @assert _atomic_cas_cmp!(p, LOCK, SPIN)
                wait_counter = 0
                continue
            end
            pause()
            if (wait_counter += 1) > max_wait
                wait_counter = 0
                if _atomic_cas_cmp!(p, SPIN, WAIT)
                    wait()
                    _call(p)
                    @assert _atomic_cas_cmp!(p, LOCK, SPIN)
                end
            end
        end
    end
end

It should be set to SPIN (because we just set it to SPIN), and then immediately the wait_counter should be greater than max_wait, so that  if _atomic_cas_cmp!(p, SPIN, WAIT) is true, and it gets set to WAIT.
Then of course
        while !_atomic_cas_cmp!(pointer(m), WAIT, WAIT)
            pause()
        end

_atomic_cas_cmp!(pointer(m), WAIT, WAIT) is true, and thus ! the condition is false and the loop is done.

Check out the logs for https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726933020
This job ran on commit https://github.com/chriselrod/ThreadingUtilities.jl/pull/12/commits/b9054e071415abb19848ddf51ae10c322d382cd7

Check out the logs for https://github.com/chriselrod/ThreadingUtilities.jl/runs/1726933020
This job ran on commit https://github.com/chriselrod/ThreadingUtilities.jl/pull/12/commits/b9054e071415abb19848ddf51ae10c322d382cd7

Could you add @show _atomic_max!(p, SPIN)?

Could you add @show _atomic_max!(p, SPIN)?

Like this? https://github.com/DilumAluthge/ThreadingUtilities.jl/commit/6fb0ecb42756af66477a3d770c74915b7a2da1f8

Like this? https://github.com/DilumAluthge/ThreadingUtilities.jl/commit/6fb0ecb42756af66477a3d770c74915b7a2da1f8

Yes. It'd also help to know which loop it is in at the time, so maybe @show @__LINE__, _atomic_max!(p, SPIN)

Yes. It'd also help to know which loop it is in at the time, so maybe @show @__LINE__, _atomic_max!(p, SPIN)

I'm about to leave the house- want to push those changes to my branch? You should be able to.

I'm about to leave the house- want to push those changes to my branch? You should be able to.

Okay, thanks for all your help so far.
I can already see here:
 [ Info: threadtask beginning to pause...
ERROR: [ Info: threadtask finished pausing
InitError: KeyError: key 0x9b3e6abc04ee57a9 not found

That the current state is uninitialized junk, rather than one of the enum values.

Okay, thanks for all your help so far.
I can already see here:
 [ Info: threadtask beginning to pause...
ERROR: [ Info: threadtask finished pausing
InitError: KeyError: key 0x9b3e6abc04ee57a9 not found

That the current state is uninitialized junk, rather than one of the enum values.

On master: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1727659327

On master: https://github.com/chriselrod/ThreadingUtilities.jl/runs/1727659327

Everything should be fixed as of the "add utils.jl" commit. I'll reopen this if we see more intermittent timeouts.

Everything should be fixed as of the "add utils.jl" commit. I'll reopen this if we see more intermittent timeouts.


Uncaught Error in prod (StyleSheetManager)

Hey there,
I'm getting an Uncaught Error in production (cra build) error happens inside sheetForTag.
PS: I'm developing a react test tool called react-scenes and I used StyleSheetManager to collect styles. with target like
      <StyleSheetManager target={target}>
        <FrameComponent {...frameProps}>{this.props.children}</FrameComponent>
      </StyleSheetManager>

BTW, everything is just works on dev. env. without any issues or errors.
....
/* retrieve a sheet for a given style tag */
var sheetForTag = function sheetForTag(tag) {
  // $FlowFixMe
  if (tag.sheet) return tag.sheet;

  /* Firefox quirk requires us to step through all stylesheets to find one owned by the given tag */
  var size = document.styleSheets.length;
  for (var i = 0; i < size; i += 1) {
    var sheet = document.styleSheets[i];
    // $FlowFixMe
    if (sheet.ownerNode === tag) return sheet;
  }

  /* we should always be able to find a tag */
  throw new Error();
};

Environment
System:

OS: macOS High Sierra 10.13.3
CPU: x64 Intel(R) Core(TM) i7-4750HQ CPU @ 2.00GHz
Free Memory: 392.12 MB
Total Memory: 8.00 GB
Shell: /bin/bash - 3.2.57

Binaries:

Node: 9.4.0
Yarn: 1.3.2
npm: 5.6.0
Watchman: 4.9.0

Reproduction
npm install react-scenes-cli
then setReactScenes on any folder then follow the installation steps then yarn build and open page in static server.
Steps to reproduce

Expected Behavior

Actual Behavior

Can you follow the steps detailed in the comments in the following issue please? It’s likely the same cause https://github.com/styled-components/styled-components/issues/1610#comment-372965065
By the way, the target prop on the StyleSheetManager is currently unlikely work in combination with SSR, if that’s part of your environment.
If the above instructions in the issue don’t solve your issue we’ll most likely need a reproduction please

I already tried and read that issue, and no there is no SSR setup I actually just want to build a static react app with CRA and its build. You can easily reproduce by

npm install react-scenes-cli -g
go to your desktop
mkdir demo && cd demo
setReactScenes
cd .scenes && yarn
yarn build
serve -s build

you can also check here https://github.com/doubco/react-scenes/blob/master/src/Frame.js

Looks like somehow directly related to NODE_ENV, I ejected cra and manually changed process.env.NODE_ENV  to development in webpack config, it just worked again.

@berkaey Sorry, I won't have enough time to look at this today. It's definitely related to https://github.com/styled-components/styled-components/issues/1634 interestingly.
So, summary is, in production we're performing insertRule style injection, so your expectations are breaking. I'm not sure whether your code and repo will correctly represent what you're trying to do, so just to be on the safe side, what is the behaviour you're ultimately expecting? :wink:
You'd like to copy the styles over once? Or do they have to be kept in sync? The above issue is probably very much related, but it's not a trivial problem. Copying over the styles will only work once obviously, and not in this way if it's in production.

Normally, react-scenes probably works only under development environments, (I also just faced the issue while trying to create a demo page.) so not a huge issue for me but basically, I want to collect styles before/after rendering so I can inject to iframe (react-scenes works like storybook without separate compiling process). if you have any more questions, just ask ;)

/* note that this is obviouslt a hacky approach :D */
import { __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS } from 'styled-components';
const { StyleSheet } = __DO_NOT_USE_OR_YOU_WILL_BE_HAUNTED_BY_SPOOKY_GHOSTS;

/* if you don't care about the target or the result that much you can also force it into server-side render mode using: new StyleSheet(null, true)
const sheet = new StyleSheet(target)

/* your render cycle comes in here instead of the target and stuff */
<StyleSheetManager sheet={sheet} />

/* after the render cycle */
sheet.toReactElements() // if you need elements
sheet.toHTML() // if you need html

/* or you can also just get the raw css (which is not guaranteed to be a stable API) */
sheet.tags.map(tag => tag.css()).join('\n')

Would this work? This assumes that you care about a "server-side render"-like output in the browser, is that correct?

Yes exactly
  sheet.collectStyles(<App location={sink.request.url} />)
  const css = sheet.getStyleTags();

^^^ for SSR but I guess your workarond does the same/similar thing
, I will definitely try tomorrow and report here, thanks.

with your suggestion, I guess I will get all generated styles right? because I only need
<StyleSheetManager target={target}>
        <FrameComponent {...frameProps}>{this.props.children}</FrameComponent>
</StyleSheetManager>

FrameComponent and its children styles(css) so I can only inject that to iframe. so while testing your component iframe will be separated from app itself (app itself uses styled components too.)

@berkaey sorry for the late reply, you might want to take a look here as it's almost the same usecase (?) https://github.com/styled-components/styled-components/issues/1634

Sorry, I just checked there related issues and comments but I couldn't understand how and which version can give me the SSR like style-tag export. Can you give me a little demo? Maybe on this code ```import React, { Component, Fragment } from "react";
import is from "is";
import FrameComponent from "react-frame-component";
import { StyleSheetManager } from "styled-components";
/*globals
setTimeout
document
*/
let target;
if (typeof document !== "undefined") {
target = document.createElement("div");
}
const d2s = node => {
let parent = document.createElement("div");
if ("outerHTML" in parent) return node.outerHTML;
let div = parent.cloneNode();
div.appendChild(node.cloneNode(true));
return div.innerHTML;
};
class Frame extends Component {
constructor(props) {
super(props);
this.state = {
styles: [],
ready: false
};
}
updateStyles() {
const { styleClassNames, stylesheet } = this.props;
let styles = [];

if (is.array(styleClassNames)) {
  let styleTags = [];
  for (let className of styleClassNames) {
    let tag = document.getElementsByClassName(className);
    if (tag) {
      styleTags = styleTags.concat(Array.from(tag));
    }
  }
  for (let style of styleTags) {
    styles.push(d2s(style));
  }
}

if (stylesheet) {
  styles.push(`<style>${stylesheet}</style>`);
}

styles.push(d2s(target));

this.setState({ styles });

}
componentWillReceiveProps(nextProps) {
setTimeout(() => {
this.updateStyles();
}, 1);
// TODO: why we need timeout?
}
componentDidMount() {
setTimeout(() => {
this.updateStyles();
}, 1);
// TODO: why we need timeout?
}
render() {
const { styles = [], children } = this.state;
const head = (
  <Fragment>
    {styles.map((style, idx) => {
      return (
        <div
          id={`component-styles-${idx}`}
          key={idx}
          dangerouslySetInnerHTML={{ __html: style }}
        />
      );
    })}
  </Fragment>
);

let frameProps = { ...this.props, head };

delete frameProps.stylesheet;
delete frameProps.styleClassNames;

return (
  <StyleSheetManager target={target}>
    <FrameComponent {...frameProps}>{this.props.children}</FrameComponent>
  </StyleSheetManager>
);

}
}
export default Frame;

https://github.com/doubco/react-scenes/blob/master/src/Frame.js


CI: update Rocky Linux to 8.8

Bringing machine 'default' up with 'libvirt' provider...
==> default: Box 'rockylinux/8' could not be found. Attempting to find and install...
    default: Box Provider: libvirt
    default: Box Version: 8.0.0
==> default: Loading metadata for box 'rockylinux/8'
    default: URL: https://vagrantcloud.com/rockylinux/8
==> default: Adding box 'rockylinux/8' (v8.0.0) for provider: libvirt
    default: Downloading: https://vagrantcloud.com/rockylinux/boxes/8/versions/8.0.0/providers/libvirt.box

    default: Calculating and comparing box checksum...
==> default: Successfully added box 'rockylinux/8' (v8.0.0) for 'libvirt'!
==> default: Created volume larger than box defaults, will require manual resizing of
==> default: filesystems to utilize.
==> default: Uploading base box image as volume into Libvirt storage...
==> default: Creating image (snapshot of base box volume).
==> default: Creating domain with the following settings...
==> default:  -- Name:              containerd_default
==> default:  -- Description:       Source: /home/runner/work/containerd/containerd/Vagrantfile
==> default:  -- Domain type:       kvm
==> default:  -- Cpus:              2
==> default:  -- Feature:           acpi
==> default:  -- Feature:           apic
==> default:  -- Feature:           pae
==> default:  -- Clock offset:      utc
==> default:  -- Memory:            4096M
==> default:  -- Base box:          rockylinux/8
==> default:  -- Storage pool:      default
==> default:  -- Image(vda):        /var/lib/libvirt/images/containerd_default.img, virtio, 60G
==> default:  -- Disk driver opts:  cache='default'
==> default:  -- Graphics Type:     vnc
==> default:  -- Video Type:        cirrus
==> default:  -- Video VRAM:        16384
==> default:  -- Video 3D accel:    false
==> default:  -- Keymap:            en-us
==> default:  -- TPM Backend:       passthrough
==> default:  -- INPUT:             type=mouse, bus=ps2
==> default: Creating shared folders metadata...
==> default: Starting domain.
==> default: Domain launching with graphics connection settings...
==> default:  -- Graphics Port:      [59](https://github.com/containerd/containerd/actions/runs/5789284696/job/15690124318?pr=8930#step:6:60)00
==> default:  -- Graphics IP:        <IP_ADDRESS>
==> default:  -- Graphics Password:  Not defined
==> default:  -- Graphics Websocket: 5700
==> default: Waiting for domain to get an IP address...
==> default: Removing domain...
==> default: Deleting the machine folder
/root/.vagrant.d/gems/3.1.4/gems/fog-core-2.3.0/lib/fog/core/wait_for.rb:9:in `block in wait_for': The specified wait_for timeout (2 seconds) was exceeded (Fog::Errors::TimeoutError)
	from /root/.vagrant.d/gems/3.1.4/gems/fog-core-2.3.0/lib/fog/core/wait_for.rb:6:in `loop'
	from /root/.vagrant.d/gems/3.1.4/gems/fog-core-2.3.0/lib/fog/core/wait_for.rb:6:in `wait_for'
	from /root/.vagrant.d/gems/3.1.4/gems/fog-core-2.3.0/lib/fog/core/model.rb:72:in `wait_for'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/driver.rb:303:in `get_ipaddress_from_domain'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/driver.rb:93:in `get_ipaddress'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/wait_till_up.rb:45:in `block (2 levels) in call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/retryable.rb:17:in `retryable'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/wait_till_up.rb:40:in `block in call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/util/timer.rb:11:in `time'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/wait_till_up.rb:39:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/start_domain.rb:[63](https://github.com/containerd/containerd/actions/runs/5789284696/job/15690124318?pr=8930#step:6:64)0:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/set_boot_order.rb:22:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/share_folders.rb:22:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/prepare_nfs_settings.rb:21:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/synced_folders.rb:87:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/delayed.rb:19:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/synced_folder_cleanup.rb:28:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/plugins/synced_folders/nfs/action_cleanup.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/prepare_nfs_valid_ids.rb:14:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builder.rb:180:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builder.rb:180:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/create_network_interfaces.rb:169:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/create_networks.rb:98:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/create_domain.rb:4[66](https://github.com/containerd/containerd/actions/runs/5789284696/job/15690124318?pr=8930#step:6:67):in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/resolve_disk_settings.rb:143:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/create_domain_volume.rb:98:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/handle_box_image.rb:129:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/handle_box.rb:56:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/handle_storage_pool.rb:63:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/set_name_of_domain.rb:34:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/provision.rb:[80](https://github.com/containerd/containerd/actions/runs/5789284696/job/15690124318?pr=8930#step:6:81):in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /root/.vagrant.d/gems/3.1.4/gems/vagrant-libvirt-0.12.2/lib/vagrant-libvirt/action/cleanup_on_failure.rb:21:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:127:in `block in finalize_action'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builder.rb:180:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/call.rb:53:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/box_check_outdated.rb:31:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/warden.rb:48:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/builder.rb:180:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `block in run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/util/busy.rb:19:in `busy'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/action/runner.rb:101:in `run'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:248:in `action_raw'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:217:in `block in action'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/environment.rb:631:in `lock'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:203:in `call'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/machine.rb:203:in `action'
	from /opt/vagrant/embedded/gems/gems/vagrant-2.3.7/lib/vagrant/batch_action.rb:[86](https://github.com/containerd/containerd/actions/runs/5789284696/job/15690124318?pr=8930#step:6:87):in `block (2 levels) in run'
Error: Process completed with exit code 1.

😞
https://github.com/containerd/containerd/actions/runs/5789284696/job/15690124318?pr=8930


feat: event push support

Why we need events server push

confirm the mutation has been applied successfully
get the real-time  notification about the data updates

Implementation

Codecov Report

Merging #360 (e9a8803) into main (3caa2bd) will decrease coverage by 1.73%.
The diff coverage is 0.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main     #360      +/-   ##
==========================================
- Coverage   64.85%   63.13%   -1.73%
==========================================
  Files          67       67
  Lines        9072     9317     +245
==========================================
- Hits         5884     5882       -2
- Misses       3188     3435     +247

Flag
Coverage Δ

rust
63.13% <0.00%> (-1.73%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

src/cmd/src/command.rs
51.21% <0.00%> (-0.91%)
:arrow_down:

src/crypto/src/db3_address.rs
56.52% <0.00%> (-2.57%)
:arrow_down:

src/node/src/abci_impl.rs
0.59% <0.00%> (-0.08%)
:arrow_down:

src/node/src/command.rs
37.30% <0.00%> (-0.61%)
:arrow_down:

src/node/src/context.rs
0.00% <ø> (-66.67%)
:arrow_down:

src/node/src/storage_node_impl.rs
0.39% <0.00%> (-0.16%)
:arrow_down:

src/sdk/src/store_sdk.rs
83.41% <0.00%> (-6.82%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


python312Packages.aioautomower: 2024.2.6 -> 2024.2.7

Changelog: https://github.com/Thomas55555/aioautomower/releases/tag/2024.2.7
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 290145 run on x86_64-linux 1

4 packages built:

python311Packages.aioautomower
python311Packages.aioautomower.dist
python312Packages.aioautomower
python312Packages.aioautomower.dist


Accumulate rewards in safe mode

Description
This PR adds gas reward accumulation during safe mode. In safe_mode, we accumulate those into a few fields, and at normal epoch change, we process them.
Test Plan
Added Move test.

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[x ] user-visible impact
[x ] breaking change for a client SDKs
[x ] breaking change for FNs (FN binary must upgrade)
[x ] breaking change for validators or node operators (must upgrade binaries)
[x ] breaking change for on-chain data layout
[x ] necessitate either a data wipe or data migration

Release notes

Rebased and resolved feedback


Update and cached dependencies

Updates our dependencies to the latest version in npm-shrinkwrap and adds dependency caching for travis builds to speed them up.

!star

Coverage remained the same at 85.803% when pulling 179f67db7ed3e97ae0ebeb5280461bbdb9b9fe12 on deps into 10e75ac801ee002e9585eae686ea5bdd5cf51dc8 on master.


May I Have VPN Access Please

Context
Please explain here below what you were doing when the issue happened
Steps to Reproduce
Please break down here below all the needed steps to reproduce the issue

Current Result
Please describe here below the current result you got
Expected result
Please describe here below what should be the expected behaviour
Browser and version
What internet browser (Chrome, Firefox, etc) and version was you using and version
.carto file
Don't forget to rename .carto file to .zip file to be able to upload to github
Additional info
Please add any information of interest here below

Hey, this is not the right repository to ask for this kind of thing.

@brettmckinnon can you directly ask to @acienfuegos ? Thanks!

I was specifically told to put it here by
Artemio Cienfuegos Fernández

I just need VPN access please

I told yu to open an issue here: https://github.com/CartoDB/cartodb-platform/issues
But nevermind, let's talk in private!


[PE-D][Tester C] Error message lacks specificity - list

To replicate:

list 1

Error message does not specify if the invalid command is due to formatting errors, or because the input is actually invalid.
Suggestion to make error message more specific by informing users that list does not accept any parameters.

Labels: type.FeatureFlaw severity.Low
original: superb-sushi/ped#16

Handled by #308 . There was a similar issue.


refactor(backend): rename invoice -> incoming payment

Changes proposed in this pull request

remove the term invoice in favor for incoming_payment
compliant with Open Payments v2

Notes:

I have not renamed files yet to make changes visible. I will update that with another commit as soon as people have done a first review.
The term invoice is also used by the Pay library, hence the term is still used when using that library

Context

fixes #244

Checklist

[x] Related issues linked using fixes #number
[x] Tests added/updated
[ ] Documentation added
[x] Make sure that all checks pass

What do you think about renaming the directory backend/src/open_payments/payment/incoming and outgoing payments can subsequently be moved to backend/src/open_payments/payment/outgoing?

What do you think about renaming the directory backend/src/open_payments/payment/incoming and outgoing payments can subsequently be moved to backend/src/open_payments/payment/outgoing?

:+1: I'm all for shorter names.


Draft web app proposal.

Do you want to link directly to your example?

Added link to Rockaway Lunch example.

👍  LGTM. Is this ready to merge, or are you still working on this?

Let's merge, and if others have comments, I'll make a new PR.
You merge, or I?

FYI i use http://gitbot.co/#home for deploying to GH Pages (super useful tool built by @mottaquikarim )


Last layer output

I am trying to get the output of the last layer using pytorch hooks.
I am getting an output of dimension 900 by 91.
I thought I should be getting an output of dimension 256 by 91.
This is the last layer I see when I execute model.children

Also, what is class_embed and why does it have 6 layers that look the same?

I am trying to get the output of the last layer using pytorch hooks. I am getting an output of dimension 900 by 91. I thought I should be getting an output of dimension 256 by 91.
This is the last layer I see when I execute model.children
Also, what is class_embed and why does it have 6 layers that look the same?

Which output variable did you get? I think 900 by 91 is the output_logits. class_embed in 6 decoder layers share parameters, so they are the same.

Thank You for your reply.
This is my code:

And specifically, h1 is this layer:

So, I would expect an output of size 256 by 91.. But, I am getting 900 by 91.

I am trying to visualize the model architecture.
In class_embed, (0) is of dimension 256 by 91, and if it's feeding into (1) of class_embed, shouldn't the first dimension be 91?
So, I realize (0) of class_embed is not actually feeding into (1) of class_embed. So, could you explain this part of the architecture to me?

Also, the last layer of MLP has dimension 256 by 4. So, shouldn't the first dimension of class_embed be having a size of 4 ?

@anjugopinath It is a nice work. I also try to visualize the model architecture with tensorboard. But when i pass the image and 'TEXT_PROMPT' after the preprocess_caption function, the error comes "RuntimeError: Type 'Tuple[Tensor, List[str]]' cannot be traced. Only Tensors and (possibly nested) Lists, Dicts, and Tuples of Tensors can be traced". Because the text and image backbone deal corresponding data in the beginning of Grounding DINO, How can i pass the input to the add_graph function? Did you solve the visualization problem? Thanks!


@Mapping should be an inherited annotation

Currently the @Mapping and @Mappings annotations are not inherited in case the annotated class is subclasses.
Example:
@Mapping(tag = "foo")
public interface FooFragment extens PageFragment {
    // can only be initialized for <foo> elements
}

public interface SpecialFooFragment extens FooFragment {
    // can be initialized for every element
}

The behavior should be changed in a way that inherits the annotation if it is not overridden by the subclass.

Note: Java does not allow for annotation inheritance from / on interfaces.

There is a fundamental problem:
Since we are based on interfaces there is an inherent multiple inheritance problem when it comes to checking which @Mapping annotations to use. We could traverse the interface's parent interfaces as long as we wanted to find the first @Mapping annotations and use them. But if we do this there is no way of defining a PageFragment subclass which does explicitly NOT use @Mapping.


Support 'skip tls verify' when pulling images from a registry with self signed certificate

Describe the problem/challenge you have
We already support specifying CA certs for kapp-controller in kapp-controller-config ConfigMap via https://github.com/vmware-tanzu/carvel-kapp-controller/commit/dec56a36d524368295c6211e8d64da9dc78e1cbc#diff-8a8c9da6bd19cf725d993a692648e3b2c41b311d938be83bf3590e8e64c1021e.
There is also a requirement for skipping the TLS verification. imgpkg already supports it via --registry-verify-certs=false.
Describe the solution you'd like
We'd like to add a new field skipTLSVerify: false in kapp-controller-config ConfigMap for this purpose.
Anything else you would like to add:
[Additional information that will assist in solving the issue.]

Thank you all very much 👍


Tag latest commit as 2.0.1

The latest commit includes a nice fix for the hashable conformance error. It would be helpful to tag that commit as 2.0.1 and allow packages to refer to CountedSet using a standard version number and not other methods that are less flexible.

You’re right, I’ve released the new version now. Thanks for pointing this out.


Added quickstart and changed dependencies

I'd like to start using that project, so I'll contribute with documentation and some changes.

@cristianbullokles : :+1:
Please note that there are some grammatical issues with your update which I will need to address but otherwise, it looks great.

@afaqurk please help me when I press print it doesn't print


added error handlers for #4

Can we also comment the whole error_handlers block, and just say something like "uncomment to enable error handling"


Support GitHub Context

Within an Action, you can get the "Context" via actions/toolkit:
https://github.com/actions/toolkit/blob/master/packages/github/src/context.ts
All it does is grabs env vars and wrap them into an easy to use object...
I wrote something like this here:
https://github.com/TylerLeonhardt/first-interaction-pwsh/blob/355abaae448493cb3e66ad2bbf4535bfd0b037a9/github.psm1#L18-L32
Having support for this in pwsh-github-action-tools would be great!

We could go the class route:
class GitHubRepo {
    [string] $Owner
    [string] $Repo

    GitHubRepo([string] $Owner, [string] $Repo) {
        $this.Owner = $Owner
        $this.Repo = $Repo
    }
}

class GitHubIssue {
    [string] $Owner
    [string] $Repo
    [string] $Issue

    GitHubIssue([string] $Owner, [string] $Repo, [string] $Issue) {
        $this.Owner = $Owner
        $this.Repo = $Repo
        $this.Issue = $Issue
    }
}

class GitHubContext {
    [string] $EventName
    [string] $Sha
    [string] $Ref
    [string] $Workflow
    [string] $Action
    [string] $Actor
    [string] $Job
    [string] $RunNumber
    [int] $RunId
    [pscustomobject] $Payload
    [GitHubRepo] $Repo
    [GitHubIssue] $Issue

    # Constructor: Creates a new MyClass object, with the specified name
    GitHubContext() {
        if ($env:GITHUB_EVENT_PATH) {
            $this.payload = if (Test-Path $env:GITHUB_EVENT_PATH) {
                (Get-Content -Raw $env:GITHUB_EVENT_PATH) | ConvertFrom-Json
            }
            else {
                Write-Warning "GITHUB_EVENT_PATH '$env:GITHUB_EVENT_PATH' does not exist"
            }
        }

        if ($env:GITHUB_REPOSITORY) {
            $owner,$repository = $env:GITHUB_REPOSITORY -split "/"
            $this.Repo = [GitHubRepo]::new($owner, $repository)
        } elseif ($this.Payload.repository) {
            $owner = $this.Payload.repository.owner.login
            $repository = $this.Payload.repository.name
            $this.Repo = [GitHubRepo]::new($owner, $repository)
        }

        if ($this.Payload.issue -or
            $this.Payload.pull_request -or
            $this.Payload.number) {
            $number = ($this.Payload.issue ?? $this.Payload.pull_request ?? $this.Payload).number
            $this.Issue = [GitHubIssue]::new($this.Repo.Owner, $this.Repo.Repo, $number)
        }

        $this.EventName = $env:GITHUB_EVENT_NAME
        $this.Sha = $env:GITHUB_SHA
        $this.Ref = $env:GITHUB_REF
        $this.Workflow = $env:GITHUB_WORKFLOW
        $this.Action = $env:GITHUB_ACTION
        $this.Actor = $env:GITHUB_ACTOR
        $this.Job = $env:GITHUB_JOB
        $this.RunNumber = [int]$env:GITHUB_RUN_NUMBER
        $this.RunId = [int]$env:GITHUB_RUN_ID
    }
}

but I'm not the biggest fan of classes...
It probably is more PowerShell-y to do what I did in first-interaction-pwsh and then have a:
Get-ActionRepo and Get-ActionIssue or something.

Interesting, well we could start with something simpler for now, say a Get-ActionContextMap that returns a computed hashtable as in your first-interaction-pwsh and then down the road if there's enough traction, class-based option would always be possible.  I think the hashtable approach is find many times, but the advantage of a class-based version is the strong-typing and better discoverability for new users.

Yeah I would rather return a hastable or better yet, a pscustomobject with an added TypeName to "fake it" for now:
$obj.PSObject.TypeNames.Insert(0, "GitHub.Context")


[Added] Danger to continuous integration

If I set this up properly we should see a message from @SwifterSwiftBot.  Invalid Dangerfile file: syntax error, unexpected end-of-input, expecting keyword_end
 #  from Dangerfile:22
 #  -------------------------------------------
 #  warn("This pull request is marked as Work in Progress. DO NOT MERGE!") if github.pr_tile.include? "[WIP]"
 >
 #  -------------------------------------------

  Generated by :no_entry_sign: Danger

cc @omaralbeik feel free to merge this if you're good with it!


Corrected the writing mistakes.

@all-contributor add @nporia for code

@all-contributors add @nporia for code


test gtest/cmake on appveyor

This is running cpptest from python setup.py instead of cmake?

cpptest runs cmake

I'm not getting what this does after #292

previously gtests were done with mkn, which meant we built tick twice - with cpptests/cmake we should just be able to build once all going well


Question Regarding Image Downscaling Method

https://github.com/nerfstudio-project/nerfstudio/blob/9b3cbc79bf239eb3c69e7c288632aab02c4f0bb1/nerfstudio/models/splatfacto.py#L83
Why was the following method chosen for downscaling images instead of directly using F.resize?
def resize_image(image: torch.Tensor, d: int):
    """
    Downscale images using the same 'area' method in opencv

    :param image shape [H, W, C]
    :param d downscale factor (must be 2, 4, 8, etc.)

    return downscaled image in shape [H//d, W//d, C]
    """
    import torch.nn.functional as tf

    image = image.to(torch.float32)
    weight = (1.0 / (d * d)) * torch.ones((1, 1, d, d), dtype=torch.float32, device=image.device)
    return tf.conv2d(image.permute(2, 0, 1)[:, None, ...], weight, stride=d).squeeze(1).permute(1, 2, 0)

My concern is that this method may lead to misaligned coordinates. For instance, if we input an image of size 19x19 and downscale it by a factor of 4, the last 3 pixels would be left empty, whereas ideally, these 3 pixels should be evenly distributed in one row.
https://github.com/nerfstudio-project/nerfstudio/blob/9b3cbc79bf239eb3c69e7c288632aab02c4f0bb1/nerfstudio/data/dataparsers/colmap_dataparser.py#L460
Additionally, I noticed in another part of the code, linear interpolation (FFMPEG default) is used for image downsampling. Therefore, for code consistency, I believe the same interpolation method should be used during dataset preprocessing and training phase downsampling.

Actually I think   while back we wanted to upgrade this part to support downscaling better (not just by a constant), so thanks for bringing it up! I would be happy to look into this and you are more than welcome to make a PR if you want to address this feature immediately.

Interpolation based downscaling has a detrimental effect on training GS if the downscale factor is greater than 2, because they are not antialiased. The reason I use convolution is because this is antialiased and differentiable.
Yes, the current method only supports downscale factor to be 2, 4, 8, etc. But this is not really a major issue in coarse-to-fine training.

Regarding your concerns about "misaligned coordinates": in gsplat library, we use the convention of SfM/calibration literature rather than opencv convention. That is, the top-left pixel of image represents the color at 2D coordinate (0.5, 0.5). See related discussion here.
Basically under this convention (rather than the one commonly used in opencv), we won't have misaligned coordinates.

Hi, @jb-ye,
I understand the 0.5 pixel problem you mentioned.
But actually my problem is not  that.
Here I will give you a detail explain of my consideration.
Assume:

an image of size 19x19
downscale factor of 4
so the stride is 4

the original method
def resize_image(image: torch.Tensor, d: int):
    """
    Downscale images using the same 'area' method in opencv

    :param image shape [H, W, C]
    :param d downscale factor (must be 2, 4, 8, etc.)

    return downscaled image in shape [H//d, W//d, C]
    """
    import torch.nn.functional as tf

    image = image.to(torch.float32)
    weight = (1.0 / (d * d)) * torch.ones((1, 1, d, d), dtype=torch.float32, device=image.device)
    return tf.conv2d(image.permute(2, 0, 1)[:, None, ...], weight, stride=d).squeeze(1).permute(1, 2, 0)

(This is a 19 * 19 sized image, with each colored square representing a convolutional region. I only demonstrated one row as an example here)
You can see the 3 unsampled pixels is biased in the end of the first row, which caused misalign.
the better method

If we evenly scatter the 3 pixels across a row, the misalign will be reduced.

@wzy-99 Assuming the principal point of original resolution is at (9.5, 9.5). When we resize image, we simply multiply the scale factor on to the principal point, which is (2.375, 2.375). This is the convention we use in nerfstudio and most other calibration library (e.g. colmap).
In the original method, the right most columns are cut off by design. We resize 19x19 image to 4x4 image with principle point being (2.375, 2.375) where 2.375 = 9.5 / 4. The resulting downscale image is consistent with the choice how to scale principle point. We have a 4x4 image with principal point at (2.375, 2.375) which shift to right from the center of image.
In your method, the pixels on the first row in downsampled image represents the 4x4 color region centering at
2, 7, 12, 17 (instead of 2, 6, 10, 14). The resulting scaling factor is not exactly 4, but 5. If we downscale the image as your suggestion, the principal point after scaling should be 1.9 = 9.5 / 5 instead of 2.375.
In short, what really matters is to make sure the way we scale principal point is consistent with the way we scale image.

Yes. You are right. I have made a mistake, that is I ignored the pixel plane will be also shifted.

As we know, when render a 4*4 image with cx=2, cy=2, the pixel plane is just like the red box area.
But following the below code,
    def rescale_output_resolution(
        self,
        scaling_factor: Union[Shaped[Tensor, "*num_cameras"], Shaped[Tensor, "*num_cameras 1"], float, int],
        scale_rounding_mode: str = "floor",
    ) -> None:
        """Rescale the output resolution of the cameras.

        Args:
            scaling_factor: Scaling factor to apply to the output resolution.
            scale_rounding_mode: round down or round up when calculating the scaled image height and width
        """
        if isinstance(scaling_factor, (float, int)):
            scaling_factor = torch.tensor([scaling_factor]).to(self.device).broadcast_to((self.cx.shape))
        elif isinstance(scaling_factor, torch.Tensor) and scaling_factor.shape == self.shape:
            scaling_factor = scaling_factor.unsqueeze(-1)
        elif isinstance(scaling_factor, torch.Tensor) and scaling_factor.shape == (*self.shape, 1):
            pass
        else:
            raise ValueError(
                f"Scaling factor must be a float, int, or a tensor of shape {self.shape} or {(*self.shape, 1)}."
            )

        self.fx = self.fx * scaling_factor
        self.fy = self.fy * scaling_factor
        self.cx = self.cx * scaling_factor
        self.cy = self.cy * scaling_factor
        if scale_rounding_mode == "floor":
            self.height = (self.height * scaling_factor).to(torch.int64)
            self.width = (self.width * scaling_factor).to(torch.int64)
        elif scale_rounding_mode == "round":
            self.height = torch.floor(0.5 + (self.height * scaling_factor)).to(torch.int64)
            self.width = torch.floor(0.5 + (self.width * scaling_factor)).to(torch.int64)
        elif scale_rounding_mode == "ceil":
            self.height = torch.ceil(self.height * scaling_factor).to(torch.int64)
            self.width = torch.ceil(self.width * scaling_factor).to(torch.int64)
        else:
            raise ValueError("Scale rounding mode must be 'floor', 'round' or 'ceil'.")

we will get cx=2.375, cy=2.375, this will shift the red box to the blue one.
And the blue box is really same to the downsampled GT from the convolutional method.
Thank you very much!!!🌹


Create LICENSE

GitHub recognizes this file as special and provides a nice summary to the users.

Thanks.


How can I separate the small size public key for encryption only and secret key for decryption only from the public evaluation keys and save them separately?

I have just started to try to use the toolkit. I am very impressed that it is very easy to bring up and well maintained.
I have been using a different library which can save the small size public key for data encryption and secret key for decryption of FHE computing results, while other large size public keys for evaluation/computation such as relinarazation key and rotation Galios key can be saved as separated files, and that makes it is very easy to manage and distribute the keys. In general, that works well.
When I tried to use the toolkit's simple ML APIs with HelibCkksContext, I noticed that it creates similar size contexts with or without the secret key. Those contexts are very large size (over 7G bytes for instances) and the size make the APIs not very practical in manage and distribute the keys.
Could you let me know how can I save the keys to different files, and still can do the public evaluation with the encrypted data or is there finer control APIs please? Thanks.

You are correct. Current API only allows storing the context with or without the secret key. The secret key is very small, so there's no noticeable difference. Note also that it's also possible to store just the secret key.
You are also right that allowing to store just different parts of the public key for different purposes is a useful feature. We added it to our task list and hope to have it ready in the near future.

Many thanks for the consideration.
It is great that the secret key can be saved in the place of the context with secret key, so that the size is very small and no duplication.
Trying to save the secret key to file with HelibCkksContext.saveSecretKeyToFile(), I noticed it reported the context has not the member function. Would I need to include another class?
On Thursday, March 25, 2021, 4:49 pm, aehud @.***> wrote:
You are correct. Current API only allows storing the context with or without the secret key. The secret key is very small, so there's no noticeable difference. Note also that it's also possible to store just the secret key.
You are also right that allowing to store just different parts of the public key for different purposes is a useful feature. We added it to our task list and hope to have it ready in the near future.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Strange, it should work. You can see an example of using this method here:
https://github.com/IBM/fhe-toolkit-linux/blob/master/samples/mlhelib_tutorial/tut_3_io.cpp#L68

You are right. But when I tried to the line to examples\credit_card_fraud\credit_card_fraud.cpp as the follow, the compiling error is seen:
cout << "Clearing " << outDir << endl;
FileUtils::createCleanDir(outDir);
cout << "Saving client side context to " << clientContext << endl;
bool withSecretKey = true;
he.saveToFile(clientContext, withSecretKey); // save client context

cout << "Saving client side private key to " << clientSecretKey << endl;
he.saveSecretKeyToFile(clientSecretKey);

Hi @yangjundy, If I understand you correctly, you are saying you get a compile error when you try to add the last three lines shown in your output above. Can you show us what the actual compiler error on that output was when you tried to call he.saveSecrtetKeyToFile(clientSecretKey)?

Hi @dowem,
Yes, that is right. The compiling output is as follows:
error: 'class HelibCkksContext' has no member named saveSecretKeyToFile'
109 |  he.saveSecretKeyToFile(clientSecretKey);
I can see there is difference with the 'context' definitions:
The compiler error is from the definition 'HelibCkksContext he;'
The compiler is happy with https://github.com/IBM/fhe-toolkit-linux/blob/master/samples/mlhelib_tutorial/tut_3_io.cpp#L68, the 'context' is defined as: shared_ptr hePtr = HelibContext::create(HELIB_CKKS_8192);

@yangjundy  Do you have the latest version? Because this sample is now named CKKS_credit_card_fraud.cpp and the code looks a bit different. Your code should work too, but only if you have the latest version. Please try with the latest version and let us know if you still see a problem.

@aehud Thanks for the information. You are right, with the latest version, the code works.
Checking the sizes of the saved secrete key file and the client 'context with secret key' file, I noticed that the two files are the same size (security level 97 generates 2.3Gb size files). I expect the secret key file size smaller than 1MB.
I tested with the follow changes:
bool withSecretKey = true;
hePtr->saveToFile(clientContext, withSecretKey); // save client context
hePtr->saveSecretKeyToFile(clientSecretKey);  // Change add to save the secret key

@yangjundy This is indeed a bug in our API. Thanks for pointing it out. We'll fix it in a few days and update.

Hi Gents, I think we should close this issue as we sorted the original one. We can open a new issue to track the API fix @aehud will be working on!  We can track that separate API fix here: https://github.com/IBM/fhe-toolkit-linux/issues/135

That’s brilliant. Many thanks.
On Friday, April 2, 2021, 3:12 pm, Eli M. Dow @.***> wrote:
Hi Gents, I think we should close this issue as we sorted the original one. We can open a new issue to track the API fix @aehud will be working on! We can track that separate API fix here: #135
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.


hi

Hello, I have downloaded the code file. But I don't understand how to run the program on my python. Can you explain it to me? Thank you.

Hello.
The code is composed of numerous Jupiter notebooks. Each notebook has a specific function (from importing data to feature extraction).

i have to download jupyter ? can you explain how the program work ? thank you

I installed Jupyter using the CMD command. I downloaded the file from the directory. How do I launch the file? Do I need to launch it with CMD? Do I need to launch it with Python? Or Visual Code?

?

You need to download each file and run them with jupyter notebook.


compound state with an initial state and an automatic transition to another child state will activate both states

Here I use the example scene in performance_test, add a transition node to Root compound state, which is an automatic transition to StateB with no delay time and guard.

By doing so, a compound state can have its two child both active at the same time:

I am not sure if it is intended, but here is my understanding: when entering compound state,1. it first calls the base state _state_enter() method, triggering the automatic transiton to active StateB，2. then it calls its _state_enter() method, activating StateA according to its initial state setting:

Thanks a lot for reporting this! This definitely looks wrong. A compound state should under no circumstances have more than one child state active at any given time. So i think the correct flow should be

Enter Root
Transition fires
Enter B

So an immediate transition will supersede any initial state (which is the idea behind this expect_transition flag, but it obviously is not properly set here). I will do a bit of investigation as such setups may lead to very interesting edge cases and I'll probably also need to update the manual to describe the behaviour that can be expected.

I found another edge case if the transition leaves for a totally different state. Then the initial state is entered but never exited. Fixed this as well.


[RFC] Some restructuring ideas

Here's some ideas for improving the general structure of Wagtail. I believe there are ways to do these in a backwards-compatible way (once Django 1.6 support is gone). This would briefly make the code a bit messy during the deprecation process though.

Move wagtailcore/{hooks,compat} into utils
Rename wagtailcore to wagtailpages and move page views into wagtailpages
This will make wagtailadmin the core of wagtail and wagtailpages will sit alongside wagtailimages and wagtaildocs. wagtailpages would also become an optional module which allows it to be easily forked in a project (or even replaced completely).
This also improves encapsulation as all page code would be in a single module
Move Site model and SiteMiddleware into wagtailsites ?
Move "account" views into wagtailusers
Make wagtailforms, wagtailredirects and wagtailembeds into contrib apps
Separate editors picks from wagtailsearch and make it a contrib app
Create class based search view in wagtailpages and add backwards compatibility for function based search views
Move what remains of wagtailsearch into separate project
Remove wagtail prefix from all modules (but rename wagtaildocs to documents)

This leaves three categories of modules:

admin - Doesn't depend on anything within Wagtail except for utils
pages, images, documents, snippets, users and sites - Plug in to admin but can be installed and used on their own. These are all optional.
contrib.* - Other stuff which is only useful for certian projects

Mostly superseded by #1504.


Making max_results part of the base Iterator class.

In the process, also making sure to lower maxResults on subsequent requests.
Fixes #1467.

I'm very open to suggestions on other unit / system tests I could add to this PR. Just wanted to get it out there for discussion's sake.

I would've thought changing to use google.cloud.iterator.MethodIterator everywhere would have been more straightforward (and giving us a clearer path toward a general solution for #895).  The derived iterator classes feel like roach motels to me.

@tseaver This is just a band-aid for #1467. I will probably start from scratch / build on top of MethodIterator when finishing #895.


Names for new layers created from VPL

When a new layer is created with the VPL #86 , assign a new name to the newly created layer. The name should be a combination of both source names, and the operation of the node. If the name already exists, add a number as a suffix.

Try design a new side bar layers by prototype, and then start coding.

Closed


Unable to locate file in Vite manifest: resources/themes/atom/css/app.scss.

PHP 8.3.9
11.0.7
I've tried with PHP 8.3.1 and the same.
if i put debug mode in false only shows me a 500 ERROR.
When i've change to TRUE shows me this:
Unable to locate file in Vite manifest: resources/themes/atom/css/app.scss.
C:\inetpub\wwwroot\atomcms\resources\themes\atom\views\layouts\app.blade
.php

: 22
require
@vite(['resources/themes/' .  setting('theme') . '/css/app.scss', 'resources/themes/' .  setting('theme') . '/js/app.js'], 'build')

I've a Windows VPS with 16gbs ram and 4vcpu
Tried with windows10 & windows server 2022 the latest times and always showing me this issue.
Im using the latest version of the project.
The website works properly during the installation, after that no.

Fixed


Cuda 9.2 support?

Freshly installed torch and built cutorch on a machine running cuda 9.2.  Everything built correctly however when I tried to utilize it, it appears 9.2 is not recognized. Any information I can provide I'd be more than happy to.
user@Nagisa:~/waifu2x$ th web.lua
THCudaCheck FAIL file=/home/user/torch/extra/cutorch/lib/THC/THCGeneral.c line=70 error=35 : CUDA driver version is insufficient for CUDA runtime version
/home/user/torch/install/bin/luajit: /home/user/torch/install/share/lua/5.1/trepl/init.lua:389: lib/w2nn.lua:18: Failed to load CUDA modules. Please check the CUDA Settings.
/home/user/torch/install/share/lua/5.1/trepl/init.lua:389: cuda runtime error (35) : CUDA driver version is insufficient for CUDA runtime version at /home/user/torch/extra/cutorch/lib/THC/THCGeneral.c:70
stack traceback:
[C]: in function 'error'
/home/user/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'
web.lua:7: in main chunk
[C]: in function 'dofile'
...user/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x00405d50

A friendly bump since it's been three days.

Anyone?

It's been two weeks now, is this project dead?


Create tutorial-net-create-vault-azure-web-app.md

Corrected parameter usage for --name and formated spacing
reference: https://docs.microsoft.com/en-us/cli/azure/webapp/config/appsettings?view=azure-cli-latest

@jdvcDev : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Looks good; merging. Thanks @jdvcDev.


rdkit make install issue

I was doing the installation of rdkit in ubuntu 16.04 from the source.
RDKit Version -rdkit-Release_2019_03_3
I have successfully completed cmake and make steps but unfortunately, I am facing issues in make install command.
My below error:
CMake Error at External/CoordGen/cmake_install.cmake:148 (file):
file INSTALL cannot find
"/opt/rdkit/rdkit/build/lib/libRDKitcoordgen.so.1.2019.03.2".
Call Stack (most recent call first):
External/cmake_install.cmake:40 (include)
cmake_install.cmake:88 (include)
After  the make command libRDKitcoordgen .so.1.2019.03.2" is present under lib in rdkit but during make install libRDKitcoordgen .so.1.2019.03.2". is being removed.
Can anyone help me to resolve this issue.

Feels related to https://github.com/rdkit/rdkit/issues/2468


TestParallelWrites failing

@JanEggers I saw that the Unit Test "TestParallelWrites" fails from time to time when being executed 20 times in a row (sometimes more sometimes less). I don't think that it is related to my latest change (replacing the semaphore with async lock).
The errors usually indicate that the buffer length management  is broken.
 TestParallelWrites
   Source: MqttConnectionContextTest.cs line 40
   Duration: 87 ms

  Message:
    Test method MQTTnet.AspNetCore.Tests.MqttConnectionContextTest.TestParallelWrites threw exception:
    System.ArgumentOutOfRangeException: Number was less than the array's lower bound in the first dimension.

I will have a look

i had alook on your latest changes why did you add back the pipelines dependency to mqttnet.aspnetcore? also why did you upgrade to connections 1.1 I specificly downgraded all dependencies as much as possible. if the chage was inteded pleas also update the nupkg accordingly otherwise we will have a mess in packaging again. I wonder if there is really any need for the nuspec at all or if all informations can be derived from csproj. (thats what i would prefere to avoid conflicts)

I had to add the pipelines because net core 3.1 does not have a ref to it (known issue in latest SDK) so adding it manually will solve building issues.
I will revert it as soon as a new .net core 3.1 SDK is available.
Regarding the other things: I usually update all nugets from time to time. Unfortunately I forgot to update the nuspec. I will update this accordingly. Is there a way to "block" nuget updates? Otherwise it is hard to distinguish which update is "relevant" and which is not.

so adding it manually will solve building issues.

that is strange I was able to build when I removed it 2.1 to 3.1

I will revert it as soon as a new .net core 3.1 SDK is available.

it is available since last december
https://dotnet.microsoft.com/download/dotnet-core/3.1

Is there a way to "block" nuget updates?
I would say as long as it builds just dont update. Or change the "policy" to only support latest packages

I removed the reference and again I get the following errors:

I found some more information here:
https://github.com/dotnet/core/blob/master/release-notes/3.1/3.1-known-issues.md#net-core-312-sdk-31102-sdk
So I will add the reference again as long as this is not fixed by MS. If there is another way please let me know. Maybe you will get the same issue when upgrading the SDK?
I don't want to enforce latest packages only. I just update from time to time but I agree that we can stick to older versions as long everything works fine. I will revert the updates. But I will keep updating the nugets for the stand alone applications like MQTTnet.Server and the UWP test app.


consider new nginx fix

use lua to avoid restarting to reconfig?

see https://github.com/twosigma/beaker-notebook/blob/master/core/nginx/nginx.conf.template
and https://github.com/twosigma/beaker-notebook/blob/master/core/src/main/java/com/twosigma/beaker/core/rest/PluginServiceLocatorRest.java#L450

maybe simpler and better option:
just configure all the languages at once, before it starts.


Grapher: Add ability to plot one or some of dependent variables

Right now, there is no ability to plot only selected dependent variables. It would be nice if one could select to plot only one or only a selected set of dependent variables (as was possible with the Delphi Grapher).

Fixed https://github.com/labrad/scalabrad-web/pull/176

@joshmutus, this doesn't seem to be fixed with the version on matrix-reloaded. Does this mean we should bump the version number and deploy?


Gem and config problems with this lab.

I was not able to start the lab due the following problems:

JSON gem installation error (solved just by running 'bundle update'):
"An error occurred while installing json (1.8.3), and Bundler cannot continue.
Make sure that gem install json -v '1.8.3' --source 'https://rubygems.org/' succeeds before bundling."

Factory_girl deprecation warning (solved by renaming gem in gemfile to 'factory_bot', deleting gemfile.lock, and running bundle install)
"DEPRECATION WARNING: The factory_girl gem is deprecated. Please upgrade to factory_bot. See https://github.com/thoughtbot/factory_bot/blob/v4.9.0/UPGRADE_FROM_FACTORY_GIRL.md for further instructions."

configuration deprecation warning (unsolved)
"DEPRECATION WARNING: The configuration option config.serve_static_assets has been renamed to config.serve_static_files to clarify its role (it merely enables serving everything in the public folder and is unrelated to the asset pipeline). The serve_static_assets alias will be removed in Rails 5.0. Please migrate your configuration files accordingly."

Thank you for spotting this issue and providing feedback, @SilverBright .
We have updated the materials and believe your issue to have been resolved.
We apologize for any frustration you might have encountered during this process but thank you for helping us ensure that those who follow in your path will not encounter the same problems that you faced.
If you do not believe that this issue has been addressed, please re-open this issue. 💙


IRBuilder now uses the new class types instead of the C-style structs

Suggesting to use the new OOP API types in the IRBuilder method signatures now that we can, instead of exposing the structs of the C API. Also, using bool instead of LLVMBool in the same signatures.

@TChatzigiannakis a couple of small comments, around squashing your copies and code style issues. Thanks for doing this!

I've amended the things you mentioned. Let me know if there are any other issues with this PR.

Looks good, I now need to figure out how to use the command line tools, it refuses to let me pull it using the UI.


edit connections phrase

[Enter feedback here]
Hello,
in the phrase "Once a user confirms their connection to a topic, the user can make edits to the topic page to curate their connection. For example, they can provide more information about their connection to the topic." we suppose a READER can curate (edit his/her connection) once he/she validates the connection itself. It's not true (or I'm not getting it done).
Can you review please?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 19ec5941-a94f-b7be-75fc-ab15e221ca66
Version Independent ID: 0077e670-2e77-5d97-02f7-78653c2d69a0
Content: Topic center overview in Microsoft Viva Topics
Content Source: microsoft-365/knowledge/topic-center-overview.md
Product: microsoft-365-enterprise
GitHub Login: @chuckedmonson
Microsoft Alias: chucked

@chuckedmonson Please help us in resolving this issue. Thanks

@LeoGoGarcia -- Will investigate and get back to you about the inquiry. Thank you.

@LeoGoGarcia -- You need to have edit permissions to update the "Pinned People" section. The best approach is to enable editing for everyone so you can truly crowdsource. If that's not an option, contact the last editor, and they can remove. Thank you for your feedback, and we are working on improving this experience.


DO NOT MERGE: Use example files

This PR enables Rambo to save request and response bodies to external fixture files that are then read from inside the RSpec suite that is generated. It eliminates the problem of long message bodies making the generated specs unreadable, as well as any problems that can occur as a result of converting to and from Ruby and rendering text.

Coverage decreased (-3.02%) to 96.198% when pulling f845d99e15a2c51941b2b9cc0aedbb706b7afdb7 on use-example-files into 1ad3f9b42f16e17e67c3e110164711d90b96c8cd on master.

Coverage decreased (-0.9%) to 98.302% when pulling<PHONE_NUMBER>5406ffeafc2886b7b1414ece718a16 on use-example-files into 1ad3f9b42f16e17e67c3e110164711d90b96c8cd on master.

Coverage increased (+0.03%) to 99.25% when pulling 99c025c0ae0b6a5a70d0230007925ee1de46e97a on use-example-files into 1ad3f9b42f16e17e67c3e110164711d90b96c8cd on master.


[Feature] migration for comments maxlength [OSF-8870]

Purpose
Make migration for comments MAX_LENGTH update.
Goes along with PR https://github.com/CenterForOpenScience/osf.io/pull/7889
Changes
Add migration to update content field of comment model
QA Notes
NA
Side Effects
NA
Ticket
OSF-8870

Could you update with develop and then merge migrations?


Publish CC0 Romanian translation

The Romanian CC0 translation has been approved via our translation process and is ready to go live.
Once it is published, please add română to the language list on other published translations, with a link to the Romanian translation.
Thank you!

This looks good to me, @TimidRobot. Thank you!


plugins/lsp/pylsp: propagatedBuildInputs -> dependencies

See https://github.com/NixOS/nixpkgs/pull/327630#discussion_r1679253679
The only (patched) pylsp plugin that doesn't use dependencies yet is pylsp-rope, though it will change soon with https://github.com/NixOS/nixpkgs/pull/328410 (pr-tracker).

The build fails with:

error: attribute 'dependencies' missing

I think @GaetanLepage said he'd deal with this himself using the update action

This feels like another thing that'll break anyone who's nixpkgs lock is out of sync with outs...

Yeah, I actually created this PR because of the error described in #1894. In nixpkgs' master every plugin uses dependencies already, so feel free to merge this when https://github.com/NixOS/nixpkgs/pull/328410 gets to unstable (this will fix the current evaluation error)

I'm wondering if we should have a more graceful approach than handles either the old/new attr depending on which is actually present, at least for a short transition period?

Oh, yeah. I also just noticed that this rename probably won't be backported to 24.05

Oh, yeah. I also just noticed that this rename probably won't be backported to 24.05

That's not an issue, since our main branch isn't intended to work on the stable channel.

Thank you very much @PerchunPak for spinning up this fix so quickly.
I should have merged it earlier to fix it instead of waiting for the upstream fix to land on nixos-unstable.
Now that pylsp-rope also makes use of dependencies, I have directly used it in https://github.com/nix-community/nixvim/pull/1900/commits/9f9e20205a5631474120f2a2cd10d4ff32a6abed and the problem should now be gone.
Please, feel free to report any eventual weird behavior.


Cross-Origin Read Blocking (CORB) blocked cross-origin response

When I try to access the service, I get this error:
Cross-Origin Read Blocking (CORB) blocked cross-origin response https://maps.googleapis.com/maps/api/place/autocomplete/json?&input=AB&key=XXX&language=en&region=US&types=address&components=country%3Aus with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details.

Has any got this issue with Android?

Hi @hopewise can you please provide a reproducible example of this by showing some code or better yet, lining to a snack?

I can't reproduce this. Please open a new issue if you encounter this issue.


Viafirma

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)

[x] I attest that the connector works and I verified by deploying and testing all the operations.
[x] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[x] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[x] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[x] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[ ] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[ ] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[ ] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[ ] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

@sriyen-msft I've already fixed all the stuff.
The thing is that now all the commits have disappeared and the PR is closed.
How can I reopened the PR and commit the new changes?
Thanks in advance


dart & armasm languages not found

Describe the issue/behavior that seems buggy
When viewing this page I get errors about how highlight.js can't find dart & armasm languages.

However, when you look at the Supported Languages page both of those are supported languages.
Sample Code or Instructions to Reproduce
                            main() {
                            	print("Hello World!");
                            }

                            //
                            // Assembler program to print "Hello World!"
                            // to stdout.
                            //
                            // X0-X2 - parameters to linux function services
                            // X16 - linux function number
                            //
                            .global _start             // Provide program starting address to linker
                            .align 2

                            // Setup the parameters to print hello world
                            // and then call Linux to do it.

                            _start: mov X0, #1     // 1 = StdOut
                                    adr X1, helloworld // string to print
                                    mov X2, #13     // length of our string
                                    mov X16, #4     // MacOS write system call
                                    svc 0     // Call linux to output the string

                            // Setup the parameters to exit the program
                            // and then call Linux to do it.

                                    mov     X0, #0      // Use 0 return code
                                    mov     X16, #1     // Service command code 1 terminates this program
                                    svc     0           // Call MacOS to terminate the program

                            helloworld:      .ascii  "Hello World!\n"

hljs.highlightAll()

Expected behavior
No errors for valid languages.
Additional context
Posted on Discord last week with no reply: https://discord.com/channels/810874741370912799/828016175735767070/923749226662481950

Not every supported language is bundled in the default distribution and many supported languages are published by third parties and will need to be installed separately.
You can build from source or you can use our website to build a custom bundle with your own choice of languages. Or you can use the default distribution and then add the languages are missing one at a time by including those JavaScript files.
See the readme for instructions.

Closing as this is expected behavior.

@joshgoebel Thanks so much for your help. That worked perfectly. Might be worth it to add information to the Supported Languages page about what languages are included in the default https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.3.1/highlight.min.js script.

It already says that right at the top.


Can't update federation with the Azure AD powershell module.

update-msolfederateddomain, connect-msolservice and convert-msoldomaintofederated are not available in the AzureAD powershell module.
On the line that states:
"On the AD FS server, open Azure AD PowerShell and perform the following steps:"
Can you add language to include the Powershell module needed is the MSOnline module?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 1ff136fb-c076-b37a-9772-1c30a07fabec
Version Independent ID: ea5cf8c8-2ff3-7ebc-1c16-adc80912cb50
Content: Federating multiple Azure AD with single AD FS
Content Source: articles/active-directory/hybrid/how-to-connect-fed-single-adfs-multitenant-federation.md
Service: active-directory
GitHub Login: @billmath
Microsoft Alias: billmath

@richardslaiii
Thanks for your feedback! We will investigate and update as appropriate.

@richardslaiii
The Azure AD module is the MSOnline module but I can see how it might be helpful to specify. I made a pull request #57758 for this.
@billmath I'll leave the PR open for your review.


IDataView to DataFrame

Implements https://github.com/dotnet/corefxlab/issues/2741
Also fixes https://github.com/dotnet/corefxlab/issues/2754

Closing this for now. I'll reopen once we get a preview out


Version 1.0.0

Hey,
so with version 1.0.0, if I by mistake click on the device in HK or Homebridge, the device enters the "not connected" state and wont get out of it until I restart the bridge.
My washer/dryer does not start with the "LG App" because when turned off - no WIFI.
Even when I try to shut it off by clicking the device in HK or in Homebridge it does not work. (that does not work even bevor with ver. 0.2...)
(Lack of WASHER/DRYER in your device settings?)

it's showing "not connected" even Washer still running ?
at this time Washer in home app only showing status and cannot control, I'll add washer on/off control in next release
but if "LG App" can't turn on/off, "home app" can't too

it's showing "not connected" even Washer still running ?
at this time Washer in home app only showing status and cannot control, I'll add washer on/off control in next release
but if "LG App" can't turn on/off, "home app" can't too

I have to check if it still says not connected if I turn the washer on.
You can turn the washer off in App but not on because when off WIFI is gone so no control anymore.

So if I click on the tile in HK when the washer is off, I get the not connected message. This stays for ever until I restart the homebridge and also after I turn the washer on.


Concurrency bug with Sidekiq

I use http.rb to make parallel queries with Sidekiq and I got very strange problem on one of my projects. Sidekiq gets down after all 10 workers take similar tasks from queue. Every task does http request to same host but with different params. Here is what I found in log.
/srv/www/<project name>/shared/bundle/ruby/2.2.0/gems/http-1.0.1/lib/http/headers.rb:120: [BUG] Stack consistency error (sp: 139, bp: 140)
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0034 p:0011 s:0139 e:000139 BLOCK  /srv/www/<project name>/shared/bundle/ruby/2.2.0/gems/http-1.0.1/lib/http/headers.rb:120 [FINISH]
c:0033 p:---- s:0137 e:000136 CFUNC  :each
c:0032 p:0027 s:0134 e:000133 METHOD /srv/www/<project name>/shared/bundle/ruby/2.2.0/gems/http-1.0.1/lib/http/headers.rb:120 [FINISH]
c:0031 p:---- s:0131 e:000130 CFUNC  :each_with_object
c:0030 p:0032 s:0127 e:000126 METHOD /srv/www/<project name>/shared/bundle/ruby/2.2.0/gems/http-1.0.1/lib/http/response.rb:101
c:0029 p:0015 s:0124 e:000123 METHOD /srv/www/<project name>/releases/20160104110024/app/lib/terrasoft/api.rb:27
c:0028 p:0016 s:0119 e:000116 METHOD /srv/www/<project name>/releases/20160104110024/app/lib/terrasoft/api.rb:18
c:0027 p:0021 s:0111 e:000110 METHOD /srv/www/<project name>/releases/20160104110024/app/lib/terrasoft/application_loader.rb:13
c:0026 p:0018 s:0108 e:000107 METHOD /srv/www/<project name>/releases/20160104110024/app/models/application.rb:253
c:0025 p:0023 s:0103 e:000102 METHOD /srv/www/<project name>/releases/20160104110024/app/workers/application_worker.rb:8

Here is a code that I use:
response = HTTP.post(self.url_builder(self.login_path), :json => Terrasoft::Api.auth_params ).cookies

ruby 2.2.3

This is a memory corruption error. http.rb itself contains no native code, so it's a bug with MRI, http_parser.rb, or another native extension in your project.
I would suggest trying a different version of MRI, but in the meantime, http.rb cannot be directly responsible for this.

I see, thanks. I updated to 2.2.4 and all works well.


chore(deps): update to backstage 1.23.0

Story: https://issues.redhat.com/browse/RHIDP-1374
This PR upgrades this repo to backstage 1.23.0.
Upgrade template - https://backstage.github.io/upgrade-helper/?from=1.22.2&to=1.23.0

verified orchestrator plugin

Thanks @divyanshiGupta , Have verified below plugins

aap-backend

RBAC UI

Topology

Tekton

ACR

Quay

I've verified feedback plugin, its working as expected.

Feedback

/approve