Dispatch missed inside map function of lodash library

I have problem with testing async action creator using jest and I am using redux-mock-store to implement the mock store. The action creator uses instance of axios to fetch the data. The response data is in array, which I pass to map function.For each data in array it requests data from api and dispatches it to store. While testing I am able to detect all the dispatches except inside lodash library map function.
//This is how my code looks
function actioncreator( ){
return function(dispatch){
dispatch(types.loading_model);
auth.get('model')//instance of axios requesting data from api
.then(function(response){
dispatch(types.get_model,response.data);
dispatch(types.loading_media);
_.map(response.data.data,(newData,Index)=>{
auth.get('media',{
params:{id:newData.id}})
.then(function(response){
dispatch(types.get_media,response.data);
})
})
}
//This is my test for action creator
it('action creator test',() => {
const mockStore = configureMockStore([thunk]);//from redux-thunk
const store = mockStore({data:[]});
return store.dispatch(actioncreator()).
then(() => {
expect(store.getActions().length).toBeGreaterThanOrEqual(4);//this will be always 3 in test
})
})
The dispatch inside lodash map is missed in test. I can see the response data inside the function. But the mockstore dispatch is missing those dispatch.

@SandeshBG I think the issue is that your promises haven't all resolved yet when you do your expect statement.
Does changing your source code like this help?
function actioncreator( ){
  return function(dispatch){
    dispatch(types.loading_model);
    // notice the "return" statement here
    return auth.get('model') //instance of axios requesting data from api
    .then(function(response){
      dispatch(types.get_model,response.data);
      dispatch(types.loading_media);

      // notice the "return" statement here
      // I am using Promise.all to wait for our array of Responses to resolve
      return Promise.all(_.map(response.data.data,(newData,Index)=>{
        return auth.get('media',{
          params:{id:newData.id}})
          .then(function(response){
            dispatch(types.get_media,response.data);
          })
        })
      }
    }
  }

Yes it worked. I have another issue similar one. What should I do if I have multiple axios requests and responses inside main .then( ). I cannot have multiple returns on the same function!

@SandeshBG Are your axios requests running in parallel? Or one after another, serially?
If they are running in parallel, one way you can handle it is using Promise.all. It returns one promise that resolves when all of its promise arguments have resolved. Check out the documentation.
If they are running serially, you can chain your Promises together. It would look something like this:
return axios.get('/firstRequest')
  .then(firstResponse => {
    // I can use the results of my first response here
    return axios.get('/secondRequest');
  })
  .then(secondResponse => {
    // I can use the results of my second response here
    return axios.get('/thirdRequest');
  })
  // etc.

Let me know if you have any questions about it.

Can I use Promise.all for parallelly running axios requests,even if there are dispatches in the middle that does nothing but the state change of redux-store(just like the first dispatch of my actions creators)?

You have two options, you can use Promise.all to get a promise that will be resolved after all nested promises would be resolved, or you can use chaining as @newyork-anthonyng proposed.
Actually, you can take a look on redux-actions-assertions which could simplify your testing workflow. We have created that library to simplify the cases similar to yours.

@dmitry-zaets Thanks. I will look into redux-actions-assertions as you suggested


v35 unable to godep restore but v34 works perfectly

go get -u k8s.io/kubernetes
go get -u github.com/tools/godep

cd $GOPATH/src/k8s.io/kubernetes
$GOPATH/bin/godep restore

Fails with:
godep: error restoring dep (github.com/Sirupsen/logrus): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/boltdb/bolt): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/boltdb/bolt
godep: error restoring dep (github.com/docker/docker/pkg/jsonmessage): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/docker/docker/pkg/term): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/docker/libcontainer): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/google/cadvisor/api): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/google/cadvisor/http): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/google/cadvisor/manager): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/google/cadvisor/pages): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/google/cadvisor/validate): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath.aSHREx/src/github.com/Sirupsen/logrus

cd $GOPATH/src/github.com/tools/godep
git checkout v34
go install github.com/tools/godep

cd $GOPATH/src/k8s.io/kubernetes
$GOPATH/bin/godep restore

Returns without error

(or at least I should say the v34 returns wihout an error)
rm -rf Godeps
$GOPATH/bin/godep save ./...

Appears to hang forever....

v33 dies with
godep: error restoring dep (github.com/google/btree): found packages btree (btree.go) and main (btree_mem.go) in /tmp/gopath.aSHREx/src/github.com/google/btree
godep: error restoring dep (golang.org/x/tools/imports): found packages imports (fix.go) and main (mkindex.go) in /tmp/gopath.aSHREx/src/golang.org/x/tools/imports

@eparis GO15VENDOREXPERIMENT=1 ?

no

v32 appears to be the last version that the k8s.io/kubernetes (github.com/kubernetes/kubernetes) project is able to do:
godep restore
rm -rf Godeps/
godep save

This is probably because these newer versions are more inclusive wrt what they'll vendor and the same rules are being applied to restore, so it's not finding a package it thinks should be vendored. :-(
I wonder if doing a go get golang.org/x/sys/unix will take care of it and/or change the errors?

For some more clarity we only ignore files tagged with ignore and appengine build tags. Before go list would also filter out any non local platform files. This caused issues in that a lot of development happens on OSX, but deployments happen on Linux. So if your deps required an extra package on Linux, they wouldn't be saved and then your build would likely fail (depending how how you setup your environment TBH and lots of people mistook how godeps works because of this).

I'm going to poke at this early this afternoon (Pacific/US) and see if I can provide better guidence / work around / suggestions / patch / etc.

go get golang.org/x/sys/unix makes that error go away
But I got another one which I could make go away. I'll get the details.

godep: error restoring dep (github.com/google/cadvisor/validate): Unable to find dependent package github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp in context of /tmp/gopath.9G0wU0/src/github.com/fsouza/go-dockerclient

go get github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp does not however let me proceed.

 Digging.

transient github error?

Not sure. There is also an issue where restore will fail (currently) if the dep package is no longer available in master (that's the issue I was referring to, not sure the number). I'd like to fix that issue this week, but may be unrelated.

$ go get -d github.com/google/cadvisor/api
container/raw/handler.go:38:2: no buildable Go source files in /Users/emuller/go2/src/golang.org/x/exp/inotify

cadvisor is having issues on master. This is basically the same bug as the one I mentioned.

FWIW: the cadvisor issue has nothing to do with godeps per se. Master isn't even buildable for me.

@eparis BTW: I wasn't able to reproduce the initial issue (Unable to find dependent package golang.org/x/sys/unix). What OS was that restore run on ?

I suspect it was linux. If so you probably want to re-save using v35 to pick up new deps.

I did it on Fedora 23 (linux), godep built with 1.5.1...
@yifan-gu hit the same problem.  Not sure his OS

v36
godep: error restoring dep (github.com/boltdb/bolt): Unable to find dependent package golang.org/x/sys/unix in context of /storage/gopath/src/github.com/boltdb/bolt

My is ubuntu 15.04, go version go1.4.2 linux/amd64

godep restore on linux into an empty GOPATH, v36, fails with unable to find dependent package for
github.com/Azure/go-ansiterm/winterm
github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp

if I go get those by hand, godep restore will run fine. But godep save does not pull those into Godeps, so the next godep restore into an empty GOPATH fails...

That's possible. I'll make a linux VM /  AWS instance after lunch and duplicate / etc.

Duplicated in a linux docker container:
$ godep restore
godep: error restoring dep (github.com/Sirupsen/logrus): Unable to find dependent package golang.org/x/sys/unix in context of /app/user/src/github.com/Sirupsen/logrus
godep: error restoring dep (github.com/boltdb/bolt): Unable to find dependent package golang.org/x/sys/unix in context of /app/user/src/github.com/boltdb/bolt
godep: error restoring dep (github.com/docker/docker/pkg/jsonmessage): Unable to find dependent package github.com/Azure/go-ansiterm/winterm in context of /app/user/src/github.com/docker/docker/pkg/term
godep: error restoring dep (github.com/docker/docker/pkg/term): Unable to find dependent package github.com/Azure/go-ansiterm/winterm in context of /app/user/src/github.com/docker/docker/pkg/term
godep: error restoring dep (github.com/docker/libcontainer): Unable to find dependent package golang.org/x/sys/unix in context of /app/user/src/github.com/Sirupsen/logrus

godep: error restoring dep (github.com/google/cadvisor/api): Unable to find dependent package github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp in context of /app/user/src/github.com/fsouza/go-dockerclient
godep: error restoring dep (github.com/google/cadvisor/http): Unable to find dependent package github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp in context of /app/user/src/github.com/fsouza/go-dockerclient
godep: error restoring dep (github.com/google/cadvisor/manager): Unable to find dependent package github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp in context of /app/user/src/github.com/fsouza/go-dockerclient
godep: error restoring dep (github.com/google/cadvisor/pages): Unable to find dependent package github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp in context of /app/user/src/github.com/fsouza/go-dockerclient
godep: error restoring dep (github.com/google/cadvisor/validate): Unable to find dependent package github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp in context of /app/user/src/github.com/fsouza/go-dockerclient

Some of these are confirmed platform specific transitive dependencies that were missed by older versions of godep.
In the case of logrus & bolt they both import golang.org/x/sys/unix on solaris.
docker/docker/pkg/term has a windows specific transitive import on github.com/Azure/go-ansiterm"
The github.com/fsouza/go-dockerclient/external/github.com/hashicorp/go-cleanhttp errors are something else, possibly related to an ordering issue in the restore code.
I'm looking into this and other stuff.

Awesome, glad you're digging in. I'll be excited to know why godep save ./... handles the solaris:golang.org/x/sys/unix but not the windows:github.com/Azure/go-ansiterm

@eparis See #362 along with kubernetes/kubernetes/18695

I was running into the same issue today :(, but I have some information for you!
Running a git bisect on godep points me to this commit as the cause of the failure: https://github.com/tools/godep/commit/6bb9038f1fdeb750441c6341c8fa785034ba9e0c
With this version of logrus:
{
    "ImportPath": "github.com/Sirupsen/logrus",
    "Comment": "v0.8.6-25-g82c8de1",
    "Rev": "82c8de1af23b25ba5a468d801f29077f4f483bce"
}

and the following error output of godep restore:
godep: error restoring dep (github.com/Sirupsen/logrus): Unable to find dependent package golang.org/x/sys/unix in context of /tmp/gopath/src/github.com/Sirupsen/logrus

I indeed do not have specified golang.org/x/sys/unix as a Godep since the version of logrus I'm using does not yet depend on this package. As you will see here the terminal_solaris.go file that depends on golang.org/x/sys/unix is not yet in the version I'm using.
It looks like godep restore tries to restore a different -possibly later- version of logrus than I want to be restored.
Hope this helps you in finding the issue more quickly.

@thanodnl #362 fixes the problem(s) for me. It does start pulling in golang.org/x/sys/unix which I didn't check if that was correct/needed...

@eparis I do not see golang.org/x/sys/unix showing up in my path and neither in my Godeps.json after I do a godep save ./.... Could it be that you bumped the version of logrus in the process, hence explaining why it now adds x/sys/unix to your deps?

@thanodnl Previous to #362 godep loaded the packages before checking out the specified versions. This caused problems, especially with other recent changes (but they were present before anyway, just less pronounced).
@eparis You guys need golang.org/x/sys/unix because of bolt:
$ godep restore -v
...
godep: Checking dependency: github.com/boltdb/bolt
godep: Dep (github.com/boltdb/bolt) restored, but was unable to load it with error:
	Unable to find dependent package golang.org/x/sys/unix in context of /Users/emuller/go2/src/github.com/boltdb/bolt
godep: 	This may be because the dependencies were saved with an older version of godep (< v33).
godep: 	Try `go get golang.org/x/sys/unix`. Then `godep save` to update deps.
...

Not sure. There is also an issue where restore will fail (currently) if the dep package is no longer available in master (that's the issue I was referring to, not sure the number). I'd like to fix that issue this week, but may be unrelated.

I believe you're referring to #186.

@ironcladlou yes. Thanks. Marked as resolved.


[idea] implement +10sec forward -10sec rewind event

It should be interesting if the two events could be implemented :

go +10sec in the timeline (simule keyboard right arrow)
go -10sec in the timeline (simule keoboard left arrow)

the same way vol+ vol- is implemented
(And thx for this plugin)

Hi,
thanks for your feedback. I can implement something like that.
I will tell you if I had the time to implement that.

I would love to see this, too. Plus Cmd-Shift-arrow equivalents for jumping forward and backward by 60 seconds.


Conditional filenames are too hard to use :P (hey you don't have a question tag...I can set...)

And I'm not going to join some discord server for this.
This is my standard save path:
%search%/%search%_%artist%%md5%.%ext%
Since there is no testing function for these things (other than downloading something) and I'm kind of sick of having to clean up bad filenames:
How do I add an optional check for galleries, to turn it into %search%/%gallery.name%/%search%_%artist%%md5%.%ext%
(if this string looks confusing to you, and it's hard to spot the slashes...well, I didn't make this scheme...just look really close like I have to do.)

The wiki doesn't seem to reflect the options interface. The wiki doesn't cover "filename" (leave empty to use default filename) or "folder" (leave empty to use default folder)
It just lists a bunch of tags and brackets and I'm sick of it now, and I now request a spoon feeding, even though I've been a bit unfriendly, but again:
Interface doesn't reflect instructions.
Can't test filename results.
Documentation for this apparently now hidden behind a discord server.
No.
No.
No.
Help me here. In the open, where any user of github can see it. Help me with the confusing interface and documentation discrepancy.
Even if the solution is simple, or obvious, I'm not trying any more combinations.
In case you understand my pain and end up helping me: Thank you in advance.

It's written in the window "you can use a token or a tag as a condition".
It might indeed not be super clear, but you can just put a token in there, such as %gallery.id% or whatever. If it's not empty, the filename will be used.
And in any case, in 99% of the cases %search%/%gallery.name%/%search%_%artist%%md5%.%ext% is already enough since if there's no gallery %gallery.name% will be empty so the filename will end up being %search%/%search%_%artist%%md5%.%ext% anyway.

 I originally made this program for myself and only published it because I thought it would be useful to other people.


WIP: Add ability for plugin to flush old cache objects

Would love some feedback on how I implemented this feature.
I ran it a little and it seemed to work for me.  Was using touch -d <dateString> <file> to make items on my minio server "older".  Please try it out!

@donny-dont Think I got all your concerns addressed.
Also, this PR depends on https://github.com/drone/drone-cache-lib/pull/2 and https://github.com/drone/drone-cache-lib/pull/3.

K once those are merged we can merge it all.


Fix dumpdata command issue and no require auth.

Was getting no data. Turns out the default arguments for dumpdata were
required. Using call_command fixes this.
Also our data is not private. Would like to avoid the auth token.

@prestontimmons any interest in continuing to work on this project. We're using it in a couple of places now and would like a new release on PyPI. I'm happy to do that with a new project, but wanted to be sure you weren't interested in contributions first.


Can't make it work.

After doing:
Run gpte <project_dir> with a relative path to your folder
For example: gpte projects/my-new-project from the gpt-engineer directory root with your new folder in projects/
I should be using the correct relative path and I get
Traceback (most recent call last):   File "C:\Users\a.serrano\AppData\Local\pypoetry\Cache\virtualenvs\gpt-engineer-elTYTC0x-py3.9\Scripts\gpte", line 3, in <module>     from gpt_engineer.applications.cli.main import app   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\main.py", line 38, in <module>     from gpt_engineer.applications.cli.cli_agent import CliAgent   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\cli_agent.py", line 6, in <module>     from gpt_engineer.core.base_execution_env import BaseExecutionEnv   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py", line 7, in <module>     class BaseExecutionEnv(ABC):   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py", line 22, in BaseExecutionEnv     def run(self, command: str, timeout: int | None = None) -> tuple[str, str, int]: TypeError: unsupported operand type(s) for |: 'type' and 'NoneType' (gpt-engineer-py3.9) C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer>gpte projects/fashion_creator Traceback (most recent call last):   File "C:\Users\a.serrano\AppData\Local\pypoetry\Cache\virtualenvs\gpt-engineer-elTYTC0x-py3.9\Scripts\gpte", line 3, in <module>     from gpt_engineer.applications.cli.main import app   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\main.py", line 38, in <module>     from gpt_engineer.applications.cli.cli_agent import CliAgent   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\cli_agent.py", line 6, in <module>     from gpt_engineer.core.base_execution_env import BaseExecutionEnv   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py", line 7, in <module>     class BaseExecutionEnv(ABC):   File "C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py", line 22, in BaseExecutionEnv     def run(self, command: str, timeout: int | None = None) -> tuple[str, str, int]: TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
What should I do?

There's another issue where this has been reported before.
The workaround is to use Python 3.10 or higher.
On Fri, Dec 15, 2023, 16:40 Andrea Serrano @.***> wrote:

After doing:
Run gpte <project_dir> with a relative path to your folder For example:
gpte projects/my-new-project from the gpt-engineer directory root with your
new folder in projects/
I should be using the correct relative path and I get
Traceback (most recent call last): File
"C:\Users\a.serrano\AppData\Local\pypoetry\Cache\virtualenvs\gpt-engineer-elTYTC0x-py3.9\Scripts\gpte",
line 3, in  from gpt_engineer.applications.cli.main import app File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\main.py",
line 38, in  from gpt_engineer.applications.cli.cli_agent import
CliAgent File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\cli_agent.py",
line 6, in  from gpt_engineer.core.base_execution_env import
BaseExecutionEnv File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py",
line 7, in  class BaseExecutionEnv(ABC): File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py",
line 22, in BaseExecutionEnv def run(self, command: str, timeout: int |
None = None) -> tuple[str, str, int]: TypeError: unsupported operand
type(s) for |: 'type' and 'NoneType' (gpt-engineer-py3.9)
C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer>gpte
projects/fashion_creator Traceback (most recent call last): File
"C:\Users\a.serrano\AppData\Local\pypoetry\Cache\virtualenvs\gpt-engineer-elTYTC0x-py3.9\Scripts\gpte",
line 3, in  from gpt_engineer.applications.cli.main import app File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\main.py",
line 38, in  from gpt_engineer.applications.cli.cli_agent import
CliAgent File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\applications\cli\cli_agent.py",
line 6, in  from gpt_engineer.core.base_execution_env import
BaseExecutionEnv File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py",
line 7, in  class BaseExecutionEnv(ABC): File
"C:\Users\a.serrano\Desktop\Projects\fashion_creator\gpt-engineer\gpt_engineer\core\base_execution_env.py",
line 22, in BaseExecutionEnv def run(self, command: str, timeout: int |
None = None) -> tuple[str, str, int]: TypeError: unsupported operand
type(s) for |: 'type' and 'NoneType'
What should I do?
—
Reply to this email directly, view it on GitHub
https://github.com/AntonOsika/gpt-engineer/issues/906, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKXDOW6XQUFBSCLDCDKDXLYJRVP7AVCNFSM6AAAAABAWUDSKCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGA2DGOJUGQZDQMA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Hi @VioletRaven, the project is now compatible with Python 3.9. If you still want to continue using Python 3.9, fetch the existing project and it will run.

as @similato87 says, this should now be fixed


Update vpn-gateway-howto-point-to-site-rm-ps.md

This line is not needed. I expect a copy past error.

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

I'm doing a doc rewrite on this one, so I'll take this as a doc bug. Thanks! #please-close


Added overview and licensing pages

Added overview and licensing page, moved some articles from ‘getting started’ to ‘guides’ section. Modification in DocsArticle.astro prevent applet runner and jnlp logos from becoming too big.

yes, removing that page is intended as it's a duplication of CJ.com content
On Tue, 3 Dec 2024, 14:38 Ana Gabriela Reyna, @.***>
wrote:

@.**** commented on this pull request.
The new content looks good to me. I have a question, was it intended to
remove the landing page for the applet runner and be replaced with the
overview?

I am talking about this landing page:
https://labs.leaningtech.com/docs/cheerpj-applet-runner

—
Reply to this email directly, view it on GitHub
https://github.com/leaningtech/labs/pull/182#pullrequestreview-2475883129,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABM54KYUSFQAV6KF2FGSSSD2DW7AFAVCNFSM6AAAAABSVNYTBCVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDINZVHA4DGMJSHE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Support arithmetic with row-series

Sometimes a Series is just one row and is intended to be broadcast
across a Dataframe, rather than in an elementwise fashion.
This creates a convention, that a Series with divisions (0, 1) signals
that it is just a single row, and is thus appropriate for broadcasting.
This enables computations like the following (which used to err):
df = df - df.mean()

However it also introduces silent failures if elementwise operation
against this series is intended, despite its divisions of (0, 1)
Fixes https://github.com/dask/dask/issues/1759
cc @jcrist for review

It's not really "1 row", rather it's a series with the index equal to the columns in the original dataframe. In this case, I'd rather check if the divisions are equal to the (first,last) elements in columns of the frame it's broadcasting against, and set them accordingly in the same place you have here. This also allows keeps the meaning of divisions consistent.

Good point.  I think that I have resolved this in a recent commit.

Any further comments @jcrist ?  Merging this afternoon if not


[MRTK3] Changing default color space to Linear + material adjustments

Overview
Updating MRTK3 default project setting to use Linear color space instead of Gamma.
Overall, colors in linear space look desaturated with less contrast. Adjusted major UI-related materials and MRTK Standard materials to make them close to the original colors in Gamma space. Tested on device & editor.

Resolves #10774 for MRTK3 (not MRTK2)

Canvas UI

Non-Canvas UI

MRTK Standard materials (work-in-progress)

Thanks so much for doing this @cre8ivepark !!

Not sure why it says I need to check in the meta file for ProjectSettings.asset file. Only modified m_ActiveColorSpace to 1.
Checking file: /home/runner/work/MixedRealityToolkit-Unity/MixedRealityToolkit-Unity/UnityProjects/MRTKDevTemplate/ProjectSettings/ProjectSettings.asset
WARNING: Meta file missing for /home/runner/work/MixedRealityToolkit-Unity/MixedRealityToolkit-Unity/UnityProjects/MRTKDevTemplate/ProjectSettings/ProjectSettings.asset. Please be sure to check it in alongside this file.

Hi @cre8ivepark, this the PR ready for review now?

Hi @cre8ivepark, this the PR ready for review now?

Yes, it is ready.

Something is up with this @cre8ivepark . All the Canvas materials are totally off... at least on my machine

What is going on here?


[ALLUXIO-1780] Add logging to the loadMetadata command in BaseFileSystem

https://alluxio.atlassian.net/browse/ALLUXIO-1780

Can one of the admins verify this patch?

ok to test

@mtunique Thanks for the PR! I left a few comments.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/9245/
Test PASSed.

@gpang Now I have updated it.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/9249/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/9250/
Test PASSed.

Thanks, I just had one more question.

LGTM


Improve 0-conf tracking

This change in 0.12 would make our 0-conf tracking much less reliable if deployed.

Note: this change will not be merged before the initial release as long as the one-patch-project policy is in effect.

Can you reference the PR in Core in which the change which you are proposing reverting was made?

@jtoomim This commit was cherry picked from XT not core, it didn't seem to have a pull request.

That would be this PR.

Oh, gotcha. Do you want to do some research and try to dig out the context for this? It's a lot easier to read the arguments for why this was done in the first place than to try to think of the arguments from scratch.
We do have other priorities, though. Right now, it's just blocksize related stuff that we're going to allow (unless the vote changes on consider.it), so the zero-conf related stuff will have to wait a bit.
One thing that could be useful to pull from XT is the thin blocks code in XT PR 109. I'm not sure if it's ready to be deployed, but I think it's pretty close, and it's probably also ready to be tested.
Our first release will probably be based on 0.11.2, by the way. Not the 0.11.2 branch that's in our repo right now, because that's actually derived from BitPay's 0.11.2 branch, but Core's 0.11.2 branch. I guess I need to make a branch for that...
Perhaps we could talk on another channel so we can make sure you make it to the dev meetings? It would be nice to get things coordinated so we're not wasting or duplicating efforts, and so we can all work together as a team.

@jtoomim The trickle code appears to have been designed to make IP tracing of transaction origins harder and breaks out transaction IP origin tracking capability. We mass connect to all bitcoin nodes and probe them for transactions in order to bypass any trickle delays(which makes it more difficult to find out where transactions are originating from). Since we are in the business of double spend tracking and compliance tracking(for sites that aren't legally allowed to serve certain jurisdictions) it makes our jobs more difficult. Should I make a consider.it proposal for this?

Oh, right, I think I remember this. I think gmaxwell advocated its removal? Supposedly the frequent getmempool requests was a DoS vector or something.
I think we should collect more information first. I think people have been putting half-baked ideas on consider.it a lot, and would much rather have a discussion with arguments for and against in place before it makes it to consider.it. Consider.it doesn't work very well for negotiating complicated concepts.

Hey @cointracker, we've got a list of PRs merged by Core between 0.11.2 and master that we've been sorting through. Perhaps you want to help with that?
https://stackedit.io/editor#!provider=couchdb&id=utbv9YT5uzpRAyXJjzgW6tdb

@jtoomim Well I think his logic was that it was privacy invading but it would basically destroy our business model, there isn't really a good way to track transactions otherwise. If we can't track transactions it's a little bit tricky to monitor double spends and transaction origins. I'd like to remove the trickle logic altogether.

I've marked #7125 in the stackedit as needing more thorough conceptual review once we get to working on the master branch.

@jtoomim @cointracker:
I had to move the list off of stackedit due to the risk of defacement by trolls. Please send people to https://gist.github.com/christophebiocca/259470c579065af9f469 from now on.

Do you think https://github.com/bitcoinclassic/bitcoinclassic/pull/4 might solve it?

This change in 0.12 would make our 0-conf tracking much less reliable if deployed.

NACK. This justification makes no sense.  What 0-conf tracking?

Sounds like they've got a way to figure out which IP address initially sent a transaction by using the timings, and the change in Core breaks that.
Why we would want to revert a change that improves senders' privacy is unclear to me.

@christophebiocca It's unclear to me too brother.

@dgenr8 The trickle code causes problems with our transaction tracking capability it makes it harder for us to determine accurately which nodes have received a particular transaction and when.
@christophebiocca Yes accurate timing is critical for being able to accurately track transaction IP origins and propagation of the transaction to various nodes on the network.

ACK.

Merge window is open only for 2 MB HF stuff.
An exception for this PR is not justified. A vote has been started on consider.it. It does not appear to be a favorable change.
I am closing this. It may be reopened after the fork.

@cointracker this functionality might make for a nice business model, but it goes against the original concept of censorship-proof P2P electronic cash.
If you know the originating node of a transaction, it increases the likelihood that 'the bad guys' will also be able to find out and be able to censor them.

Address at a later date.

@NanoAkron We realize some consider this a privacy issue however leaving the trickle code would significantly hurt our ability to prevent double spends.

NACK.

@ghost Looks like you need to find a new business model, if your current model relies on breaking Bitcoin's privacy. As @NanoAkron said, Bitcoin is "censorship-proof" P2P cash. Cash is typically private & fungible, and these are core values of the Bitcoin project. You should expect increased privacy, moving forward, not less, so I'd advise to rework your business model.

the extent to which this should be alarming cannot be understated.

@Leviathn the proposer has deleted their github account. It is not clear if they were ever serious about reverting this change or were just trying to create drama.


Re-add latest Docker tag.

We should use latest for these demo projects because they are going to
be built daily. This can help us determine upstream changes to images
that we would need to adjust the demo for. I added a comment on not
using the latest tag for real projects.

Even if we advise against using the latest tag, people are just going to copy and paste this without reading it IMO :thinking:

I agree with @zzak here; I think people are just going to be copying/pasting these config files as templates for their own apps instead of actually reading them closely.


App to take selfies with a gesture controls such as thumbs-up or peace signs

Hello!
My app is called RulikSelfie.
With its simple gesture controls and smile detection, you can take amazing selfies without touching your phone.
You can try it on TestFlight:
https://testflight.apple.com/join/kID8pcDh
Your feedback would be really valuable!
Thank you in advance!

done


⚠ Bofrost.fr has degraded performance

In b39f4f0, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1474 ms

Resolved: Bofrost.fr performance has improved in 46ff76c after 7 minutes.


Can't train on raccoon images

When I give the command
python train.py -c config.json
I get the following error:
Traceback (most recent call last):   File "train.py", line 102, in <module>     _main_(args)   File "train.py", line 98, in _main_     debug              = config['train']['debug'])   File "/home/sarah/objectdetection3/basic-yolo-keras/frontend.py", line 445, in train     max_queue_size   = 8)   File "/home/sarah/anaconda2/lib/python2.7/site-packages/keras/legacy/interfaces.py", line 87, in wrapper     return func(*args, **kwargs)   File "/home/sarah/anaconda2/lib/python2.7/site-packages/keras/engine/training.py", line 2011, in fit_generator     generator_output = next(output_generator)e   File "/home/sarah/anaconda2/lib/python2.7/site-packages/keras/utils/data_utils.py", line 510, in get     raise StopIteration(e) StopIteration: 'NoneType' object has no attribute 'shape' sarah@starship:~/objectdetection3/basic-yolo-keras$ python tr
I'm using your version of the raccoon dataset where the xml paths and the images are both jpgs and I've tested with cv2 that all the raccoon image files will open. The YOLO Step By Step notebook runs fine.  So I'm still not sure what the problem is.

@srconstantin This error happens all the time and the single reason is that users have failed to set the image and annotation directory correctly. You may want to look into that.

I figured out how to solve this error:
In line 236 of preprocessing.py,
change image_name = train_instance['filename']
to         image_name = train_instance['filename']+'.jpg'


How to convert XLS to JSON in browser.

I have a simple requirement. Just upload a file to my web application (a XLS file) and convert it to JSON.

I imported xlsx to my application like this.
But following command gives me an error.

var workbook = XLSX.readFile('test.xlsx');

Can anyone tell me how to make this work ?
Sample code please. I don't have a node.js server. Just need to convert XLS to JSON in front end using normal js codes.

Some people have had success with the directive https://github.com/brexis/angular-js-xlsx -- try it out and let us know if you have any problems

@SheetJSDev  Thanks for your quick response. But that's not actually what I wanted. And also I'm not using AngularJS too. Here's simply what I need. It's great if you can find me a solution for this.
In your examples, I can see this code.
var workbook = XLSX.readFile('test.xlsx');
But you are saying we can use that only with NodeJS. So it's server side. Is there any way we can read a xls file in browser. You have added this code for browser use.
var worksheet = XLSX.utils.table_to_book(document.getElementById('tableau'));
Can we take a file from input field and make a worksheet from that using above code ?
Then I can simply use this following code and convert a worksheet to json.
console.log(XLSX.utils.sheet_to_json(ws));
It's so simple. No ?
Like this :+1:
var worksheet = XLSX.utils.table_to_book(document.getElementById('name_of_file_input')); console.log(XLSX.utils.sheet_to_json(worksheet));
Is there any way ? Please help me on this.

In https://github.com/sheetjs/js-xlsx#parsing-workbooks we gave some samples using AJAX in the browser and using the HTML5 file drag-and-drop.  You can't use XLSX.readFile in the browser because the browser exposes no way of just requesting data.  Use XLSX.read instead -- it accepts the data directly and supports binary strings (like those from readAsBinaryString) as well as base64 text and other data representations.
For example, in the http://oss.sheetjs.com/js-xlsx/ demo, https://github.com/SheetJS/js-xlsx/blob/gh-pages/index.html#L209 handles the file drop. For readAsBinaryString, you get the data and call XLSX.read(data, {type:"binary"}).
To read from an input element, jump down to "HTML5 input file element using readAsBinaryString or readAsArrayBuffer" example.


Implement available_optlib

Do you think it's a good idea to have available_optlib for each method?

Good idea :100: We could possibly automate it too using Julia's metaprogramming features. :+1: We can follow the simple approach for the moment by defining the methods manually as we do with default_optlib. Would you like to work on it?
Please make sure we can query the instances of estimators as well as their type, like it is done with default_optlib.


Update 200 Channel Limit notes to explain impact if Teamspace is on retention

What happens if a Teamspace has a retention policy applied and channels are deleted? Do the deleted channels still count towards the 200 limit after 30 days?

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

ID: 905e2c09-ef3e-07cc-0809-6ff171157c47
Version Independent ID: c0d33162-183d-fff8-32e9-a999f391ea51
Content: Limits and specifications for Microsoft Teams
Content Source: Teams/limits-specifications-teams.md
Service: msteams
GitHub Login: @LolaJacobsen
Microsoft Alias: lolaj

@lizvdp thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

@officedocsbot close

@lizvdp thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.

@officedocsbot close


Index Out of Bounds

client crash report: http://paste.ee/p/Phhrp
fml client latest: https://paste.ee/p/hVF0O
happens reliably when picking up placing items from securitycraft next to each others.

java.lang.IndexOutOfBoundsException: Index: 31, Size: 0

Something is really messing with inventories that isn't me, because it should never be possible to have an inventory with nothing in it in vanilla.

Haven't been able to reproduce it since your last update. I'm gonna call it closed for now.


Fix issue with environment selector being out of sync (#2431)

Pull request opened by the merge tool on behalf of #2431

Merged in 47b8a8a73d329b22025874a7940ad3c68c194165


SoapCommunicationExecutor builds httpConfig without httpSync client

https://github.com/art-community/ART/pull/190


Some trouble after system update

Problem with download fb2.books after update to release Debian Bookworm (stable).
Page show error:
TypeError: send_file() got an unexpected keyword argument 'attachment_filename'
but for 'read online' file open successful
FIX:
in file
fb2_srv_pseudostatic/app/views_dl.py
on string
return send_file(memory_file, attachment_filename=zip_name, as_attachment=True)
change
attachment_filename to download_name
more about

Thank you. Will add requirements.txt for this repo with right versions soon.
This repo is stalled, because i use real database now.
You may try server from https://github.com/stanislavvv/fb2_srv_pg (with this bug at now, but will be fixed).

add requirements.txt in 3962bd7

Close. No more real development in *pseudostatic.


Handle int as key in path

Hello,
After upgrading our dependencies for dpath in https://github.com/openfisca/openfisca-core we have an error because dpath don't work the same way in 2.0.5 as in 1.5.0. It's due to the feature introduced by https://github.com/dpath-maintainers/dpath-python/issues/91
But as we use integer as key for year, or code does not work. Well, not integer as the key is "2017", so it is a string, not an integer. But when we write it in path, dpath use it as an int, not a string.
Did you know if there is a way to have the same behavior as in 1.5.0 ?
Old behavior:
>>> x={};dpath.util.new(x,'path/that/not/exist/2', 42)
{'path': {'that': {'not': {'exist': {'2': 42}}}}}

New behavior:
>>> x={};dpath.util.new(x,'path/that/not/exist/2', 42)
{'path': {'that': {'not': {'exist': [None, None, 42]}}}}

The workaround I found is to create the path before calling new:
>>> x={'path': {'that':{'not':{'exist':{2:None}}}}};
>>> dpath.util.new(x,'path/that/not/exist/2', 42)
{'path': {'that': {'not': {'exist': {2: 42}}}}}

But it's not the same, as I have to use 2 and not '2' as key. And our key is string '2017', not integer 2017.

Hi Benoit,
This is a tough issue to tackle since ints in paths are ambiguous: They can signify indices of a list as well as keys in a dict.
It would appear that pre-1.5.0 the default behavior was to treat them as list indices, which is what you're expecting.
I'm checking whether there's an existing simple way to configure that default behavior. If not I will consider adding some configurability.
All that said, I do think your workaround is quite elegant (considering the complexity of the causing issue).
Will update.

That took less time than expected :)
Please try the following:
def dict_creator(current, segments, i, hints=()):
    segment = segments[i]

    if isinstance(segment, int):
        extend(current, segment)

    # Infer the type from the hints provided.
    if i < len(hints):
        current[segment] = hints[i][1]()
    else:
        current[segment] = {}

x={}
dpath.util.new(x,'path/that/not/exist/2', 42, creator=dict_creator)

Should result in:
{'path': {'that': {'not': {'exist': {'2': 42}}}}}
This method indeed overrides the default creator behavior by removing any special treatment of ints. It will always create dicts and never lists.
I will continue checking whether there is an improvement that can be made to the codebase based on this.
In the meantime, please let me know if this solution works for you.

Hello,
Thanks for looking at it, but we still have a problem with merge:
import dpath.util

def dict_creator(current, segments, i, hints=()):
    segment = segments[i]

    if isinstance(segment, int):
        dpath.segments.extend(current, segment)

    # Infer the type from the hints provided.
    if i < len(hints):
        current[segment] = hints[i][1]()
    else:
        current[segment] = {}

x={}
# dpath.util.new(x,'path/that/not/exist/2', 42, creator=dict_creator)

y={'path': {'that': {'exist': {'2': 50}}}}
dpath.util.new(x,'path/that/exist/2', 42, creator=dict_creator)
print(x)
print(y)
dpath.util.merge(y, x)
print(y)

Error:
$ python test_dpath.py
{'path': {'that': {'exist': {2: 42}}}}
{'path': {'that': {'exist': {'2': 50}}}}
Traceback (most recent call last):
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 337, in merger
    target += found
TypeError: unsupported operand type(s) for +=: 'dict' and 'dict'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 337, in merger
    target += found
TypeError: unsupported operand type(s) for +=: 'dict' and 'dict'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 337, in merger
    target += found
TypeError: unsupported operand type(s) for +=: 'dict' and 'dict'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test_dpath.py", line 23, in <module>
    dpath.util.merge(y, x)
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 353, in merge
    merger(dst, filtered_src)
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 351, in merger
    merger(dst, found, segments)
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 351, in merger
    merger(dst, found, segments)
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 351, in merger
    merger(dst, found, segments)
  File "/media/data/dev/src/LEXIMPACT/openfisca-core/.venv/lib/python3.8/site-packages/dpath/util.py", line 293, in merger
    if len(key) == 0 and not options.ALLOW_EMPTY_STRING_KEYS:
TypeError: object of type 'int' has no len()

Nevermind, I will keep the workaround : We have upgraded dpath and I have handcoded the data insertion in the part concerned by the problem.


ErgoAuthUtils added for EIP-28

Adds ErgoAuthUtils utility methods for ErgoAuth ergoplatform/eips#53
On this occasion, ColdErgoClient was improved so that it does not need to be instantiated by using Explorer API model classes.

I have made the requested additions, but please note:

the new Address methods have a very low level of originality, they are only duplications for isP2PK()/getPublicKey()
ErgoAuthUtils does only hold a very basic check nonw and could be removed completely. The question the dApp developers reviewing the EIP all asked was "What is a SigmaBoolean, we want to check if a user can access a certain address holding a NFT.". The utility class does not help with this problem any more.

we want to check if a user can access a certain address holding a NFT

In blockchain ownership of a box is proved by showing that "the owner" can spend it.
This can be done in general, without knowledge of specific contract and without the actual spending. Will describe it below. But this is not how ErgoAuthUtils were implemented.
The User and the dApp follow this steps in order to authenticate access to The Box:

User creates a special AuthMessage which is like ErgoTransaction, but not quite, it:

contains the Box as a single input
doesn't contain outputs
is serializable to bytes which will be signed

The user executes the Box.ergoTree in the current blockchain context, reduces it to SigmaProp and then signs the AuthMessage.bytes with it.
(this step is similar to signing a transaction in Appkit)
The user sends SignedAuthMessage to the dApp
The dApp:

receives SignedAuthMessage
extracts the Box from it
reduces Box.ergoTree to SigmaProp
extracts SignedAuthMessage.signature
verifies signature against SigmaProp and the AuthMessage.bytes
(this step is similar to what each Ergo node does in verifying a transaction)

If we want to implement this protocol, we can basically clone Transaction and SignedTransaction implementation and simplify it.

User creates a special AuthMessage which is like ErgoTransaction

This would introduce the problem that the AuthMessage is always the same. Hence anyone becoming aware of the signed message can authenticate to any place using the described scheme.
Apart from that, we could do it like described, if I understood everything correctly this adds only a reduction of ErgoTree under the current context (which makes sense). At the moment, this reduction is implemented in AppKitProvingInterpreter and can't be used for Adress.getSigmaBoolean though.


Create a copy button

We need a copy to clipboard button which automatically copies the translated text to user's clipboard. This button can be placed beside the twitter button and should have style like random text button.
Anyone who wants to work on this can tag me here and get this issue assigned to themself.

@dk3775 I would like to work on this issue :)

@abitsalihu you are good to go I am assigning on this!

@dk3775 I finished this issue, but I think I made a mistake to what should be copied. I made the copy button to copy the random quote that is generated or should it copy the : Random Translation: (this part that is inside here) ?
If you could tell me if i did it correctly or I should make changes so I can move on with the PR. :)

@dk3775 I read the Issue again, and I think I understand what needed to be copied (the translated quote that is generated from the random quote)!
Below is a video of how the "copy button" works now:
Please tell me if this is correct so I can go ahead and make a PR.
https://user-images.githubusercontent.com/94648837/191016127-4ddced47-ad35-4563-9c2a-d4c2455b5f31.mov

@abitsalihu bro actually we had to copy whatever text is there in translated textbox, I guess just changing the js object will do the needful.
Hope you understood that, else just ping me again anytime!!

@dk3775 I already made a PR yesterday, can you please check it out and tell me what's wrong.
There is a video attached with it to see how it works!

@abitsalihu I already checked it that is copying the text from the first textbox but it needs to be copying text from the second text box.

@abitsalihu ooh my bad I didn't check it correctly it's working perfectly fine, thanks!

@dk3775 please check the latest commit I did on the PR. :)

Hello @abitsalihu you did great work adding that button,
Still I think we need better styling to the button.

@abitsalihu thank you, I styled it the same as the random button as I was told so. :)

@abitsalihu I know but now think it does not go with the flow :-|

Hi @dk3775 I am working on the copy button trying to amke it a little bit better. I am improving the alert and trying to make the copy button look more natural to the page.

hey! I would like to work on this issue

Hi @aharna
Well I have made a version of copy button and made a PR. Still both of us will have to wait for @dk3775 for his reponse.

Hello @RohanTheProgrammer and @aharna I am on it, will update soon!

This issue is solved by #369 from @RohanTheProgrammer. And is now closed.


Include StrokeDashOffset property

Related with https://github.com/dotnet/maui/issues/5094 and allow to use all the properties from .NET MAUI Shapes.

@jsuarezruiz Thanks for this addition!  Once you're done, I'll merge this in.

/azp run


Fail to create any workspace and workflow. （AKS）

Describe the bug
Fail to create any workspace and workflow.
Unschedulable: 0/2 nodes are available: 2 pod has unbound immediate PersistentVolumeClaims.
Could it be the problem of the yaml?

  # For in-cluster test database, use any name you like.
  databaseName: onepanel
  # Do not change, only `postgres` driver is supported at this time.
  driverName: postgres
  # Database host - use `postgres` for in-cluster test database
  host: postgres
  # Database password
  # If using an external production database, use the password for that database.
  # For in-cluster test database, use any password you like.
  password: onepanel
  # Database port
  port: 5432
  # Database username
  # If using an external production database, use the username for that database.
  # For in-cluster test database, use any username you like.
  username: onepaneldemo
##################################################################

opctl version
$ opctl version

CLI version: v0.15.0-rc.0
Manifest version: v0.15.0-rc.0
API version: v0.15.0-rc.0
Web UI version: v0.15.0-rc.0

opctl init command
opctl init --provider aks --artifact-repository-provider s3 --gpu-device-plugins nvidia
Kubernetes information

Cloud provider: AKS
Kubernetes version: 1.18.10

Machine information

OS:  Windows 10
Browser: Chrome, Firefox

Screenshots
If applicable, add screenshots to help explain your problem.

Can you make sure your nodePool configuration is correct?

Can you make sure your nodePool configuration is correct?

Yes, I followed all the steps, and I have tried with different node configurations, still not working.
Here is my node info and configs:
kubectl get nodes --show-labels
NAME                                STATUS    AGE       VERSION    LABELS
aks-agentpool-38405028-vmss000000   Ready     20h       v1.18.10   agentpool=agentpool,beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=Standard_DS3_v2,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/region=eastus2,failure-domain.beta.kubernetes.io/zone=eastus2-1,kubernetes.azure.com/cluster=MC_devxyc_devxyc_eastus2,kubernetes.azure.com/mode=system,kubernetes.azure.com/node-image-version=AKSUbuntu-1804-2020.11.11,kubernetes.azure.com/role=agent,kubernetes.io/arch=amd64,kubernetes.io/hostname=aks-agentpool-38405028-vmss000000,kubernetes.io/os=linux,kubernetes.io/role=agent,node-role.kubernetes.io/agent=,node.kubernetes.io/instance-type=Standard_DS3_v2,storageprofile=managed,storagetier=Premium_LRS,topology.kubernetes.io/region=eastus2,topology.kubernetes.io/zone=eastus2-1
aks-agentpool-38405028-vmss000001   Ready     20h       v1.18.10   agentpool=agentpool,beta.kubernetes.io/arch=amd64,beta.kubernetes.io/instance-type=Standard_DS3_v2,beta.kubernetes.io/os=linux,failure-domain.beta.kubernetes.io/region=eastus2,failure-domain.beta.kubernetes.io/zone=eastus2-2,kubernetes.azure.com/cluster=MC_devxyc_devxyc_eastus2,kubernetes.azure.com/mode=system,kubernetes.azure.com/node-image-version=AKSUbuntu-1804-2020.11.11,kubernetes.azure.com/role=agent,kubernetes.io/arch=amd64,kubernetes.io/hostname=aks-agentpool-38405028-vmss000001,kubernetes.io/os=linux,kubernetes.io/role=agent,node-role.kubernetes.io/agent=,node.kubernetes.io/instance-type=Standard_DS3_v2,storageprofile=managed,storagetier=Premium_LRS,topology.kubernetes.io/region=eastus2,topology.kubernetes.io/zone=eastus2-2

  nodePool:
    label: beta.kubernetes.io/instance-type
    # Add more by following the format:
    # - name: <name>
    #   value: <value>
    # The first option will be used as default.
    options:
      - name: 'CPU: 4, RAM: 14GB'
        value: Standard_DS3_v2
        # resources:
        #   limits:
        #     nvidia.com/gpu:1
        #     cpu: 5000m
        #     memory 50000Mi
  # The kubernetes cluster where Onepanel will be deployed.
  # Valid values: minikube, microk8s, aks, eks, gke
  provider: aks

Can you launch a Workspace and share the events logs?
kubectl describe pods <workspace-name>-0 -n <your-namespace>

Also, I see you are using 0.16.0-rc.0 but your params.yaml has resources under nodePool.  Can you confirm that you initialized you ran the init command with the same version of opctl? If not, I suggest you run your opctl init command again with this version and try opctly apply

Can you launch a Workspace and share the events logs?
kubectl describe pods <workspace-name>-0 -n <your-namespace>

E:\GKE>kubectl.exe describe po -n onepaneldemo name-0
Name:         name-0
Namespace:    onepaneldemo
Priority:     0
Node:         gke-oneone-default-pool-bbb5699b-lgft/<IP_ADDRESS>
Start Time:   Wed, 09 Dec 2020 14:38:00 +0800
Labels:       app=name
              controller-revision-hash=name-7dd87b6f44
              istio.io/rev=default
              security.istio.io/tlsMode=istio
              service.istio.io/canonical-name=name
              service.istio.io/canonical-revision=latest
              statefulset.kubernetes.io/pod-name=name-0
Annotations:  prometheus.io/path: /stats/prometheus
              prometheus.io/port: 15020
              prometheus.io/scrape: true
              sidecar.istio.io/status:
                {"version":"8e6e902b765af607513b28d284940ee1421e9a0d07698741693b2663c7161c11","initContainers":["istio-init"],"containers":["istio-proxy"]...
Status:       Pending
IP:           <IP_ADDRESS>
IPs:
  IP:           <IP_ADDRESS>
Controlled By:  StatefulSet/name
Init Containers:
  istio-init:
    Container ID:  docker://c430a61dcecae451069c2965a813ec38a2129f2652b9b591f4d5307a84da3291
    Image:         docker.io/istio/proxyv2:1.7.3
    Image ID:      docker-pullable://istio/proxyv2@sha256:6169d096fe60f128f1311f76c97ee1c3e5d760a45042d5c9182492745d34c658
    Port:          <none>
    Host Port:     <none>
    Args:
      istio-iptables
      -p
      15001
      -z
      15006
      -u
      1337
      -m
      REDIRECT
      -i
      *
      -x

      -b
      *
      -d
      15090,15021,15020
    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Wed, 09 Dec 2020 14:38:17 +0800
      Finished:     Wed, 09 Dec 2020 14:38:18 +0800
    Ready:          True
    Restart Count:  0
    Limits:
      cpu:     2
      memory:  1Gi
    Requests:
      cpu:     10m
      memory:  10Mi
    Environment:
      DNS_AGENT:
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-c79np (ro)
Containers:
  istio-proxy:
    Container ID:
    Image:         docker.io/istio/proxyv2:1.7.3
    Image ID:
    Port:          15090/TCP
    Host Port:     0/TCP
    Args:
      proxy
      sidecar
      --domain
      $(POD_NAMESPACE).svc.cluster.local
      --serviceCluster
      name.$(POD_NAMESPACE)
      --proxyLogLevel=warning
      --proxyComponentLogLevel=misc:error
      --trust-domain=cluster.local
      --concurrency
      2
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     2
      memory:  1Gi
    Requests:
      cpu:      100m
      memory:   128Mi
    Readiness:  http-get http://:15021/healthz/ready delay=1s timeout=1s period=2s #success=1 #failure=30
    Environment:
      JWT_POLICY:                    third-party-jwt
      PILOT_CERT_PROVIDER:           istiod
      CA_ADDR:                       istiod.istio-system.svc:15012
      POD_NAME:                      name-0 (v1:metadata.name)
      POD_NAMESPACE:                 onepaneldemo (v1:metadata.namespace)
      INSTANCE_IP:                    (v1:status.podIP)
      SERVICE_ACCOUNT:                (v1:spec.serviceAccountName)
      HOST_IP:                        (v1:status.hostIP)
      CANONICAL_SERVICE:              (v1:metadata.labels['service.istio.io/canonical-name'])
      CANONICAL_REVISION:             (v1:metadata.labels['service.istio.io/canonical-revision'])
      PROXY_CONFIG:                  {"proxyMetadata":{"DNS_AGENT":""}}

      ISTIO_META_POD_PORTS:          [
                                         {"name":"node-capturer","hostPort":80,"containerPort":80,"protocol":"TCP"}
                                         ,{"name":"jupyterlab","containerPort":8888,"protocol":"TCP"}
                                         ,{"name":"tensorboard","containerPort":6006,"protocol":"TCP"}
                                     ]
      ISTIO_META_APP_CONTAINERS:     node-capturer,jupyterlab
      ISTIO_META_CLUSTER_ID:         Kubernetes
      ISTIO_META_INTERCEPTION_MODE:  REDIRECT
      ISTIO_META_WORKLOAD_NAME:      name
      ISTIO_META_OWNER:              kubernetes://apis/apps/v1/namespaces/onepaneldemo/statefulsets/name
      ISTIO_META_MESH_ID:            cluster.local
      DNS_AGENT:
      ISTIO_KUBE_APP_PROBERS:        {}
    Mounts:
      /etc/istio/pod from istio-podinfo (rw)
      /etc/istio/proxy from istio-envoy (rw)
      /var/lib/istio/data from istio-data (rw)
      /var/run/secrets/istio from istiod-ca-cert (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-c79np (ro)
      /var/run/secrets/tokens from istio-token (rw)
  node-capturer:
    Container ID:
    Image:         alpine:latest
    Image ID:
    Port:          80/TCP
    Host Port:     80/TCP
    Command:
      /bin/sh
    Args:
      -c
      while :; do sleep 2073600; done
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-c79np (ro)
  jupyterlab:
    Container ID:
    Image:         onepanel/jupyterlab:1.0.1
    Image ID:
    Ports:         8888/TCP, 6006/TCP
    Host Ports:    0/TCP, 0/TCP
    Command:
      /bin/bash
      -c
      pip install onepanel-sdk && start.sh jupyter lab --LabApp.token='' --LabApp.allow_remote_access=True --LabApp.allow_origin="*" --LabApp.disable_check_xsrf=True --LabApp.trust_xheaders=True --LabApp.base_url=/ --LabApp.tornado_settings='{"headers":{"Content-Security-Policy":"frame-ancestors * 'self'"}}' --notebook-dir='/data' --allow-root
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Environment Variables from:
      onepanel-default-env  Secret  Optional: true
    Environment:
      ONEPANEL_RESOURCE_UID:        name
      ONEPANEL_RESOURCE_NAMESPACE:  onepaneldemo
      ONEPANEL_PROVIDER:            gke
      ONEPANEL_DOMAIN:              xyc2690.xyz
      ONEPANEL_FQDN:                app.xyc2690.xyz
      ONEPANEL_API_URL:             http://app.xyc2690.xyz/api
      tornado:                      '{'headers':{'Content-Security-Policy':"frame-ancestors * 'self'"}}'
      TENSORBOARD_PROXY_URL:        //$(ONEPANEL_RESOURCE_UID)--$(ONEPANEL_RESOURCE_NAMESPACE).$(ONEPANEL_DOMAIN)/tensorboard
    Mounts:
      /data from data (rw)
      /dev/shm from sys-dshm (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-c79np (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  data:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  data-name-0
    ReadOnly:   false
  sys-dshm:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     Memory
    SizeLimit:  <unset>
  sys-namespace-config:
    Type:                Projected (a volume that contains injected data from multiple sources)
    ConfigMapName:       onepanel
    ConfigMapOptional:   <nil>
    SecretName:          onepanel
    SecretOptionalName:  <nil>
  default-token-c79np:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-c79np
    Optional:    false
  istio-envoy:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     Memory
    SizeLimit:  <unset>
  istio-data:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  istio-podinfo:
    Type:  DownwardAPI (a volume populated by information about the pod)
    Items:
      metadata.labels -> labels
      metadata.annotations -> annotations
  istio-token:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  43200
  istiod-ca-cert:
    Type:        ConfigMap (a volume populated by a ConfigMap)
    Name:        istio-ca-root-cert
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  beta.kubernetes.io/instance-type=n1-standard-8
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason                  Age                    From                     Message
  ----     ------                  ----                   ----                     -------
  Warning  FailedScheduling        2m54s (x2 over 2m54s)  default-scheduler        0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims.
  Normal   Scheduled               2m51s                  default-scheduler        Successfully assigned onepaneldemo/name-0 to gke-oneone-default-pool-bbb5699b-lgft
  Normal   SuccessfulAttachVolume  2m47s                  attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-d24fef91-585e-4609-a1e6-242e5fc31958"
  Normal   Started                 2m34s                  kubelet                  Started container istio-init
  Normal   Pulling                 2m34s                  kubelet                  Pulling image "docker.io/istio/proxyv2:1.7.3"
  Normal   Pulled                  2m34s                  kubelet                  Successfully pulled image "docker.io/istio/proxyv2:1.7.3"
  Normal   Created                 2m34s                  kubelet                  Created container istio-init
  Normal   Started                 2m33s                  kubelet                  Started container istio-proxy
  Normal   Pulling                 2m33s                  kubelet                  Pulling image "docker.io/istio/proxyv2:1.7.3"
  Normal   Created                 2m33s                  kubelet                  Created container istio-proxy
  Normal   Pulled                  2m33s                  kubelet                  Successfully pulled image "docker.io/istio/proxyv2:1.7.3"
  Normal   Pulling                 2m32s                  kubelet                  Pulling image "alpine:latest"
  Normal   Pulled                  2m31s                  kubelet                  Successfully pulled image "alpine:latest"
  Normal   Created                 2m31s                  kubelet                  Created container node-capturer
  Normal   Started                 2m31s                  kubelet                  Started container node-capturer
  Normal   Pulling                 2m31s                  kubelet                  Pulling image "onepanel/jupyterlab:1.0.1"

Also, I see you are using 0.16.0-rc.0 but your params.yaml has resources (deprecated in 0.16.0) under nodePool. Can you confirm that you initialized you ran the init command with the same version of opctl? If not, I suggest you run your opctl init command again with this version and try opctly apply

I checked the opctl version. And I tried to use GKE, and came out the same error.
E:\GKE>opctl-windows-amd64.exe version
CLI version: v0.15.0
Manifest version: v0.15.0
API version: v0.15.0
Web UI version: v0.15.0

Your database settings are correct. If that was the issue, onepanel-core pod would also crash. Few questions/observations:

Are you using a real domain name or a setting the domain in a hosts file?
Does the pod Workspace pod actually run after a while or is what you sent the last event it gets stuck at?
Looks like you're using GKE 1.18.12, can you try using node.kubernetes.io/instance-type for the nodePool key in your params.yaml file? You can just make the change and run opctl apply again.

Your database settings are correct. If that was the issue, onepanel-core pod would also crash. Few questions/observations:

Are you using a real domain name or a setting the domain in a hosts file?
Does the pod Workspace pod actually run after a while or is what you sent the last event it gets stuck at?
Looks like you're using GKE 1.18.12, can you try using node.kubernetes.io/instance-type for the nodePool key in your params.yaml file? You can just make the change and run opctl apply again.

Thanks for your reply.

I use a real domain name which is : app.xyc2690.xyz

E:\GKE>opctl-windows-amd64.exe auth token
admin
22c3650f61866aa3f037a4ef280da7c8

The pod workspace pod actually run 'status: running'. However when you enter the workspace, there is nothing.
I Replaced the key and applied, still got the same problem.

I use a real domain name which is : app.xyc2690.xyz

Ok, can you confirm that you set up your A record as: *.app.xyc2690.xyz in your DNS? It should be set like so (note the *.):
*.app                A                    <IP address>

I use a real domain name which is : app.xyc2690.xyz

Ok, can you confirm that you set up your A record as: *.xyc2690.xyz in your DNS? It should be set like below (note the *):
*               A                    <IP address>

Yes, and I can login the page.

You only need the * since that also covers app. Things should be working now, can you confirm? I pinged test.xyc2690.xyz and got a response, I was not able to before.

You only need the * since that also covers app. Things should be working now, can you confirm? I pinged test.xyc2690.xyz and got a response, I was not able to before.

still can't create workspace
'''
Warning  FailedScheduling        2m54s (x2 over 2m54s)  default-scheduler        0/3 nodes are available: 3 pod has unbound immediate PersistentVolumeClaims.
'''

You only need the * since that also covers app. Things should be working now, can you confirm? I pinged test.xyc2690.xyz and got a response, I was not able to before.

Could you login the webpage and take a look? Many thanks!
app.xyc2690.xyz
E:\GKE>opctl-windows-amd64.exe auth token
admin
22c3650f61866aa3f037a4ef280da7c8

@xyc2690 tried logging in but was not able to. Can you confirm that you have set your n1-standard-4 nodes to auto scale past 2 nodes?
--min-nodes 2 \
--max-nodes 5

@xyc2690 tried logging in but was not able to. Can you confirm that you have set your n1-standard-4 nodes to auto scale past 2 nodes?
--min-nodes 2 \
--max-nodes 5

I comfirm that the configs are exactly the same as that in the tutorial.
Could you please try again? I can login successfully.
app.xyc2690.xyz
admin
22c3650f61866aa3f037a4ef280da7c8

Looks like you already launched a new one and it's working. I just tried launching the one that failed and that worked as well. Can you verify that things are working now?

Looks like you already launched a new one and it's working. I just tried launching the one that failed and that worked as well. Can you verify that things are working now?

I my case I can not create a workspace. Can you create a workspace?
And when I check the po, I get follow info.
kubectl.exe describe po -n onepaneldemo jup-0
Events:
  Type     Reason                  Age                  From                     Message
  ----     ------                  ----                 ----                     -------
  Warning  FailedScheduling        112s (x2 over 114s)  default-scheduler        pod has unbound immediate PersistentVolumeClaims
  Normal   Scheduled               110s                 default-scheduler        Successfully assigned onepaneldemo/jup-0 to gke-onepanel-default-pool-6026022f-jfk2
  Normal   SuccessfulAttachVolume  104s                 attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-c2860543-e1ed-41e3-bf0e-402e9e7cdf5b"
  Normal   Started                 100s                 kubelet                  Started container istio-init
  Normal   Pulling                 100s                 kubelet                  Pulling image "docker.io/istio/proxyv2:1.7.3"
  Normal   Pulled                  100s                 kubelet                  Successfully pulled image "docker.io/istio/proxyv2:1.7.3"
  Normal   Created                 100s                 kubelet                  Created container istio-init
  Normal   Created                 99s                  kubelet                  Created container istio-proxy
  Normal   Pulling                 99s                  kubelet                  Pulling image "docker.io/istio/proxyv2:1.7.3"
  Normal   Pulled                  99s                  kubelet                  Successfully pulled image "docker.io/istio/proxyv2:1.7.3"
  Normal   Started                 98s                  kubelet                  Started container istio-proxy
  Normal   Pulling                 97s                  kubelet                  Pulling image "alpine:latest"
  Normal   Pulled                  95s                  kubelet                  Successfully pulled image "alpine:latest"
  Normal   Created                 95s                  kubelet                  Created container node-capturer
  Normal   Started                 94s                  kubelet                  Started container node-capturer
  Normal   Pulling                 94s                  kubelet                  Pulling image "onepanel/jupyterlab:1.0.1"

Note that depending on your cloud provider, this could take 5-8 mins. It has to basically scale up a node if it doesn't exist and then pull the Docker images into it. I see that you just launched a workspace and you had launched two before.

Note that depending on your cloud provider, this could take 5-8 mins. It has to basically scale up a node if it doesn't exist and then pull the Docker images into it. I see that you just launched a workspace and you had launched two before and I am able to access all 3 of them on my end.

I use firefox ,edge and IE browser, and I can not see the workspaces, is it a problem?

Many thanks, finally I can see the workspace!

Great! Happy to help.


Can't set strong consistency level. It makes a collection with session consistency level.

Can't set strong consistency level. It makes a collection with session consistency level.

It's a bug. Will fix this in next release.
Thanks for your suggestion.


Bug: Re-connection to the DB

Describe the bug
When the application is running, and the DB is restarted, then the application panic with the following stack:
panic: repeated read on failed websocket connection

goroutine 50 [running]:
github.com/gorilla/websocket.(*Conn).NextReader(0xc0000e0580)
        /home/admin/go/pkg/mod/github.com/gorilla/websocket@v1.5.0/conn.go:1030 +0x4f4
github.com/gorilla/websocket.(*Conn).ReadMessage(0x129dfa0?)
        /home/admin/go/pkg/mod/github.com/gorilla/websocket@v1.5.0/conn.go:1093 +0x2f
github.com/surrealdb/surrealdb.go/internal/websocket.(*WebSocket).read(0xc00039c080, {0xca5720, 0xc0003f4480})
        /home/admin/go/pkg/mod/github.com/surrealdb/surrealdb.go@v0.2.1/internal/websocket/ws.go:140 +0x45
github.com/surrealdb/surrealdb.go/internal/websocket.(*WebSocket).initialize.func1()
        /home/admin/go/pkg/mod/github.com/surrealdb/surrealdb.go@v0.2.1/internal/websocket/ws.go:167 +0xac
created by github.com/surrealdb/surrealdb.go/internal/websocket.(*WebSocket).initialize in goroutine 1
        /home/admin/go/pkg/mod/github.com/surrealdb/surrealdb.go@v0.2.1/internal/websocket/ws.go:160 +0x8e
exit status 2

Steps to reproduce
run an application and then stop surrealdb
Expected behaviour
reconnect or return back an error to the application, and let developer decide what to do
SurrealDB version
1.0.0+20230913.54aedcd for linux on x86_64
Contact Details
<EMAIL_ADDRESS>Is there an existing issue for this?

[X] I have searched the existing issues

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks for the issue.
As you said It needs to reconnect after the websocket connection is broken after other PRs merged I will look into this.

We do want a shared configuration between drivers about how we handle network traffic (timeouts, reconnects, circuiting breaking strategies etc). Overall this would need to be standardised but for now we could add a helper.
Would recommend adhering to existing golang standards.


Fix benchmarks that don't currently run on CPython main

The following benchmarks are currently broken with CPython main.

[ ] aiohttp

Broken by the removal of cgi: https://github.com/pyston/python-macrobenchmarks/pull/20

[ ] django_template

Broken by the removal of cgi: https://github.com/python/pyperformance/pull/329

[ ] gunicorn

Broken by the removal of cgi: https://github.com/pyston/python-macrobenchmarks/pull/21

[ ] sqlalchemy_declarative

greenlet doesn't compile (see below)

[ ] sqlalchemy_imperative
[ ] djangocms
[ ] flaskblogging
[ ] genshi_text
[ ] genshi_xml
[ ] html5lib
[ ] pylint
[ ] thrift

greenlet compile error on CPython main
      gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/home/mdboom/Work/builds/benchmarking/venv/cpython3.13-320275690283-compat-3c0fde653f89/include -I/home/mdboom/Work/builds/cpython/Include -I/home/mdboom/Work/builds/benchmarking/cpython -c src/greenlet/greenlet.cpp -o build/temp.linux-x86_64-cpython-313/src/greenlet/greenlet.o
      In file included from src/greenlet/greenlet_greenlet.hpp:26,
                       from src/greenlet/greenlet_internal.hpp:20,
                       from src/greenlet/greenlet.cpp:19:
      /home/mdboom/Work/builds/cpython/Include/internal/pycore_frame.h:8:4: error: #error "this header requires Py_BUILD_CORE define"
          8 | #  error "this header requires Py_BUILD_CORE define"
            |    ^~~~~
      In file included from /home/mdboom/Work/builds/cpython/Include/internal/pycore_frame.h:13:
      /home/mdboom/Work/builds/cpython/Include/internal/pycore_code.h:8:4: error: #error "this header requires Py_BUILD_CORE define"
          8 | #  error "this header requires Py_BUILD_CORE define"
            |    ^~~~~
      src/greenlet/greenlet_greenlet.hpp:104:9: error: ‘_PyCFrame’ does not name a type; did you mean ‘_frame’?
        104 |         _PyCFrame* cframe;
            |         ^~~~~~~~~
            |         _frame
      src/greenlet/greenlet_greenlet.hpp:138:29: error: ‘_PyCFrame’ has not been declared
        138 |         void set_new_cframe(_PyCFrame& frame) noexcept;
            |                             ^~~~~~~~~
      In file included from src/greenlet/greenlet.cpp:33:
      src/greenlet/TUserGreenlet.cpp: In member function ‘virtual greenlet::Greenlet::switchstack_result_t greenlet::UserGreenlet::g_initialstub(void*)’:
      src/greenlet/TUserGreenlet.cpp:280:5: error: ‘_PyCFrame’ was not declared in this scope; did you mean ‘_frame’?
        280 |     _PyCFrame trace_info;
            |     ^~~~~~~~~
            |     _frame
      src/greenlet/TUserGreenlet.cpp:282:39: error: ‘trace_info’ was not declared in this scope
        282 |     this->python_state.set_new_cframe(trace_info);
            |                                       ^~~~~~~~~~
      In file included from src/greenlet/greenlet.cpp:36:
      src/greenlet/TPythonState.cpp: In constructor ‘greenlet::PythonState::PythonState()’:
      src/greenlet/TPythonState.cpp:12:6: error: class ‘greenlet::PythonState’ does not have any field named ‘cframe’
         12 |     ,cframe(nullptr)
            |      ^~~~~~
      src/greenlet/TPythonState.cpp:82:11: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
         82 |     this->cframe = &PyThreadState_GET()->root_cframe;
            |           ^~~~~~
      src/greenlet/TPythonState.cpp:82:42: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘root_cframe’
         82 |     this->cframe = &PyThreadState_GET()->root_cframe;
            |                                          ^~~~~~~~~~~
      src/greenlet/TPythonState.cpp: In member function ‘void greenlet::PythonState::operator<<(const PyThreadState*)’:
      src/greenlet/TPythonState.cpp:128:11: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
        128 |     this->cframe = tstate->cframe;
            |           ^~~~~~
      src/greenlet/TPythonState.cpp:128:28: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘cframe’
        128 |     this->cframe = tstate->cframe;
            |                            ^~~~~~
      src/greenlet/TPythonState.cpp:136:31: error: ‘C_RECURSION_LIMIT’ was not declared in this scope; did you mean ‘Py_C_RECURSION_LIMIT’?
        136 |     this->c_recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining;
            |                               ^~~~~~~~~~~~~~~~~
            |                               Py_C_RECURSION_LIMIT
      src/greenlet/TPythonState.cpp:140:35: error: ‘const PyThreadState’ {aka ‘const struct _ts’} has no member named ‘cframe’
        140 |     this->current_frame = tstate->cframe->current_frame;
            |                                   ^~~~~~
      src/greenlet/TPythonState.cpp: In member function ‘void greenlet::PythonState::operator>>(PyThreadState*)’:
      src/greenlet/TPythonState.cpp:175:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘cframe’
        175 |     tstate->cframe = this->cframe;
            |             ^~~~~~
      src/greenlet/TPythonState.cpp:175:28: error: ‘class greenlet::PythonState’ has no member named ‘cframe’
        175 |     tstate->cframe = this->cframe;
            |                            ^~~~~~
      src/greenlet/TPythonState.cpp:189:37: error: ‘C_RECURSION_LIMIT’ was not declared in this scope; did you mean ‘Py_C_RECURSION_LIMIT’?
        189 |     tstate->c_recursion_remaining = C_RECURSION_LIMIT - this->c_recursion_depth;
            |                                     ^~~~~~~~~~~~~~~~~
            |                                     Py_C_RECURSION_LIMIT
      src/greenlet/TPythonState.cpp:200:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘cframe’
        200 |     tstate->cframe->current_frame = this->current_frame;
            |             ^~~~~~
      src/greenlet/TPythonState.cpp: At global scope:
      src/greenlet/TPythonState.cpp:266:6: error: variable or field ‘set_new_cframe’ declared void
        266 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
            |      ^~~~~~~~~~~
      src/greenlet/TPythonState.cpp:266:34: error: ‘_PyCFrame’ was not declared in this scope; did you mean ‘_frame’?
        266 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
            |                                  ^~~~~~~~~
            |                                  _frame
      src/greenlet/TPythonState.cpp:266:45: error: ‘frame’ was not declared in this scope; did you mean ‘_frame’?
        266 | void PythonState::set_new_cframe(_PyCFrame& frame) noexcept
            |                                             ^~~~~
            |                                             _frame
      error: command '/usr/lib/ccache/gcc' failed with exit code 1
      [end of output]


HA 2023.5 will deprecate Polymer

which this card uses, according to the search.
Release with the issue:
2023.4
Last working release (if known):
Browser and Operating System:
Please see: https://developers.home-assistant.io/blog/2023/04/04/deprecating_polymer/ on the matter.
Javascript errors shown in the web inspector (if applicable):

Additional information:
Would be very much appreciated if you could update the card accordingly. There currently hardly is an alternative
thanks for considering

Please take a look at the notice about the future of this repository: https://github.com/edwardtfn/home-assistant-sun-card#notice-about-the-future-of-this-repository


Add CellSize filter

This provides a simple solution to #71 for @byba1990
Example:
from vtki import examples

data = examples.load_rectilinear()
foo = data.compute_cell_sizes()

foo.plot(scalars='Volume')

That was a fast turnaround.  Thanks!


How much  memory is needed？

Can the 4060 GPU 16 memory be used to run and generate 3D models？

I've been using a T4 on Google Colab (16gb VRAM) with the 'instant-mesh-base.yaml' config with no problem. '-large' looks to need at least 24GB VRAM

What about 11Gig oldie GTX1080TI?


Add Brackets to texteditors

Brackets is a beautiful and simple text editor (especially for code)
It's produced by adobe and works an windows and mac
Also added my name to contributers

Nice! :)


fixed branch-aliases in composer.json

Question
Answer

Bug fix?
yes

New feature?
no

BC breaks?
no

Deprecations?
no

Tests pass?
yes

Fixed tickets
-

License
MIT

Doc PR
-

Description
https://getcomposer.org/doc/articles/aliases.md
This need to be updated, after a new tagged release

Codecov Report

Merging #218 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master    #218   +/-   ##
========================================
  Coverage      82.2%   82.2%
  Complexity      601     601
========================================
  Files            33      33
  Lines          1540    1540
========================================
  Hits           1266    1266
  Misses          274     274

Continue to review full report at Codecov.

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


Interface graphical glitches

Microsoft PowerToys version
0.69.0
Installation method
PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
Image Resizer
Steps to reproduce
Graphical glitches from first opening.  Also occurs with other aspects (other tools in the product)

Will submit bug report as a comment.
Running RTX2080Ti graphics card with latest drivers on Win 10 Enterprise.
✔ Expected Behavior
Interface to display correctly.
❌ Actual Behavior
Interface corrupted.
Other Software
No response

cc: @niels9001

Not able to repro this, going to close. Let us know if you see this again!


Fix column indices in EnforceDistribution optimizer in Partial AggregateMode

Which issue does this PR close?
Closes #4873.
Rationale for this change
See #4873 for a failing example and some preliminary investigation.
The issue is in the EnforceDistribution physical optimizer (the query from the issue works without it).  After looking at this for a while, I think I see what's going on.  Normally, the column expressions for a group by have indices that correspond to the schema of the input operation. But for the case of a partial aggregation, these indices need to be updated to correspond to the schema of the partial aggregation instead of the input.
This make sense to me, and it fixes the query, but this is the first time I've looked at the Physical optimizer so someone who's more familiar with that side of things should definitely take a look before merging this.
Are these changes tested?
I added a test case based on the query reported in the issue.

The Column Index in the physical plan is confusing and error prone, I will take a closer look at this PR.

Regarding the fix, I think you can call below methods to simply the logic. I had test it on my local and it works.
                    // Build new group expressions that correspond to the output of partial_agg
                    let new_final_group: Vec<Arc<dyn PhysicalExpr>> =
                        partial_agg.output_group_expr();
                    let new_group_by= PhysicalGroupBy::new_single(
                        new_final_group
                            .iter()
                            .enumerate()
                            .map(|(i, expr)| (expr.clone(), partial_agg.group_expr().expr()[i].1.clone()))
                            .collect(),
                    );

Thanks for taking a look @alamb @mingmwang @metesynnada!  I made the simplification @mingmwang suggested in f32a8d9.

LGTM, good work 😀

Thank you everyone for your help!


(De)serialisation native module prototype implementation

A draft to introduce a native module to runtime. We bind a service to a special path/file in the file system. Write to the file are treated as input to the service. When enough input is present, the service is automatically triggered (on the last successful write) and the Wasm program is blocked until the service finishes. Note that this design is only safe in a single-thread situation, which will be addressed in further merge requests.
Changes:

Introduce a new trait Service:

name returns the service name as string,
serve takes input bytes and filesystem handler and executes the service, and
try_parse return true, if the input bytes are valid for the service.

Introduce a new constructor in Inode, namely NativeModule, that has similar semantics as a normal file. However, the content is treated as the input to the service. Important changes include:

Every time a fd_write is called, the try_parse is also called internally to check if there is enough input, and if so, serve is automatically called and the current program's file system handler is passed (duplicated) to the service for any FS access in the service.
When fd_close is called on a fd to a service, the content will be truncated/wiped.

Add a native module for deserialising Postcard encoding and serialising JSON, as a demonstration. Add two a Rust example for using the native module and separately, a baseline version for the same functionality in pure wasm. Add the corresponding data generator.
Change the policy generator: check the presence of a flag rather than using a value for flags enable-clock and debug.

Do you have an example program and command line for testing this code?

Do you have an example program and command line for testing this code?

I just commit the example. It is a super simple demonstration.

@ShaleXIONG can you rebase to get rid of the conflict?

Thanks!

+1 reached, merging.


Replace the unavailable linked test-case for issue 3405 with a reduced test-case

Re: issue #3405 and PR #3861.

/botio test

/botio makeref
Looks good. Thank you for the patch.


The link not work

https://github.com/geosolutions-it/geoserver-manager/wiki/Styles
Hi Team,
Thank you so much, it is a amazing tool, but when I read the wiki, I found some links not worked, please help check, thanks in advance！

[https://www.osgeo.cn/geoserver-user-manual/styling/webadmin/index.html](this style url?)


Clean out branches

There are 10 branches here, only a few of them have been recently edited. Can we delete the older ones?

Thanks. I've cleaned it up.


Use brew to install nRF command line tools

Heya mate, made a small PR so that the nRF command line tools can be installed easily (and automatically). Commit description below:

Tap the homebrew/cask-drivers channel so that the nRF command line tools can be installed via brew. Also update the brew syntax to use the newer specifier for casks (brew cask is deprecated now).

The only thing I'm unsure about is if one should untap the homebrew/cask-drivers channel after installing the nRF command line tools (because one isn't probably going to use it...). What do you say?

Nice! Thank you for the PR.
I guess we could leave it tapped, that way it will receive updates, if any.


Error occured when trying to finetune the pre-trained model on hmdb51

Hey,
I am trying to finetune the model on hmdb, but when I run the scripts tools/train_net.py, an error occured. Do you know how to fix it? Which version of caffe2 do you use, the official caffe2 or your personal fork of caffe2?
Traceback (most recent call last):
File "train_net.py", line 501, in
main()
File "train_net.py", line 496, in main
Train(args)
File "train_net.py", line 280, in Train
net_type=('prof_dag' if args.profiling == 1 else 'dag'),
File "/home/wenjie/anaconda2/envs/caffe2/lib/python2.7/site-packages/caffe2/python/data_parallel_model.py", line 32, in Parallelize_GPU
Parallelize(*args, **kwargs)
File "/home/wenjie/anaconda2/envs/caffe2/lib/python2.7/site-packages/caffe2/python/data_parallel_model.py", line 208, in Parallelize
input_builder_fun(model_helper_obj)
File "train_net.py", line 268, in add_video_input
use_local_file=args.use_local_file,
File "/home/wenjie/R2Plus1D/utils/model_helper.py", line 127, in AddVideoInput
data, label = model.net.VideoInput(
File "/home/wenjie/anaconda2/envs/caffe2/lib/python2.7/site-packages/caffe2/python/core.py", line 2067, in getattr
",".join(workspace.C.nearby_opnames(op_type)) + ']'
AttributeError: Method VideoInput is not a registered operator. Did you mean: []

@wenjie710 the latest caffe2 should have VideoInputOp (https://github.com/pytorch/pytorch/tree/master/caffe2/video)

Thanks very much! It works now.

@wenjie710 Can you write how you solved this issue, please? I also see it.

Unfortunately Caffe2 will need to be built from source in order to include an OpenCV and ffmpeg dependency required for those operators to be built. The binary install doesn't include these because we didn't want the additional dependencies. cc @pjh5


Reduce breadcrumbs

Removed breadcrumb padding

Relates to #392

Hey @BrookJeynes
As per our conversation on Teams,

DRY - Remove the word "Better" from categories so breadcrumb's even shorter

There is a tiny missalignment on multiple categories... Please add these 2 lines of CSS to fix it:

Hey @BrookJeynes
As per our conversation on Teams,
1. DRY - Remove the word "Better" from categories so breadcrumb's even shorter

2. There is a tiny missalignment on multiple categories... Please add these 2 lines of CSS to fix it:
   <img alt="Screenshot 2023-06-19 at 3 06 27 PM" width="317" src="https://user-images.githubusercontent.com/12601228/246944809-f49bd30e-c828-486b-a578-3144b80a3327.png">

Hey @tiagov8,
This has been resolved here https://github.com/SSWConsulting/SSW.Rules/pull/1020