Device name isn't getting returned from mapImage

'rbd map' doesn't return the mapped device name.
# rbd showmapped
# rbd map --id docker --pool docker bar
# rbd showmapped
id pool   image snap device
0  docker bar   -    /dev/rbd0

This means that the name is never returned to the mapImage function and therefore unavailable to later functions.
	 return sh("rbd", "map", "--id", d.user, "--pool", pool, imagename)

Here is the output showing what happens when the device name isn't returned by mapImage
RBD_DOCKER_PLUGIN_DEBUG=1 ./rbd-docker-plugin --user=docker --pool=docker --create
...
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:911: DEBUG: sh CMD: &{"/usr/bin/rbd" ["rbd" "map" "--id" "docker" "--pool" "docker" "bar"] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:911: DEBUG: sh CMD: &{"/sbin/blkid" ["blkid" "-o" "value" "-s" "TYPE" ""] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:321: WARN: unable to detect RBD Image(bar) fstype: exit status 2
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:911: DEBUG: sh CMD: &{"/bin/mount" ["mount" "-t" "xfs" "" "/var/lib/docker-volumes/rbd/docker/bar"] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:339: ERROR: mounting device() to directory(/var/lib/docker-volumes/rbd/docker/bar): exit status 32
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:803: INFO: unlockImage(docker/bar, docker1)
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:911: DEBUG: sh CMD: &{"/usr/bin/rbd" ["rbd" "unmap" ""] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:401: INFO: Unmount(bar)
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:592: DEBUG: parseImagePoolNameSize: "bar": ["bar" "" "" "bar" "" ""]
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:419: WARN: Volume is not in known mounts: will attempt limited Unmount: bar
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:911: DEBUG: sh CMD: &{"/bin/umount" ["umount" "/dev/rbd/docker/bar"] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:434: ERROR: unmounting device(/dev/rbd/docker/bar): exit status 1
rbd-volume-plugin: 2016/01/16 21:35:08 driver.go:911: DEBUG: sh CMD: &{"/usr/bin/rbd" ["rbd" "unmap" "/dev/rbd/docker/bar"] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 21:35:09 driver.go:803: INFO: unlockImage(docker/bar, docker1)
rbd-volume-plugin: 2016/01/16 21:35:09 driver.go:450: ERROR: unlocking RBD image(bar): RBD image not found

I've tested this on Debian Wheezy and Ubuntu 14.04.
I've got a fix which I'll make a pull request for in a second which seems to fix it.  More than willing to admit it's not the most glamourous way to handle it though
rbd-volume-plugin: 2016/01/16 22:26:01 driver.go:924: DEBUG: sh CMD: &{"/usr/bin/rbd" ["rbd" "map" "--id" "docker" "--pool" "docker" "bar"] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 22:26:01 driver.go:881: DEBUG: getRBDDeviceName CMD: "rbd showmapped | grep bar | awk '{print $5}' | sed -e 's/$//'"
rbd-volume-plugin: 2016/01/16 22:26:01 driver.go:924: DEBUG: sh CMD: &{"/sbin/blkid" ["blkid" "-o" "value" "-s" "TYPE" "/dev/rbd0"] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}
rbd-volume-plugin: 2016/01/16 22:26:01 driver.go:924: DEBUG: sh CMD: &{"/bin/mount" ["mount" "-t" "xfs" "/dev/rbd0" "/var/lib/docker-volumes/rbd/docker/bar"] [] "" <nil> <nil> <nil> [] %!q(*syscall.SysProcAttr=<nil>) %!q(*os.Process=<nil>) "<nil>" ?reflect.Value? %!q(bool=false) [] [] [] [] %!q(chan error=<nil>)}

Looking now.

I have tested this to not be the case on CentOS 7.1* at least with the following:
# cat /etc/redhat-release && uname -r && ceph --version
CentOS Linux release 7.1.1503 (Core)
3.10.0-229.11.1.el7.x86_64
ceph version 0.94.2 (5fb85614ca8f354284c713a2f9c610860720bbf3)
# rbd showmapped
# rbd map rbd/foo
/dev/rbd0
# rbd unmap /dev/rbd0
# rbd map --id admin --pool rbd foo
/dev/rbd0

Can you attach your version of ceph you are running and any pertinent system info?

cat /etc/debian_version && uname -r && ceph --version
jessie/sid
3.16.0-57-generic
ceph version 0.80.10 (ea6c958c38df1216bf95c927f143d8b13c4a9e70)
Let me try with a later version of ceph.  Thats the latest in the
14.04 repo, so I'll get something directly and retry.
apt-cache policy ceph-common
ceph-common:
Installed: 0.80.10-0ubuntu<IP_ADDRESS>
Candidate: 0.80.10-0ubuntu<IP_ADDRESS>
Version table:
*** 0.80.10-0ubuntu<IP_ADDRESS> 0
500 http://ftp.X/mirrors/linux/ubuntu/packages/
trusty-updates/main amd64 Packages
100 /var/lib/dpkg/status
0.79-0ubuntu1 0
500 http://ftp.X/mirrors/linux/ubuntu/packages/ trusty/main
amd64 Packages

Maybe just change the PR to include logic to only call getRBDDeviceName if line 832 doesn't return the device?

That would work.
On Friday, 22 January 2016, Adam Avilla<EMAIL_ADDRESS>wrote:

Maybe just change the PR to include logic to only call getRBDDeviceName if
line 832
https://github.com/deanpemberton/rbd-docker-plugin/commit/10300b88fa02ad4419b4426e532847520cfa22d1#diff-749da71b40f8ff06fc9e78ce917b0cceR832
doesn't return the device?
—
Reply to this email directly or view it on GitHub
https://github.com/yp-engineering/rbd-docker-plugin/issues/19#issuecomment-173665986
.

--
Regards,
Dean

@deanpemberton how did it go? Did you end up just updating ceph and using this as is?


Update to handle callbacks with multiple arguments.

Also, move from using arguments to the spread operator to be more explicit.

Hi. Thanks fo the PR. There is an error in the tests. self is not defined. I think the error should be solved if you rename thisArg to self.
If you fix the error, I can merge the changes.
I also like the solution proposed by @amio, as it has a more predictable behaviour. I will add an option to the constructor so any of the two solutions can be used.

Hmm, strange, it looks like the version pushed to npm is a different version of the codebase, ever so slightly. I'll update my changes to match the current version.

It looks like the current failure is because you're testing against a version of Chrome from 2014:
Session info: chrome=37.0.2062.120
The spread operator has been supported since Chrome 46.

I will try to update the chrome version used by travis by using trusty.

I updated chrome to the current stable version. Can you rebase the PR?

Done.

Merged! I will release the new version tomorrow.

Awesome! Thanks so much!

BTW, between your library and the babel async-to-generator transform plugin, I'm successfully using async/await wrapped chrome APIs, which is such a huge improvement over callback-hell.

Yeah, it's a shame that the api does not have promises by default. It was very common for me to have multiple callbacks. With async/await syntax I would think it's even simpler. And it's not necessary to use Q or Bluebird for that.
v2 is now live. Thanks again for the PR.


reviewmygov.tuquy.com

I believe the website http://reviewmygov.tuquy.com/MyGov/index.html to be a phishing website and targets https://my.gov.au/, can this be added on to the blocklist please?
I have reported to both the web host and domain registrar.
VirusTotal
Wayback Machine

Thank you as always @gyCfjSnO.  This domain is added in commit 30cbbc8c.
Closing.


Question about how tool package variables work when referenced by a project

Question
If I have a package with a tools folder, lets call it SomeTool.nupkg, that gets referenced by a project called Proj1.csproj this will create a variable in Proj1.csproj.nuget.g.props called PkgSomeTool.
My question is: Is it possible to also create a SomeTool.props and SomeTool.targets in SomeTool.nupkg that can reference the PkgSomeTool variable? Something like...
SomeTool.nuspec file
<?xml version="1.0"?>
<package >
  <metadata>
    ...
  </metadata>
  <files>
    <file src="bin/Release/netcoreapp3.0/**" target="tools" />
    <file src="SomeTool.props" target="build" />
    <file src="SomeTool.targets" target="build" />
  </files>
</package>

SomeTool.props file
<Project>
    <PropertyGroup>
        <MyTool>$(PkgSomeTool)/tools/SomeTool.dll</MyTool>
    </PropertyGroup>
</Project>

SomeTool.targets file
<Project>
    <Target Name="BeforeBuild">
        <Exec Command="dotnet $(MyTool)" />
    </Target>
</Project>

Actual
The command that runs during build is dotnet /tools/SomeTool.dll.
On the other hand, if the package only contains the tools folder, and I add
<PropertyGroup>
  <MyTool>$(PkgSomeTool)/tools/SomeTool.dll</MyTool>
  <PreBuildEvent>$(MyTool)</PreBuildEvent>
</PropertyGroup>

to Proj1.csproj, the build works because MyTool has the full path.
Thanks for any help on this.

The usual approach to this is to anchor paths in your NuGet package payload with $(MSBuildThisFileDirectory) or similar. You can combine that with .. to get full paths to files in the package.

...Well that was easy, thanks 👍


Create go.yml

This is a work in progress, feel free to take a look and contribute if you can. PR is here in order to trigger actions on push.


fix: Add support for GitHub Enterprise Server

This PR adds support for GitHub Enterprise server domain by using the built-in variable GITHUB_SERVER_URL. This is based on approach in PR https://github.com/commitizen-tools/commitizen-action/pull/52 by @a-berthroud and includes latest changes from master.

@woile We are looking to use Commitizen with some automated release workflows on a GitHub Enterprise Server setup right away for an internal project. The GitHub support team identified that a static entry for github.com was causing issues when we run the workflow. Are you able to assist reviewing this PR which should pull from the built-in variable regardless of public GitHub vs GHES? Thank you kindly!


How to measure the FLOPs of uniformer_large_ls

Hi,
I use the following code to count the FLOPs of Uniformer-L-LayerScale which is supposed to be 12.6G.
import torch
from fvcore.nn import FlopCountAnalysis
from fvcore.nn import flop_count_table
from token_labeling.tlt.models import uniformer_large_ls

model = uniformer_large_ls()
model.eval()
flops = FlopCountAnalysis(model, torch.rand(1, 3, 224, 224))
print(flop_count_table(flops))

But I got 19.7GFLOPs.
I would like to know how to measure it correctly. (get 12.6GFLOPs)
Thank you.

@yysung1123 Very thanks for your question!
You are right. The correct GFLOPs should be 19.8G, which is comparable with VOLO.
I made a mistake because I used torch.utils.checkpoint, which ignored some layers for calculating GFLOPs.
Sorry for the mistake and I will update the GFLOPs in the new version.
For the new comparison, the UniFormer-L seems not well-designed. From Base to Large, double GFLOPs but only 0.3 accuracy improvement on ImageNet.
Due to the limited GPU resource, I did not scale up the model thoughtfully. I just used a wider channel to avoid Loss NAN in training. How to scale up a model better still need to be explored.

@Andy1621
Thanks for your replying.
The FLOPs of Uniformer-B is right (8.3G).
But I got 0.0% accuracy from the following script.
python3 validate.py ./imagenet   --model uniformer_base  --checkpoint ./uniformer_base_tl_224.pth --no-test-pool --img-size 224 --batch-size 128 --workers 8

uniformer_base_tl_224.pth is downloaded from ImageNet-1K pretrained with Token Labeling.

Can you provide a detailed log? It runs normally in my environment. Maybe you can check whether the model weight is loaded correctly.

As there is no more activity, I am closing the issue, don't hesitate to reopen it if necessary.


Feat: Save and Restore Connections to Remote Domains

Currently, if you have a remote session(s) open (attached using weztem ssh or wezterm connect),  you get an error about concatenating a nil value when you save state. The error would be easy enough to deal with:
--- pane_tree.lua
function pub.get_shell_process(process)
	if not process or process == "" then
		return nil
	end

However, remote tabs are still spawned on restore with a local tab session and default cwd, which isn't expected behaviour.
At first, I thought that restoring remote panes wouldn't be possible because get_foreground_process_name() returns nil, and this is expected behaviour ref: wezterm docs: get_foreground_process_name.
I experimented a bit and found that there was a solution involving pane:get_domain_name(). For local panes, pane:get_domain_name() will return "local". For remote panes, in my testing pane:get_domain_name() will return:

"SSH to <host>" if you connect using wezterm ssh <host> to a domain that isn't an SSH domain in your Wezterm config
"SSH:<host>" if you attach to a plain SSH host with wezterm connect <host> or wezterm connect SSH:<host>
"SSHMUX:<host>" if you attach to a multiplexing remote host running a Wezterm server with wezterm connect SSHMUX:<host>

How this PR works:
When saving state and creating the pane_tree, we first check the domain name. If it is equal to "local" the existing algorithm will run. If the domain name begins with "SSH", it saves the domain name as pane_tree.domain. It will also save pane_tree.cwd if it is available (it will be available for SSH:MUX, but not plain SSH hosts). I wasn't able to get scrollback text in remote panes, which is a caveat for saving remote sessions.
When restoring window state, if the pane_tree.domain key exists, it will add the domain to the args when spawning the tab:
local spawn_tab_args = { cwd = tab_state.pane_tree.cwd }
if tab_state.pane_tree.domain then
	spawn_tab_args.domain = { DomainName = tab_state.pane_tree.domain }
end

I found that this worked to respawn all three types of SSH sessions I tested above.

I updated the PR to check if a domain is spawnable rather than checking if it starts with "SSH". Serial domains aren't spawnable, so they should be caught by this check and log_warn and emit an error that they aren't spawnable.
I will need some help from others on how to handle WSL and TLS domains because I'm unable to test these. I don't know if we can get the foreground process and lines for WSL and TLS domains, and whether they should be treated like SSH domains, or whether we treat them like "local" domains and also include the pane_tree.domain key/value.
At the moment, I just left in a log and error emit for spawnable domains other than SSH, but this will need to be handled. I'd be surprised if there aren't people using this plugin with WSL.
if domain ~= "local" then
	-- TODO: handle WSL and TLS domains
	wezterm.log_warn("Domain " .. domain .. " is not currently supported by resurrect.wezterm")
	wezterm.emit("resurrect.error", "Domain " .. domain .. " is not currently supported by resurrect.wezterm")
end

I updated the PR to check if a domain is spawnable rather than checking if it starts with "SSH". Serial domains aren't spawnable, so they should be caught by this check and log_warn and emit an error that they aren't spawnable.
I will need some help from others on how to handle WSL and TLS domains because I'm unable to test these. I don't know if we can get the foreground process and lines for WSL and TLS domains, and whether they should be treated like SSH domains, or whether we treat them like "local" domains and also include the pane_tree.domain key/value.
At the moment, I just left in a log and error emit for spawnable domains other than SSH, but this will need to be handled. I'd be surprised if there aren't people using this plugin with WSL.
if domain ~= "local" then
	-- TODO: handle WSL and TLS domains
	wezterm.log_warn("Domain " .. domain .. " is not currently supported by resurrect.wezterm")
	wezterm.emit("resurrect.error", "Domain " .. domain .. " is not currently supported by resurrect.wezterm")
end

This is good for now, I have added a new issue which will tackle unsupported domains in #40. I have added suggestions to refer the user to this issue.

Sounds good. I'll add those notes referring to the new issue.
I'll also see if I can get my hands on a Windows PC that I can use WSL on to see if I can figure out what the other domains' behavior is, but that can be a subsequent PR.

I added support for WSL and refactored a bit.

Looks good, have you tested that it works on WSL? 😄

Yes I did a bit of testing by spinning up a quick instance of WSL:Ubuntu on a borrowed laptop.
I attached to an Ubuntu instance its own tab using Wezterm's command palette, navigated directories, saved state and then recovered state.
I left comments in the code about it's behaviour. I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery. I also found that the cwd using pane:get_current_working_dir() was the local path, but noticed the remote path was in the pane title so I grabbed it from there and it worked for recovery.

Yes I did a bit of testing by spinning up a quick instance of WSL:Ubuntu on a borrowed laptop.
I attached to an Ubuntu instance its own tab using Wezterm's command palette, navigated directories, saved state and then recovered state.
I left comments in the code about it's behaviour. I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery. I also found that the cwd using pane:get_current_working_dir() was the local path, but noticed the remote path was in the pane title so I grabbed it from there and it worked for recovery.

Awesome that you figured out the paths!

I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery.
What do you mean that they weren't recreated? Is it not possible to send text to the panes of the WSL domain?

Yes I did a bit of testing by spinning up a quick instance of WSL:Ubuntu on a borrowed laptop.
I attached to an Ubuntu instance its own tab using Wezterm's command palette, navigated directories, saved state and then recovered state.
I left comments in the code about it's behaviour. I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery. I also found that the cwd using pane:get_current_working_dir() was the local path, but noticed the remote path was in the pane title so I grabbed it from there and it worked for recovery.

Awesome that you figured out the paths!

I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery.

What do you mean that they weren't recreated? Is it not possible to send text to the panes of the WSL domain?

Now that you mentioned it, when I was saving scrollback lines, they appeared as expected in the saved default.json under the WSL pane so I don't see why send_text wouldn't work. I'll do some additional testing to make sure I didn't make a dumb mistake (i.e. not scrolling up in the spawned window to see if the text was there hidden by whitespace)

Yes I did a bit of testing by spinning up a quick instance of WSL:Ubuntu on a borrowed laptop.
I attached to an Ubuntu instance its own tab using Wezterm's command palette, navigated directories, saved state and then recovered state.
I left comments in the code about it's behaviour. I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery. I also found that the cwd using pane:get_current_working_dir() was the local path, but noticed the remote path was in the pane title so I grabbed it from there and it worked for recovery.

Awesome that you figured out the paths!

I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery.

What do you mean that they weren't recreated? Is it not possible to send text to the panes of the WSL domain?

Now that you mentioned it, when I was saving scrollback lines, they appeared as expected in the saved default.json under the WSL pane so I don't see why send_text wouldn't work. I'll do some additional testing to make sure I didn't make a dumb mistake (i.e. not scrolling up in the spawned window to see if the text was there hidden by whitespace)

Just tested a little more and confirmed that I didn't make a dumb mistake. The get_lines_as_escapes seems limited for WSL domains. When I was using WSL:Ubuntu, it was capturing the startup message:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

plus the most recent prompt line.
When I just installed WSL:Debian, there is no startup message and it was just saving the most recent prompt line.
I don't think it makes sense to save scrollback text for WSL domains, but I'll update the comment to be more specific.

Yes I did a bit of testing by spinning up a quick instance of WSL:Ubuntu on a borrowed laptop.
I attached to an Ubuntu instance its own tab using Wezterm's command palette, navigated directories, saved state and then recovered state.
I left comments in the code about it's behaviour. I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery. I also found that the cwd using pane:get_current_working_dir() was the local path, but noticed the remote path was in the pane title so I grabbed it from there and it worked for recovery.

Awesome that you figured out the paths!

I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery.

What do you mean that they weren't recreated? Is it not possible to send text to the panes of the WSL domain?

Now that you mentioned it, when I was saving scrollback lines, they appeared as expected in the saved default.json under the WSL pane so I don't see why send_text wouldn't work. I'll do some additional testing to make sure I didn't make a dumb mistake (i.e. not scrolling up in the spawned window to see if the text was there hidden by whitespace)

Just tested a little more and confirmed that I didn't make a dumb mistake. The get_lines_as_escapes seems limited for WSL domains. When I was using WSL:Ubuntu, it was capturing the startup message:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

plus the most recent prompt line.
When I just installed WSL:Debian, there is no startup message and it was just saving the most recent prompt line.
I don't think it makes sense to save scrollback text for WSL domains, but I'll update the comment to be more specific.

I did some testing and it seems like I can get the lines when I type the following in the debug overlay, with a single tab open connected to a freshly installed WSL:Debian domain:
wezterm.mux.all_windows()[1]:active_pane():get_lines_as_escapes(1000)
This seems to also be the case when i do the same for a SSH mux domain on a server which also has wezterm installed, so I dont know if this is also the case for a server without wezterm installed...

Yes I did a bit of testing by spinning up a quick instance of WSL:Ubuntu on a borrowed laptop.
I attached to an Ubuntu instance its own tab using Wezterm's command palette, navigated directories, saved state and then recovered state.
I left comments in the code about it's behaviour. I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery. I also found that the cwd using pane:get_current_working_dir() was the local path, but noticed the remote path was in the pane title so I grabbed it from there and it worked for recovery.

Awesome that you figured out the paths!

I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery.

What do you mean that they weren't recreated? Is it not possible to send text to the panes of the WSL domain?

Now that you mentioned it, when I was saving scrollback lines, they appeared as expected in the saved default.json under the WSL pane so I don't see why send_text wouldn't work. I'll do some additional testing to make sure I didn't make a dumb mistake (i.e. not scrolling up in the spawned window to see if the text was there hidden by whitespace)

Just tested a little more and confirmed that I didn't make a dumb mistake. The get_lines_as_escapes seems limited for WSL domains. When I was using WSL:Ubuntu, it was capturing the startup message:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

plus the most recent prompt line.
When I just installed WSL:Debian, there is no startup message and it was just saving the most recent prompt line.
I don't think it makes sense to save scrollback text for WSL domains, but I'll update the comment to be more specific.

I did some testing and it seems like I can get the lines when I type the following in the debug overlay, with a single tab open connected to a freshly installed WSL:Debian domain: wezterm.mux.all_windows()[1]:active_pane():get_lines_as_escapes(1000) This seems to also be the case when i do the same for a SSH mux domain on a server which also has wezterm installed, so I dont know if this is also the case for a server without wezterm installed...
Edit: I am also able to get it from a single tab started with: wezterm ssh<EMAIL_ADDRESS>
Interesting find. I can confirm that using your command in the debug pane with plain SSH gets the lines too. Maybe there is a workaround for non-local domains involving wezterm.mux.all_windows()[1]:active_pane():get_lines_as_escapes(nlines)

Yes I did a bit of testing by spinning up a quick instance of WSL:Ubuntu on a borrowed laptop.
I attached to an Ubuntu instance its own tab using Wezterm's command palette, navigated directories, saved state and then recovered state.
I left comments in the code about it's behaviour. I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery. I also found that the cwd using pane:get_current_working_dir() was the local path, but noticed the remote path was in the pane title so I grabbed it from there and it worked for recovery.

Awesome that you figured out the paths!

I figured that it was wasteful to save scrollback lines (even though they can be saved for WSL), since they weren't recreated on recovery.

What do you mean that they weren't recreated? Is it not possible to send text to the panes of the WSL domain?

Now that you mentioned it, when I was saving scrollback lines, they appeared as expected in the saved default.json under the WSL pane so I don't see why send_text wouldn't work. I'll do some additional testing to make sure I didn't make a dumb mistake (i.e. not scrolling up in the spawned window to see if the text was there hidden by whitespace)

Just tested a little more and confirmed that I didn't make a dumb mistake. The get_lines_as_escapes seems limited for WSL domains. When I was using WSL:Ubuntu, it was capturing the startup message:
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

plus the most recent prompt line.
When I just installed WSL:Debian, there is no startup message and it was just saving the most recent prompt line.
I don't think it makes sense to save scrollback text for WSL domains, but I'll update the comment to be more specific.

I did some testing and it seems like I can get the lines when I type the following in the debug overlay, with a single tab open connected to a freshly installed WSL:Debian domain: wezterm.mux.all_windows()[1]:active_pane():get_lines_as_escapes(1000) This seems to also be the case when i do the same for a SSH mux domain on a server which also has wezterm installed, so I dont know if this is also the case for a server without wezterm installed...
Edit: I am also able to get it from a single tab started with: wezterm ssh<EMAIL_ADDRESS>
Interesting find. I can confirm that using your command in the debug pane with plain SSH gets the lines too. Maybe there is a workaround for non-local domains involving wezterm.mux.all_windows()[1]:active_pane():get_lines_as_escapes(nlines)

I'll try and do some more testing on this PR's branch, and see if I can figure something out. If you want to limit the scope of this PR to what you have done so far, then I think we should open a new issue about the lines in non-local domains and then merge this PR 😄

I agree. This is promising but is a separate feature and could use more testing.
I think the solution will involve some variation of the following Wezterm lua functions to get the pane_id and return the scrollback text from it:
root.pane:pane_id() -- 23 was the pane_id for my SSH domain session
wezterm.mux.get_pane(23):get_lines_as_escapes(1000))

I agree. This is promising but is a separate feature and could use more testing.
I think the solution will involve some variation of the following Wezterm lua functions to get the pane_id and return the scrollback text from it:
root.pane:pane_id() -- 23 was the pane_id for my SSH domain session
wezterm.mux.get_pane(23):get_lines_as_escapes(1000))

It might also make sense to abstract the get_lines_as_escapes into its own local function.


Wrong namespaces in .NET Core

GetPossibleProjects() includes a ..NETCoreApp,Version=v1.1 or ..NET Framework 4.6.2 suffix for every .NET Core project in the solution. 'Classic' .NET projects show as expected.
This causes the DTOs to have the wrong namespace and a "using unknown;" statement.

Hey,
This should be fixed in version 1.5. Dto location dropdown will show same as before, but generated namespaces should be OK now.


feat(Homepage): Main page / Home page UI completion

merge dong

LGTM!

Cancel merge, commit updates


Layer ID determination

I currently don't have a plan to revolutionise the way vpype identifies its layers: namely using a non-zero integer value, with higher-ID layers drawn on top of lower-ID layers.
vpype currently uses the following approach to determine layer IDs (from vpype read --help):

By default, the read command attempts to preserve the layer structure of the SVG. In this context, top-level groups () are each considered a layer. If any, all non-group, top-level SVG elements are imported into layer 1.
The following logic is used to determine in which layer each SVG top-level group is imported:

If a inkscape:label attribute is present and contains digit characters, it is stripped of non-digit characters the resulting number is used as target layer. If the resulting number is 0, layer 1 is used instead.
If the previous step fails, the same logic is applied to the id attribute.
If both previous steps fail, the target layer matches the top-level group's order of appearance.

However, the stripping non-digit character strategy has led to unexpected behaviour: https://github.com/abey79/vpype/issues/594. Further, EMSL introduced an informal spec on layer names here, which would be worth considering (especially for SVG output).
For the time being, I'll use "first group of digit" rather "all digits" to extract a layer ID from inkscape:label or id.

I don't recall of a good reason to enforce strictly-positive layer ID, except for 1-based numbering feels more natural to non-tech users. On Rust side, it can be enforced with NonZeroUsize, but it's annoying to used (NonZeroUsize::new(1).unwrap()). Plus, it can lead to unexpected behaviour if a layer is explicitly numbered 0 by the user.
Moving on, I'm going to accept 0 as layer ID, and use the following heuristics:

top level geometries go to layer 0
non labelled/ID'd layers keep 1-based numbering (e.g. first group goes to to layer 1, etc.)

For the time being, I'll use "first group of digit" rather "all digits" to extract a layer ID from inkscape:label or id.

This doesn't solve all of the possible "WTF" behaviour, e.g. with layers named after colours such as "magenta90" and "orange90".
This particular case would be gracefully handled by the EMSL standard where only the starting group of digit is interpreted as layer ID, but any other group of digit is not.


replace vgg with resnet

Hi
Thanks for your great work, I am now trying to replace the backbone of second stage using Resnet since Resnet usually has a better performance when doing a same work. However, after I replace the vgg by resnet, the result is terrible. I wonder if you have do the same thing and cloud you please tell me whether this idea is useful. Thank you!
Best regards

Hi, I also tried Resnet18 and Resnet50, but got a similar performance to VGG.

@Cknex Hi ， similar performance how to eval it ? computer dimension error and orientation error ？the final three branch fc layer node need to change,eg resnet18 or resnet50  the three branch fc you set many fc node.

my result:
Angle error  Dimension error
Vgg19     13.683045   0.283335
resnet34  27.887893   0.849132
resnet50  21.706590   0.821558

I just use the mean absolute error,
For resnet50, the angle error is 0.77, and the dimension error is [0.13834581  0.10448476  0.55814862]. For angle, the FC layers are 204877->256,  256->256, 256->2562. For dimension, the FC layers are 20487*7->512, 512->512, 512->3
However, the model doesn't learn anything. It almost always output the mean value....

Sorry, I made a mistake. My performance of Resnet50 is also bad.
I use the mean absolute error, and only test for 'Car'
Angle error,  Dimension error
VGG19               0.108         [0.086 0.067 0.194]
Resnet50            0.534         [0.100 0.076  0.320]
As for the FC layers, I just simply adapt the first fc layer to be compatible with the output of Resnet50

Hi,for resnet50,fc like this result may be better  : self.orientation = nn.Sequential(
nn.Linear(2048 * 7 * 7, 1024),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(1024, 1024),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(1024, bins * 2)  # to get sin and cos
)
self.confidence = nn.Sequential(
nn.Linear(2048 * 7 * 7, 1024),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(1024, 1024),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(1024, bins),
# nn.Softmax()
# nn.Sigmoid()
)
self.dimension = nn.Sequential(
nn.Linear(2048 * 7 * 7, 512),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(512, 512),
nn.ReLU(True),
nn.Dropout(),
nn.Linear(512, 3)
)

Thanks very much!

@Cknex hey，i found your result
Angle error, Dimension error
VGG19 0.108 [0.086 0.067 0.194]
Resnet50 0.534 [0.100 0.076 0.320]
Angle error was very good,but in my test,my result is bad.
i split kitti train set into split_train and split_val
i train in split_train，and test in split_val
but my result is bad
i also use mean absolute error,and test in Car
this is my result
Car angle error：0.4860737579686576
so can you help me why?

@CaoBo1996
Sorry that I have lost my code. In memory I didn't change much. Maybe just more units in middle layers.


Unsplash have an API

Just fyi :P https://unsplash.com/developers

Well, that's new. But basically this downloader would probably break 2 or 3 of their 4 terms of use. So, as much as I'd like to migrate this to a proper API, I respect their decision for those terms and don't want any trouble with the unsplash people.
To make it short: Unless someone is willing to talk to them about this, I'm closing this.


EMALFORMED Failed to read .bower.json

Hi,
I'm having a strange issue with Bower, we run it in docker container with ubuntu and mount local directories with source code and dependencies into the container as /var/www/xxx.
One one laptop with MacOS result of bower install is
bower                       EMALFORMED Failed to read /var/www/xxx/vendor/gildorwang-moment-precise-range/.bower.json

Additional error details
Unexpected end of JSON input

When I look at the /var/www/xxx/vendor/gildorwang-moment-precise-range/.bower.json in the container - it is empty.
The name of the package is different every time.
On another laptop with Windows+WSL everything works.
I couldn't find anything similar to that issue on the Internet unfortunately. If someone has any idea - please help.
Thanks!
In bower,json for the project we have
{
  "name": "xxx",
  "private": true,
  "version": "0.0.1",
  "_comment": "xxx",
  "devDependencies": {
    "angular": "1.2.9",
    "angular-resource": "1.2.9",
    "angular-animate": "1.2.9",
    "angular-mocks": "1.2.9",
    "angular-translate": "~2.8.1",
    "angular-bootstrap": "~0.11.0",
    "angular-ui-router": "~0.2.7",
    "angular-loading-bar": "~0.7.1",
    "a0-angular-storage": "^0.0.9",
    "angular-chart.js": "~0.5.3",
    "angular-file-upload": "2.5.0",
    "bootstrap-sass": "^3.0.0",
    "jquery": "2.1.3",
    "font-awesome": "~4.4.0",
    "moment": "~2.9.0",
    "angular-bootstrap-datetimepicker": "0.3.12",
    "gildorwang-moment-precise-range": "1.0.0",
    "angular-translate-loader-partial": "~2.8.1",
    "angular-ui-select": "^0.19.8",
    "angular-sanitize": "1.2.9",
    "angular-filter": "^0.5.17"
  },
  "dependencies": {
    "bootstrap": "3.0.0"
  },
  "resolutions": {
    "angular": "1.2.9"
  }
}

Nevermind, it was a problem with the docker image.


"returned non-zero exit status 2." Error after running

Hi, am getting the following error when trying to run the code:
The system cannot find the path specified. make: Entering directory C:/Users/Jonathan/AppData/Local/bopen/elevation/Cache/SRTM1 The syntax of the command is incorrect. make: *** [spool/N53/N53W010.hgt.gz] Error 1 make: Leaving directory C:/Users/Jonathan/AppData/Local/bopen/elevation/Cache/SRTM1 Traceback (most recent call last):   File "c:/Users/Jonathan/Desktop/Projects/threedee.py", line 30, in <module>     elevation.clip(bounds = bounds, output = output, product = 'SRTM1')   File "C:\Users\Jonathan\Anaconda3\lib\site-packages\elevation\datasource.py", line 181, in clip     datasource_root = seed(bounds=bounds, **kwargs)   File "C:\Users\Jonathan\Anaconda3\lib\site-packages\elevation\datasource.py", line 153, in seed     ensure_tiles(datasource_root, ensure_tiles_names, **kwargs)   File "C:\Users\Jonathan\Anaconda3\lib\site-packages\elevation\datasource.py", line 115, in ensure_tiles     return util.check_call_make(path, targets=['download'], variables=variables_items, **kwargs)   File "C:\Users\Jonathan\Anaconda3\lib\site-packages\elevation\util.py", line 93, in check_call_make     subprocess.check_call(cmd, shell=True)   File "C:\Users\Jonathan\Anaconda3\lib\subprocess.py", line 291, in check_call     raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command 'make -C C:\Users\Jonathan\AppData\Local\bopen\elevation\Cache\SRTM1 download ENSURE_TILES="N53/N53W010.tif N53/N53W009.tif"' returned non-zero exit status 2.
All looks good when I run "eio systemcheck". Any help appreciated.

@JonFaull Did you ever resolve this? I'm running into the same issue right now and not finding anything helpful.

@JonFaull Did you ever resolve this? I'm running into the same issue right now and not finding anything helpful.

Hi, no I never found a solution, I ended up using a completely different height map.

This issue seems to be a duplicate of #34.


chore(rust-toolchain): use 1.51.0

This merely instructs the user to be using 1.51.0 - there is no good reason at the moment to be using outdated rustc.

Gotta fix clippy, i'm on it.


Specify keyboard focus separately from Screen Reader focus

Description
On Android keyboard focus and accessibility focus are handled separately at the system level. Often these match, as many accessibility services use the “focusable” property (which informs keyboard focus), to also inform them where to focus. In API 28 however, Android added the setScreenReaderFocusable property to View (https://developer.android.com/reference/android/view/View#setScreenReaderFocusable(boolean)) which allows you to flag a view as being focusable only for screen readers, without making that same view focusable by keyboards.
This is useful since screen readers often want to focus on views that are content only, but not actionable (so their users can hear the content), but focusing on these content elements is not useful for keyboard navigation users, who only need to be able to move between interactive elements.
Right now in React Native, the accessible prop maps to focusable on Android, making the element focusable by both screen readers and keyboard users.
There are a few different approaches we could take here.  We could surface a new prop called screenReaderFocusable, that sets focusable to false but screenReaderFocusable to true, we could adjust the accessible prop to only set screenReaderFocusable to true, and add a new prop for keyboardFocusable which sets focusable to true, or we could have the accessible prop contextually set either focusable (if the element is interactive by having a click handler) or screenreaderFocusable (if it’s content only).
Version
0.66
Output of npx react-native info
see description
Steps to reproduce
see description
Snack, code example, screenshot, or link to a repository
see description

Still relevant, please keep open

Yeah this would be awesome to get resolved.


Add allGeneratedPositionsFor

Re: https://github.com/jridgewell/trace-mapping/issues/18

It seems I can't push to the PR, so I'll merge this and apply the changes to main.


Force Difficulty Rank to Difficulty

BeatSaberEditor does not enforce rank to difficulty
added line to force the rank to difficulty by overriding what is taken from the JSON.
List is now properly ordered in game

Potentially also the issue with the difficulty selection problem

This has been added to the new refactoring branch, which will eventually be merged to main.


Endpoint Library IPC Functionality

In this PR:

we implement a dropper execution flow to be used in conjunction with VSTs which write malicious files to disk at time-of-test. this dropper is employed as a sacrificial child process of the vst process. it is implemented because we observed AV/EDR interdicting at time-of-test on those tests which write to the FS by killing the vst process, which would short-circuit the vst's code path, preventing them from emitting the proper exit code -- for example, instead of exiting PROTECTED::FileQuarantinedOnExtraction (int 127), we would instead see exit codes like (int -1). the execution model we adopt with this dropper program is such that the AV/EDR interdiction will target the dropper and not the vst process, allowing for the vst to emit the proper exit code and thus preserve test result value for the customer base.

the dropper operates by opening a file socket on the host in the testing directory. the vst and the dropper communicate via this socket. the dropper "listens" on the file socket, and then writes gob-encoded data it receives through the socket to the victim file system.
-- adopting this model, execution flow for relevant tests will look like this:

VSTs now embed dropper program (not all of them, just the ones that do this)
VST writes embedded dropper executable to disk
VST starts the dropper as a child of itself
dropper removes any instances of the prelude socket file ("prelude_socket") from testing directory
dropper writes new socket file to testing directory and starts to "listen" on it
VST connects to the file socket
VST gob-encodes its payload (the malicious file) and sends it over the file socket (writes to socket file)
dropper receives gob-encoded payload, reads it in, decodes it, and writes the malicious file to the path specified in the gob
VST process does the rest of the test as they currently are encoded from here

implemented DropperPayload data structure
-- this struct has two members: filename(str) and contents([]byte). these are set by the VST process at time-of-test.

implemented socketPath global variable in endpoint library. this is used both to specify the path to the file socket, as well as a bat signal by Endpoint::Write() to know whether or not the dropper execution model will be employed
-- socketPath is an encapsulated (private, non-static) variable not exported by the endpoint library for safety & stability purposes
-- to set/clear, we implement mutator functions SetSocketPath() and ClearSocketPath()
-- we don't implement an accessor for the socketPath field because we want that to be invariant (always "prelude_socket").

implemented writeIPC() function into the endpoint library
-- this function is responsible for carrying out writes to the socket. it is invoked by Write() when Endpoint.SocketPath is not emptystring.
-- writeIPC() is a private library function which: starts the dropper child process, connects to the file socket, encodes the payload, writes to the socket, and then performs a failsafe dropper process kill.

implemented startDropperChildProcess() as a private library function which: switches on host platform to build the command line string used to invoke the dropper program; this varies based on whether or not the host OS is windows. it returns a golang process object and an error (hProc and nil upon success).
-- startDropperChildProcess() is invoked by writeIPC() at the top of the function; if we can't start the dropper then we can't do IPC-enabled file writing

Write() and writeIPC() now return errors. when consumed, these errors provide valuable insight into why a write op failed. Quarantined() consumes these errors.

Endpoint::Quarantined() now uses Endpoint.Exists() to perform its file check

alphabetized function name order in the endpoint library :')

@smprelude any screenshots from testing? What does a VST look like that uses this change in raw golang?
here are a couple screenshots: one for usage in VST code, one for output

note that usage in vst writing is pretty straightforward; just call setsocketpath() to throw up the signal so that write() calls writeipc(), then after the quarantined() call proceed as normal (assuming a file socket is there to connect/write to)

as customers are using our libs, should this be named something more universal?
e.g. set_subprocess_write() or something equally boring?
or, considering we could expand beyond write:
set_subprocess_crud()

QQ: where is the prelude_dropper? are we including that in our library too?

note that usage in vst writing is pretty straightforward; just call setsocketpath() to throw up the signal so that write() calls writeipc(), then after the quarantined() call proceed as normal (assuming a file socket is there to connect/write to)

as customers are using our libs, should this be named something more universal? e.g. set_subprocess_write() or something equally boring? or, considering we could expand beyond write: set_subprocess_crud()

hm. we could rename it to something that changes the perspective of intent on the caller's part. what about "DoWriteAsChild"? i agree that "SetSocketPath" might too heavily imply that the user can set the string despite it being an invariant.

QQ: where is the prelude_dropper? are we including that in our library too?

technically the dropper source code isn't a part of the endpoint library or the libraries repo so that's why it wasn't published. maybe it should be, though!

QQ: where is the prelude_dropper? are we including that in our library too?

technically the dropper source code isn't a part of the endpoint library or the libraries repo so that's why it wasn't published. maybe it should be, though!

likely to get signatured faster if it is public if that is of any concern for us.

likely to get signatured faster if it is public if that is of any concern for us.
EDIT: i see no issue as customers will need to understand the dropper a bit deeper and should have a general Prelude public dropper they can use with their own custom tests worth bringing up just due to the fact of AV.

fwiw i agree. for any customer-written tests, they just need to code their own dropper or ensure a unix dom socket is available in the testing directory at runtime.

screenie with new increased logging and dynamic dropper naming

latest:

adjusted the Exists() call in Quarantined() to use literal path as discerned from PRELUDE_DIR path variable
Write() now also does this
modified Say() to function as a format printer. this allows future tests to directly embed format strings without directly invoking fmt into test source, which can be useful for writing out error info, command output, and more


Removing broad imports that negatively impact performance

Ok so I think the performance impact here is going to be negligible, but I think this could be good for best practices...

Closing bc this it significantly clutters the blame, and doesn't bring any perf benefit.


Make update strategy configurable for kafka

Addresses Issue #3112 to allow Kafka statefulset update strategy to be configurable.
@mattfarina @viglesiasce
cc: @ginkel

/ok-to-test


Limit and Filter

Hello
I have a problem with showing ig feed with filter and limit.
Give an example:
I have 6 posts with format likes: image - image - video - image - image - image
I just wanna show image post, so I use this code
var feed= new Instafeed({ 	    get: 'user', 	    userId: 'xx', 	    clientId: 'xx', 	    accessToken: 'xx', 	    resolution: 'standard_resolution', 	    limit: 6, 	    filter: function(image) {         	return image.type === 'image';             } 	  }); 	  feed.run();
but it just show 5 posts.
I hope you can help me.
Thank you..

Hey @brianmadhan! Filters are applied after the limit option, so you'll need to raise the limit and remove extras after the fact. See #8 for an example.


Roblox not working on older wine versions

The "robloxwine" parameter inside the lutris installer code is now useless due to new Byfron anticheat update:

Error during the in game startup

This issue is created just to complement the "reason" update


dart2js does not support async/await

Error: Experimental language feature 'async/await' is not supported.
But it is not an experimental feature anymore.

Thanks for closing this. I believe it makes sense to not run these tests on dart2js.

Not running these on dart2js, except on a special bot, is now tracked under issue #26813


endpoint: skip Envoy incremental updates if no Envoy redirects (try 2)

This commit fixes a bug introduced by #31454.
It removes the check that skips updating Envoy when there are no pending PolicyMap changes. This is because there are cases where endpoint regeneration will flush incremental changes, but not apply them to Envoy.
The basic flow is:

thread 1: e.regenerate() -> e.updateNetworkPolicy() pushes policy to Envoy
thread 2: Generates an incremental update
thread 1: e.regenerate() -> e.applyPolicyMapChanges() consumes incremental update but does not apply it to envoy
thread 1: unlocks endpoint, returns
thread 2: e.ApplyPolicyMapChanges() consumes incremental update, applies to envoy

However, in this case, there is no pending incremental update for the BPF maps. The previous version of this code also skipped updating Envoy, which was incorrect.

.test

/test


Completed BlindDog agent examples

Updated the BlindDog agent examples in agents.ipynb and added a new class in agents.py

Refactored the printing of the environment state in the agents.ipynb examples to be done by the environment. Also changed the <BlindDog> in the output to instead reflect exact agent location and action.
Extended the BlindDog example in agents.ipynb to 2 dimensions, with a slightly modified BlindDog program to make a new "EnergeticBlindDog" for 2D.
Added a GraphicEnvironment class to agents.py - to abstract the details of the GUI on jupyter so that the user can continue to focus solely on the agent algorithm without bothering with inside GUI details. Designed it such that no modifications to previous user agent program code are required, while simultaneously allowing for future updating to a better GUI without having to change user calling code.
Demonstrated the use of the GUI environment through an example in agents.ipynb
Added relevant markdown comments to explain all the code objectives and modifications.

The travis build failed due to failed imports of agent.py, as ipythonblocks wasn't installed (unlike on my local machine). I fixed this by wrapping the import statement in a try/except block. For the GraphicEnvironment to work, however, it is necessary to install ipythonblocks - should I add this to the requirements.txt file?


Can't import Bestiary 3 - Thylacine (Marsupial)

Can't import statblock:
Thylacine (Marsupial)      CR 1/2
XP 200
Male thylacine (Pathfinder RPG Bestiary 3 191)
N Small animal
Init +2; Senses low-light vision; Perception +8
Defense
AC 13, touch 13, flat-footed 11 (+2 Dex, +1 size)
hp 7 (1d8+3)
Fort +5, Ref +4, Will +1
Offense
Speed 30 ft.
Melee bite +2 (1d4+1/19-20)
Statistics
Str 12, Dex 15, Con 16, Int 2, Wis 13, Cha 7
Base Atk +0; CMB +0; CMD 12 (16 vs. trip)
Feats Skill Focus (Perception)
Skills Perception +8
Special Abilities
Low-Light Vision See twice as far as a human in dim light, distinguishing color and detail.

Used your latest module that was available as of this afternoon at about 2:30pm.  I used Hero Lab to produce this statblock. For greater accuracy, you might want to use one of the online resources. Hero Lab can truncate some of the text. All the other statblocks from Bestiary 3 imported -- a total of more than 86% imported!


Ruby appears outdated (2.1.7 < 2.1.9)

In going through some docs/tutorials and poking around on my own today, I noticed that bosh appears to be using an outdated version of ruby (specifically ruby-2.1.7) which may have security impact later on down the line.
As of this writing, ruby-2.1.9 appears to be the latest 2.1 release available. Additionally, as mentioned here, the only 2.1 updates to be released from here on will be maintenance/security releases; it may be worth considering an upgrade to 2.3.
Step one here is flagging this as an issue, and then if I have time to do so - and with guidance from the community (because I'm a noob when it comes to this project, not gonna lie) - I'll see what I can do about updating ruby within this project to use 2.1.9.
So far I see the following places where we may need to make updates; problem is, I don't personally know how all these pieces fit together and what other areas I may have missed. Hoping someone more familiar with the project can comment here:

https://github.com/cloudfoundry/bosh/blob/93a2522b3a6a58cc3d24f6ea10a9dba0a9a421bb/ci/docker/install-bundler.sh#L6
https://github.com/cloudfoundry/bosh/blob/93a2522b3a6a58cc3d24f6ea10a9dba0a9a421bb/ci/docker/install-ruby.sh#L6 (additionally, is 0.5.0 the current "best" version of ruby install to use here? Same with chruby?)
https://github.com/cloudfoundry/bosh/blob/93a2522b3a6a58cc3d24f6ea10a9dba0a9a421bb/ci/pipelines/os-image/docker/install-ruby.sh#L6
https://github.com/cloudfoundry/bosh/blob/93a2522b3a6a58cc3d24f6ea10a9dba0a9a421bb/release/packages/ruby/spec#L5

Of course, updating Ruby here may also necessitate updating various libs, Rubygems, and possibly other things I'm just not thinking of right now. Comments from the community would be appreciated here, and by all means, if some one more experienced wants to take this and run with it, go right ahead! No ego to bruise, here. :)

yup. should bump. story: https://www.pivotaltracker.com/story/show/117398595

As of director v257, ruby 2.3.1 is used.


Assert Location Fees exported incorrectly.

There are some bugs with the export if it includes Assert Location fees (perhaps some others as well).  I have spotted two bugs:

If I choose to export with the fees displayed in HNT, then the assert location fee shows up a 0.
if I choose to export with the fees displayed as DC, they are exported as: 1,000,000 DC
That is, with the commas and no quotes around the number of the DC; this messes up any parsing if I try to import into a spreadsheet, etc. These are in the "sent" columns. The "fee" columns look fine.
Let me know if you need more details.

related to #267


RF Builder title

Refers to the title of the RF builder page:

[x] Title links to Program page
[x] Subtitle of "Results Framework" with icon
[x] Link to LogFrame

@axoplasm I noticed that the logframe icon to the right of the button text instead of the left, like other icon buttons. I'm wondering if that was intentional?

almost certainly not. I'll fix

Passed. Logframe button looks good. I added a comment to 1570 to consider how that button vertically aligns with the rest of the title when the title wraps.


Command-line interface

Implement an initial command-line interface that accepts parameters/arguments, flags/options and source files like so:
ccompiler [OPTIONS] files ...

Initial options:

-pedantic - More warnings.
-pedantic-errors - Pedantic warnings become errors.
-Woption - Diagnostic options.
-fsyntax-only - Analyses source codes, but only output diagnostics if any.
-o - Binary output (file name).
-On - Optimization level.

Also add:

-Werror - Warnings as errors.


Error [ERR_REQUIRE_ESM]: Must use import to load ES Module

Following is my code to take backup of users collection;
import { MongoTransferer, MongoDBDuplexConnector, LocalFileSystemDuplexConnector } from 'mongodb-snapshot';

async function main() {
  const mongo_connector = new MongoDBDuplexConnector({
    connection: {
      uri: 'mongodb://localhost:27017',
      dbname: 'test',
    },
    assource: {
      collections: ['users'],
    },
  });
  const localfile_connector = new LocalFileSystemDuplexConnector({
    connection: {
      path: './backup.tar',
    },
  });

  const transferer = new MongoTransferer({
    source: mongo_connector,
    targets: [localfile_connector],
  });

  for await (const { total, write } of transferer) {
    console.log(`remaining bytes to write: ${total - write}`);
  }
}

main();

For above code, it generates following error:
internal/modules/cjs/loader.js:1149
throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
^
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: D:\src\backup2.js
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1149:13)
    at Module.load (internal/modules/cjs/loader.js:977:32)
    at Function.Module._load (internal/modules/cjs/loader.js:877:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  code: 'ERR_REQUIRE_ESM'
}

node version - v12.16.3
Kindly help resolving this issue.
Once this runs, my final objective is to take backup from Mongodb hosted on atlas.

@aptiway-dev-app how do you run this application? with typescript (node --require ts-node/register) or are you compiling it?
If you are compiling your application, what kind of module are you using? commonjs, amd, umd?

@aptiway-dev-app please let me know if you have any more issues, i close this issue for now


[c++] Remove unused UNIT_TEST_SUBSET

This macro is less useful now that the tests have been exploded into
smaller executables.

Failures appear to be C++ build timeouts. Closing and re-opening to trigger another build.

Running CI again.


Remove the reset-password instructions

We no longer need to do it manually.

@bobheadxi is there a way to check if the reset-password email was sent (in UI? in DB? in our email provider UI)?

Added a way to check if email was sent.


Add Identifiable copy for Linux

Hi, @mluisbrown
Nice job with your last PR. However one thing I noticed is that you guarded out Identified and IdentifiedArray.
The obvious reason is that Identifiable is not available on non-Apple platforms. However if we add copy of it(guarding for linux/android), it compiles for Android on my machine.
What do you think, does it make sense to add it, to make use of IdentifiedArray?

Funny thing, someone decided to include public mutating func move(fromOffsets source: IndexSet, toOffset destination: Int) inside SwiftUI instead of Swift Standard Library, like other methods from Mutable Collections

Looks good. I never really understood why Identified is part of the Swift Standard Library but restricted to newer platform versions 🤷
With these changes, you could also  allow the version of Reducer.forEach which works with WritableKeyPath<GlobalState, IdentifiedArray<ID, State>> and is currently guarded with #if canImport(SwiftUI)

@mluisbrown updated.
yes, that makes sense why it's available only after iOS 13, but still don't get their long-term plan on how to put new stuff on other platforms.

Thinking about this a bit more, I don't think we should add our own implementation of Identifiable. It is part of Swift since Swift 5.1:

https://github.com/apple/swift/blob/main/stdlib/public/core/Identifiable.swift
https://github.com/apple/swift-evolution/blob/master/proposals/0261-identifiable.md

It is guarded with @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) where the * means it's available on any other platform (including Linux). The restriction is just or Apple platforms where Swift is shipped as part of the OS.
So I'm pretty sure we don't need our own implementation. We would need to add @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *) to Identified and everything else that uses Identifiable directly or indirectly.
The CI for Linux is using Swift 5.3 so it should be fine. The local declaration you added probably just overrode the STL version.
Can you try removing it and adding @available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)  where needed and see if that passes CI?

@mluisbrown good point. I missed that because I'm still checking on Swift 5.0.3.
It looks like it's compiling and passing tests for Linux, just by guarding out move function on Mutable Collections

Ok cool. It looks like all the uses of Identifiable were already guarded with @available anyway 👍

Yes, it was failing before, only because of 'move' function.


LinearTrendTransform bug fix

IMPORTANT: Please do not create a Pull Request without creating an issue first.
Before submitting (checklist)

[ ] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[ ] Did you read the contribution guide?
[ ] Did you check the code style? make lint (poetry install -E style).
[ ] Did you make sure to update the docs? We use Numpy format for all the methods and classes.
[ ] Did you write any new necessary tests?
[ ] Did you check that your code passes the unit tests pytest tests/ ?
[ ] Did you add your new functionality to the docs?
[ ] Did you update the CHANGELOG?

Type of Change

[ ] Examples / docs / tutorials / contributors update
[x] Bug fix (non-breaking change which fixes an issue)
[ ] Improvement (non-breaking change which improves an existing feature)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Proposed Changes

Related Issue

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.

Closing issues
Put closes #XXXX in your comment to auto-close the issue that your PR fixes (if such).

Codecov Report

Merging #49 (0d02f51) into master (26d88da) will decrease coverage by 4.80%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #49      +/-   ##
==========================================
- Coverage   90.33%   85.53%   -4.81%
==========================================
  Files          45       45
  Lines        1976     1977       +1
==========================================
- Hits         1785     1691      -94
- Misses        191      286      +95

Impacted Files
Coverage Δ

etna/transforms/detrend.py
98.27% <100.00%> (+0.03%)
:arrow_up:

etna/transforms/pytorch_forecasting.py
26.38% <0.00%> (-73.62%)
:arrow_down:

etna/models/nn/tft.py
38.88% <0.00%> (-61.12%)
:arrow_down:

etna/models/nn/deepar.py
41.17% <0.00%> (-58.83%)
:arrow_down:

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 26d88da...0d02f51. Read the comment docs.


Springboot 3- VCAP Services sealed secrets issue for Xsuaa

Issue Summary

A clear and concise description of the issue.

When we upgrading spring boot 2 to 3 with the dependency of cloud security xsuaa with the version <version.xsuaa-java-sbom>3.1.0</version.xsuaa-java-sbom> we are facing below error message when deploying the application in the container.
{"@version":1,"source_host":"...........","message":"\n\nError starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.","thread_name":"main","@timestamp":"2023-09-22T10:59:16.624+0000","level":"INFO","logger_name":"org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger"} {"exception":{"exception_class":"org.springframework.beans.factory.BeanDefinitionStoreException","exception_message":"Failed to process import candidates for configuration class [com.sap..................]: A JSONArray text must start with '[' at 1 [character 2 line 1]","stacktrace":"org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.sap...........]

Steps to reproduce the problem: 1. 2. 3.
when we provide the environment variable as VCAP_SERVICES and passing the secrets like below it works fine without any issues:
**secrets: |
{"xsuaa": [{"credentials": { "clientid": "dummy","xsappname": "dummy","clientsecret": "dummy","url": "dummy","uaadomain": "dummy"}}]}

But when we tried with the sealed secrets by passing all those values with volume mounts and referring from the environment of that sealed secret name it was giving me the exception and end up with the Crash loop back off error.**

Issue Report Checklist

[ ] Real, current bug
[ ] Not a duplicate
[ ] Not covered in "Common Pitfalls" section of corresponding module's README.md e.g. java-security#common-pitfalls
[ ] Reproducible
[ ] Good summary
[ ] Well-documented

[ ] log level increased to DEBUG debug logs provided
[ ] POM provided
[ ] dependency tree provided
[ ] code snippet provided (when applicable)

Hi,
We are using https://github.com/SAP/btp-environment-variable-access/tree/main to read the service credentials.
Your exception message contains no details at all which classes are involved, so I cannot say if it is a class from our repository that throws.
However, I think it might be more related to btp-environment-variable-access or how you are supplying the credentials.
Can you please check their guide for Kubernetes and make sure you are doing everything as described?

In the above error it was throwing exception with the spring boot main class of the application.
since reference-instance plan is not supporting with spring-xsuaa version which I have mentioned above is not working with the env variable as "SERVICE_BINDING_ROOT". so, we are trying to pass all those values as sealed secrets like client id and client secret etc. as a workaround.
In that perspective what would be the Environment variables of client id and client secret it will expect to parse the xsuaa properties or read the values from VCAP for spring-xsuaa with <version.xsuaa-java-sbom>3.1.0</version.xsuaa-java-sbom>

let me rephrase your issue.
You are running on k8s and want to read the Xsuaa service configuration from VCAP_SERVICES environment variable?

Yes I am running on k8s and want to read the Xsuaa service configuration through yaml format but not with Json format.

if you want to use yaml as the service configuration property source then it has to follow the following format https://github.com/SAP/cloud-security-services-integration-library/blob/main/samples/spring-security-hybrid-usage/src/test/resources/application.yml

That is for spring-security, isn't it?
What if I want to pass and get the environment variables for spring-xsuaa?

yes for spring-security, for spring-xsuaa it's just xsuaa prefix see here: https://github.com/SAP/cloud-security-services-integration-library/blob/main/spring-security/Migration_SpringXsuaaProjects.md#value

closing due to inactivity


Change the Connection lifecycle to be sticky to a DocumentSession

I’ve had conversations here and otherwise with 5-6 different people about the connection management in Marten. I think the clear feedback is that we should change the DocumentSession/CommandRunner mechanics so that each IDocumentSession has one and only one connection object (bound lazily though) for it’s lifetime, and expose that off of the IDocumentSession interface.
The changes:

Moves some transaction mgmt out of the CommandRunner class and up into the DocumentSession itself
IDocumentSession.Connection will give you access to the current connection w/ the transaction already started, so folks can use Dapper within the same DB transactions as the Marten session
All of the IDocument.OpenSession() methods will get a new, optional argument specifying the isolation level for the transaction of that session

Sounds like the ideal way I would think about the relationship between session, connection, transaction.

:+1: Thanks! That's exactly what I'm looking for.

Mid week at the earliest though;)

Sounds perfect!

:+1:

:+1:

I think I have this one done locally.


Steward stalled during scalafix migration

My private Steward produces no output for long time during scalafix migration for scalacheck over a my company project.
2019-09-28 09:37:18,257 INFO  Process update org.scalacheck:scalacheck:test : 1.14.0 -> 1.14.2
2019-09-28 09:37:18,383 INFO  Applying migrations: NonEmptyList(Migration(org.scalacheck,NonEmptyList(scalacheck),Version(1.14.1),NonEmptyList(github:typelevel/scalacheck/v1_14_1?sha=3fc537dde9d8fdf951503a8d8b027a568d52d055)))
// stalled here

My infastrcture for Steward watches a process and kill if the process seems stall (no output for 10 minutes).
I can loose this limitation, but I think this might be an issue for other people.
If I run the same scalafix on my PC, it finishes without error for several minutes.
So I think Steward also can finish compile and scalafix if it do not stall.
So I think it would be benefical if Steward periodically (like 1 minute) print . or something durinig time-consuming command like scalafix

بتاريخ السبت، 28 سبتمبر 2019، جاء من TATSUNO Yasuhiro <
<EMAIL_ADDRESS>
My private Steward produces no output for long time during scalafix
migration for scalacheck over a my company project.
2019-09-28 09:37:18,257 INFO  Process update org.scalacheck:scalacheck:test : 1.14.0 -> 1.14.2
2019-09-28 09:37:18,383 INFO  Applying migrations: NonEmptyList(Migration(org.scalacheck,NonEmptyList(scalacheck),Version(1.14.1),NonEmptyList(github:typelevel/scalacheck/v1_14_1?sha=3fc537dde9d8fdf951503a8d8b027a568d52d055)))
// stalled here
My infastrcture for Steward watches a process and kill if the process
seems stall (no output for 10 minutes).
I can loose this limitation, but I think this might be an issue for other
people.
If I run the same scalafix on my PC, it finishes without error for several
minutes.
So I think Steward also can finish compile and scalafix if it do not stall.
So I think it would be benefical if Steward periodically (like 1 minute)
print . or something durinig time-consuming command like scalafix
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/fthomas/scala-steward/issues/1005?email_source=notifications&email_token=AM7NYC5WRPK3WMHEKVM7G6TQL4YJJA5CNFSM4I3NVFA2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HOJVKFA,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM7NYCYU3XOJDDKADLHRJEDQL4YJJANCNFSM4I3NVFAQ
.

Closing since periodic logging introduce non-essential complexity to Steward.
It should be addressed in runtime infrastructure.

I'd like to add two notes here. I also experienced hanging Scalafix migrations and added a timeout for running processes to mitigate this problem (see #764 and #776). The second is that Scala Steward can print sbt's output while it is running using the TRACE log level. I guess it would help in your situation but it would also clutter your log files. :-)


enabled/disabled should preserve focus

enabled:

disabled:

The fix in https://github.com/microsoft/vscode/pull/163739 asks the following follow up questions:

Can "being disabled" be styled differently than "being enabled"? Right now they are rendered identically.
In the event of disablement, it looks like the only valid thing that can take focus is the entire quick pick container which asks the following questions:
does it look right?
is it accessible?

@daviddossett what do you think?

What are the use cases for a disabled quick pick?

Yeah it's a good question... I'm not entirely sure. I think maybe when you have server-side validation... so:

"Enter the name of the Azure Static Web App you want to create"
type in 'foo' and hit Enter
quick pick sets the disabled property and the busy property to signal that the input is being processed
got a result from slow API saying 'foo already exists'... surface that to the user and reenable input

Seems like we should be dimming the value text and setting the input use a disabled attribute to start. I assume we're showing progress via a notification or some other indicator?

Our azure extension friends are hitting this - the actual user issue for them is that focus is not preserved.
So the quick pick shows up first as disabled, and then later they enable it (once API request comes back). And the focus is not there - so the user can not hit enter. Can we look into making sure that on quick pick enablement we pass focus into the input box (if the focus is already anywhere in the big quick pick element)?
Please correct me if needed @microfish91

Friendly ping! Looks like this issue requires some further steps to be verified. Please provide us with the steps necessary to verify this issue.

Verification:

Scaffold a new extension with yo code
Put this code in extension.ts inside the callback of the hello world command

const qp = vscode.window.createQuickPick();
qp.enabled = false;
qp.show();

Hit F5
Run the Hello World command from the command palette

The focus should still be in the input box (and not on the outer area like the screenshot above shows) and you should not be able to change the contents of the input box.


UI for get_shopcarts

Just a minor thing, in line 75 of the feature file, there is an extra space in "ring1". Also, when we enter "1003" as the user id, if there is a better wording to describe that we get nothing in the results? I am not experienced on this part, just curious

That extra space is my typo in story, sorry for that. I fixed the text in the story just now. We may try to see if some fields are empty, but I just think it is enough for the given data.

Just a minor thing, in line 75 of the feature file, there is an extra space in "ring1". Also, when we enter "1003" as the user id, if there is a better wording to describe that we get nothing in the results? I am not experienced on this part, just curious

That extra space is my typo in story, sorry for that. I fixed the text in the story just now. We might be able to see if some fields are empty, although maybe it is a little different to check fileds in table. I just think it is enough for the given data, if you want, I can try to figure out this.

That is fine, in the given scenario, I think the current testing should be good to go

Fixed and ready for merge.


Add More Attributes to the device page

See attached. Its plain and simple at the moment

Also already implemented.


Only check prod dependency versions

Hello,
This PR reverts https://github.com/node-red/node-red-dev-cli/commit/629790abf4628aa35bda7ed96d13069e13105c93 which did the opposite of what it claimed, and produced a regression in https://github.com/node-red/node-red-dev-cli/pull/3
Currently, Scorecard is wrongly flagging bad packages, even when they are a dev dependency...
Example: https://flows.nodered.org/node/node-red-contrib-postgresql/scorecard

This (my) node has no dependency to agent-base, which is though a sub-sub dev dependency of https://www.npmjs.com/package/mustache

Just to clarify its not a total reversion of https://github.com/node-red/node-red-dev-cli/commit/629790abf4628aa35bda7ed96d13069e13105c93 as that was meant to change test D03 and stop checking devDependencies for out of date versions. But it did inadvertently comment out the config that is used by D02 which prevented npmls from checking for incompatible packages in the whole depenency tree

Indeed @sammachin , sorry for my hasty wording...

@Alkarex no worries it took me until my 2nd coffee to figure out that there were 2 places we were looking at dependencies!

Will the check be re-run on existing packages?
For instance, my package is still reported as containing an invalid dependency:
https://flows.nodered.org/node/node-red-contrib-postgresql/scorecard

We currently only run when packages are updated. We don't have the bandwidth to rerun it against every node whenever there is an update to the tool


KAFKA-8544: Remove legacy kafka.admin.AdminClient

It has been deprecated since 0.11.0, it was never meant as a publicly
supported API and people should use
org.apache.kafka.clients.admin.AdminClient instead. Its presence
causes confusion and people still use them accidentally at times.
BrokerApiVersionsCommand uses one method that is not available
in org.apache.kafka.clients.admin.AdminClient, we inline it for now.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Couple of tickets are filed in JIRA:

https://issues.apache.org/jira/browse/KAFKA-5723
https://issues.apache.org/jira/browse/KAFKA-6956

I updated KAFKA-5723 to take into account this PR.


release pipeline

null

PR-Codex overview
This PR adds assets to .rultor.yml and updates pom.xml with plugins for signing and deploying to Sonatype Nexus.
Detailed summary

Added assets/settings.xml, assets/secring.gpg, and assets/pubring.gpg to .rultor.yml
Updated pom.xml with versions of nexus-staging-maven-plugin, maven-source-plugin, and maven-gpg-plugin
Added release profile to pom.xml for signing and deploying to Sonatype Nexus

@h1alexbel thank you for your Pull Request. I'll assign someone to review it soon.
If this PR solves a todo from the code, please don't forget to remove it.

@h1alexbel please review this Pull Request. Deadline (when it should be merged or closed) is 2023-04-16T14:50:15.676340.
You should check if the requirements have been implemented (partially or in full), if there are unit tests covering the changes and if the CI build passes. Feel free to reject the PR or ask for changes if it's too big or not clear enough.
Estimation here is 30 minutes, that's how much you will be paid. You will be paid even if this PR gets rejected.

@rultor merge

Codecov Report
Patch and project coverage have no change.

Comparison is base (7e1c0ad) 100.00% compared to head (8fc2158) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##            master       #17   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            4         4
=========================================
  Hits             4         4

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@rultor merge

@h1alexbel OK, I'll try to merge now. You can check the progress of the merge here

@h1alexbel thank you for resolving this ticket. I've just added it to your active invoice. You can always check all your invoices and more on the Contributor Dashboard.


x/tools/gopls: test failures with EBADF

#!watchflakes
post <- pkg ~ `^golang\.org/x/tools/gopls` && log ~ `bad file number`

Example failure (https://build.golang.org/log/347349f3689f6799b4e857ec5e9d93ca7a34e2e9):
--- FAIL: TestReferences (10.31s)
    integration_test.go:490: gopls references a.go:4:10: exited with code 2, want success: true (gopls references a.go:4:10: exit=2 stdout=<<>> stderr=<<gopls: RLock /opt/golang/.cache/gopls/0d935b09/export/5c/5c19d490bd139935740bf392e86bbde5fc4f527c4689a1481a4fc93b522e0516: bad file number
        >>)
    integration_test.go:491: gopls references a.go:4:10: stdout does not match [a.go:4:6-13]; got <<>>
    integration_test.go:492: gopls references a.go:4:10: stdout does not match [b.go:4:6-13]; got <<>>
FAIL
FAIL	golang.org/x/tools/gopls/internal/lsp/cmd/test	33.029s

I suspect that this occurs when we call RLock on a file that has already been closed.
(CC @findleyr @adonovan)

Duplicate of #58904


App Fails to run

Attempting to open the MicaForEveryone.exe file does nothing lol. I am running Windows 11 Build 22543.1000 and it just breaks even after installing the .net crap, restarting and running as admin. PLEASE FIX

It should work fine if you have .net core 3.1 runtime

It should work fine if you have .net core 3.1 runtime

I had to get the SDK

I had to get the SDK
just runtime is fine, even desktop runtime is not required as I don't use winforms and wpf

I had to get the SDK

just runtime is fine, even desktop runtime is not required as I don't use winforms and wpf

well it wasn't enough for me so idk. It wouldnt work without the SDK

I close this because no response from author


Remove t.Parallel() from libkbfs tests

To see if this helps the flakiness.

Let's hold off on this until we've determined whether the KeyManager test revert works.


Error when using <player.item_in_hand> with a spawn egg in hand

Just as the title says.
When I had a Zombie Spawn Egg in my hand, I used
/ex narrate <player.item_in_hand> and was treated to the following error in the debug:
http://old.mcmonkey.org/paste/49892
This was the case for every spawn egg I tested.

Part of 1.13 update issues at https://github.com/DenizenScript/Denizen-For-Bukkit/issues/1788


Update Composer dependencies (2023-05-05-00-09)

Visual regression test passed!
View the visual regression test report


Test all combinations of source/target for scoping

Is your feature request related to a problem? Please describe.
Currently, only a subset of possible combinations of source/target for cross-references is checked.
Also, test the import system separately and only once.
Tasks

[ ] Test global scoping separately
[ ] Think whether we can define tests for local scoping by a convention like we do for issue finder/formatter (linking done by ID):

// target 1
val »ref« = 1;

// source 1
»ref«;

Superseded by #540.


fix(wrangler): broken link in cli

What this PR solves / how to test
Fixes #[insert GH or internal issue number(s)].

Author has addressed the following

Tests

[ ] TODO (before merge)
[x] Included
[ ] Not necessary because:

Changeset (Changeset guidelines)

[ ] TODO (before merge)
[x] Included
[ ] Not necessary because:

Public documentation

[ ] TODO (before merge)
[ ] Cloudflare docs PR(s): https://github.com/cloudflare/cloudflare-docs/pull/...
[x] Not necessary because: this is in-tool documentation

looks like snapshots are failing. can you please have a look @webbertakken 🙏 ?

Sorry I'm having trouble getting your repo to work on Windows.
Guide seems to also be missing Windows steps: https://github.com/cloudflare/workers-sdk/blob/main/CONTRIBUTING.md#install-dependencies.
Anyway way you could update the snapshot?


Write rules for refusal of unpopular casks

We never had hard rules for refusal of software, like Homebrew does. However, as our popularity grows, so does the need for such rules. Twice in the last two days (https://github.com/caskroom/homebrew-cask/pull/28103, https://github.com/caskroom/homebrew-cask/pull/28197) we had submissions for casks that we refused due to being unknowns. It’s time to think about refusal rules and make them official.
Homebrew’s rules seem like a fine starting point (though I don’t actually get the difference between “known” and “used”). It’s of note that their CI detects unpopular repos (< 50 stars) automatically and fails, perhaps we could leverage that.
First ideas for rules for software refusal:

Unmaintained (no releases in the last year, or explicitly discontinued).
Too obscure (< 50 stars, or equivalent).
What maintainers feel is too much overhead for the value.

While HB frowns upon self-submitted work, I don’t think we should. Most times there’s a CLI tool I want to try that is not already in HB, I find in its repo an open issue about adding a formula and how the author cannot really do it because it’s self-submitted. We want people to self-submit! By doing so, they’re going to add HBC as an install option to their repos and feel a bigger sense to keep the cask up-to-date. What we don’t want is people self-submitting every little tool they make that is only useful to them.
After deciding on them, at the very least we should add our rules to faq/rejected casks.

I support this idea, except that I think Homebrew's too obscure rule is a little harsh - I would suggest < 10 stars (or equivalent).

10 stars seems too low, to me. That doesn’t even mean that 10 people actually use the software. The “equivalent” part already seems forgiving enough.

10 stars seems too low, to me. That doesn’t even mean that 10 people actually use the software. The “equivalent” part already seems forgiving enough.
That said, I’m not necessarily suggesting we make the number public in the FAQ. We could be discretionary on a case-by-case basis.

10 sounds more reasonable imo - but agreed we can put in a rough draft and refine as needed.

Alright, if you both find 10 fairer, then 10 it is.


OpenIdConnectConfiguration doesn't map id_token_signing_alg_values_supported collection

Hi,
I've been using the ConfigurationManager to get and map data from a discovery endpoint to an OpenIdConnectConfiguration object. I use fields like TokenEndpoint, AuthorizationEndpoint and Issuer. They map correctly every time. However the IdTokenSigningAlgValuesSupported which should map from id_token_signing_alg_values_supported is always returning an empty collection.
I think there's something wrong in the JSON deserializer settings you employ in OpenIdConfigurationRetreiver.cs:92.
I'm confident that the data I get from the discovery endpoint is valid for the id_token_signing_alg_values_supported field.
Here's a small test using this piece of code
I used this JSON to illustrate:
{
    "issuer":"http://acmepaymentscorp",
    "authorization_endpoint":"http://acmepaymentscorp/oauth/auz/authorize",
    "token_endpoint":"http://acmepaymentscorp/oauth/oauth20/token",
    "userinfo_endpoint":"http://acmepaymentscorp/oauth/userinfo",
    "jwks_uri":"http://acmepaymentscorp/oauth/jwks",
    "scopes_supported":[
        "READ",
        "WRITE",
        "DELETE",
        "openid",
        "scope",
        "profile",
        "email",
        "address",
        "phone"
    ],
    "response_types_supported":[
        "code",
        "code id_token",
        "code token",
        "code id_token token",
        "token",
        "id_token",
        "id_token token"
    ],
    "grant_types_supported":[
        "authorization_code",
        "implicit",
        "password",
        "client_credentials",
        "urn:ietf:params:oauth:grant-type:jwt-bearer"
    ],
    "subject_types_supported":[
        "public"
    ],
    "id_token_signing_alg_values_supported":[
        "HS256",
        "HS384",
        "HS512",
        "RS256",
        "RS384",
        "RS512",
        "ES256",
        "ES384",
        "ES512",
        "PS256",
        "PS384",
        "PS512"
    ],
    "id_token_encryption_alg_values_supported":[
        "RSA1_5",
        "RSA-OAEP",
        "RSA-OAEP-256",
        "A128KW",
        "A192KW",
        "A256KW",
        "A128GCMKW",
        "A192GCMKW",
        "A256GCMKW",
        "dir"
    ],
    "id_token_encryption_enc_values_supported":[
        "A128CBC-HS256",
        "A192CBC-HS384",
        "A256CBC-HS512",
        "A128GCM",
        "A192GCM",
        "A256GCM"
    ],
    "token_endpoint_auth_methods_supported":[
        "client_secret_post",
        "client_secret_basic",
        "client_secret_jwt",
        "private_key_jwt"
    ],
    "token_endpoint_auth_signing_alg_values_supported":[
        "HS256",
        "RS256"
    ],
    "claims_parameter_supported":false,
    "request_parameter_supported":false,
    "request_uri_parameter_supported":false
}

And the code:
    string json = "{\r\n  \"issuer\":\"http://acmepaymentscorp\",\r\n  \"authorization_endpoint\":\"http://acmepaymentscorp/oauth/auz/authorize\",\r\n  \"token_endpoint\":\"http://acmepaymentscorp/oauth/oauth20/token\",\r\n  \"userinfo_endpoint\":\"http://acmepaymentscorp/oauth/userinfo\",\r\n  \"jwks_uri\":\"http://acmepaymentscorp/oauth/jwks\",\r\n  \"scopes_supported\":[\r\n    \"READ\",\r\n    \"WRITE\",\r\n    \"DELETE\",\r\n    \"openid\",\r\n    \"scope\",\r\n    \"profile\",\r\n    \"email\",\r\n    \"address\",\r\n    \"phone\"\r\n  ],\r\n  \"response_types_supported\":[\r\n    \"code\",\r\n    \"code id_token\",\r\n    \"code token\",\r\n    \"code id_token token\",\r\n    \"token\",\r\n    \"id_token\",\r\n    \"id_token token\"\r\n  ],\r\n  \"grant_types_supported\":[\r\n    \"authorization_code\",\r\n    \"implicit\",\r\n    \"password\",\r\n    \"client_credentials\",\r\n    \"urn:ietf:params:oauth:grant-type:jwt-bearer\"\r\n  ],\r\n  \"subject_types_supported\":[\r\n    \"public\"\r\n  ],\r\n  \"id_token_signing_alg_values_supported\":[\r\n    \"HS256\",\r\n    \"HS384\",\r\n    \"HS512\",\r\n    \"RS256\",\r\n    \"RS384\",\r\n    \"RS512\",\r\n    \"ES256\",\r\n    \"ES384\",\r\n    \"ES512\",\r\n    \"PS256\",\r\n    \"PS384\",\r\n    \"PS512\"\r\n  ],\r\n  \"id_token_encryption_alg_values_supported\":[\r\n    \"RSA1_5\",\r\n    \"RSA-OAEP\",\r\n    \"RSA-OAEP-256\",\r\n    \"A128KW\",\r\n    \"A192KW\",\r\n    \"A256KW\",\r\n    \"A128GCMKW\",\r\n    \"A192GCMKW\",\r\n    \"A256GCMKW\",\r\n    \"dir\"\r\n  ],\r\n  \"id_token_encryption_enc_values_supported\":[\r\n    \"A128CBC-HS256\",\r\n    \"A192CBC-HS384\",\r\n    \"A256CBC-HS512\",\r\n    \"A128GCM\",\r\n    \"A192GCM\",\r\n    \"A256GCM\"\r\n  ],\r\n  \"token_endpoint_auth_methods_supported\":[\r\n    \"client_secret_post\",\r\n    \"client_secret_basic\",\r\n    \"client_secret_jwt\",\r\n    \"private_key_jwt\"\r\n  ],\r\n  \"token_endpoint_auth_signing_alg_values_supported\":[\r\n    \"HS256\",\r\n    \"RS256\"\r\n  ],\r\n  \"claims_parameter_supported\":false,\r\n  \"request_parameter_supported\":false,\r\n  \"request_uri_parameter_supported\":false\r\n}";

    // My actual use case uses the ConfigurationManager, but for simplicity I'm calling the constructor of OpenIdConnectConfiguration here
    OpenIdConnectConfiguration openIdConfig = new OpenIdConnectConfiguration(json)

And the openIdConfig is the following:

As you can see the collections are empty. Some clarification on this will be appreciated.
Thanks!

@underscoreHao can you remove the \r\n.
Our test: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/7c7c7e13968e6656e67eb43938d4da136336049c/test/Microsoft.IdentityModel.Protocols.OpenIdConnect.Tests/OpenIdConnectConfigurationTests.cs#L50
Data is here: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/7c7c7e13968e6656e67eb43938d4da136336049c/test/Microsoft.IdentityModel.Protocols.OpenIdConnect.Tests/OpenIdConfigData.cs#L84

@brentschmaltz I've modified my JSON, but the result is the same.
string json = @"{""issuer"":""http://acmepaymentscorp"",""authorization_endpoint"":""http://acmepaymentscorp/oauth/auz/authorize"",""token_endpoint"":""http://acmepaymentscorp/oauth/oauth20/token"",""userinfo_endpoint"":""http://acmepaymentscorp/oauth/userinfo"",""jwks_uri"":""http://acmepaymentscorp/oauth/jwks"",""scopes_supported"":[""READ"",""WRITE"",""DELETE"",""openid"",""scope"",""profile"",""email"",""address"",""phone""],""response_types_supported"":[""code"",""code id_token"",""code token"",""code id_token token"",""token"",""id_token"",""id_token token""],""grant_types_supported"":[""authorization_code"",""implicit"",""password"",""client_credentials"",""urn:ietf:params:oauth:grant-type:jwt-bearer""],""subject_types_supported"":[""public""],""id_token_signing_alg_values_supported"":[""HS256"",""HS384"",""HS512"",""RS256"",""RS384"",""RS512"",""ES256"",""ES384"",""ES512"",""PS256"",""PS384"",""PS512""],""id_token_encryption_alg_values_supported"":[""RSA1_5"",""RSA-OAEP"",""RSA-OAEP-256"",""A128KW"",""A192KW"",""A256KW"",""A128GCMKW"",""A192GCMKW"",""A256GCMKW"",""dir""],""id_token_encryption_enc_values_supported"":[""A128CBC-HS256"",""A192CBC-HS384"",""A256CBC-HS512"",""A128GCM"",""A192GCM"",""A256GCM""],""token_endpoint_auth_methods_supported"":[""client_secret_post"",""client_secret_basic"",""client_secret_jwt"",""private_key_jwt""],""token_endpoint_auth_signing_alg_values_supported"":[""HS256"",""RS256""],""claims_parameter_supported"":false,""request_parameter_supported"":false,""request_uri_parameter_supported"":false}";

@underscoreHao I tested out your json in our dev branch, which is our 6.x version.
Seems to work fine there.
To help understand what is going on here.
What version of IdentityModel are you using?
Are you including Newtonsoft as a package reference, if so what version?

@brentschmaltz I'm using 5.4.0 for both Microsoft.IdentityModel.Tokens and System.IdentityModel.Tokens.Jwt, 10.0.1 for Newtonsoft.Json

@underscoreHao can you send me the source you are using. I can't seem to repo your issue.

@underscoreHao If this is still a problem please attach the code you're using.

HI Guys,
When i use ConfigManager.GetConfigurationAsync().Result by passing the metdataUrl i will be getting the securityTokens
But when i using the OpenIdConnectConfiguration(string json) by passing metadatstring then the securitytokens count will be 0.
Please help me . Thanks in advance
(https://user-images.githubusercontent.com/10420328/80786047-039efa00-8ba0-11ea-849e-3c519749c948.PNG)

@adeshtc when OpenIdConnectConfigurationRetriever.GetAsync called from ConfigurationManager.GetConfigurationAsync calls out to the JwksUri endpoint to obtain the keys. When you use this constructor OpenIdConnectConfiguration(string json) that call is not made.
If you have json representing the keys you can use this constructor JsonWebKeySet(string json) then set the property OpenIdConnectConfiguration.JsonWebKeySet after constructing OpenIdConnectConfiguration.