Add sudo and popular languages to sandbox

using: macos sonoma 14.3.1 on intel, python 3.12, docker desktop 4.28.0
when i try running opendevin, it reports not being able to use npm, node, or sudo. i have some minimal experience tinkering with docker previously, and am aware that some containers don't come bundled in with these commands, which is probably what's causing the problem. however, i assume opendevin is supposed to be able to use packages installed on the computer, as the user would, and something is preventing that. my docker app is persistently notifying me that "configs changed by another app", no matter how many times i tell it to "re-apply configurations", so i'm guessing this has something to do with it

Can you try to git pull again? I think this has just been solved https://github.com/OpenDevin/OpenDevin/pull/390

"git pull" didn't seem to update anything, so i just recloned it, but it still can't access the commands

It's expected that npm isn't available (we should maybe beef up our sandbox image with several common programming langauges). But usually OpenDevin is able to install it. Did the LLM try to install npm, or did it fail hard?

It's expected that npm isn't available (we should maybe beef up our sandbox image with several common programming langauges). But usually OpenDevin is able to install it. Did the LLM try to install npm, or did it fail hard?

not sure what you mean by "fail hard", but when it tried to run "npm init" it got "npm: command not found", and when it tried to run "sudo apy install -y nodejs npm" it got "sudo: command not found"

for the record, i did a git pull just now and the issue seems to persist

i decided to do a docker pull just now and that seems to have fixed the issue

nevermind... i was using claude and decided to test out gpt 4, but that seemed to have caused the error to return. and changing it back to claude didn't fix it. git pull and docker pull didn't seem to find any updates

Does it continue after sudo fails? It's normal that it fails on some things, then it tries something else. It should root on the container now, so it is able to install directly. Can you share a log so we can see what attempts it's doing?

it continues, yes, but i've never let it continue running after it fails to sudo, bc i assumed that was unintended. if i let it run, it just ends up giving up
==============
STEP 7
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought="The index.js file is the entry point of the chat application. Currently, it's just logging a hello message. I should start building the peer-to-peer messaging functionality, but first, let's check if I have the necessary dependencies installed. I'll start by checking if Node.js and npm are installed.", action='think')

==============
STEP 8
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
CmdRunAction(command='node -v && npm -v', background=False, action='run')

OBSERVATION:
/bin/bash: line 1: node: command not found

==============
STEP 9
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought="It seems Node.js and npm are not installed in the environment. I'll need to install them to proceed with developing the application. However, I need to check whether I have sudo privileges to install these dependencies.", action='think')

==============
STEP 10
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
CmdRunAction(command='sudo -v', background=False, action='run')

OBSERVATION:
/bin/bash: line 1: sudo: command not found

==============
STEP 11
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought='It seems that I do not have sudo privileges in this environment to install Node.js and npm. I might already have the necessary packages included in the scope or accessible online for my use. An alternative could be to check if there\'s a local version of Node.js in the project files or in the environment that isn\'t on the PATH. I should run `find / -name "node"` to locate any Node.js binaries.', action='think')

==============
STEP 12
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
CmdRunAction(command='find / -name "node" 2>/dev/null', background=False, action='run')

OBSERVATION:
/proc/irq/0/node
/proc/irq/1/node
/proc/irq/2/node
/proc/irq/3/node
/proc/irq/4/node
/proc/irq/5/node
/proc/irq/6/node
/proc/irq/7/node
/proc/irq/8/node
/proc/irq/9/node
/proc/irq/10/node
/proc/irq/11/node
/proc/irq/12/node
/proc/irq/13/node
/proc/irq/14/node
/proc/irq/15/node
/proc/irq/24/node
/proc/irq/25/node
/proc/irq/26/node
/proc/irq/27/node
/proc/irq/28/node
/proc/irq/29/node
/proc/irq/30/node
/proc/irq/31/node
/proc/irq/32/node
/proc/irq/33/node
/proc/irq/34/node
/proc/irq/35/node
/proc/irq/36/node
/proc/irq/37/node
/proc/irq/38/node
/proc/irq/39/node
/proc/irq/40/node
/proc/irq/41/node
/proc/irq/42/node
/proc/irq/43/node
/proc/irq/44/node
/proc/irq/45/node
/proc/irq/46/node
/proc/irq/47/node
/proc/irq/48/node
/proc/irq/49/node
/proc/irq/50/node
/proc/irq/51/node
/proc/irq/52/node
/proc/irq/53/node
/proc/irq/54/node
/proc/irq/55/node
/proc/irq/56/node
/proc/irq/57/node
/proc/irq/58/node
/proc/irq/59/node

==============
STEP 13
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought='The find command did not locate a Node.js binary. This confirms that Node.js is not installed in this environment. However, I might not need to install it. This test environment is likely sophisticated enough to run JavaScript code without Node.js. I will try running the existing index.js file to see if this is the case.', action='think')

==============
STEP 14
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
CmdRunAction(command='js p2p-chat/index.js', background=False, action='run')

OBSERVATION:
/bin/bash: line 1: js: command not found

==============
STEP 15
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought="Running JavaScript files directly without the node command, which doesn't appear to exist in this environment, is not working. However, the environment might have a JavaScript interpreter. I could attempt to import and run the JavaScript code from index.js inline with a command that directly uses JavaScript interpreter. I'll attempt using nodejs and javascript commands to find if there's an available Javascript interpreter.", action='think')

==============
STEP 16
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
CmdRunAction(command='nodejs -v || javascript -v', background=False, action='run')

OBSERVATION:
/bin/bash: line 1: nodejs: command not found
/bin/bash: line 1: javascript: command not found

==============
STEP 17
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought='Node.js and javascript commands are both not found. Thus, it seems that I cannot run JavaScript files in this environment. Given the constraints, I may need to create the app using a different approach, perhaps by describing how I would develop it, instead of actually writing and running code.', action='think')

==============
STEP 18
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought="I can continue by outlining the steps I'd take to build the peer to peer chat application if I could run Node.js. This would include installing dependencies, building the application logic, and testing the application.", action='think')

==============
STEP 19
PLAN:

🔵 0 create a peer to peer messaging app

ACTION:
AgentThinkAction(thought="First, I would initialize the project by running 'npm init' to create a package.json file. Then, I'd install necessary libraries for a peer-to-peer chat like 'Node.js' or 'Socket.IO'. I would then implement the messaging functionality in index.js, the main entry file for the application. I'd write the logic for creating a connection between peers and for sending and receiving messages. Finally, I'd test the application by running it and sending messages between peers. However, since I cannot install Node.js and run JavaScript files in this environment, I can outline the process in a pseudo-code manner and write it into a new file 'steps.txt'.", action='think')

INFO:     connection closed
Client websocket disconnected (<CloseCode.ABNORMAL_CLOSURE: 1006>, None)
Error sending data to client

Short term workaround is to set the env var:
SANDBOX_CONTAINER_IMAGE="node:21-bullseye"

or similar.
Sounds like we need to beef up the sandbox image

Short term workaround is to set the env var:
SANDBOX_CONTAINER_IMAGE="node:21-bullseye"

or similar.
Sounds like we need to beef up the sandbox image

is this something i'm supposed to do, or am i waiting on an update for this?

yes, if you add that to your config.toml, it should work. You can also do
export SANDBOX_CONTAINER_IMAGE="node:21-bullseye"

before running OpenDevin

i'm getting this error suddenly:
2024/03/31 23:32:38 must use ASL logging (which requires CGO) if running as root
Failed to start container: Credentials store error: StoreError('Credentials store docker-credential-desktop exited with "".')
i assume it's related to the config change

if you're talking about the installation commands, i ran the
python -m pip install pipenv
python -m pipenv install -v
python -m pipenv shell
commands as sudo, bc they seemed to fail otherwise

Yeah makes sense that things are a little broken then--you probably want to fix up your environment so that you don't need sudo to run pip.

i tried again recently, after running git pull and going through the new installation instructions, but i'm still getting the "command not found" errors. for the record, i didn't run any of the "make" commands as sudo
==============
STEP 0
PLAN:
create a peer to peer messaging app
ACTION:
CmdRunAction(command='ls', background=False, action=<ActionType.RUN: 'run'>)
OBSERVATION:
drawing-app  p2p-chat
==============
STEP 1
PLAN:
create a peer to peer messaging app
ACTION:
AgentThinkAction(thought="Looks like there are two existing projects here: drawing-app and p2p-chat. Since my task is to create a peer-to-peer messaging app, the p2p-chat directory seems highly relevant. I should investigate that directory further to see if it's a good starting point or example for the app I need to build.", action=<ActionType.THINK: 'think'>)
==============
STEP 2
PLAN:
create a peer to peer messaging app
ACTION:
CmdRunAction(command='cd p2p-chat && ls', background=False, action=<ActionType.RUN: 'run'>)
OBSERVATION:
-bash: cd: p2p-chat: No such file or directory
==============
STEP 3
PLAN:
create a peer to peer messaging app
ACTION:
AgentThinkAction(thought="Hmm, it seems the p2p-chat directory doesn't actually exist. Perhaps I was mistaken in thinking there was an existing project to build off of. I should take a step back and think about what components I'll need to build a peer-to-peer messaging app from scratch.", action=<ActionType.THINK: 'think'>)
==============
STEP 4
PLAN:
create a peer to peer messaging app
ACTION:
AgentThinkAction(thought="To build a peer-to-peer messaging app from scratch, I'll need a few key components:\n\n1. A way for peers to discover each other and establish connections. I could use a simple client-server model where a central server keeps track of online peers and helps broker connections. Or I could use a more decentralized approach like distributed hash tables.\n\n2. A protocol for peers to exchange messages directly with each other once a connection is established. WebRTC could work well for this and would allow for real-time chat.\n\n3. A user interface for people to view and send messages. A web app using a framework like React could provide this.\n\nMy first step will be to set up the project scaffolding and pick my tech stack. I'm leaning towards a simple client-server approach using Node.js and WebSockets for signaling, WebRTC for peer-to-peer communication, and React for the frontend.", action=<ActionType.THINK: 'think'>)
==============
STEP 5
PLAN:
create a peer to peer messaging app
ACTION:
CmdRunAction(command='mkdir p2p-chat && cd p2p-chat && npm init -y && npm install express socket.io', background=False, action=<ActionType.RUN: 'run'>)
OBSERVATION:
-bash: npm: command not found
==============
STEP 6
PLAN:
create a peer to peer messaging app
ACTION:
AgentThinkAction(thought='Oops, looks like npm is not installed. I should install Node.js and npm first before trying to initialize the project and install dependencies. Let me try running apt install nodejs npm to get the latest versions of Node.js and npm on this Debian Linux environment.', action=<ActionType.THINK: 'think'>)
==============
STEP 7
PLAN:
create a peer to peer messaging app
ACTION:
CmdRunAction(command='sudo apt install nodejs npm', background=False, action=<ActionType.RUN: 'run'>)
OBSERVATION:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package nodejs
E: Unable to locate package npm
==============

Seems like it's running sudo OK, but it needs to run apt-get update for the packages to be available...

i'm curious what the... ig, "structure" of opendevin is. bc i'm assuming it's supposed to act like the user, having access to system commands. but i can run "npm" commands in terminal just fine, so i don't understand why it can't

@Kapowpenguin1 it's running inside of a Docker container ("the sandbox"), so it's a totally separate environment

@Kapowpenguin1 it's running inside of a Docker container ("the sandbox"), so it's a totally separate environment

but the web ui has the user set a working directory within the base machine, so i'm assuming it's supposed to use some sort of "passthrough" to perform operations on the base machine?

Correct--the base machine and the sandbox share files, but not programs etc. Your base machine might be a macbook or windows, but the sandbox is an ubuntu container

Correct--the base machine and the sandbox share files, but not programs etc. Your base machine might be a macbook or windows, but the sandbox is an ubuntu container

then, if i understand this correctly, the "sudo", "npm", "mkdir" commands are being run within the docker container, but the resulting files are created on the base machine?
if that's the case, does that mean that my error means those programs aren't installed in the docker container? or are they installed, but for some reason opendevin can't access them?

E: Unable to locate package nodejs

Did it continue by running apt upgrade?

if that's the case, does that mean that my error means those programs aren't installed in the docker container

Correct--that's what it means.

curious, then how is opendevin supposed to be used? or is this just part of the program being in alpha?

i would assume that the docker container is supposed to have all the required programs installed

We're planning to ship a sandbox container with most major languages installed, and OpenDevin should also be able to install missing languages. We also support the ability to supply your own pre-build container with the SANDBOX_CONTAINER_IMAGE env var

i would assume that the docker container is supposed to have all the required programs installed

We're planning to ship a sandbox container with most major languages installed (that's what this issue is about), and OpenDevin should also be able to install missing languages. We also support the ability to supply your own pre-build container with the SANDBOX_CONTAINER_IMAGE env var

"should also be able" i see, sounds like opendevin attempting to install everything from scratch is by design then. but it seems like the sandbox lacks the necessary programs to let it do so, so ig i just have to wait on an update for that?

necessary programs

like?

necessary programs

like?

the stuff that it keeps trying and failing to call; npm, node, sudo are the ones that came up for me

sudo is working if SANDBOX_TYPE is "exec" and with that, it can install the program.

sudo is working in ssh SANDBOX_TYPE  too now.

Hi @Kapowpenguin1 , wondering if you've tried the latest main tag now and see if your issue is resolved? There's been a ton of improvements and fixes since the original issue was reported.

Hi @Kapowpenguin1 , wondering if you've tried the latest main tag now and see if your issue is resolved? There's been a ton of improvements and fixes since the original issue was reported.

sorry, i hadn't really had the chance to test opendevin lately. i'll just close this and reopen a new issue if i find a problem


[SPARK-41329][CONNECT] Resolve circular imports in Spark Connect

What changes were proposed in this pull request?
This PR proposes to resolve the circular imports workarounds
Why are the changes needed?
For better readability and maintanence.
Does this PR introduce any user-facing change?
No, dev-only.
How was this patch tested?
CI in this PR should test it out.

cc @amaliujia

I prefer to merge https://github.com/apache/spark/pull/38991 first but please don't bother. I don't mind resolving conflicts 👍

Merged to master.

Ur, does this pass CI?

oh yeah. the tests passed but the linter failed. I just removed one ignore in linter that's not used, and I checked it locally.
But sorry I should have waited for the test results. Will make sure on that next time.

No problem at all. If you checked locally, that's more than enough. :)


18980 add isofficial client

Adds --official as in issue https://github.com/docker/docker/issues/18980
Signed-off-by: Fabrizio Soppelsa<EMAIL_ADDRESS>make test
...
ok  	github.com/docker/docker/api	0.006s	coverage: 92.5% of statements
ok  	github.com/docker/docker/api/client	0.007s	coverage: 1.3% of statements
ok  	github.com/docker/docker/api/client/formatter	0.007s	coverage: 99.4% of statements
ok  	github.com/docker/docker/api/client/inspect	0.002s	coverage: 92.7% of statements
ok  	github.com/docker/docker/api/server	0.048s	coverage: 10.8% of statements
ok  	github.com/docker/docker/api/server/httputils	0.004s	coverage: 19.5% of statements
?   	github.com/docker/docker/api/server/router	[no test files]
?   	github.com/docker/docker/api/server/router/build	[no test files]
?   	github.com/docker/docker/api/server/router/container	[no test files]
?   	github.com/docker/docker/api/server/router/local	[no test files]
?   	github.com/docker/docker/api/server/router/network	[no test files]
?   	github.com/docker/docker/api/server/router/system	[no test files]
?   	github.com/docker/docker/api/server/router/volume	[no test files]

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "18980-add-isofficial-client" git@github.com:fsoppelsa/docker.git somewhere
$ cd somewhere
$ git rebase -i HEAD~3
editor opens
change each 'pick' to 'edit'
save the file and quit
$ git commit --amend -s --no-edit
$ git rebase --continue # and repeat the amend for each commit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

One jenkins jobs just timeouts, I have no idea of the reason for the windows one failure, instead.

I think we should add a filter flag, rather than another specialized flag. That would be more consistent with other commands we already have. Examples:
$ docker search --filter official=true # only official images
$ docker search --filter official=false # only non-official images

$ docker search --filter automated=true # only automated builds
$ docker search --filter automated=false # only non-automated builds

+1 for generic search filters! :smiley:

+1 too, and I also agree with @thaJeztah in https://github.com/docker/docker/issues/18980#issuecomment-167989656 that --automated and -s, --stars should be implemented as filters as well.

Ah ok, so can we trash this? I will work on the options as soon as I will get some time :)

@fsoppelsa whatever works best for you; if you think you're able to work on this soon, we can also keep this PR open, and you can update this PR; otherwise, we can close this one, and you can open a new PR

@fsoppelsa I'm closing this now, feel free to ping us right before you're ready to push. If you push on a closed PR, you'll have to open a new one.


Maybe acting wrong please look into my test app

https://github.com/direktspeed/prove-bugs
https://github.com/direktspeed/prove-bugs/issues/1
it some how brakes can-zone

@frank-dspeed this would be better filed in can-zone's repo.  can-zone is currently unable to handle socket.io requests, but I can't remember the exact reasons why.


manual_user_install.sh  fails on install with clean RasPI OS Lite (64-bit)

The ordering of the install ends up attempting to create the venv before python3-venv is installed.
I ended up inserting
echo $sudoPW | sudo -S apt install -y python3-dev python3-pip python3-venv
just before the block where the ovos venv is created, but there may better ways to fix this.
Thanks

Can't think of a much better way than to install the packages it needs before they are used.

Fixed with this


InteractItemEvent is called twice?

SpongeForge version: spongeforge-1.12.2-2611-7.1.0-BETA-2970.jar
Forge version: Forge Mod Loader version <IP_ADDRESS>35
SpongeVanilla version: NO
Java version: 8_186
Operating System: DEBIAN

Plugins/Mods: SpongeForge and DynmapForge, rest are private

Issue Description
    @Listener
    @Include(InteractItemEvent::class, InteractBlockEvent::class)
    fun onInteract2(event: HandInteractEvent, @First player: Player) {
        println("testing somethiung")
    }

when I use this and right click an item (and look in the air) this is executed twice. which is unexpected and should not happen imo. If this is WAD please tell me how to make it only execute once.

Apparently right clicking AIR counts as an interactblockevent.

InteractItemEvent fires twice because there are
MainHand and OffHand SubEvents
you get both if you do not specify which one you want.


One 2D RGB sample file failed the processing of the Irg_2D pipeline in QA on 12/12/2023

Pipeline run: https://prefect1.hedwig-workflow-api.niaidqa.net/default/flow-run/a06c3900-50f4-4084-9a62-f9b39d9b7f64
Hedwig interface: https://hedwig2qa.niaid.nih.gov/sessions/U2Vzc2lvbjozMzEy/records
File system: \ai-fas12.niaid.nih.gov\RMLSOHedwigQA\Projects\RTB\darrellh\kaladik2-2023-1117-Testkeyword\Protein-2023-1117-testtag-Registration_samples\ROI_Images
Sample IA_P2_S2 - failed
All other three samples passed and tested using the Hedwig interface.

see: ("ERROR : convert: no images defined `/gs1/Scratch/hedwig_qa_scratch/tmp2lmx8g0d/IA_P2_S2.tiff' @ error/convert.c/ConvertImageCommand/3235.\n -- ")
suspect input tiff file exceeds allowable input dims for convert

debug convert https://gist.github.com/philipmac/555837dc5b5406af61de5e56d8b2223e

Issue with input PNG - user recreated input file and pipeline runs without issue


Removing hardcoded LDAP admin password

LDAP password is now generated when admin node starts, and LDAP parameters are passed via the pillar during bootstrap.

Depends-on: kubic-project/velum#301
Depends-on: kubic-project/salt#222
Depends-on: kubic-project/caasp-container-manifests#105

These work fine, however there is a issue with the ldap container entrypoint and escaping slashes, which seems to hit every few runs.

LDAP container fixed, working just fine now!


Framework: Upstream stable kernel support

Introduced upstream-stable as a new custom kernel supported. This will pull the latest stable from kernel.org.
Simplified logic in checking valid kernel types.

linux-next daily:
[INFO ] Old kernel: 4.15.0-1037-azure
[INFO ] New kernel: 5.0.0-rc5-next-20190207
upstream stable latest:
ubuntu:
[INFO ] Old kernel: 4.15.0-1037-azure
[INFO ] New kernel: 4.20.7
redhat:
[INFO ] Old kernel: 3.10.0-862.11.6.el7.x86_64
[INFO ] New kernel: 4.20.7
Expected failure:
[ERROR] Only ppa proposed proposed-azure proposed-edge latest linuxnext netnext upstream-stable are supported. E.g. -CustomKernel linuxnext/netnext/proposed.
Or use -CustomKernel , -CustomKernel
[ERROR] Custom Kernel: liunxnext installation FAIL. Aborting tests.
[ERROR] Failed to set custom config in VMs, abort the test

@iamshital please approve & merge this when you get in, the comment has been addressed.
Thank you!


Update cats-effect, cats-effect-laws, ... to 3.3.1

Updates

org.typelevel:cats-effect
org.typelevel:cats-effect-laws
org.typelevel:cats-effect-std
org.typelevel:cats-effect-testkit

from 3.3.0 to 3.3.1.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (3.3.0).
You might want to review and update them manually.
ember-server/js/yarn.lock
website/src/hugo/content/changelog.md

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

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #5770


Delphi 10.4.1 won't compile

As you can see in the image the exporter does not build with Delphi 10.4.1:

@shineworld thank you for your report. I will work in a backward compatibility.

We made this tool backwards compatible to Delphi 10 Seattle. Can you try again, please?

Works at 50% :)
Basically this is what happens:
I start the IDE environment and create only a unit View.
With Tools-> Exports To Python -> Export Forms:

I start the IDE environment and I create a New VCL Project (which create also a Form).
With Tools-> Exports To Python -> Export Current Project:
Then the py file and property file are finely created.

@shineworld , unfortunately I can't reproduce your issue. Try to attach your sample, then I can run a deeper investigate.

Sorry @Imbelo the issue was MINE !
Pratically I've saved form name as DesktopView.pas and class as DesktopView (manually renamed).
The form var was also DesktopView so this create the crash during form export for python.
The form was never compiled, just to export so I've missing to see the bug in my form unit.
Sorry again.
The IDE extension works perfectly.

I'm glad you got it working :)
Let me close this issue once it has been resolved.


How to know if the push is sent

Hi,
There's a way to know if the push is sent to APN Service?
Thanks

We're having a similar issue. Seems we are not reliably having our push notifications successfully.


Manifest schema version is not supported by quay.io

When pushing images to quay.io an error is raised concerning the manifest schema version, and the push fails.  The makisu version used was 0.1.9
Will, or should the quay.io registry be supported ?
{"level":"error","ts":1551317958.434947,"msg":"failed to push image: failed to push image: push manifest: PUT https://quay.io/v2/leaf_ai_dockerhub/studio-go-runner/manifests/0.9.12-feature-142-makisu-experiment-1gscYp 415: {\"errors\":[{\"code\":\"MANIFEST_INVALID\",\"detail\":{\"message\":\"manifest schema version not supported\"},\"message\":\"manifest invalid\"}]}\n"}

I'm also running into this issue and did some digging. Based on this comment it looks like Quay plans to implement support for Manifest v2-2. They haven't had a release since July 2018 but my guess is it will be available in the next release since quite a few people are asking for it.
Secondly,  #81 is about adding OCI support to makisu which I think would resolve the issue too.

@copland thanks for the digging.
I don't think Makisu should support manifest v1, but we can add OCI support.

As commented above, the right solution is for quay.io to support v2 manifest.


Missing constructor for ol.format.filter.EqualTo

In the latest OL release version 5.0.0 the constructor ol.format.filter.EqualTo is missing. There is also only an empty site in the docs: https://openlayers.org/en/latest/apidoc/module-ol_format_filter_And.html . I created a small fiddle for repro:
https://jsfiddle.net/m5bLtorf/7/
The method ol/format/filter~and works fine.

@ahocevar The constructor ol/format/filter/EqualTo works and according to the docs it is a part of the API:
https://openlayers.org/en/latest/apidoc/module-ol_format_filter_EqualTo-EqualTo.html
Also the logical Or is present in the docs:
https://openlayers.org/en/latest/apidoc/module-ol_format_filter_Or-Or.html
So this seems not be consistent. Using the static functions is fine. Maybe there should be section in the upgrade note about using static filter functions instead of constructors because of the (API-) removal in 5.0.0.
By the way thank you very much for releasing 5.0.0!

Actually my previous comment was wrong. Nothing has changed API wise here, it's only that the documentation generation process might output things differently due to the change to path types.
The filter/And constructor was never part of the API, but filter/Or always was.
Personally I'd be in favor of deprecating the constructors, and removing the @api annotations for v6.
I think we can leave this issue closed because the filter/EqualTo constructor is actually not missing from the docs (see https://openlayers.org/en/v5.0.0/apidoc/module-ol_format_filter_EqualTo-EqualTo.html). API changes for ol/filter would be a separate issue.

I see no reason to add another filter constructor to the API, since all filters are available through static functions. Like said above, I'd rather remove the other filter constructors from the API. Feel free to open an issue for that.


Better exception handling for rendering library.

Catch exceptions closer to the source.
Factor out exception printing code.
Have widget library hand the rendering library some context when syncing RenderObjectWrappers to aid with debugging.
Fix a bug in flex.dart whereby _overflow was compared when null.

LGTM


Not able to run multiple instance of Application-Insights-Istio-Adapter in kubernetes.

Hello Guys,
I am trying to run multiple instances of Application-Insights-Istio-Adapter in the same cluster and different namespaces. For the first instance of Application-Insights-Istio-Adapter, It's working fine and sending logs to Application Insight-1. But in the second instance, it's not sending the data to Application Insight-2.  There is no error in the mixer and app insight adapter. But seen some info:-
2019-11-26T06:00:07.952673Z	info	scheme "" not registered, fallback to default scheme
2019-11-26T06:00:07.952702Z	info	ccResolverWrapper: sending update to cc: {[{application-insights-istio-mixer-adapter-service-test.test-telemetary.svc.cluster.local:6789 0  }] }
2019-11-26T06:00:07.952735Z	info	grpcAdapter	Connected to: application-insights-istio-mixer-adapter-service-test.test-telemetary.svc.cluster.local:6789
2019-11-26T06:00:27.953469Z	info	grpc: addrConn.createTransport failed to connect to {application-insights-istio-mixer-adapter-service-test.test-telemetary.svc.cluster.local:6789 0  }. Err :connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:6789: i/o timeout". Reconnecting...
2019-11-26T06:00:07.953187Z	info	base.baseBalancer: got new ClientConn state: {{[{application-insights-istio-mixer-adapter-service-test.test-telemetary.svc.cluster.local:6789 0  }] } }

Follow this troubleshooting list for the part of the setup that doesn't work.
https://github.com/microsoft/Application-Insights-Istio-Adapter/blob/master/SETUP.md#troubleshooting
Basic things you want to check are listed there. Since your first setup works, but not the second one, chances are you haven't repeated some of the steps the second time around.

hmmm, It's working now. I have missing ignoring and adding my desired namespaces in the conf file.

Cool, if it works - feel free to close the issue. Let us know if you hit other problems.


Login issue on Android

I cannot login with Google on the current release build of the app.
I've done a bit of debugging and the problem seems to be in the SignIn.kt file, in the data provided to the Authentication.signIn (line 37) because the value that is currently being provided is the id (the email), instead of the idToken.
Because of this the Firebase authentication fails.
Either using the idToken instead of the id or changing the order of the clauses in the when fixed the issue.

Good catch! Want to open a pull request?

My only doubt is which one of the two possibile solution is the correct one, since the tokenId was removed in favor of the id in a previous PR and I don't know if it was an error or if it was an actual fix. Logging with my user always matches the first clause in the when, regardless of which one of the two is set as the first one, so I cannot really test the correctness of either solution.

TBH that other PR wasn't 100% clear to me. Using tokenId instead of just id seems a lot more correct. Plus it works on your device so I'd say let's change the first branch and leave the other one untouched. That first branch was probably a mistake from me.

This confirms it should be idToken https://developers.google.com/identity/android-credential-manager/android/reference/com/google/android/libraries/identity/googleid/GoogleIdTokenCredential
But this sounds misleading
https://developer.android.com/training/sign-in/credential-manager

If the conversion succeeds, extract the GoogleIdTokenCredential's ID, validate it, and authenticate the credential on your server.

Think we can close this?


Add error when trying to load non-existant config.yaml

As noted in https://github.com/huggingface/accelerate/issues/1073, the user tried to perform accelerate launch --config_file MY_CONFIG.yaml ... and if the file does not exist then a non-intuitive trace is given:
FileNotFoundError: [Errno 2] No such file or directory: '/root/.cache/huggingface/accelerate/default_config.yaml'

Even though the user specified their own custom configuration.
This PR introduces a guard now instead of a magic-always-passing dropback when using accelerate launch that originally would then check if the default configuration could be used instead.
New error message:
(accelerate) zach@workstation:~/accelerate/accelerate$ accelerate launch --config_file "config.yml" test.py
Traceback (most recent call last):
  File "/home/zach/miniconda3/envs/accelerate/bin/accelerate", line 8, in <module>
    sys.exit(main())
  File "/home/zach/accelerate/accelerate/src/accelerate/commands/accelerate_cli.py", line 45, in main
    args.func(args)
  File "/home/zach/accelerate/accelerate/src/accelerate/commands/launch.py", line 1082, in launch_command
    defaults = load_config_from_file(args.config_file)
  File "/home/zach/accelerate/accelerate/src/accelerate/commands/config/config_args.py", line 46, in load_config_from_file
    raise FileNotFoundError(
FileNotFoundError: The passed configuration file `config.yml` does not exist. Please pass an existing file to `accelerate launch`, or use the the default one created through `accelerate config` and run `accelerate launch` without the `--config_file` argument.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.


Sync data on an interval

This is a script that can be used to regularly sync website data (stars, updated at, and eventually popular installations).
TODO:

[x] Get it working on Heroku Travis CI cron
[x] Schedule it to run daily

💥
Well, I decided to try switching to having the sync run on Travis CI.  The good news is that Travis CI was able to push.
The bad news is that it pushed to master, which caused this to merge, and the Pages build failed because it was pushed by a bot that can't use octicons (see #14).
I'll open another PR to get that fixed up. :/

👍


Blocks appearing above fixed toolbox/flyout

This only seems to happen with the fixed one, not the pop-out show/hide one. Can we just set a z-index or something?

Assigning you @picklesrus as I think you mentioned this problem is fixed by your upcoming changes :)

Yup, the stuff I'm working on should fix this for "free" :) I'm doing a bit of both of what @drigz mentioned.  I'm splitting everything up in to multiple svgs so the flyout becomes a separate svg which ends up on top.  You can see an early (though now out of date and quite buggy version) here: http://blocktests-1261.appspot.com/bt/tests/flyoutplayground.html.
I'll update that link again once I work through chunks of bugs.  Proper translation and zoom coming soon.

Should be resolved by the Scratch-style toolbox.


Updated readme, license, travis and linted files

#28

LGTM

ready for merge

Nice :)
LGTM, can be merged


Follow refactor

This PR refactors the following / follower functionality as follows (see what I did there?):

puts in faux pagination, so profiles aren't fetch for an entire list of followers / followings
fetches the profile using async and usecache flags so the request aren't jamming up the xhr request queue
since other nodes following / followers list are cached, the follow data of our own node will be used to adjust the list as appropriate (at least as it pertains to our own node showing up or not on a list)

closes #200

The connected peers page looks a little weird now.

I made a quick patch to apply the same changes to the connected peers page. #688

Edit: deleted my comment about the following, I got tripped up by Mike following me back within seconds of me following him.


Do reswift support sub stores?

We are building a product consist of

multiple modules
REDUX

Note: The whole project going to be the combination of these modules!
We are planning for independent modules which have its own sub stores and the ability to talk between modules?
Please let me know, Any solution possible with ReSwift?

You can create as many Stores as you like, in as many modules as you want. Syncing changes becomes harder, and ReSwift is designed to have 1 store for the while app state. You'll be better off creating ModuleState1, ModuleState2, ModuleState3, ... and combine them in a single AppState. Then one store will do the trick. See https://github.com/ReSwift/ReSwift/issues/377 for a discussionon that.
If you find you need to have multiple stores, maybe ReSwift isn't a good fit, though, and a more general-purpose reactive library like RxSwift with some local state can help.


Mac and Spyder 4.0

Minor problem with a Mac and using Anaconda Spyder 4.0.0b1
The normal spyder opens up but the icons for new files and open directory do not work.
Work around is to use the file explorer to search for file but a bit cumbersome.
'Nobody expects the spanish inquisition'

Please post a screenshot of the buttons you say don't work. Thanks!

We'll take a look at this for beta2. Please stop closing and opening the issue, there's no need for that.

Thanks @bcolsen. Closing as a duplicate of #7111.


Use push_id to allow name changes in many cases

People have a tendency to change their name (especially when first using the app) which leads to duplicates. I realized the push_id will usually come through the same, so I first look for that to update, then fall back to the normal flow.
This will currently error if you use someone else's name, but in our experience, that's less likely to happen than people changing their name.

:clap:


prepare rc/1.1.0

Codecov Report

Merging #52 (1ef6f61) into develop (bf63a32) will not change coverage.
The diff coverage is 100.00%.

:exclamation: Current head 1ef6f61 differs from pull request most recent head 0e044e3. Consider uploading reports for the commit 0e044e3 to get more accurate results

@@            Coverage Diff            @@
##           develop       #52   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        11    +1
  Lines           53        75   +22
=========================================
+ Hits            53        75   +22

Impacted Files
Coverage Δ

lib/src/bloc/action_bloc.dart
100.00% <ø> (ø)

lib/src/bloc/action_cubit.dart
100.00% <ø> (ø)

lib/src/mixins/bloc_action_mixin.dart
100.00% <ø> (ø)

lib/src/bloc_action_listener.dart
100.00% <100.00%> (ø)

lib/src/bloc_builder.dart
100.00% <100.00%> (ø)

lib/src/bloc_defaults.dart
100.00% <100.00%> (ø)

lib/src/bloc_factory.dart
100.00% <100.00%> (ø)

lib/src/bloc_hook.dart
100.00% <100.00%> (ø)

lib/src/bloc_listener.dart
100.00% <100.00%> (ø)

lib/src/config/hooked_bloc_config.dart
100.00% <100.00%> (ø)

... and 1 more

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 eef956c...0e044e3. Read the comment docs.


google.auth.getClient options for domain wide delegation

Hi,
When using the method google.auth.getClient method, there's no way of specifying a user to impersonate when using a service account. The only way to do it is to use the google.auth.JWT constructor and that bypasses the internal credentials caching which is sad. I would suggest to add an additional param in getClient options to pass to fromJSON second argument (in googleauth.js).
Thanks

@JustinBeckwith

So - I think this should actually work :) You should be able to do something like this:
const client = await auth.getClient({
  credentials: {
    type?: string;
    client_email?: string;
    private_key?: string;
    private_key_id?: string;
    project_id?: string;
    client_id?: string;
    client_secret?: string;
    refresh_token?: string;
  }
);

Can you give that a try?

I'm not sure it's working in my end. Is this still the updated way to use this? I can't see it in the documentation.
I'm using a google cloud function to create calendar entries.
Here's how my implementation looks like:
exports = module.exports = functions.firestore
  .document('reservations/{reservationId}')
  .onCreate(async (snapshot, context) => {
    const credentials = require('./service-credentials.json');
    const auth = await google.auth.getClient({
      credentials,
    });
    const event = await snapshot.data();

    return await addEvent(event, auth);
});

function addEvent(event, auth) {
return new Promise((resolve, reject) => {
    calendar.events.insert(
      {
        auth,
        calendarId: event.email,
        resource: event.resource,
      },
      (err, res) => {
        if (err) {
          console.info('Rejecting because of error', err);
          reject(err);
        } else {
          console.info('Request successful', res.data);
          resolve(res.data);
        }
      }
    );
  });
}

I'm getting below error:
Error adding event:  { Error: Invalid Credentials
    at Gaxios.request (/srv/node_modules/googleapis/node_modules/gaxios/build/src/gaxios.js:70:23)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)
  response:
   { config:
      { url: 'https://www.googleapis.com/calendar/v3/calendars/jojo%40vananaz.com/events',
        method: 'POST',
        paramsSerializer: [Function],
        data: [Object],
        headers: [Object],
        params: {},
        validateStatus: [Function],
        retry: true,
        body: '{"summary":"Charging reservation ","description":"Reservation scheduled at [object Object] - [object Object] ","start":{"dateTime":"2019-07-24T22:00:00.000Z"},"end":{"dateTime":"2019-07-24T23:00:00.000Z"}}',
        responseType: 'json',
        retryConfig: [Object] },
     data: { error: [Object] },
     headers:
      { 'alt-svc': 'quic=":443"; ma=2592000; v="46,43,39"',
        'cache-control': 'private, max-age=0',
        connection: 'close',
        'content-encoding': 'gzip',
        'content-type': 'application/json; charset=UTF-8',
        date: 'Fri, 19 Jul 2019 09:06:39 GMT',
        expires: 'Fri, 19 Jul 2019 09:06:39 GMT',
        server: 'GSE',
        'transfer-encoding': 'chunked',
        vary: 'Origin, X-Origin',
        'www-authenticate': 'Bearer realm="https://accounts.google.com/", error=invalid_token',
        'x-content-type-options': 'nosniff',
        'x-frame-options': 'SAMEORIGIN',
        'x-xss-protection': '1; mode=block' },
     status: 401,
     statusText: 'Unauthorized' },
  config:
   { url: 'https://www.googleapis.com/calendar/v3/calendars/jojo%40vananaz.com/events',
     method: 'POST',
     paramsSerializer: [Function],
     data:
      { summary: 'Charging reservation ',
        description: 'Reservation scheduled at [object Object] - [object Object] ',
        start: [Object],
        end: [Object] },
     headers:
      { 'Accept-Encoding': 'gzip',
        'User-Agent': 'google-api-nodejs-client/2.0.4 (gzip)',
        Authorization: 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjI2ODc2Mjc4OWIyNzYyMjU2OWU3OGYwMjlhZGNhNGQ4NDUxOWUzYTkifQ.eyJpc3MiOiJ5b3VyLXN0YW5kLWF1dGgtc2VydmljZUB5b3Vyc3RhbmQtYXBwcy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInN1YiI6InlvdXItc3RhbmQtYXV0aC1zZXJ2aWNlQHlvdXJzdGFuZC1hcHBzLmlhbS5nc2VydmljZWFjY291bnQuY29tIiwiYXVkIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY2FsZW5kYXIvdjMvY2FsZW5kYXJzL2pvam8lNDB2YW5hbmF6LmNvbS9ldmVudHMiLCJleHAiOjE1NjM1MzA3OTgsImlhdCI6MTU2MzUyNzE5OH0.eVLyJtmA3J7cMeYpwUV5S0-T9n2Zqd8CgzQpeP5q-JLtk9uuCMIesLQFE-CGSPdqgialwFgkP3dGgL8ogwFewyVzOJlhbpcUQNIfhcJ8KTcugEJc1YcwhFa6KZ7c-CrKx6hq53lT024UlCI7h0BNWR9k8RzsMnkfqJSTFLrM68aqmORJgVRIfdOCQgQn0PqH0pum0jAIAhfidIARCLsxeSST1wn-vm8tSzEESv7cDSyhFw-gG7sA1uZOchKNnRiH8P-V4-V3XL7MuaPLhVtiNxS0l4REptvRxRufNQqwbJ03sfyJZTyM9ElCzSxvXCL9wD7NfnBCsRHnF_EdRaRbgw',
        'Content-Type': 'application/json',
        Accept: 'application/json' },
     params: {},
     validateStatus: [Function],
     retry: true,
     body: '{"summary":"Charging reservation ","description":"Reservation scheduled at [object Object] - [object Object] ","start":{"dateTime":"2019-07-24T22:00:00.000Z"},"end":{"dateTime":"2019-07-24T23:00:00.000Z"}}',
     responseType: 'json',
     retryConfig:
      { currentRetryAttempt: 0,
        retry: 3,
        retryDelay: 100,
        httpMethodsToRetry: [Array],
        noResponseRetries: 2,
        statusCodesToRetry: [Array] } },
  code: 401,
  errors:
   [ { domain: 'global',
       reason: 'authError',
       message: 'Invalid Credentials',
       locationType: 'header',

Hello, this worked perfectly for me!!! Thank you, especially the tests in the PR were really useful for understanding the implementation.
const Auth = new google.auth.GoogleAuth({
	scopes: [
		'https://www.googleapis.com/auth/gmail.settings.basic',
		'https://www.googleapis.com/auth/gmail.settings.sharing',
		'https://www.googleapis.com/auth/admin.directory.user',
	],
	clientOptions: { subject<EMAIL_ADDRESS>},
});

const auth = await Auth.getClient();

auth.subject ===<EMAIL_ADDRESS>// true

And now my admin API requests work. Thank you!!!!!!!
p.s. wish this was documented better somewhere. This helped me impersonate an admin on my service account on Nodejs.
(that last bit was for Google searchers).

It doesn't work for me and I cannot understand why.
I'm trying to build a multiuser app that will use cloud functions to work with google drive, I need a single specific user, a kind of "administrator" as owner of the files and folder created.
I'm testing the idea and running the cloud function hosted by Firebase, successfully deployed the following code
const {google} = require('googleapis');
const {GoogleAuth} = require('google-auth-library');
const functions = require('firebase-functions');

exports = module.exports = functions.https.onCall(async (data,context) =>{

    const auth = new GoogleAuth({
        scopes: [
            "https://www.googleapis.com/auth/drive"
        ],
        clientOptions: { subject<EMAIL_ADDRESS>}
    });
    const client = await auth.getClient();
    const drive = google.drive({version: 'v3',client});
    let myFile;
    var fileMetadata = {
        'name': 'JustCreateFolderTest',
        'mimeType': 'application/vnd.google-apps.folder'
      };
    await drive.files.create({
        resource: fileMetadata,
        fields: 'id'
        })
        .then(file=> {
            console.log('Folder Id: ', file.id);
            myFile=file
        })
        .catch(err=>console.error(err));
    return 'Folder Id: ', myFile.id
});

run the function from inside a Vuejs app as follows
      impersonateSGT(){
        console.log('Chiamata a impersonateSGT')
        let driveCreateFolderAsSGT = firebase.functions().httpsCallable('driveCreateFolderAsSGT2')
        driveCreateFolderAsSGT()
          .then(result =>{
              console.log(result)
          })
          .catch( err => {
              console.log(err.message)
          })
      },

and the cloud function logs report the following error
{ Error: Login Required at Gaxios._request (/srv/node_modules/googleapis-common/node_modules/gaxios/build/src/gaxios.js:85:23) at  at process._tickDomainCallback (internal/process/next_tick.js:229:7) response: { config: { client: [Object], url: 'https://www.googleapis.com/drive/v3/files?fields=id', method: 'POST', paramsSerializer: [Function], data: [Object], headers: [Object], params: [Object], validateStatus: [Function], retry: true, body: '{"name":"JustCreateFolderTest","mimeType":"application/vnd.google-apps.folder"}', responseType: 'json', retryConfig: [Object] }, data: { error: [Object] }, headers: { 'alt-svc': 'h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"', 'cache-control': 'private, max-age=0', connection: 'close', 'content-encoding': 'gzip', 'content-security-policy': 'frame-ancestors 'self'', 'content-type': 'application/json; charset=UTF-8', date: 'Mon, 04 May 2020 16:41:54 GMT', expires: 'Mon, 04 May 2020 16:41:54 GMT', server: 'GSE', 'transfer-encoding': 'chunked', vary: 'Origin, X-Origin', 'www-authenticate': 'Bearer realm="https://accounts.google.com/"', 'x-content-type-options': 'nosniff', 'x-frame-options': 'SAMEORIGIN', 'x-xss-protection': '1; mode=block' }, status: 401, statusText: 'Unauthorized', request: { responseURL: 'https://www.googleapis.com/drive/v3/files?fields=id' } }, config: { client: Compute { domain: [Object], _events: {}, _eventsCount: 0, _maxListeners: undefined, transporter: DefaultTransporter {}, credentials: [Object], certificateCache: {}, certificateExpiry: null, certificateCacheFormat: 'PEM', refreshTokenPromises: Map {}, _clientId: undefined, _clientSecret: undefined, redirectUri: undefined, eagerRefreshThresholdMillis: 300000, forceRefreshOnFailure: false, serviceAccountEmail: 'default', scopes: [Array] }, url: 'https://www.googleapis.com/drive/v3/files?fields=id', method: 'POST', paramsSerializer: [Function], data: { name: 'JustCreateFolderTest', mimeType: 'application/vnd.google-apps.folder' }, headers: { 'x-goog-api-client': 'gdcl/4.1.0 gl-node/8.16.0 auth/6.0.0', 'Accept-Encoding': 'gzip', 'User-Agent': 'google-api-nodejs-client/4.1.0 (gzip)', 'Content-Type': 'application/json', Accept: 'application/json' }, params: { fields: 'id' }, validateStatus: [Function], retry: true, body: '{"name":"JustCreateFolderTest","mimeType":"application/vnd.google-apps.folder"}', responseType: 'json', retryConfig: { currentRetryAttempt: 0, retry: 3, httpMethodsToRetry: [Array], noResponseRetries: 2, statusCodesToRetry: [Array] } }, code: 401, errors: [ { domain: 'global', reason: 'required', message: 'Login Required', locationType: 'header', location: 'Authorization' } ] }
...any idea

@MGCataldo could I trouble you to open a new issue?  Thanks!

@JustinBeckwith
I'm shocked for the very very fast response, Thank you!!!
I've open a new issue as requested.

Closed issue "google.auth.getClient options for domain wide delegation #610" doesn't work for me #955

I hope to clarify my mind there.
Thank you once more!

@nabilfreeman
This is a closed issue but I'm going to ask some details to explore why the solution works for you and not for me.
Please nabilfreeman, can you place to libs used and some details on the environment?
Thank you!

Hi @MGCataldo, it's been a while since we worked on this but I'll try and share what I remember...
That auth error you are getting suggests that Google is rejecting your request due to invalid credentials rather than not being able to find the user.

Make sure GOOGLE_APPLICATION_CREDENTIALS=./auth.json is set in environment and the json file contains your service account credentials (can't show mine here due to security)
In Google Cloud console make sure your service account has domain-wide delegation enabled

p.s. here I'm assuming you are authenticating via service account, using G Suite and the person you are trying to impersonate is a member of that G Suite organization.
If any of those are different I won't be able to help any more.
Good luck!

@nabilfreeman
thank you very much for the answer!
I can confirm your assumptions are valid.
Unfortunately I'm still getting the some errors even if I can confirm that:
domain-wide delegation is active

The person I'm trying to impersonate is a G-suite member
From the G-Suite admin console I've enabled the  delegation as explained here:
Delegating domain-wide authority to the service account
I've download the Service account auth.json file from console.cloud.google.com -- Service account as follows

and I've put the file in my Vuejs project under the folder "functions"
I've created the environment variable GOOGLE_APPLICATION_CREDENTIALS and set it:

from my pc using powershell command $env:GOOGLE_APPLICATION_CREDENTIALS="./auth.json"
and also from the cloud functions editor

the logs are

I really cannot realize what is going wrong...

@MGCataldo
Ok, that's a shame it's not working for you! I haven't used Google Cloud Functions but I'm hoping they are fairly similar to Lambda which is where we actually implemented this.
Try removing the quote marks from the value in the environment text field. I've run into this before, even though it's copy pasted from here:
https://cloud.google.com/docs/authentication/getting-started#linux-or-macos
It can still be parsed incorrectly when loaded as an environment file.
https://stackoverflow.com/a/48411223/1395078
Hopefully that's it.
p.s. What happens when you run on your PC? Does it work?

Try removing the quote marks from the value in the environment text field.
Not working, it is like in firebase cloud function environement the library "google-auth-library" cannot find/use the enviroment variable GOOGLE_APPLICATION_CREDENTIALS

I've also tried to build the envirnoment variable in index.js as follows:

first I've created a variable for firebase cloud function: using firebase CLI:
firebase functions:config:set auth.json_file_name="auth.json"
then in index.js I've built the GOOGLE_APPLICATION_CREDENTIALS environnebt variable like so:
process.env.GOOGLE_APPLICATION_CREDENTIALS=process.cwd()+'/'+functions.config().auth.json_file_name;
proved in a different module that the needed variables are available:
console.log( process.env.GOOGLE_APPLICATION_CREDENTIALS+ " "+ process.env.GCLOUD_PROJECT);
proved that json file containing credential can be read like so:

const myJson = require(process.cwd()+'/'+functions.config().auth.json_file_name);
console.log(myJson) // ... shows the content!

tested the function: it didn't work

Error: Login Required at Gaxios._request (/srv/node_modules/googleapis-common/node_modules/gaxios/build/src/gaxios.js:85:23)

It didn't qork also after I've tried to directly read the auth.json file and push the object into getClient method like so:

...
const myJson = require(process.cwd()+'/'+functions.config().auth.json_file_name);
exports = module.exports = functions.https.onCall(async (data,context) =>{
    const auth = new GoogleAuth({
        scopes: [
            "https://www.googleapis.com/auth/drive"
        ],
        clientOptions: { subject<EMAIL_ADDRESS>}
    });
    const client = await auth.getClient({credentials:myJson});
...

no way, it's a nightmare... I've asked support firebase support team for help.
@nabilfreeman
I thank you very much for having tried to help!

I've taken a look to the source code of the "google-auth-library" and referring my previous post I've to add that I've also tried to pass credentials object directly to the GoogleAuth object creation, plus many other possible combination as work around... none of them worked.
The example I've build is for a folder creation on Google Drive, the folder must have a specific user as the folder owner, not the service account.
For a further exploration and possible work around I slightly modified the script to let the service account create the folder and immediately after transfer the folder property to the target user as follows:
const {google} = require('googleapis');
const functions = require('firebase-functions');

exports = module.exports = functions.https.onCall(async (data,context) =>{

    const auth = await google.auth.getClient({
        scopes: [
         "https://www.googleapis.com/auth/drive",
        ]
     });

    const drive = google.drive({version: 'v3',auth});

    let myFile;
    var fileMetadata = {
        'name': 'JustCreatedFolderTest',
        'mimeType': 'application/vnd.google-apps.folder'
        };

    await drive.files.create({
        resource: fileMetadata,
        fields: 'id',
        parents:["1fvBxKSQaeGXejdJHfhoUbPrOJO7w2nOU"]
        })
        .then(file=> {
            let fileId = file.data.id

            return drive.permissions.create({
                "fileId": fileId,
                "transferOwnership": true,
                "resource": {
                  "role": "owner",
                  "type": "user",
                  "emailAddress"<EMAIL_ADDRESS>                }
            })
        })
        .then(res=>{
            return "Cartella create, risposta: "+res;
        })
        .catch(err=>{console.error("errore nella creazione ",err);
            return 'Failed, error: '+err.message});
});

The folder have been correctly created but the problem here is that the Google policies disallow the transfer for files/folder property across different domains.
..rubrik created a simpler cube to solve... :)

OK, now I'm sure the issue #610 is to be closed as resolved.
Below the working code for anyone who need to let a Service Account impersonate an arbitrary G-Suite user to accomplish whatever function on google cloud platform.
The example is for a google drive folder creation, other goal can be achieved using the related scope (i.e. gmail, calendar, storage or whatever).
The code runs on node >= 8 that is the presently supported LTS conf for Firebase Cloud Functions
const {google} = require('googleapis');
const functions = require('firebase-functions');
const myJson = require(process.cwd()+'/'+functions.config().auth.json_file_name);

exports = module.exports = functions.https.onCall(async (data,context) =>{

    const parentFolder = data.parentFolder;
    const folderName = data.folderName;
    const folderOwner =  data.folderOwner;

    const envParms = JSON.parse(process.env.FIREBASE_CONFIG);

    const auth = new google.auth.GoogleAuth({
        credentials: myJson,
        projectId: envParms.projectId,
        scopes: [
            "https://www.googleapis.com/auth/drive"
        ],
        clientOptions: { subject: folderOwner }
    });
    const client = await auth.getClient();

    const drive = google.drive({version: 'v3',auth});

    let myFile;
    var fileMetadata = {
        'name': folderName,
        'mimeType': 'application/vnd.google-apps.folder',
        'parents':[parentFolder]
        };

    try {
        let file = await drive.files.create({resource: fileMetadata,
                                             fields: 'id'})
        let fileId = file.data.id
        return 'Folder created, id: '+(fileId);
    }
    catch(err){
        console.error("error during folder creation: ",err);
        return 'Failed, error: '+err.message};
});

@MGCataldo thanks for that code sample, I think this is exactly what I need for a project I'm working on. Looking at the code though, you create a client constant which doesn't seem to be used anywhere in the sample. Can you explain what its purpose is?


Documentation cleanup

Coverage increased (+48.35%) to 48.35% when pulling e178a9e49976bea9c900e121dcf3ff6a7ab7c4fc on documentation_cleanup into 5d81558bc57be2653ae504e2bb0b64665dbf9e20 on master.

Coverage increased (+80.99%) to 80.99% when pulling 58251fbe381e6692b6ae8a7ff044617d73985098 on documentation_cleanup into 5d81558bc57be2653ae504e2bb0b64665dbf9e20 on master.

Coverage increased (+81.07%) to 81.07% when pulling 89a70803cd5f15658e569326ec9397e9bd199b09 on documentation_cleanup into 5d81558bc57be2653ae504e2bb0b64665dbf9e20 on master.

Coverage increased (+81.12%) to 81.12% when pulling 69919c65aaa2a7ed192c35ac376d5b99006dcd90 on documentation_cleanup into 5d81558bc57be2653ae504e2bb0b64665dbf9e20 on master.

Coverage increased (+81.27%) to 81.27% when pulling 3c424fa7f33268501b916a27b0984adbb7cc65a0 on documentation_cleanup into 5d81558bc57be2653ae504e2bb0b64665dbf9e20 on master.


[FIX][WEBSITE-9224]fix wechat doc and wechat form display

Purpose of the pull request
fix the doc according to code changes
refer to https://github.com/apache/dolphinscheduler/pull/9225
Brief change log
Verify this pull request
I have test this locally.

Codecov Report

Merging #9439 (c7ad4ec) into dev (4a29c6a) will decrease coverage by 0.25%.
The diff coverage is 43.28%.

:exclamation: Current head c7ad4ec differs from pull request most recent head b771d90. Consider uploading reports for the commit b771d90 to get more accurate results

@@             Coverage Diff              @@
##                dev    #9439      +/-   ##
============================================
- Coverage     39.98%   39.73%   -0.26%
- Complexity     4375     4399      +24
============================================
  Files           822      825       +3
  Lines         32924    33206     +282
  Branches       3656     3680      +24
============================================
+ Hits          13165    13194      +29
- Misses        18532    18783     +251
- Partials       1227     1229       +2

Impacted Files
Coverage Δ

...lugin/alert/wechat/WeChatAlertParamsConstants.java
0.00% <ø> (ø)

...uler/plugin/alert/wechat/WechatAppChatMessage.java
0.00% <0.00%> (ø)

...cheduler/plugin/alert/wechat/WechatAppMessage.java
0.00% <0.00%> (ø)

...inscheduler/api/controller/ExecutorController.java
40.00% <ø> (ø)

...cheduler/api/service/impl/ExecutorServiceImpl.java
41.96% <ø> (ø)

...r/api/service/impl/ProcessInstanceServiceImpl.java
60.22% <ø> (-0.12%)
:arrow_down:

...er/api/service/impl/TaskDefinitionServiceImpl.java
24.01% <ø> (+0.05%)
:arrow_up:

.../org/apache/dolphinscheduler/common/Constants.java
80.95% <ø> (ø)

...che/dolphinscheduler/common/enums/AlertStatus.java
0.00% <0.00%> (ø)

...pache/dolphinscheduler/common/enums/AlertType.java
0.00% <0.00%> (ø)

... and 31 more

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 14d71d1...b771d90. Read the comment docs.

Hi @Tianqi-Dotes , we should only English version screenshot in both En and Zh doc

It will be more beautiful to change the screenshot to the one in markdown format. What do you think? @Tianqi-Dotes

What do you mean screenshot in markdown format?

It will be more beautiful to change the screenshot to the one in markdown format. What do you think? @Tianqi-Dotes

What do you mean screenshot in markdown format?

Screenshot in markdown format just like this.


HTTP stream with/without credentials not working

hi,
i have a raspberry pi zero W with the according raspberry camera that is using motion and everything seems to work fine since i am able to view from my laptop via the http-stream url the cameras streaming video.
So, in my case the url that i am using to view is:
http://<ip>:8081/?login=<user>&password=<passwd>
I am trying not to start adding this stream to your very nice application but it seems that something is going wrong.
Now, having said that, i am not sure if this is due to using http-stream instead of rtsp or due to any other configuration issues that i miss in displaycameras! Like video size or what ever else needs to be configured.
From the motion.config:
# Image width (pixels). Valid range: Camera dependent, default: 320
width 640

# Image height (pixels). Valid range: Camera dependent, default: 240
height 480

# The mini-http server listens to this port for requests (default: 0 = disabled)
stream_port 8081

So, the question is does displaycameras work with http-stream and credentials:
camera_feeds=( \
# Low-Res
#Driveway
"http://<ip>:8081/?login=<user>&password=<passwd>” \
)

In case this is not possible do have any suggestion how I can configure motion to stream http and rtsp (to different port I guess).
Thanks in adv.

The README.MD contains debugging information. Use the interactive command
line omxplayer instructions to test the feed with omxplayer. The config
file looks right; you may have to rewrite a bit of the main script to
support http.
On Thu, Dec 3, 2020, 9:52 AM fotisK69<EMAIL_ADDRESS>wrote:

hi,
i have a raspberry pi zero W with the according raspberry camera that is
using motion and everything seems to work fine since i am able to view from
my laptop via the http-stream url the cameras streaming video.
So, in my case the url that i am using to view is:
http://:8081/?login=&password=
I am trying not to start adding this stream to your very nice application
but it seems that something is going wrong.
Now, having said that, i am not sure if this is due to using http-stream
instead of rtsp or due to any other configuration issues that i miss in
displaycameras! Like video size or what ever else needs to be configured.
From the motion.config:
Image width (pixels). Valid range: Camera dependent, default: 320
width 640
Image height (pixels). Valid range: Camera dependent, default: 240
height 480
The mini-http server listens to this port for requests (default: 0 =
disabled)
stream_port 8081
So, the question is does displaycameras work with http-stream and
credentials:
camera_feeds=(
Low-Res
#Driveway
"http://:8081/?login=&password=”
)
In case this is not possible do have any suggestion how I can configure
motion to stream http and rtsp (to different port I guess).
Thanks in adv.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Anonymousdog/displaycameras/issues/87, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHIYIKO5BHUZLKU6VTG2NE3SS6Q4DANCNFSM4UMCXIPA
.

Hi,
thanks for your time.
I got it working with this kind of setup:
<EMAIL_ADDRESS>The last part /video/mjpg.cgi depends on the camera and how it stream the video.
Thanks again


vdbfusion does not support windows

The installation package of vdbfusion under pip does not support win platform
Perhaps we need to modify its dependencies to accommodate windows

Apologies for the inconvenience. Since we do not have a Windows server available, we were unable to fully test the application on Windows before making changes.
In the development branch, we have replaced the vdbfusion with the Open3D TSDF fusion. You are welcome to try the release/better-mesh-extraction branch to see if this helps address the issue.
Please let me know if you have any other questions or concerns. I'm happy to provide further assistance.

It has been successfully installed with no errors. By the way, pytorch3D is also troublesome to install on windows. I should use linux after that.
Finally, I am looking forward to your early release of the entire pipeline including training

Great to hear that! As for the training code, due to a license conflict with the Gaussian splatting implementation, we cannot release the original training code in this repository. We are working hard to rewrite it from scratch for an official release. The target release date would be in late April or early May


scrooge generator: add an option to enable finagle compilation (fixes #117)

First commit fixes #117. Second is for forward compatibility with scrooge, as I use a newer version here.

Can one of the admins verify this patch?

I signed it!  Via my company's Corporate CLA group.

I signed it!  Take 2.

@johnynek New patch with finagle support as an option.  New PR incoming with the logging change separate.

Nice! Thanks!


Inherent method wrappers around traits

I often feel like it is a design mistake when it is necessary to import a trait in order to use methods of a type (defined in the same crate) that seem like they should be inherent.  Or perhaps, when it seems reasonable that people would want to use the method in non-generic contexts.
In this case, one can internally use a macro to generate inherent methods for each type that wraps the methods. (note: I looked around and haven't explicitly found an example of this yet; maybe this is just my own pet solution)
I'm not sure on the precise guidelines, but I believe some possible signs that a trait's impls should be wrapped with inherent methods are:

when it is not expected that types outside the crate will frequently need to implement the trait
if one of the reasons for creating the trait is to "make the implementation easier"

(actually, these are all signs that a trait should not be public in the first place; but perhaps it is exposed for the sake of a free function)
Without a clear guideline, I think what this really needs at this point is just discussion.

I was probably going to wait to find examples before posting this but unfortunately I fat-fingered the "Post" button.  Anyways, I'm done fixing it up, so perhaps others can share their thoughts on whether such a guideline is needed.


T82084 : Blender sets glTF backculling setting based on Eevee material

https://developer.blender.org/T82084
System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: Intel(R) UHD Graphics 620 Intel 4.5.0 - Build <IP_ADDRESS>63
Blender Version
Broken: version: 2.90.1, branch: master, commit date: 2020-09-23 06:43, hash: rB3e85bb34d0d7
Broken: 2.83.8 LTS. Tested that the issue was the same before the new glTF exporter.
Worked: NA
Short description of error
Blender sets glTF backculling setting based on Eevee material.  Since this is not a general material setting, but an Eevee specific one this feels unintuitive. When you work in Blender you'll almost always want backface culling to be turned off so it's easy to work on your model, but 9 times out of 10 when you are using the model in a game engine you will want backface culling on.
An option in the exporter to override the backface culling option to always be on could also be a solution.
Exact steps for others to reproduce the error
export the default cube as a glTF and import it into Godot 3.2.3 and you will see that backface culling is set to off.

Setting as enhancement, because if I understand correctly, export does work, but default material setting in Blender is not the best for game engine, and you want a quicker way to change the backculling setting that change it manually in each of your material.
For information and people reading this ticket, here is documentation about how it works for now :
https://docs.blender.org/manual/en/latest/addons/import_export/scene_gltf2.html#double-sided-backface-cullings

Hi Julien,
I really don't think it is correct as it is. I've been thinking about a good way of explaining it. The problem as I see it is that you are using an Eevee specific setting and exporting it out as a general material setting.
If I'm working on a game model in Blender and I have Cycles set as my render engine because I'm using it to bake textures. That setting is not shown on the material, so to change the backface culling setting for exporting my model, I would have to know to change over to Eevee rendering engine for the option to appear, that is not very logical. Now that might be a problem on Blender's side that it would make more sense if they had culling settings for materials always in the material regardless of renderer, but they don't.

to change the backface culling setting for exporting my model, I would have to know to change over to Eevee rendering engine for the option to appear, that is not very logical

For reference, you can find Backface Culling (along with Blend Mode/Clip Threshold) under Viewport Display when in Cycles mode.

@scurest Ah I didn't know that. Again I feel like this is not a logical place for settings to reside that decides how the settings are set for the exported material.
I think if Blender has these options spread around it would be better to not use them. Or maybe have a fold-down in the exporter where you could set the back-face culling to "On", "Off" and "Use Eevee/Viewport Display setting" or something like that.

Hm. It's challenging that Blender presents the option under material Settings when using Eevee, then moves it to Viewport Display, with a different functionality, under Cycles. Whether it's really a material setting or a viewport setting, ultimately users are going to have one of two problems:

A. User doesn't realize backface culling is disabled (default for new materials) and performance in their application is worse than it could have been.
B. User doesn't know much about backface culling (not uncommon for new users) and becomes confused when their model exports with unwanted "holes."

Should we ask Blender core developers to consider treating this setting more consistently across Eevee and Cycles? Or even to change the default for new materials? It looks like the FBX addon ignores the Backface Culling setting entirely. Or at least when tested with the FBX Review viewer, backface culling is always enabled.

Or maybe have a fold-down in the exporter where you could set the back-face culling to "On", "Off" and "Use Eevee/Viewport Display setting" or something like that.

I'd be OK with this suggestion, but it still leaves us with a decision to make about the default behavior re: (A) and (B) above. I'm leaning toward considering (A) the more important problem to eliminate, since it's subtle to identify for many users, whereas (B) is easy to identify and affects mostly newer users.

I think the current behaviour works great, honestly. EEVEE materials have a backface culling setting, and that setting is mapped directly to how the GLTF files are exported— Adding any extra steps to try to divine user intent when there is already such a clear and direct setting right there would only convolute usage of the exporter.
I don't think the game engine workflow argument that enabling the material setting makes it harder to work on the model really holds much water. The material backface culling setting only affects the "Rendered" and "Material Preview" preview modes. It's generally more sensible to be in "Solid" mode when you're working on a model, possibly with "Color" set to "Texture"  in the viewport "Shading" menu— In which case, the material backface culling setting has no effect anyway. The only time it does have an effect is in the "Rendered" and "Material Preview" modes. There, the entire point is to preview all objects and materials as they will eventually be rendered or exported, so parts of the mesh becoming invisible based on the backface culling is part of what makes those modes useful.
Honestly, I think this entire issues seem a lot like something that could reasonably be called user error. There is a backface setting in Blender's Principled PBR material node, and that setting is exported directly and correctly to backface culling in GLTF's principled PBR materials. What is the problem there? You wouldn't try to change the Metalness settings in the exporter because the user has set it incorrectly. You wouldn't make a drop-down in the exporter to override material Roughness or colour— That's what the entire material system is for. Why should backface culling in GLTF be exported as anything other than a direct copy of its BPY value? It's just another material setting, which is currently handled correctly and sanely by the exporter.
And as someone who has some experience with 3D software in general but is also one of those "newer users" to using GLTF as a publishing format, my opinion on the two options is (A) having backface culling disabled as is currently the default in EEVEE is the more useful/robust behaviour in more cases, more likely to produce results that look good, (B) anyone whose scenes are complex enough for backface culling to be a major performance bottleneck really should know how to set it correctly anyway.

Should we ask Blender core developers to consider treating this setting more consistently across Eevee and Cycles? Or even to change the default for new materials?

I believe the current way to simulate backface culling in Cycles is with a Mix shader and a Transparency shader controlled by the Backfacing output of the geometry node. To me it seems like it would be a pretty major departure to move such a dramatic behaviour change to the core UI (like in EEVEE) or the raytracer, especially with the current trend of moving more functionality into nodes.
Cycles and GLTF are always going to be different anyway, as one's a raytracer and the other's a rasterizer. Cycles and EEVEE don't have perfect 1:1 equivalency in behaviour either. I think "Viewport Display" is actually a reasonable place for the backface culling setting to be in Cycles. Where else are they going to put a rasterizer setting which doesn't make any sense in the raytracer? The "Viewport" in Cycles is the closest analogue to the rasterizers that GLTF exports often targets.


Add clarification for Chrome Extensions Manifest v3

GAPI is not supported for Chrome Extensions with Manifest v3 due to the no remotely hosted code requirement.
Updated docs to reflect this

@dvanderb

ping?

mohmmed alshmrani

<EMAIL_ADDRESS>


Merge remote-tracking branch 'angular/master'

I presume this was opened by accident (since there are no changes).


feat(atomic): breadcrumb manager

KIT-492
https://coveord.atlassian.net/browse/KIT-492
I used Stencil store to keep a map of facet-field to facet-label but going forward I think we need a better state management solution (since stores by default are intended to be global).

Both facet values (date/number ranges) & their breadcrumbs should be formatted, that could be done into a separate pr


feat: cleaner plugin

What kind of change does this PR introduce?
feature
Did you add tests for your changes?
yes, maybe need more
If relevant, link to documentation update:
not require right now
Summary
A small step to the zero configuration. Most of projects which uses webpack remove all files from build directory (i.e. output.path) before each build. Also we have a lot of plugin for webpack for this simple action. This PR solve this problem - not require any additional plugin. Also can be true in webpack@5. Feedback welcome!
Does this PR introduce a breaking change?
no
Other information
not require

I also recently created a plugin for this. My plugin only deletes files older than a specific "maxAge" so that old/cached HTML can still load previous versions of assets for a while. I haven't used it in production yet though.
const fastGlob = require("fast-glob");
const fs = require("fs");
const util = require("util");

const unlinkAsync = util.promisify(fs.unlink);

class CleanOutputDirectoryWebpackPlugin {
    constructor(patterns, options = {}) {
        this.patterns = patterns;
        this.options = options;
    }

    apply(compiler) {
        compiler.hooks.compile.tap(this.constructor.name, async (compilation) => {
            const verbose = (this.options.verbose === undefined ? false : this.options.verbose);

            if (verbose) {
                console.log(`Cleaning with ${this.patterns.length} pattern(s): ${this.patterns.join(", ")}`);
            }

            const matches = await fastGlob(
                this.patterns,
                {absolute: true, cwd: compiler.options.output.path, stats: true}
            );

            for (const match of matches) {
                const fileAgeMs = (Date.now() - match.mtimeMs);

                if (verbose) {
                    console.log(`Matched file: ${match.path} (age: ${fileAgeMs}ms)`);
                }

                if (this.options.maxAge === undefined || fileAgeMs >= this.options.maxAge) {
                    if (verbose) {
                        console.log(`Deleting file: ${match.path}`);
                    }

                    await unlinkAsync(match.path);
                }
            }

            // TODO: Remove empty directories.
        });
    }
}

module.exports = CleanOutputDirectoryWebpackPlugin;

This would be a replacement of https://github.com/johnagan/clean-webpack-plugin?

@montogeek yep, no need plugin for this simple action

@glen-84 del encapsulates logic around glob and rm -r, also very easy, fast-glob still buggy in some places, verbose should be implement after https://github.com/webpack/webpack/issues/3996. Removing base on mtimeMs can be invalid. Also compile is does not fit, because other plugin can create something in output.path before event happens.

@evilebottnawi I like it, but not sure if we should add this kind of plugin to webpack core. Maybe put it into @webpack-contrib organization?

@montogeek idea - move to zero configuration. It is doing in 99% projects. And it forces users to install the plugin and create configuration (or increase its).

IMHO, one option better when plugin, also can be true for webpack@5 to improve zero configuration

/cc @sokra @TheLarkInn @ooflorent what do you think about this?

Removing base on mtimeMs can be invalid (other plugins can rewrite mtime, also on some os it can be updated).

It's supposed to run before other plugins, so they shouldn't touch the files. I don't follow your comment regarding some OSs. It seems to work in my (limited) testing.

Also compile is does not fit, because other plugin can create something in output.path before event happens.

I asked for more information about hooks here.
Anyway, just thought I'd share. 🙂

Or other big setup:
clean: {
  patterns: ['build/**/*'],
  options: { // A lot of option from https://github.com/isaacs/node-glob#options }
}

I was referring to filtering based on file attributes other than the path/name.

@glen-84 real use case?

My use case is to only delete old files (older than X seconds/minutes/days), but maybe that's not common.

I want to talk a bit about outputFileSystem. While it does not support globbing and a lot of fancy features, we must use it I think. What if the provided outputFileSystem is not based off fs? Like an in-memory FS or a cloud-based one?

@ooflorent sounds reasonably, i will look how we can solve this, thanks!

@ooflorent on other side cleaner should works only in node env, we can check on this and don't run cleaner when it is not node env. Because looks like it is have make sense in other environments.


Improve nextId() generator

Improves id generator to provide means to override default sequence.
I wasn't able to write tests, not sure how to mock the backend etc.
One of the tests would be to create model with arbitrary id and see if sessionData.nextId changes.
Also, in this change nextId() will always bump the counter, which is fine since it's not called anywhere else but within Model.

Example use with uuid:
import uuid from 'uuid';

class MyModel extends Model {

  static nextId() {
    return uuid.v4();
  }

  static advanceNextId(id) {
    // uuids are not deterministic
    // no-op
  }
}

I am testing this and it seems to work fine in on of my apps.

@pronebird I really appreciate the effort you put here. I ended up implementing this a little differently in #62 . For the pretty common UUID case, this should work:
class MyModel extends Model { }
MyModel.idAttribute = 'id';
MyModel.fields = {
    id: attr({ getDefault: uuid.v4 }), // might need uuid.v4.bind(uuid)
};

@tommikaikkonen did you solve the problem with id sequencer for non-deterministic IDs such as UUID?

See comments above.


How do I get the "subjects_dir" on my own EEG data?

Description of the problem
In the following code:
brain = stc.plot(
subjects_dir=subjects_dir,
initial_time=initial_time,
clim=dict(kind="value", lims=[3, 6, 9]),
smoothing_steps=7,
)
Now I have some subject EEG data. How do I get the corresponding subject folder,like "subject_dir"?
Steps to reproduce
-

Link to data
No response
Expected results

Actual results

Additional information

Hello @Sarahsus, the subjects dir here refers to the FreeSurfer subjects directory. It has nothing to do with your EEG data per se.
This question is better suited for our forum, may I kindly refer you there? Thank you!
https://mne.discourse.group/
Richard

thank you
来自钉钉专属商务邮箱------------------------------------------------------------------
发件人：Richard @.>
日　期：2023年10月24日 17:30:16
@.>
@.>; @.>
主　题：Re: [mne-tools/mne-python] How do I get the "subjects_dir" on my own EEG data? (Issue #12126)
Hello @Sarahsus, the subjects dir here refers to the FreeSurfer subjects directory. It has nothing to do with your EEG data per se.
This question is better suited for our forum, may I kindly refer you there? Thank you!
https://mne.discourse.group/
Richard
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


Contribute 3rd PR for git provider receiver

Overview
Now that we've finished the 2nd contribution downstream, we're ready to contribute more of the metrics we gather from GitHub.
In the interest of smaller PRs, we'll have a limited amount of metrics but the third PR needs to contain the following metrics:

[ ] git.repository.pull_request.open.count
[ ] git.repository.pull_request.open.time
[ ] git.repository.pull_request.merged.count
[ ] git.repository.pull_request.merge.time
[ ] git.repository.pull_request.approval.time
[ ] git.repository.pull_request.deployment.time

After talking to @adrielp, I updated the metrics we intend to add.

Added two remaining PR metrics to list.

After a lot of iterating, I've submitted the PR:
https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/29642

We're still pending a merge approval. After a lot of improvements were made and we were brought up to snuff, we were given a ready-to-merge label, but that's when a build on Windows failed due to an issue unrelated to us. They've since fixed that issue so we updated our PR, got an approval for the workflows, and now it's failing for another issue.
I will look into this issue and figure out what's going on to get this merged.

If this isn't merged in by wednesday I'll bring it up in the collector sig.

Did not bring up to collector SIG directly. It was viewed again in the weekly report. There are merge conflicts. I will be reaching out in the community slack to address some things and see if there's no issue with directly fixing them.

Rebased, fixed, and just now waiting for maintainers to merge. made the callout & ask again.

DONE


Option to remove the namespace from the JSON encoder

Avoid namespaces to create a Json object without namespaces equal as the original JSON object.
For example:
encoder.setIncludeNamespace(false);

In case of UNION, instead of creating a a json like:
{
   "myRecord":  {
        "org.apache.avro.MyRecord": {
               "name": "testName"
         }
    }
}

It creates something like:
{
   "myRecord": {
       "name": "testName"
    }
}

+1 Thanks @juancho088. It would be nice to have merged this functionality into master.

@juancho088 Sorry for responding so late. Would it be possible to add a test?

@Fokko I already added some tests to the PR


fix #1609, fix storm message timestamp bugs

The bug is caused by that timestamp is set after the message is emitted. Hence, the first message gets and timestamp -1 and is filtered out.
This PR also fixes that seconds and milliseconds are mixed up in several places

please hold the merge. I've got to fix the tests

+1 on the patch.
One question about the checkpoint clock, why bolt need to report checkpoint clock?
Cannot the spout just query the AppMaster to get the latest clock? So that it know whether to ack or fail?

@clockfly AppMaster doesn't know whether Bolts have successfully executed tuples unless received report clock from bolts on bolt.ack

@clockfly merge this in. We can continue the discussion on new issues or offline.


Failed to build 1.15.3 release with GCC9.3

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 20.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary):   https://github.com/tensorflow/tensorflow/archive/v1.15.3.zip
TensorFlow version: 1.15.3
Python version: 3.8
Installed using virtualenv? pip? conda?:
Bazel version (if compiling from source): 0.24.1
GCC/Compiler version (if compiling from source): GCC 9.3
CUDA/cuDNN version:
GPU model and memory:

Describe the problem
Build failed with error message:
external/grpc/src/core/lib/gpr/log_linux.cc:43:13: error: ambiguating new declaration of 'long int gettid()'
   43 | static long gettid(void) { return syscall(__NR_gettid); }

Provide the exact sequence of commands / steps that you executed before running into the problem
bazel --output_user_root=$build_dir build --config=mkl --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0 -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mavx512f --copt=-mavx512cd  //tensorflow/tools/pip_package:build_pip_package 2>&1 | tee /root/build.log

Refer to this issue: https://github.com/grpc/grpc/issues/20043
May need to upgrade the grpc version.

We need a PR to upgrade grpc version. Can you send it please?

Oh, this is against r1.15. That branch is fixed, we only update it for security reasons.

@mihaimaruseac Thanks for the feed-back. I see there is a release of r1.15.3 last monthly. If we still plan some release based on r1.15, may be we can submit a PR to that branch then?

If grpc version bump covers a security vuln yes, we can accept it. Otherwise, unfortunately, we cannot justify a version bump.

@mihaimaruseac Thanks for the reply. I don't think there is a security issue. So I will close this issue ticket.


Foot note breaks when it includes space

When the foot note is not a singular word [^word] (non-space), it behave as intended with working LSP actions such as rename, go to definition etc.
However, when the foot note is a text with space, it will not work as a foot note, LSP actions, highlighting etc will not work for that foot note.
Example text:
[^word]: I suspect that it is treated as a regular link
Testing paragraph [^test-note] with footer note [^test-note2]

[^test-note2]: Footer
[^test-note]: Footer note

Environment details:
❯ nvim -v
NVIM v0.10.0-dev-2185+gae3eed53d
Build type: RelWithDebInfo
LuaJIT 2.1.1706032906
Run "nvim -V1 -v" for more info

❯ marksman --version
1.0.0-f124c56+f124c5616cf38241e1a5e58808ed78e2d9a1d385

Thanks for reporting this @shaksiper! IIRC footnotes are not part of CommonMark standard for Markdown. With that said I want to have support for proper multiline footnotes, just didn't get around to adding it.
The fact that 'single-line' footnotes work now has to do with the fact that they are treated as reference definitions.


[Settings] restructuring Dashboard, Flyout

Summary of the Pull Request
Intoducing ModuleType enum, using it instead of strings to identify modules. Also creating some common methods, like is a module enabled, getting its localized module name, ... using the new enum. Restructuring the Dashboard and Flyout classes accordingly.

PR Checklist

[ ] Closes: #xxx
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed
Tested locally

Please have a look at https://github.com/microsoft/PowerToys/issues/29360 - I would love to know if that helps


3/14 Publish

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docfx.json
:white_check_mark:Succeeded

docs-ref-mapping/reference.yml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


RDS - Modifying an existing Aurora Cluster, CF will fail due to upstream bug

When modifying an existing Aurora Cluster, the update will rollback due to an upstream Cloudformation bug that errors when provided with any of the following parameters:
https://github.com/aws-cloudformation/aws-cloudformation-coverage-roadmap/issues/396

Port
PreferredMaintenanceWindow
PreferredBackupWindow

For example, if you try to update just the "MaxCapacity" parameter for an Aurora Serverless Cluster, you will get the following error:
You currently can't modify MaintenanceWindow with Aurora Serverless. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 31efe4ae-538a-416e-9a6f-cf1210c7ba6c)
I confirmed this internal bug with Enterprise Support however no ETA was provided. I'm hopeful the issue filed above will provide more information and was a suggested action by Amazon Support

Closing after careful consideration. We realized that the issue might actually lie with stacker and how it turns a template into a change_set.


Rspec 3.1.0 -- undefined method `receive' for #<RSpec::

My code (below), for whatever reason, is blowing up.
describe "hooks" do
  it "fires off a before_publish hook" do
    expect(publisher).to receive(:before_publish)
    publisher.publish!
  end
end

The failed spec:
Failures:

  1) CMS::EntryPublisher#publish! hooks fires off a before_publish hook
     Failure/Error: expect(publisher.published).to receive(:before_publish)
     NoMethodError:
       undefined method `receive' for #<RSpec::ExampleGroups::CMSEntryPublisher::Publish::Hooks:0x007f85ce3634a8>
     # ./spec/services/entry_publisher_spec.rb:112:in `block (4 levels) in <module:CMS>'

Finished in 0.08459 seconds (files took 3.94 seconds to load)
1 example, 1 failure

The only thing I can see that's not normal --- is that I'm testing a Rails Engine.

Hey @thewatts thanks for posting this... definitely helped me on an old project as well.


How to import ima3.js instead of googleapis.com?

How to use a third-party CDN or local static to import https://imasdk.googleapis.com/js/sdkloader/ima3.js instead of googleapis.com?
Thx~
PS：When i try to use third-party CDN or local static to import that which will go wrong...

Hello @JonasWater ,
The IMA SDK requires the SDK be downloaded from the official Google URL (https://imasdk.googleapis.com/js/sdkloader/ima3.js). The SDK team does not offer a work around to avoid this requirement.
Please let me know if you have any additional questions. Another resource for information, general to the IMA SDK, is the IMA SDK technical forum. This issues queue is specific to the videoJS-IMA plugin.
Thank you,
Jackson
IMA SDK team

The ima3.js will support with NPM install？
@Kiro705 Thx~

Hello @JonasWater,
The IMA SDK does not have an NPM module to install. We recommend including a script tag in your html to download the SDK. The this plugin's readme; the Get started section, for more details.
Thank you,
Jackson
IMA SDK team

OK, thx~


riemann-varnish not working with Varnish 4+

Varnish 4.x + has changed the varnishstat command and field names. The new fields should be:
  @vstats = [ "MAIN.sess_conn",
                "MAIN.sess_drop ",
                "MAIN.client_req",
                "MAIN.cache_hit",
                "MAIN.cache_miss" ]

I guess we should capture the version output from varnishstat -V and switch on that?

Yeah, I think that's a good plan.


Integration that MMA can do but Rubi Can't

Rubi is not integrating,
Int[Sqrt[2 + Sqrt[2 + Sqrt[2 + 2*Cos[5*Sqrt[x] + 4]]]]*x^(-1/2), x]

but Mathematica 12.0 does.
MMA solution:
Integrate[Sqrt[2 + Sqrt[2 + Sqrt[2 + 2*Cos[5*Sqrt[x] + 4]]]]*x^(-1/2),
  x]==
-(8/5) Sqrt[2] Sqrt[1 + Cos[4 + 5 Sqrt[x]]] Sqrt[
 2 + Sqrt[2] Sqrt[1 + Cos[4 + 5 Sqrt[x]]]] (-2 + Sqrt[
   2 + Sqrt[2] Sqrt[1 + Cos[4 + 5 Sqrt[x]]]]) Sqrt[
 2 + Sqrt[2 + Sqrt[2] Sqrt[1 + Cos[4 + 5 Sqrt[x]]]]]
  Csc[4 + 5 Sqrt[x]]

Sorry, Sqrt[2 + Sqrt[2 + Sqrt[2 + 2*Cos[5*Sqrt[x] + 4]]]]*x^(-1/2) is outside the domain of expressions Rubi is designed to integrate.
Albert

But there should be a rule to do it if Mathematica can?

There are infinitely many expressions Mathematica can integrate, but Rubi can't; and vice-versa.  In order to keep the Rubi project at least theoretically finite in nature, my contributions to the project are limited to the rules required to produce optimal antiderivatives for members of the general forms of expressions I designed Rubi to integrate.
Unfortunately, your example is not a member of any of those forms.  However, Rubi is an open source, freely available system.  So I invite you to add to your copy of Rubi the rule(s) required to integrate such expressions.
Albert

There are infinitely many expressions Mathematica can integrate,

Yes. But I doubt they have infinite number of rules. It is likely all their rules are published somewhere.
By the way, don't you want to make an option to fallback to the Mathematica's integrator if Rubi cannot do it?

I think you would be hard-pressed to find where Wolfram Research Inc. published its list of integration rules and algorithms.  If you should find them, I'd love to know where...
You can make Rubi "fallback to Mathematica's integrator" by simply redefining in your copy of Rubi the functions CannotIntegrate and Unintegrable to call the Mathematica function Integrate.
Albert