Cant build

This is the code
$ ./build.sh
Feeds used:
  /home/goldenhuaji/.nuget/packages/
  https://api.nuget.org/v3/index.json
  https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
  https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
  https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json
  https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json
  https://www.myget.org/F/omnisharp/api/v3/index.json

/home/goldenhuaji/.cache/vimfiles/repos/github.com/OmniSharp/omnisharp-vim/omnisharp-roslyn-server/tools/packages.config 中列出的所有程序包均已安装。
/home/goldenhuaji/.cache/vimfiles/repos/github.com/OmniSharp/omnisharp-vim/omnisharp-roslyn-server/build.cake(48,20): warning CS0618: 'ITFBuildProvider.IsRunningOnTFS' is obsolete: 'Please use ITFBuildProvider.IsRunningOnAzurePipelines instead.'
Error: One or more errors occurred. (GitVersion: Process returned an error (exit code 1).)
	GitVersion: Process returned an error (exit code 1).

On  Ubuntu 20.04

cc GitVersion experts @mholo65 @david-driscoll

I've not seen this issue myself on WSL (not saying it's not an issue).
I can look at updating our version, I'm not sure if we're fully up to date or not.

Also on Fedora 32

Also on Fedora 32.
> ./build.sh
[...]
Adding package 'System.Text.Encodings.Web.4.7.1' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Added package 'System.Text.Encodings.Web.4.7.1' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Restoring NuGet package System.Text.Json.4.7.1.
Adding package 'System.Text.Json.4.7.1' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Added package 'System.Text.Json.4.7.1' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Restoring NuGet package System.Threading.Tasks.Dataflow.4.11.1.
Adding package 'System.Threading.Tasks.Dataflow.4.11.1' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Added package 'System.Threading.Tasks.Dataflow.4.11.1' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Restoring NuGet package System.Threading.Tasks.Extensions.4.5.4.
Adding package 'System.Threading.Tasks.Extensions.4.5.4' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Added package 'System.Threading.Tasks.Extensions.4.5.4' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Restoring NuGet package xunit.runner.console.2.4.0.
Adding package 'xunit.runner.console.2.4.0' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
Added package 'xunit.runner.console.2.4.0' to folder '/home/eirik/Git/omnisharp-roslyn/tools'
/home/eirik/Git/omnisharp-roslyn/build.cake(48,20): warning CS0618: 'ITFBuildProvider.IsRunningOnTFS' is obsolete: 'Please use ITFBuildProvider.IsRunningOnAzurePipelines instead.'
Error: One or more errors occurred. (GitVersion: Process returned an error (exit code 1).)
	GitVersion: Process returned an error (exit code 1).

Same here
stephen@svacer> uname -r
5.8.14-arch1-1

stephen@svacer> ./build.sh
Feeds used:
  /home/stephen/.nuget/packages/
  https://api.nuget.org/v3/index.json
  https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
  https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
  https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5/nuget/v3/index.json
  https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet5-transport/nuget/v3/index.json
  https://www.myget.org/F/omnisharp/api/v3/index.json

All packages listed in /home/stephen/Repositories/omnisharp-roslyn/tools/packages.config are already installed.
/home/stephen/Repositories/omnisharp-roslyn/build.cake(48,20): warning CS0618: 'ITFBuildProvider.IsRunningOnTFS' is obsolete: 'Please use ITFBuildProvider.IsRunningOnAzurePipelines instead.'
Error: One or more errors occurred. (GitVersion: Process returned an error (exit code 1).)
	GitVersion: Process returned an error (exit code 1).
./build.sh  7.02s user 0.27s system 104% cpu 6.995 total

Managed getting it working by following https://github.com/OmniSharp/omnisharp-roslyn/issues/1202#issuecomment-421543905 without the change on build.cake#L51 because that's not there (anymore?)
I should've just read it to begin with, but hopefully this will help others that missed it also

Just failed to me in Manjaro with same output

you can disable the git version task as a workaround


chore(packages): remove webpack dependency

:tada: This PR is included in version 2.2.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Fedora Workstation.

Why are there now workstation boxes in the repository?
The ubuntu repository has Desktop with GUI enabled.

For testing my ansible playbooks for desktop systems, I would also like a box that ships gnome. Is there any chance for such a thing?
:+1: for your work anyway! I like the boxes (I use fedora and ubuntu) really a lot.

PRs accepted ;-)


update fingerprint readme and tutorial

Tutorial is here http://cloudmesh.github.io/client/tutorials/comet_bigdata.html

due to issues and difficulty debugging fingerprint example on comet, switch to simple spark wordcount example


Large missing section of primitive when switching from 3D to Columbus View

Reported on the forum: https://groups.google.com/forum/?hl=en#!topic/cesium-dev/5A1-br_4iu4
The first example is 3D -> CV

The second example is 2D -> 3D -> CV

As far as I can tell, this was introduced in 1.17
Run this example, and change the scene mode to 3D and then to CV.  Then tilt the map to see the artifact.
var viewer = new Cesium.Viewer('cesiumContainer', {sceneMode: Cesium.SceneMode.SCENE2D});

viewer.entities.add({
    rectangle : {
        coordinates : Cesium.Rectangle.fromDegrees(-170.0, -80.0, 170.0, 90.0),
        material : Cesium.Color.YELLOW.withAlpha(0.5),
    }
});

@pjcozzi would you consider this a show stopper?

I can confirm this was introduced in 1.17.  It can also be reproduced by running the following example and switching to CV:
var viewer = new Cesium.Viewer('cesiumContainer');

viewer.entities.add({
    rectangle : {
        coordinates : Cesium.Rectangle.fromDegrees(-170.0, -80.0, 170.0, 90.0),
        material : Cesium.Color.YELLOW.withAlpha(0.5),
    }
});

@bagnell and I are working on too many other pressing things to look at this in detail right now.

I think the same problem can be seen with labels in 2D in the Picking Sandcastle example:

Hi, so i really wanted to have a solution for this so i went hunting a little bit. The issue was introduced in commit #62c63bc058d8014b1498d5c03f211450028b97f2
I cant quite figure out what happened, because from what i see it is just renaming and separating the updatePrimitives funtion into two functions (updatePrimitives and updateEnvironment).
In any case the clipping issue has to do with the useDepthPlane.
If you remove the if statement in line 1604 of Scene.js (https://github.com/AnalyticalGraphicsInc/cesium/commit/62c63bc058d8014b1498d5c03f211450028b97f2#diff-fb63af82386df4a707d9fcfb196c35fcR1604) everything seems to work as expected.
If scene._depthPlane.update(frameState); is never called it also removes the clipping but i imagine then in 3D the depth plane is not used loosing performance.
Hope this helps getting the solution into the next release :) regards!

The problem arises again：sandcastle

The problem arises again：sandcastle

Based on testing, this issue was reintroduced from 1.80

I found that the problem was solved by modifying file ShadowVolumeAppearanceFS like this
// line 79
if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) {
// change to
if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || (logDepthOrDepth != 0.0 && czm_sceneMode != czm_sceneMode2D)) {

// line 92
if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) {
// chang to
if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || (logDepthOrDepth == 0.0 && czm_sceneMode != czm_sceneMode2D)) {

@pjcozzi pjcozzi Is this a correct solution?


undefined symbol: luaopen_posix

installed latest using luarocks under lua-5.3.3 but while loading posix I get:
require('posix')
error loading module 'posix' from file '/picnic/u/apps/la/opt/lua/5.3.3/gnu/4.8.5/lib/lua/5.3/posix.so':
/picnic/u/apps/la/opt/lua/5.3.3/gnu/4.8.5/lib/lua/5.3/posix.so: undefined symbol: luaopen_posix
stack traceback:
[C]: in ?
[C]: in function 'require'
stdin:1: in main chunk

Sorry I missed this earlier.
It looks like your Lua installation is broken.  Are you installing the latest luarock?  Do other rocks load correctly?  Other rocks with a .so file?  Is the posix.so path you quote correct?  Does that file exist?  Does it have any luaopen_* symbols?  Is the path you quote listed in package.cpath when you start Lua from the command line?  What are the timestamps on the files you installed?
Running require('posix') with all the search paths set to match luarocks (eval luarocks path) should load the posix/init.lua file, which in turn pulls the submodules from the .so on demand according to the subtables you use from the posix/init.lua returned table.
HTH?


Add lexer parameter to Syntax

Type of changes

[ ] Bug fix
[x] New feature
[ ] Documentation / docstrings
[ ] Tests
[ ] Other

Checklist

[x] I've run the latest black with default args on new code.
[ ] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate. Will do this when the PR has been reviewed
[x] I've added tests for new code.
[x] I accept that @willmcgugan may be pedantic in the code review.

Description
I was working on some code that needed to show highlighted code and I needed to use a lexer instance as I was using some custom Pygment filters and I noticed that rich doesn't allow to pass an instance of lexer, so I decided to see if I can add support for that 😊
I'm not 100% happy with having both lexer and lexer_name as arguments, but that's the easiest way to maintain compatibilty. Another option is rename lexer_name to lexer and accept Union[str, Lexer], but that would be a breaking change (which might be ok), let me know what you think 😊
Related discussion: https://github.com/willmcgugan/rich/discussions/985

Just thinking this through.
I think your comment about not being 100% happy with having lexer and lexer_name was a good instinct. It would be a better interface to have a single lexer argument that may be a str or a Lexer instance.
That could be construed as a breaking change, but it was always intended to be a positional argument. So it might warrant a major version bump.
Let's go with the single lexer argument. I'll decide wether it warrants a major version bump.

Just thinking this through.
I think your comment about not being 100% happy with having lexer and lexer_name was a good instinct. It would be a better interface to have a single lexer argument that may be a str or a Lexer instance.

I think this looks much better! Let me know what you think 😊

Thanks!


Getting started

What environment are the instructions done for?
I've been trying to test this, but on two different machines, I'm simply hitting dependency cannot be resolved errors on everything. These are ubuntu precise (12.04) machines, so thinking that it might simply be the environment is too old, and I need to find a 14.04 setup to run this on.

Hi Michael,
The environment is good, could you paste the error you're getting?
Dependency resolution seems something related with Maven.
Did you have a working internet connection on that machine? Maven is
somewhat "hairy" if it wasn't able to download some dependency...and
unfortunately just retrying after restablishing the connection doesn't work.
In case my assumption is right, you should remove all downloaded dependency:
rm -rf $HOME/.m2/repository/*
And then retry with the installation (without cloning the repository)
Let me know
Andrea
On 15 May 2015 18:37, "Michael Akinde"<EMAIL_ADDRESS>wrote:

What environment are the instructions done for?
I've been trying to test this, but on two different machines, I'm simply
hitting dependency cannot be resolved errors on everything. These are
ubuntu precise (12.04) machines, so thinking that it might simply be the
environment is too old, and I need to find a 14.04 setup to run this on.
—
Reply to this email directly or view it on GitHub
https://github.com/agazzarini/SolRDF/issues/75.

Probably won't get around to looking at it any more this week (late). But I fired up a VM with 14.04, and that has now finished building and appears to be running fine. I'll take a look at it again on monday.

Ok nice to hear. However, as I said, I don't think the OS version had something to do with that.
If you will get some information on monday, please post them here.
Thanks

Hi @michaeloa, tomorrow I will put a "troubleshooting" section on the getting started page so we will close this issue ok?

Sure, no problem. Unfortunately, I didn't have time to look more closely at this today, except to try and throw up a compilation on a VM with Precise which failed (for a different reason than the OP). Since we're anyway going to be running SolR on 14.04 servers, it's not worthwhile for us to spend much more time trying to figure this one out.
Btw, regarding your #76, I found the installation instructions quite OK - though it would be useful to specify what envs its been tested on. I would think most technical users (and how many potential users are likely not to have tech competence) should be able to follow them.
I have someone in my team looking at building a simple website around a SolRDF database (forked the repo earlier today). We'll get back to you if we discover any other issues or find something to contribute.

Hi @michaeloa, sounds great. Another intersting option could also be to
provide a preinstalled VM image wth SolRDF.
About the fork, it would be great if who is investigating around SolRDF
(and in general anybody interested) could join the user and / or dev
mailing list
2015-05-18 23:24 GMT+02:00 Michael Akinde<EMAIL_ADDRESS>
Sure, no problem. Unfortunately, I didn't have time to look more closely
at this today, except to try and throw up a compilation on a VM with
Precise which failed (for a different reason than the OP). Since we're
anyway going to be running SolR on 14.04 servers, it's not worthwhile for
us to spend much more time trying to figure this one out.
Btw, regarding your #76 https://github.com/agazzarini/SolRDF/issues/76,
I found the installation instructions quite OK - though it would be useful
to specify what envs its been tested on. I would think most technical users
(and how many potential users are likely not to have tech competence)
should be able to follow them.
I have someone in my team looking at building a simple website around a
SolRDF database (forked the repo earlier today). We'll get back to you if
we discover any other issues or find something to contribute.
—
Reply to this email directly or view it on GitHub
https://github.com/agazzarini/SolRDF/issues/75#issuecomment-103216518.

Hi,
hopefully in June I can give SolRDF a try and since we use Docker to encapsulate our services I will try to provide a Docker container fr SolRDF.

Wow, that would be absolutely great! I'm not expert on this topic, what
is the "deliverable" artifact of such Docker thing? An image file? I
setup a Dropbox account so we could put that stuff there
On 05/19/2015 08:52 AM, martin-voigt wrote:

Hi,
hopefully in June I can give SolRDF a try and since we use Docker to
encapsulate our services I will try to provide a Docker container fr
SolRDF.
—
Reply to this email directly or view it on GitHub
https://github.com/agazzarini/SolRDF/issues/75#issuecomment-103370476.

We've been looking at Docker in our current project, though we haven't moved to using it for production usage yet. But this would definitely be something we could find interesting to use, too.

Closing this issue after renaming of issue #76


Update home.md

Deleting inaccurate info on OCR image requirements. "Bigger than 10 Megapixels" is misleading (and also doesn't make any sense)

@kamathn : Thanks for your contribution! The author, @noellelacharite, has been notified to review your proposed change.

@noellelacharite @v-deken Hey all! Just bumping this PR to remove an inaccurate and misleading line from our overview on OCR.

@kamathn Thank you!
#sign-off

@JennieHubbard: I'm sorry - only the author of this article, @noellelacharite, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Feat. req. Any way to recompress MSI for size reducing?

subj

MSI files certainly support compression and this lessmsi utility will extract files from the compressed media, but lessmsi doesn't have a way to add compression to an existing msi.
If I didn't understand your question, please feel-free to re-open this and clarify.

Can it be possibly implemented in future?

Sure it's possible. I'm happy to keep open to gauge interest. This isn't something that I'm in need of myself, but I'd be eager to plan and support someone implementing a PR to support this feature.


Additional server tests

Fixed typo
Increased coverage on server

+1 from myself and verbal +1 from @otoolep - thanks!


Unable to (easily) open remote file in host editor from remote Linux container if native code package is also installed in container because …/remote-cli/bin ends up last in PATH

UPDATE:
I think this is fighting with the Linux-side install? I did sudo dnf remove code and now code ./test.txt works (most likely because it's resolving to the remote-cli version). This works as expected:
% /vscode/vscode-server/bin/linux-x64/d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03/bin/remote-cli/code --verbose ./test.txt
{
  "type": "open",
  "fileURIs": [
    "file:///home/mm-dev/mm/mint/README.md"
  ],
  "folderURIs": [],
  "diffMode": false,
  "addMode": false,
  "gotoLineMode": false,
  "forceReuseWindow": false,
  "forceNewWindow": false
}

The test.txt file then gets opened in my host editor.
So maybe this is a PATH issue? Not sure? #136106 seems to indicate that calling code <filename> from the "remote" environment should play well with the host VSCode, but I may have misunderstood that issue. Perhaps …/remote-cli should come earlier in the the PATH? This might be too blunt an approach, though. An alternative might be to expose it via an environment variable, e.g., VSCODE_REMOTE_CLI=/vscode/vscode-server/bin/linux-x64/…/bin/remote-cli/code? That way one could do, e.g., if [ -n "${VSCODE_REMOTE_CLI}" ] ; then export EDITOR="${VSCODE_REMOTE_CLI}" ; fi)?

Does this issue occur when all extensions are disabled?: N/A (need extension to reproduce)

Host VS Code Version: 1.64.1, commit d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03
Host OS Version: OS X
Container VS Code Version: 1.64.1-1644255919.el7
Container OS Version: Oracle Linux 8

Steps to Reproduce:

Remote Containers: Open Workspace in Container…
Once up and running open terminal in VSCode (opens to shell in container)
Type:

% touch test.txt
% which code
/usr/bin/code
% code test.txt

I expected this would open test.txt on the remote container in my editor, but nothing happens.
Now try:
% code --verbose test.txt
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted

% env
HOSTNAME=41c5ccb3d999
REMOTE_CONTAINERS_SOCKETS=["/tmp/vscode-ssh-auth-c1298e49cdf6f893a01c7285d94da7049e450745.sock","/home/dev/.gnupg/S.gpg-agent"]
PWD=/home/dev/src
HOME=/home/dev
REMOTE_CONTAINERS_IPC=/tmp/vscode-remote-containers-ipc-c1298e49cdf6f893a01c7285d94da7049e450745.sock
SHELL=/usr/bin/zsh
SHLVL=2
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/opt/local/venv/bin:/usr/bin:/bin:/vscode/vscode-server/bin/linux-x64/d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03/bin/remote-cli
_=/usr/bin/env
LOGNAME=dev
OLDPWD=/home/dev
HISTCONTROL=ignoredups
USER=dev
MAIL=/var/spool/mail/dev
HISTSIZE=67108864
TERM=xterm-256color
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
PYTHONIOENCODING=utf-8
EDITOR=vim
SSH_AUTH_SOCK=/tmp/vscode-ssh-auth-c1298e49cdf6f893a01c7285d94da7049e450745.sock
REMOTE_CONTAINERS=true
BROWSER=/vscode/vscode-server/bin/linux-x64/d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03/bin/helpers/browser.sh
TERM_PROGRAM=vscode
TERM_PROGRAM_VERSION=1.64.1
COLORTERM=truecolor
VSCODE_GIT_IPC_HANDLE=/tmp/vscode-git-d302a365cb.sock
GIT_ASKPASS=/vscode/vscode-server/bin/linux-x64/d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03/extensions/git/dist/askpass.sh
VSCODE_GIT_ASKPASS_NODE=/vscode/vscode-server/bin/linux-x64/d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03/node
VSCODE_GIT_ASKPASS_EXTRA_ARGS=
VSCODE_GIT_ASKPASS_MAIN=/vscode/vscode-server/bin/linux-x64/d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03/extensions/git/dist/askpass-main.js
VSCODE_IPC_HOOK_CLI=/tmp/vscode-ipc-24ee71b3-c104-41fa-981a-896f06ea99e8.sock
LC_ALL=en_US.UTF-8

Closing as a duplicate of #2763.


Optionally add x-amz-security-token header for temporary STS credentials

I've updated to add x-amz-security-token header from an optional constructor kwarg -- necessary in order to use in an AWS Lambda with IAM role-based auth.
I'm very new to AWS, so it's very possible I've missed some use cases, but this change works for me.
Sorry, I didn't have time yet to update the doc or tests.

Thanks magdalene, this looks great. I'm wondering if it would be even more useful if AWS4Auth automatically included x-amz-security-token if self.sessionToken was set? Do you think this would cause any problems in any circumstances?

That's a really good point! Also I've noticed I accidentally used camel case (sorry -- working with javascript recently.....). I'm opening a new pr with that and also some documentation.


update to php 8.3

Pull Request Test Coverage Report for Build<PHONE_NUMBER>9
Details

27 of 27 (100.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>0:
0.0%

Covered Lines:
227

Relevant Lines:
227

💛  - Coveralls


Add sync-messenger

Adding a new cask

[x] Checked there aren’t open pull requests for the same cask.
[x] Checked there aren’t closed issues where that cask was already refused.
[x] When naming the cask, followed the token reference.
[x] Commit message includes cask’s name.
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.

in ~g/wantedly/homebrew-cask on sync_messenger
❯ brew cask audit --download Casks/sync-messenger.rb
==> Downloading https://sync-download.s3-ap-northeast-1.amazonaws.com/releases/sync-darwin-production-1456814986.zip
######################################################################## 100.0%
==> Verifying checksum for Cask sync-messenger
audit for sync-messenger: passed

in ~g/wantedly/homebrew-cask on sync_messenger
❯ brew cask style --fix Casks/sync-messenger.rb
==> Installing or updating 'rubocop-cask' gem
Fetching: rainbow-2.1.0.gem (100%)
Successfully installed rainbow-2.1.0
Fetching: ast-2.2.0.gem (100%)
Successfully installed ast-2.2.0
Fetching: parser-<IP_ADDRESS>.gem (100%)
Successfully installed parser-<IP_ADDRESS>
Fetching: powerpack-0.1.1.gem (100%)
Successfully installed powerpack-0.1.1
Fetching: ruby-progressbar-1.8.1.gem (100%)
Successfully installed ruby-progressbar-1.8.1
Fetching: unicode-display_width-1.0.5.gem (100%)
Successfully installed unicode-display_width-1.0.5
Fetching: rubocop-0.40.0.gem (100%)
Successfully installed rubocop-0.40.0
Fetching: rubocop-cask-0.6.0.gem (100%)
Successfully installed rubocop-cask-0.6.0
8 gems installed
== Casks/sync-messenger.rb ==
C:  6:  1: [Corrected] stanzas within the same group should have no lines between them
C: 14:  5: [Corrected] Align the elements of an array literal if they span more than one line.
C: 14:  5: [Corrected] Use 2 spaces for indentation in an array, relative to the position of the opening bracket.
C: 16:  3: [Corrected] Indent the right bracket the same as the left bracket.

1 file inspected, 4 offenses detected, 4 offenses corrected

in ~g/wantedly/homebrew-cask on sync_messenger *
❯ brew cask install Casks/sync-messenger.rb
==> Downloading https://sync-download.s3-ap-northeast-1.amazonaws.com/releases/sync-darwin-production-1456814986.zip
Already downloaded: /Library/Caches/Homebrew/sync-messenger-1.10.2.zip
==> Verifying checksum for Cask sync-messenger
==> Symlinking App 'Sync.app' to '/Users/ykiwng/Applications/Sync.app'
🍺  sync-messenger staged at '/opt/homebrew-cask/Caskroom/sync-messenger/1.10.2' (112 files, 107M)

in ~g/wantedly/homebrew-cask on sync_messenger *
❯ brew cask uninstall Casks/sync-messenger.rb
==> Removing App symlink: '/Users/ykiwng/Applications/Sync.app'

@vitorgalvao Fixed.

we currently have no such link on our page

Then we cannot accept the cask, because users cannot audit the trustworthyness of the url.
All urls must be publicly visible.


Release Trino Gateway chart 1.13.0

For Trino Gateway 13
Also @willmostly

Trino Gateway's Docker image 13 is not available yet: https://hub.docker.com/r/trinodb/trino-gateway/tags

Trino Gateway's Docker image 13 is not available yet: https://hub.docker.com/r/trinodb/trino-gateway/tags

I know .. this is in preparation to get things ready..

I pushed a commit again so this build again since the docker container is release .. but there are failures.. what am I missing @nineinchnick and @willmostly ?

Nevermind .. I think I found it.

You need to commit the updated Readme. See the main repo readme on how to set up a precommit hook to do this automatically

Finally.. it passed now.


Zram can be configured more optimally by using lz4 instead of zstd1

Describe the bug
Zram is currently configured to use zstd1, which is suboptimal
What did you expect to happen?
I've spent an inordinate amount of time optimizing zram on my system.
Benchmarks on zstd-1 vs lz4
https://www.reddit.com/r/Fedora/comments/mzun99/new_zram_tuning_benchmarks/
An explanation of vm.swappiness
https://docs.kernel.org/admin-guide/sysctl/vm.html#swappiness
https://stackoverflow.com/questions/72544562/what-is-vm-swappiness-a-percentage-of
Overcommitting memory (zram being bigger than RAM size) is good
https://issuetracker.google.com/issues/227605780
Gathered wisdoms

Swap is usually written sequentially but read randomly
Zram writes don't matter nearly as much as because Linux page cache data is already in RAM, and RAM>RAM transfers are absurdly quick
Zram hardcoded blocksize is 4K
For system memory performance applications care jack about bandwidth, latency (CAS etc in hardware, IOPS in software) is what matters
You still want a swapfile, even with zram, due to the fact that you're gonna have incompressible or very idle pages that you want to evict from RAM. This goes double for the Deck, which will be RAM starved on some games due to the GPU claiming a lot of RAM. More on this later.

IOPS benchmark on Samsung 970 EVO Plus 1TB
- lz4:      2 030 000 (!)
- zstd1:    820 000
- 970 EVO:  15 300

Compression ratios on mixed data
- lz4:    2.1
- zstd1:  2.9

This is very relevant for the Deck, because <12GB is right where in a lot of scenarios the benefits of extra memory from zstd1 start to outstrip the latency benefits of lz4.
Valve probably has a lot of profiled data, but as far as I've been able to tell, even the heaviest games don't go much over 4GB of VRAM.
Swappiness
Swappiness can be derived via formula. On kernel.org, they state

For example, if the random IO against the swap device is on average 2x faster than IO from the filesystem, swappiness should be 133 (x + 2x = 200, 2x = 133.33).

You can reduce that to (yx = 200 -x), where y is filesystem-to-swap IO ratio.
With the 970 Evo Plus as example again, we have aforementioned read IOPS values. 970EVO vs. lz4 =  15 300 / 2 030 000 = 0.008, so 0.008 is our ratio.
We plug that in, 0.008x = 200 -x = 198.4, and we get vm.swappiness=198.
Page clusters
These are logarithmic. With zram, you get noticeable latency improvements with 1 page, vm.page-cluster=0
Writeback device (backing swap partition)
https://www.kernel.org/doc/html/v5.9/admin-guide/blockdev/zram.html#writeback
Remember how I mentioned still needing a swapfile?
Here is where it gets slightly more convoluted.

Zram currently only accepts swap partitions as a writeback device.
This swap partition can also not be the "ordinary" swap partition of the system, although I don't know if the Deck uses the swapfile for anything beyond. Thankfully you can replace the swapfile with the swap partition, effectively costing no extra space
Currently, marking pages idle and evicting them has to be invoked via commensurate commands. This could be done via either cron or perhaps a systemd service. This will also need a writeback limit set to prevent wearing out SSDs, especially the 64GB eMMC Deck.
Two links about configuring page eviction with writeback:
https://github.com/systemd/zram-generator/issues/164
https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/ZramWriteback.java

Extra
There is also secondary algorithm recompression, although I have not yet tried this out and it is only in the newer kernels.
https://www.kernel.org/doc/html/latest/admin-guide/blockdev/zram.html#recompression
Output of rpm-ostree status
No response
Hardware
No response
Extra information or context
No response

Thanks! Will be digging into this more, but for now:
https://github.com/ublue-os/bazzite/commit/5ef67b4290e1bf083fad7beba959b31909c411c7

This should help a lot with understanding and tweaking various Virtual Memory settings @KyleGospo : https://gist.github.com/ahydronous/7ceaa00df96ef99131600edd4c2c73f2

Question
What is (more) preferred?

More available RAM for programs to use? (bandwidth efficiency)
or Lower latency (better responsiveness)?

My answer
Focus on lower latency without regression in bandwidth efficiency.
What are the best configuration values?
That generally depends on each PC configuration & usage scenario.
With the current approach, we cannot satisfy every usage scenario & PC configuration, because custom values are statically written only once during boot.
Examples
It is desirable to want more ZRAM swapiness during heavy usage scenario (bandwidth efficiency),
while with light-medium usage scenario you want less ZRAM swapiness (lower latency).
It is desirable to want ZSTD ZRAM compression for low-RAM configurations (bandwidth efficiency),
while with sufficient RAM configurations, you want LZ4.
etc, feel free to show more examples.
Implementation
I looked through @ahydronous's gist & I applied all values from there (except swapiness, where I use 180), to my custom image.
Here's how that looks:
Memory tweaks:
https://github.com/fiftydinar/gidro-os/blob/b172d940c85cfa7a988010e2598281138674d290/files/0-system/usr/bin/memory-tweaks-gidro
Dirty centisecs:
https://github.com/fiftydinar/gidro-os/blob/b172d940c85cfa7a988010e2598281138674d290/files/0-system/usr/bin/dirty-centisecs
You can notice that MaxPerfWiz tries to adjust some dynamic memory values to be as ideal as possible for all configurations, like

vm.dirty_expire_centisecs
vm.dirty_writeback_centisecs
vm.dirty_bytes (or ratio)
vm.dirty_backround_bytes (or ratio)

This can be improved further.
Tuned can also dynamically change sysctl values depending on some scenarios, so that can also possibly work well.

As Bazzite is now shipping with TuneD, I took the liberty of creating a configuration for it with the values linked above; based on the TuneD balanced profile, for testing purposes. Do note that these values are relevant to this specific setup - so, 16GB of RAM and a CPU with 16 threads:
/etc/tuned/profiles/balanced-tweaked/tuned.conf
#
# tuned configuration
#

[main]
summary = General non-specialized tuned profile with memory tweaks
include = balanced

[sysctl]
# Values taken from:
# https://gist.github.com/ahydronous/7ceaa00df96ef99131600edd4c2c73f2
# NOTE: Certain values are ommited due to already being Bazzite defaults.
vm.dirty_background_bytes = 209715200
vm.dirty_bytes = 419430400
vm.vfs_cache_pressure = 66
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 250

# Convention says KiB of RAM * 0.01
# From MPW: RAM / num_of_logical_cores * 0.058
# 16777216 KiB / 8 threads * 0.058 = 121634
vm.min_free_kbytes = 60817

Would it be possible to use a TuneD profile to adapt things like the algorithm and swappiness based on system specs?

Would it be possible to use a TuneD profile to adapt things like the algorithm and swappiness based on system specs?

I believe the way dynamic tuning works with TuneD might be coded into it directly, can't seem to find any word on configuring it. It's mainly meant for things like changing the CPU governor and things of that sort that change with system load, from what I gather.


Bump bitcask up to the develop branch

This is needed to pull in the switch over to the cuttlefish develop branch. Other than that it's the same version of bitcask that we were previously using from the tag.

:+1: 7cc2a58

@borshop merge


Update relational-pouch to correct version

Because of this pull the dependency should be upgraded.
https://github.com/nolanlawson/ember-pouch/pull/41
Nice functionality BTW!

Crap, my bad. Thank you!

published 1.2.2


Update README

Original issue: https://charm.cs.illinois.edu/redmine/issues/1271

The README is out of date in at least its build instructions, maybe other things

Original date: 2016-10-28 21:57:36

Update in commit d41cc86fdcdaccd6641db7994ab169d1218e607f


why set TBackwardNeedOutputs to True in nn_module?

op in nn_module group will own the same attr which has been set.
and the line https://github.com/tqchen/tinyflow/blob/master/src/op_nn.cc#L97 set TBackwardNeedOutputs to be true so that  all ops with  .include("nn_module") will need output when in MakeNNBackwardNode, but as we know, backwards calculation didn't depend the output value of fp node, only depend the output grad.
@tqchen

It is really implementation dependent, for some modules, backward indeed dependent on output, for example backward of exp is likely using output instead of input.
This is a "safe" choice that can be override later by set this specifically in each op

thanks, got it!


Impossible to enrich BaseOutputParser with a custom object member

System Info
Langchain 0.0.268
Python 3.9
Windows 10
Who can help?
@hwchase17
@agola11
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[ ] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[X] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[ ] Agents / Agent Executors
[ ] Tools / Toolkits
[ ] Chains
[ ] Callbacks/Tracing
[ ] Async

Reproduction
from langchain.schema import BaseOutputParser

class CustomType:
	pass

class CustomParser(BaseOutputParser):
	model_config = ConfigDict(arbitrary_types_allowed=True)
	c : CustomType

Expected behavior
This triggers a RuntimeError since no validator could be found for CustomType object. It prevents the user from passing custom types to the constructor of a langchain's output parser.
Though, this problem has been corrected in the latest versions of pydantic (thanks to the flag arbitrary_types_allowed). After investigating the source code, one of the mother classes of BaseOutputParser is Serializable and the latter derives from... pydantic.v1.BaseModel instead of pydantic.BaseModel. Why is that? This seems to be the source of the problem.

Hello,
Well, your solution is interesting, but I found a simpler one: declaring the non-pydantic fields with a leading underscore. This will instruct pydantic not to validate them. Anyway, I guess a proper solution should be found to avoid any cumbersome trick. I had a look at pydantic.v1 lib, and it does implement arbitrary_types_allowed. I don't know why an error is triggered in the snippet I provided.


Change Theme color and icon

Change the them color to match Azure's
Use the Azure or Microsoft logo on the site.

azure style applied


Config key fixup

I introduced some weird indentation

Sorry, I probably merged that other one a little to quick.


Output formatting

This is great!
But the output of the parser appears to be a lengthy unformatted text. Would it be more appropriate to return it as an Array or JSON data?

I'm not sure what you mean. Which specific parser are you referencing?

Hi! Thank you for getting back to me. I am new to Python, here is what I did:
import hytek_parser
results = hytek_parser.parse_hy3("./files/eex2022.hy3")

If I print the results, I get something like this:
ParsedHytekFile(file_description='Results From MM to TM', software=Software(name='Hy-Tek, Ltd', version='MM5 8.0Ea'), date_created=datetime.datetime(2023, 9, 1, 9, 52), licensee='..., meet=Meet(name='...', facility='...', start_date=datetime.date(2022, 12, 16), end_date=datetime.date(2022, 12, 18), altitude=0, country='USA', masters=False, type_=<MeetType.INVITATIONAL: '01'>, course=<Course.SCY: 'Y'>, teams={....}......

Is it "Object to String" or something?
I thought it would return me structured data, like this:
{
fileDescription: "...",
software: "...",
teams: [],
swimmers: []
event:[]
...
}

Then I figured out something like this:
results = hytek_parser.parse_hy3("./files/eex-holiday-2022.hy3")

# via dir(), I am able to find out the attributes of the swimmer object:
# 'age', 'date_of_birth', 'first_name', 'gender', 'last_name', 'meet_id', 'middle_initial', 'nick_name', 'team_code',

events = results.meet.events
meetSwimmers = []
for key, event in events.items():
    entries = event.entries
    for entry in entries:
        for swimmer in entry.swimmers:
            meetSwimmers.append({
                "age": swimmer.age,
                "firstName": swimmer.first_name
            })
print(json.dumps(meetSwimmers))

So now, I am able to get the JSON data of swimmers data. Is it the right way to do it? Or there is an easy way to convert results to JSON string?

Hi! Thank you for getting back to me. I am new to Python, here is what I did:
import hytek_parser
results = hytek_parser.parse_hy3("./files/eex2022.hy3")

If I print the results, I get something like this:
ParsedHytekFile(file_description='Results From MM to TM', software=Software(name='Hy-Tek, Ltd', version='MM5 8.0Ea'), date_created=datetime.datetime(2023, 9, 1, 9, 52), licensee='..., meet=Meet(name='...', facility='...', start_date=datetime.date(2022, 12, 16), end_date=datetime.date(2022, 12, 18), altitude=0, country='USA', masters=False, type_=<MeetType.INVITATIONAL: '01'>, course=<Course.SCY: 'Y'>, teams={....}......

Is it "Object to String" or something?

Yes, this is the string representation of the parsed data.

I thought it would return me structured data, like this:
{
fileDescription: "...",
software: "...",
teams: [],
swimmers: []
event:[]
...
}

It does! Are you familiar with classes? I know the documentation isn't the best, but if you look, parse_hy3 returns a ParsedHytekFile. You can then use ParsedHytekFile.meet to get the meet, Meet.events to get the events, etc. See the schemas.py file for all the data classes.

So now, I am able to get the JSON data of swimmers data. Is it the right way to do it? Or there is an easy way to convert results to JSON string?

All the data classes are attrs classes, so you can just use attrs.asdict and then dump to JSON:
import attrs
import hytek_parser
import json

results = hytek_parser.parse_hy3("./files/eex2022.hy3")
json.dumps(attrs.asdict(results))

ChatGPT told me:

This error message is raised when you are trying to use the attrs library's attrs.asdict() function on a class that is not decorated with the attrs decorator.
The attrs.asdict() function is intended to be used on attrs-decorated classes, and will raise this error if it is used on a class that is not decorated with attrs.
To fix this error, you need to decorate the class with the attrs decorator, like this:

I see you use @define  in the class, should I change it to @attrs.s, for example:
# from attrs import Factory, define, field
import attrs

# @define(init=False)
@attrs.s
class Swimmer:
    """Represents a swimmer in a meet."""

    # Biological info? If you have a better name tell me.
    gender: Gender
    date_of_birth: date
    age: int

No ChatGPT is wrong. Attrs has been updated to use @define. Notice how define is imported from attrs.
The error isn't even in attrs.

TypeError: Object of type datetime is not JSON serializable

Here's a printout of the dictionary
import attrs
import hytek_parser
import pprint

results = hytek_parser.parse_hy3("./files/eex2022.hy3")
d = attrs.asdict(results)

pprint.pprint(d)

Hi! @MrAwesomeRocks Sorry for the late response. I did test this as you suggested, and it works perfectly. I really appreciate your help. I have some other issues, but I will reach out when possible.


Document Count

Right now, the document count is generated over all documents that are found in all (ES) databases that are specified by an adapter:
return getDocumentQueryService().getTextAdapterConfigs().stream()
        .map(
            c -> {
              try {
                TextAdapter adapter = TextAdapter.getInstance(c);
                return adapter.count();
              } catch (Exception e) {
                return 0L;
              }
            })
        .reduce(Long::sum)
        .orElse(0L);

Maybe it would be feasible to have a second counter, that goes over all DocumentNodes in the Neo4j Database; we could display it beside it or somewhere else and one could get an overview that not for all Documents a graph representation was created.

Do we need both counts? Maybe it is sufficient to just give the number of clustered documents that are stored in Neo4J.

Would be fine by me. I'll change it in the branch I'm working on (#197) accordingly.

There are now two methods, but only the first will be used to display document count on the main page.
@Cacheable("documentCount")
public long count() {
  return documentNodeRepository.count();
}

public long textAdaptersDocumentCount() {
  return getDocumentQueryService().getTextAdapterConfigs().stream()
      .map(
          c -> {
            try {
              TextAdapter adapter = TextAdapter.getInstance(c);
              return adapter.count();
            } catch (Exception e) {
              return 0L;
            }
          })
      .reduce(Long::sum)
      .orElse(0L);
}


Using the TeleportAction to get through the World Border

I created a move that lets a player "Dash" and it uses the TeleportAction. However when you use it next to the World Border the player can get through it. I created a test move which recreates this issue:
test_teleport:
    actions:
        cast:
        -   class: Teleport
    parameters:
        allow_max_range: true
        allow_passthrough: false
        range: 10
        vertical_range: 2
        safe: false
        transparent: transparent_no_water
        target: block

Try adding world_border_restricted: true at the top level (not under parameters)

Adding that doesn't work for me. We are on magic version 7.6.20 so that shouldn't be the problem.
test_teleport:
    world_border_restricted: true
    actions:
        cast:
        -   class: Teleport
    parameters:
        allow_max_range: true
        allow_passthrough: false
        range: 10
        vertical_range: 2
        safe: false
        transparent: transparent_no_water
        target: block

It used to work. It should prevent casting a spell if the source or target location is outside of the world border. Make sure you're not opped while testing.
Sorry, I don't think I'll be able to really test this out anytime soon.

I did some debugging and figured out this was because we had the Magic.bypass permission, which short-cirquits BaseSpell#canCast. However, it may make more sense to let the world border check take precedence here? As in, even with the permission node you would not be able to pass the world-border. Not sure if this would be better though.

The bypass perm is basically meant to bypass all permission checks, though, I think world border included. That perm is the main reason you shouldn't test while opped, which I guess means you shouldn't give that perm out to people.
It also lets you destroy protected areas with magic, which also seems like a bad thing in general for people to have.

This was all in our testing environment, where people have a bit more liberal permissions regarding to bending. I think it is just a bit weird how the bypass also affects things that seem more like properties of a spell rather than permissions. Some permission checks are also not affected, such as gliding restrictions, which don't let one cast a spell even with the bypass permission.

It's supposed to effect anything that would block a spell for some permission-like reason. It's kind of a gray area.
The gliding restriction for instance could be because that was put in to avoid breaking something, rather than to prevent players doing something they shouldn't do. Or maybe you guys added that (can't remember) and so just didn't think about the bypass flag?
At any rate I think there are more fine-grained bypass perms too if you'd rather revoke the bypass flag.

It's probably something we added. It is handled somewhere else since it isn't bound to a location if I remember correctly. Though, arguably, going outside of world borders might also break things. I don't think we need to worry about this minor inconsistency.


[Airbrake] [Production] c.toLowerCase is not a function

Airbrake error: #7159
Airbrake project: datanator_frontend
Error type: TypeError
Error message: c.toLowerCase is not a function
Where: <no information>
Occurred at: Sep 14, 2020 23:36:49 UTC
First seen at: Sep 14, 2020 23:36:49 UTC
Occurrences: 0 (0 since last deploy on Aug 19, 2020 19:03:09 UTC)
Severity: error
URL: https://datanator.info/search/WQZGKKKJIJFFOK-GASJEMHNSA-N/
File: https://datanator.info/static/js/scenes/SearchResults/GeneSearchResultsList.js
Backtrace:
https://datanator.info/static/js/scenes/SearchResults/GeneSearchResultsList.js:45:in toLowerCase
https://datanator.info/static/js/scenes/SearchResults/SearchResultsList.js:93:in response

This appears to have resulted from a change in the storage of data in the database. This was fixed by a5684a57c09194a004dc3bcaf8f45611f6a55d9f. I fixed this a little more robustly in e00f8d9ee2206699dec52ad01be07e32dbd72611 so that it works with both the old and new organization of data, in case our database is not internally consistent.


Disable payment protocol certificate unit tests

Disable payment protocol certificate unit tests; we don't modify this code, and regenerating the test data is likely to be significantly time consuming. Will re-enable once discussion on spec is concluded.

does what it says. utACK.

See why I hate the narrow minded thinking of upstream when it's about new standards? Bleh, we'll figure something out, but I really want to keep payment protocol as it has been there and don't really like removing features if we don't know if anyone used them. Considering that we've been running with the genesis block hash for now and did not see any problems then I'm wondering if we are just good to go (regarding the discussion yesterday). Anyway, merging for now.


Mosaiq: Revisited issue, but open fresh (as to-do).  Need to reintroduce isNull.  Want blanks.

addressed with #30


Indent params

closes #82

Coverage increased (+0.1%) to 90.811% when pulling 6c37dcb3b5e2f2bc08c677be8902fdaff88238e9 on indent-params into faea0af24f792322424adb071d01453842a55714 on master.

Coverage increased (+0.2%) to 90.857% when pulling f691c39ec1a08ea88f99b3436bce3c4efa98d719 on indent-params into faea0af24f792322424adb071d01453842a55714 on master.


Use of dev version of packages in composer.json file

Hi, nice work with this package, is the some reason for using @dev version of doctrine in composer.json ?

:+1: I can't even install dependencies
 - nordsoftware/lumen-doctrine 2.2.0 requires doctrine/orm ~2.6@dev -> no matching package found.

I had to fork it and add 2.5 to it since 2.6 is not in stable conditions yet.

@flyandi I've been trying all afternoon to load your fork via composer but it refuses to fetch it!
{
    "repositories":
    [
        {
            "url": "https://github.com/flyandi/lumen-doctrine.git",
            "type": "vcs"
        }
    ],
    "require": {
        "nordsoftware/lumen-doctrine": "dev-master"
    }
}

Any clue what I'm doing wrong here?

The reason why we use @dev is because this is still work in progress. However it is a central part of our REST API framework that we built on-top of Lumen so we will make it stable as soon as possible.

thanks for the response, but is not interesting have diferents branchs for
this ? one master who is stable e one development who have the most recent
features e fixes ?
2015-10-30 15:49 GMT-02:00 Christoffer Niska<EMAIL_ADDRESS>
The reason why we use @dev is because this is still work in progress.
However it is a central part of our REST API framework that we built on-top
of Lumen so we will make it stable as soon as possible.
—
Reply to this email directly or view it on GitHub
https://github.com/nordsoftware/lumen-doctrine/issues/4#issuecomment-152600180
.

--
[image: --]
Jonathan
[image: http://]about.me/jonathanschweder
http://about.me/jonathanschweder?promo=email_sig

@kryysler can you make the required changes.


the use of hard_neg_weight

So this question is about the algorithm when it uses 3 sentences as input:
In the code on github the following "weight is used" when computing the final cos_sim score, but apperantly this score is 0.
I can't really find an explanation for it in the paper and i was wondering how the cos_sim would change if the weight is changed (both in positive and negative direction)

Here hard_negative_weight is the log of the hard negative weight (alpha in Table 7).

I guess I have the same question, what's the point of having summands that you multiply by 0? Like [0.0] * (cos_sim.size(-1) - z1_z3_cos.size(-1)) . Wont's this weights tensor always boil down to just  [z3_weight]?

[0.0] * x will create an array of size x with all values as 0.


Fix stylesheet portion of bower.json to comply w/ new main spec

Per https://github.com/bower/bower.json-spec/pull/43 / https://github.com/bower/bower.json-spec/commit/0b34d2bb0bdd4fa31fa9728f787f49e170e41f99, which has finally brought clarity regarding main. In particular:

Use source files with module exports and imports over pre-built distribution files.

Also, in the spec's example, the CSS files aren't included in main, but the main SCSS file is.
X-Ref: https://github.com/zurb/foundation-apps/pull/607

@gakimball Ping.


Some of the errors are failling to be sent to gitlab's sentry error monitoring due to brotli

How do you use Sentry?
Self-hosted/on-premise
Version
2.18.0
Steps to Reproduce
python help.py
help.py:
import sentry_sdk

sentry_sdk.init(dsn=<GITLAB_SENTRY_DSN>, debug=True)

division_by_zero = 1 / 0

pip freeze (Python 3.11.7, pip 23.2.1)

Brotli==1.1.0
certifi==2024.8.30
sentry-sdk==2.18.0
urllib3==2.2.3

Expected Result
Error is being sucessfully sent to gitlab (this is the log after pip uninstall brotli):
Traceback (most recent call last):
  File "/Users/narekalvandan/planeto/tessa/kek.py", line 5, in <module>
    division_by_zero = 1 / 0
                       ~~^~~
ZeroDivisionError: division by zero
 [sentry] DEBUG: atexit: got shutdown signal
 [sentry] DEBUG: Sending envelope [envelope with 1 items (error)] project:43180570 host:observe.gitlab.com
 [sentry] DEBUG: atexit: shutting down client
 [sentry] DEBUG: Flushing HTTP transport
 [sentry] DEBUG: background worker got flush request
 [sentry] DEBUG: 2 event(s) pending on flush
Sentry is attempting to send 2 pending events
Waiting up to 2 seconds
Press Ctrl-C to quit
 [sentry] DEBUG: background worker flushed
 [sentry] DEBUG: Killing HTTP transport
 [sentry] DEBUG: background worker got kill reques

i.e. pip freeze:
certifi==2024.8.30
sentry-sdk==2.18.0
urllib3==2.2.3

Actual Result
Note the Unexpected status code: 400 (body: b'') at the end:
...

Traceback (most recent call last):
  File "/Users/narekalvandan/planeto/tessa/kek.py", line 5, in <module>
    division_by_zero = 1 / 0
                       ~~^~~
ZeroDivisionError: division by zero
 [sentry] DEBUG: atexit: got shutdown signal
 [sentry] DEBUG: atexit: shutting down client
 [sentry] DEBUG: Flushing HTTP transport
 [sentry] DEBUG: background worker got flush request
 [sentry] DEBUG: Sending envelope [envelope with 1 items (error)] project:43180570 host:observe.gitlab.com
 [sentry] DEBUG: 2 event(s) pending on flush
Sentry is attempting to send 2 pending events
Waiting up to 2 seconds
Press Ctrl-C to quit
 [sentry] ERROR: Unexpected status code: 400 (body: b'')
 [sentry] DEBUG: Sending envelope [envelope with 1 items (internal)] project:43180570 host:observe.gitlab.com
 [sentry] ERROR: Unexpected status code: 400 (body: b'')**
 [sentry] DEBUG: background worker flushed
 [sentry] DEBUG: Killing HTTP transport
 [sentry] DEBUG: background worker got kill request

@narekvslife the Brotli decoding is done inside relay and it wasn't a recent addition. How old is this GitLab instance?

GitLab Enterprise Edition 17.6.0-pre 483fb0ca117

@narekvslife sorry for not being clear, I'm interested in the Sentry version.

Sentry that I'm using is 2.18.0. I am not sure I have access to Gitlab's sentry.. So our version is the one set in gitlab by default.
To be clear, we're using the Gitlab Integrated error tracking, not Sentry's gitlab integration.

As a side note, everything works with 1.21.0 which is the "tested version of the sdk" according to GitLab. Now that I think about it, maybe addressing this question to the GitLab's team is more appropriate?

@narekvslife that version is sentry-sdk version for the Python SDK. I am asking about the self-hosted Sentry version on GitLab side. If GitLab has something in-house that can ingest Sentry events than I'm afraid this repo is not the right place for that question.
You can force the new SDK by setting _experiments={"transport_compression_algo":"gzip"} to use gzip instead for now.


Add channel linking to list of keyboard shortcuts

+1, thanks!

Not sure whether we're going to hold off on marketing channel linking -- if so, we should punt this PR to 3.6.

Sounds like we'll add this for docs, so no longer on hold

+1


TestId no longer constant across test runs

Problem:
Trx specification seems to have changed significantly from 2.2.3 to 2.2.4+. As a result it makes it difficult (impossible?) to track historic results, map child tests to parents, and muddies the water for all UnitTestResults in the Trx file when using DataRow and DynamicData attributes.
In 2.2.3 all DataRow and DynamicData tests would show up as an InnerResult for a parent. The result would contain a testId that mapped to the parent's testId that it is nested under. This made sense because you could see the overall test result by viewing the parent and then look at each individual test result when looking at the child tests. After upgrading to 2.2.4 or later it doesn't seem like any of the consistency that Trx files had are valid anymore.
This has negative side effects depending on the CI/CD platform you use. In our example we use Bamboo which has always displayed parent results. Now that we have upgraded it shows each individual DataRow and DynamicData test result now too. While that might be okay for teams using default tooling that doesn't require any custom plugins or features to maintain a code base these new changes have made it difficult for those of us who need extra feature sets to keep our teams sailing smoothly.
Our team has a monolithic repository. Unit, integration, and functional tests can all be found in our C# test projects that run as part of our continuous integration process. As a result we have had to build tooling to manage and maintain tests. To do this we process Trx files, store them in our own data store, and run analysis on them. Some reasons why are listed below.

Does the test have the traits of a flaky test? If so, quarantine it in Bamboo so developers are not blocked from merging.
Is this test too slow consistently? If so, notify users that there is a reproducible performance issue.
Is this test randomly slow? If so, notify users that there is a hard to find performance issue.
Does this test fail the first time but pass on the second attempt? If so, notify users that their test is unreliable.
Does the test only fail between certain hours of the day? If so, notify the user.

You can see where that is going.
To create such a system we have had to rely on constants between test runs that lets us map results historically. For the last 8 years the test id has always been that constant. You couldn't even open a Trx file in Visual Studio if there were duplicate test ids being used. I haven't tested that in a while though.
If we want to quarantine a test we could quarantine the parent and that would impact the children. Under this Trx structure in 2.2.4+ that is no longer the case. While it would be fine to quarantine based on the ClassName+TestName we are noticing that the ClassName+TestName is not unique across all test results either. Example of that below:
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="8ace4773-a85f-4063-b352-b47056691b99" name="" runUser="" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Times creation="2022-07-13T20:02:39.7924341-04:00" queuing="2022-07-13T20:02:39.7924341-04:00" start="2022-07-13T20:02:36.5608957-04:00" finish="2022-07-13T20:02:39.8334322-04:00" />
  <TestSettings name="default" id="97324b85-62c7-41b6-9b86-22bf059b57dd">
    <Deployment runDeploymentRoot="" />
  </TestSettings>
  <Results>
    <UnitTestResult executionId="45342629-aefa-427e-9ca0-c94b9cf906fe" testId="28a880b7-582f-47a1-a6dd-b2b105ee4be9" testName="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,True)" computerName="WCJEWETHQ01W05" duration="00:00:00.0000013" startTime="2022-07-13T20:02:39.3124340-04:00" endTime="2022-07-13T20:02:39.6204751-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="45342629-aefa-427e-9ca0-c94b9cf906fe" />
    <UnitTestResult executionId="ef2df86d-58f8-4bc9-940c-fae0153f0128" testId="1c3e44a0-7941-4aef-a4c6-ea3d00b7e7be" testName="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,False)" computerName="WCJEWETHQ01W05" duration="00:00:00.0000014" startTime="2022-07-13T20:02:39.3124340-04:00" endTime="2022-07-13T20:02:39.6204751-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ef2df86d-58f8-4bc9-940c-fae0153f0128" />
    <UnitTestResult executionId="7a3aa101-0b49-4b39-8f19-36f8e5b43d04" testId="a8fb6105-cb12-451c-a219-e085bf9a66dd" testName="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,True)" computerName="WCJEWETHQ01W05" duration="00:00:00.0000125" startTime="2022-07-13T20:02:39.3124340-04:00" endTime="2022-07-13T20:02:39.6204751-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7a3aa101-0b49-4b39-8f19-36f8e5b43d04" />
    <UnitTestResult executionId="3fb73645-1469-48a0-b24e-488e17b9aed4" testId="1275e361-7c97-4d0d-86a9-504c6d127622" testName="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,False)" computerName="WCJEWETHQ01W05" duration="00:00:00.0000013" startTime="2022-07-13T20:02:39.3124340-04:00" endTime="2022-07-13T20:02:39.6204751-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3fb73645-1469-48a0-b24e-488e17b9aed4" />
    <UnitTestResult executionId="b15f150b-7490-41da-9723-fff035ea8788" testId="ab955369-be12-465c-a81e-b0817cc2cdbb" testName="DyanmicDataExample_SameSignaturePerTestRun (,TrxTesting.Address,False)" computerName="WCJEWETHQ01W05" duration="00:00:00.0083030" startTime="2022-07-13T20:02:39.3124340-04:00" endTime="2022-07-13T20:02:39.6204751-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b15f150b-7490-41da-9723-fff035ea8788" />
    <UnitTestResult executionId="0e470c2e-cffd-4eab-8348-6aa0e87a8317" testId="301a572a-19ae-40a2-abd8-f855835e8d7c" testName="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,True)" computerName="WCJEWETHQ01W05" duration="00:00:00.0000020" startTime="2022-07-13T20:02:39.3124340-04:00" endTime="2022-07-13T20:02:39.6204751-04:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0e470c2e-cffd-4eab-8348-6aa0e87a8317" />
  </Results>
  <TestDefinitions>
    <UnitTest name="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,False)" storage="c:\users\cjewett\source\trxtesting\bin\debug\net48\trxtesting.dll" id="1275e361-7c97-4d0d-86a9-504c6d127622">
      <Execution id="3fb73645-1469-48a0-b24e-488e17b9aed4" />
      <TestMethod codeBase="C:\Users\cjewett\source\TrxTesting\bin\Debug\net48\TrxTesting.dll" adapterTypeName="executor://mstestadapter/v2" className="TrxTesting.UnitTest1" name="DyanmicDataExample_SameSignaturePerTestRun" />
    </UnitTest>
    <UnitTest name="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,True)" storage="c:\users\cjewett\source\trxtesting\bin\debug\net48\trxtesting.dll" id="a8fb6105-cb12-451c-a219-e085bf9a66dd">
      <Execution id="7a3aa101-0b49-4b39-8f19-36f8e5b43d04" />
      <TestMethod codeBase="C:\Users\cjewett\source\TrxTesting\bin\Debug\net48\TrxTesting.dll" adapterTypeName="executor://mstestadapter/v2" className="TrxTesting.UnitTest1" name="DyanmicDataExample_SameSignaturePerTestRun" />
    </UnitTest>
    <UnitTest name="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,True)" storage="c:\users\cjewett\source\trxtesting\bin\debug\net48\trxtesting.dll" id="301a572a-19ae-40a2-abd8-f855835e8d7c">
      <Execution id="0e470c2e-cffd-4eab-8348-6aa0e87a8317" />
      <TestMethod codeBase="C:\Users\cjewett\source\TrxTesting\bin\Debug\net48\TrxTesting.dll" adapterTypeName="executor://mstestadapter/v2" className="TrxTesting.UnitTest1" name="DyanmicDataExample_SameSignaturePerTestRun" />
    </UnitTest>
    <UnitTest name="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,False)" storage="c:\users\cjewett\source\trxtesting\bin\debug\net48\trxtesting.dll" id="1c3e44a0-7941-4aef-a4c6-ea3d00b7e7be">
      <Execution id="ef2df86d-58f8-4bc9-940c-fae0153f0128" />
      <TestMethod codeBase="C:\Users\cjewett\source\TrxTesting\bin\Debug\net48\TrxTesting.dll" adapterTypeName="executor://mstestadapter/v2" className="TrxTesting.UnitTest1" name="DyanmicDataExample_SameSignaturePerTestRun" />
    </UnitTest>
    <UnitTest name="DyanmicDataExample_SameSignaturePerTestRun (TrxTesting.EnergyProgram,TrxTesting.Address,True)" storage="c:\users\cjewett\source\trxtesting\bin\debug\net48\trxtesting.dll" id="28a880b7-582f-47a1-a6dd-b2b105ee4be9">
      <Execution id="45342629-aefa-427e-9ca0-c94b9cf906fe" />
      <TestMethod codeBase="C:\Users\cjewett\source\TrxTesting\bin\Debug\net48\TrxTesting.dll" adapterTypeName="executor://mstestadapter/v2" className="TrxTesting.UnitTest1" name="DyanmicDataExample_SameSignaturePerTestRun" />
    </UnitTest>
    <UnitTest name="DyanmicDataExample_SameSignaturePerTestRun (,TrxTesting.Address,False)" storage="c:\users\cjewett\source\trxtesting\bin\debug\net48\trxtesting.dll" id="ab955369-be12-465c-a81e-b0817cc2cdbb">
      <Execution id="b15f150b-7490-41da-9723-fff035ea8788" />
      <TestMethod codeBase="C:\Users\cjewett\source\TrxTesting\bin\Debug\net48\TrxTesting.dll" adapterTypeName="executor://mstestadapter/v2" className="TrxTesting.UnitTest1" name="DyanmicDataExample_SameSignaturePerTestRun" />
    </UnitTest>
  </TestDefinitions>
  <TestEntries>
    <TestEntry testId="28a880b7-582f-47a1-a6dd-b2b105ee4be9" executionId="45342629-aefa-427e-9ca0-c94b9cf906fe" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="1c3e44a0-7941-4aef-a4c6-ea3d00b7e7be" executionId="ef2df86d-58f8-4bc9-940c-fae0153f0128" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="a8fb6105-cb12-451c-a219-e085bf9a66dd" executionId="7a3aa101-0b49-4b39-8f19-36f8e5b43d04" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="1275e361-7c97-4d0d-86a9-504c6d127622" executionId="3fb73645-1469-48a0-b24e-488e17b9aed4" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="ab955369-be12-465c-a81e-b0817cc2cdbb" executionId="b15f150b-7490-41da-9723-fff035ea8788" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestEntry testId="301a572a-19ae-40a2-abd8-f855835e8d7c" executionId="0e470c2e-cffd-4eab-8348-6aa0e87a8317" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
  </TestEntries>
  <TestLists>
    <TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
    <TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
  </TestLists>
  <ResultSummary outcome="Completed">
    <Counters total="6" executed="6" passed="6" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
  </ResultSummary>
</TestRun>

Under our current system we store these results as results under the parent and perform our analysis that way. If we detect an issue we tell them the parent is problematic and they should take a look. Upgrading to 2.2.4+ forces us to have to process these child test results as their own parent because that is how the Trx is now structured. The problem is there is no consistent unique id to map results to now.
The TestId changes every test run.
The ClassName+TestName can have multiple tests that are not the exact same test but have the same signature. Therefore you store different test results under a single ClassName+TestName signature which would be incorrect.
The ClassName+TestName is also random at times depending on the type of data being passed in. For example, if you pass in DateTime.UtcNow then the ClassName+TestName (and TestId) signature should change every test run. The saving grace in 2.2.3 or below is that all of these results were stored under a parent, and the parent had a constant TestId.
We can't ignore processing of these DynamicData test results either because the parent test result no longer exists in the Trx file. In addition to that it brings on more trouble of trying to figure out what kind of ClassName+TestName pattern you ignore. Also, if we don't provide support for processing these results then we cannot quarantine them as part of our continuous integration process and that hurts our development process.
Here is the code used to replicate these problems:
https://github.com/Cjewett/TrxTestIdIssue/tree/main
All that said it is possible we have missed something that still allows us to track results historically across different test runs, so we had some questions and were hoping for guidance.

Is the TestId really supposed to be changing every test run now?
Is it expected that multiple test results can have the same ClassName+TestName signature?
Is there a way to revert back to the old Trx format using the new library versions?
Does Microsoft consider any of this a bug? In other threads it seems like others have run into issues and it's odd that the Trx data changed in this manner under a minor version bump.

Any guidance and information so we can make a decision on how to move forward is much appreciated. Thanks!
AB#1579034

Bumping in hopes of some guidance @Haplois @Evangelink

@Haplois any updates on this issue?

@Haplois Any info regarding this would be much appreciated. We're running into more cases where developers want to upgrade MSTest but we're telling them no because it breaks some of our crucial in-house systems.

@Cjewett Sorry it's taking us so long in handling your request but I am actively working on it now. In the PR linked, we are introducing some enum that allows to select the strategy used to generate the test ID.
A couple of side notes:

There were some issues on our side that lead to new features and breaking changes to be added in patch versions (2.2.4+).
The test ID change introduced in 2.2.4 relies on Display Name and doesn't take into account data so we have a couple of open issues

Is the TestId really supposed to be changing every test run now?

In all strategies, I don't expect the test ID to change between run as long as the file path remains the same. From my investigations, it seems that the file path is used as part of the ID generation to act as some kind of discriminator in metadata changes between 2 dlls (e.g. Debug and Release build would produce 2 dlls in different locations so we need to consider the tests as different).

Is it expected that multiple test results can have the same ClassName+TestName signature?

I would tend to say yes but it seems that xUnit and NUnit have different strategies here (xUnit seems to be removing duplicates while NUnit keeps them). I am still trying to be sure of what was the intent of MSTest on this one.

Is there a way to revert back to the old Trx format using the new library versions?

Changing the test ID generation strategy would help there BUT you will possibly revert back to broken "state" for some of the parameterized tests.

Does Microsoft consider any of this a bug? In other threads it seems like others have run into issues and it's odd that the Trx data changed in this manner under a minor version bump.

We do consider this as a bug and we are trying to re-engage with community on this repo.

@Cjewett Would you be open to test out preview version of MSTest v3 to confirm this is correctly solving your issue? From our internal testing, it is ok but it's always better to have more feedback?

@Evangelink Definitely! I’ll be able to bump one of our CI processes next week to check the changes.

I will do another preview release early this week as my previous release was containing some issues with nullability.
Thanks for the beta testing @Cjewett, that's highly appreciated.

I have published the new pre-release: https://github.com/microsoft/testfx/releases/tag/v3.0.0-preview-20221122-01.
Let me know if that's not fixing your issue.

@Evangelink I don't think this new version solves the issues but some pieces behave quite a bit different than 2.2.3. Mainly the UnitTestResult is formatted differently for DataRow and DynamicData tests, so it's hard for me to say if it is correct or not. Using https://github.com/Cjewett/TrxTestIdIssue as the reproduce project.
With the project set to use version 2.2.3 and using the most simple test case.
dotnet test --logger "trx;logfilename=TestOne-2.2.3.trx"
<UnitTestResult executionId="6915bc7e-429f-4ed8-bea7-1044063c31f1" testId="66a8a2e1-7e13-50b5-f377-6682faafeca4" testName="NormalTestExample" computerName="DESKTOP-D66LS15" duration="00:00:00.0050162" startTime="2022-11-28T17:07:03.9965253-05:00" endTime="2022-11-28T17:07:04.2080252-05:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6915bc7e-429f-4ed8-bea7-1044063c31f1" />

dotnet test --logger "trx;logfilename=TestTwo-2.2.3.trx"
<UnitTestResult executionId="fa21783e-f5ef-4d7b-9de3-8a296d693cb2" testId="66a8a2e1-7e13-50b5-f377-6682faafeca4" testName="NormalTestExample" computerName="DESKTOP-D66LS15" duration="00:00:00.0048603" startTime="2022-11-28T17:07:09.9638557-05:00" endTime="2022-11-28T17:07:10.1708550-05:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fa21783e-f5ef-4d7b-9de3-8a296d693cb2" />

The two testIds match and that is expected.
Upgrading to 3.0.0-preview-20221122-01 and running against the most simple test case results in something unexpected.
dotnet test --logger "trx;logfilename=TestThree-3.0.0-preview-20221122-01.trx"
<UnitTestResult executionId="bd664748-27c0-4476-b0e1-3e60680d8aa9" testId="e4e3aff3-7d05-4b3b-b6cd-7900b4531c14" testName="NormalTestExample" computerName="DESKTOP-D66LS15" duration="00:00:00.0039939" startTime="2022-11-28T17:15:39.6429330-05:00" endTime="2022-11-28T17:15:39.8464346-05:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="bd664748-27c0-4476-b0e1-3e60680d8aa9" />

dotnet test --logger "trx;logfilename=TestFour-3.0.0-preview-20221122-01.trx"
<UnitTestResult executionId="ff306cce-2599-4d51-adbf-06069a087954" testId="ebde346e-7658-40bf-aaf1-605f2289968f" testName="NormalTestExample" computerName="DESKTOP-D66LS15" duration="00:00:00.0042218" startTime="2022-11-28T17:15:48.9120177-05:00" endTime="2022-11-28T17:15:49.1305174-05:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ff306cce-2599-4d51-adbf-06069a087954" />

Not only does the first run from 3.0.0-preview-20221122-01 not match either of the runs from 2.2.3. The two runs from that same version don't match each other.
Let me know if any more testing is required or if there was a different setup process I should have gone through to make this work.
Thanks for all of the effort here! We really appreciate it.

Hey thank you so much for the testing! I am able to reproduce the issues you have been raising, sorry I missed this end-to-end test. I tested successfully that what we were returning to vstest was good and stable but I wasn't anticipating that vstest was having specific code messing up with the logic for MSTest...
Also, your test wasn't complete as you are using the new test ID strategy (I enabled it by default). To use old behavior, you need to add [assembly: TestIdGenerationStrategy(TestIdGenerationStrategy.Legacy)] to your test class. At the moment, you will still have inconsistent behavior because of the issue I am mentioning above.
I am investigating how to fix vstest part at the moment and will post my results here.

Marking as closed.

@Evangelink Thanks for the update and all the work here! We'll keep an eye out and test as soon as they are released or previews become available.


apis.WithinSubResourceUpdate is always clobbered

/kind bug
Expected Behavior
Webhooks skip validation during a status update.
Actual Behavior
Webhooks still go through validation assertions during status update.
Additional Info
While looking at https://github.com/knative/pkg/blob/4a3e56dc13b2d420e50287b254c8e6a544b3525c/webhook/resourcesemantics/validation/validation_admit.go#L140-L152
I notice that the subresource is added to the context first via apis.WithinSubResourceUpdate. It is then clobbered by apis.WithinUpdate which will overwrite it as they use the same struct as a key. I believe this implies that when the Knative webhooks invoke apis.IsInStatusUpdate, it will always be false.

related: https://github.com/knative/pkg/issues/2115

/reopen
/lifecycle frozen

This is fixed


Content renders twice when rendering a layout in a ViewComponent

I created a ViewComponent based on an existing rails view that renders a layout. The ViewComponent template file looked something like this:
<%= render layout: "path/to/layout/file" do %>
  <%= form_tag example_path,  method: :put do %>
      # some form code here
  <%= end %>
<% end %>

When viewing my component in the UI, I saw the form_tag and everything inside it rendering twice - once above the layout, and once within the layout.
I'm not sure it's a common occurrence to have a layout file in a ViewComponent, and I plan on working around it by converting the layout to its own ViewComponent.

Hi @kellymason, so sorry we didn't get back to you on this! Do you know if this is still a valid issue?


Align with new BinSync updates

With the PR https://github.com/binsync/binsync/pull/341 from @twizmwazin, BinSync was made compatible with PyInstaller. Most of this code will be replaced with yodalib (since the code moved here), so we need to get these changes into this repo.
An effort needs to be made to track down all these diffs made by the linked PR and apply the changes here. If @twizmwazin can also give us hints on how to check when something is PyInstaller compatible, we can attempt to test ourselves.

Those changes weren't strictly about pyinstaller compatibility, they were just general lint fixes. But, they're still worth doing, Pyinstaller has a whacky import detection system and keeping them tidy does help reduce the probability of errors. When I have time I can set up the linting I used and make it part of the CI with pre-commit.


GH-39664: [C++][Acero] Ensure Acero benchmarks present a metric for identifying throughput

Rationale for this change
Acero benchmarks sometimes output metrics such as items/s, bytes/s, batches/s, and rows/s. However, there is inconsistency in how these metrics are presented across different benchmarks. We are undertaking an effort to standardize the output of these metrics to ensure uniformity and clarity in performance measurement across all Acero benchmarks.

What changes are included in this PR?
rows/s has a similar meaning to items/s.

bytes/s and items/s: aggregate
bytes/s and rows/s: asof_join
batches/s and rows/s: project, filter, expression

Are these changes tested?
Yes.

Are there any user-facing changes?
No.

GitHub Issue: #39664

Note that bytes_per_second and items_per_second are standard metrics with Google benchmark, so they will have to stay. For Acero, I think we should go with the convention that 1 "item" == 1 row. As for bytes_per_second, it's less useful than items_per_second IMHO, but can be kept if it already exists.


Feat(eos_cli_config_gen): Add monitor connectivity.

Enhancement summary
Update missing commands of monitor connectivity (ref: https://www.arista.com/en/support/toi/eos-4-30-1f/17684-internet-exit).
Example:
monitor connectivity
    client aaa

monitor connectivity
    loss-threshold 3 probes

Check for other commands in monitor connectivity, if not present in eos_cli_config_gen do add them as well.
Which component of AVD is impacted
eos_cli_config_gen
Use case example
Sub issue of https://github.com/aristanetworks/avd/issues/3741
Describe the solution you would like
All CLI for monitor connectivity must be implemented.
Describe alternatives you have considered
No response
Additional context
No response
Contributing Guide

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

Not required for issue https://github.com/aristanetworks/avd/issues/3741 as it is not mentioned in TOI.


Install libchromaprint

... so that all tests are run on Travis.

I'll wait until this one finishes the test then merge.  Cheers

I'd totally forgotten about this.  Had to manually merge it.


Webhooks

I wanted to discuss webhooks with you and would love to hear your thoughts.
Exemplarily scenarios

Send magic link via slack / teams instead of email
Add http based email services like sendgrid / MailChimp
Send sms with other providers
Customize mail templates conditionally (users from domain X get another mail than users from domain Y)
Add custom claims conditionally
Custom oAuth providers
Check custom password block list (e.g. contains company name)
Disable sign up / login conditionally (could solve #157 & #85)
Conditional redirect urls (could solve #53)

How to provide the webhook config?

The simple way: Just add an env var with an URL.
The advanced way: Env var with URL and additional config (like maxRetries) as JSON.
The even more advanced way: Save the config in hasura and add a dashboard to nhost cloud.

Pros

🔧 Highly customisable
🫶 Natural fit with nhost functions
🧑🤝🧑 Community could develop extension & share them (nhost could create a store in the long term)
📉 Less issues because users can implement features themself
😌 Simple implementation of webhooks is easy

Cons

😫 Sophisticated implementation of webhooks is hard (but could be fun 😁). For example: retries, rate limits, security
⏳ Additional roundtrips for every request (could be "slow" in combination with lambda cold starts or if the function is timing out)

I'm not sure I understand exactly what you mean here. Could you explain a scenario from start to finish and how webhooks would be involved?

Here are a few use cases:
Send magic link via slack / teams instead of email

You are creating an app for a single company only that uses it inhouse. For easy access the users should get a passwordless magic link. But the requirement from the company is that the link should be send by slack not by mail (for example because mail is always delayed by 5 mins due to spam filtering)
You set the AUTH_WEBHOOK_BEFORE_SEND_PASSWORDLESS_LINK to{
  "url": "https://your-lambda/auth-webhooks/beforeSendPasswordlessLink",
  "timeout": 5000
}

nhost/hasura-auth/src/routes/signin/passwordless/email.ts calls the webhook with the user and the link and waits for the response:// Existing code:
const template = 'signin-passwordless';
const link = createEmailRedirectionLink(
  EMAIL_TYPES.SIGNIN_PASSWORDLESS,
  ticket,
  redirectTo
);
// New Webhook Code:
const webhookResponse = await webhookLib.beforeSendPasswordlessLink({ user, link })

The lambda gets the user and link via post. It queries the slack information from hasura (with admin secret) and posts the link to the user in a private slack message. The lambda returns the following response:{
  "continue": false
}

signInPasswordlessEmailHandler then checks the response if it has to send the link or not:if (webhookResponse.continue === false) return

It stops because it does not need to send the link via mail anymore

Add http based email services like sendgrid / MailChimp

Currently mails can only be send via SMTP. If you are using sendgrid or Mailchimp they have a transactional mail REST api. You want to use that api.
You set the AUTH_WEBHOOK_BEFORE_SEND_EMAIL to{
  "url": "https://your-lambda/auth-webhooks/beforeSendEmail",
  "timeout": 5000
}

Here are more changes needed. So imagine there is a custom mail client with a send function in nhost.
The send function calls the webhook with the template and mail headers (to, subject, cc, bcc, etc.)
The webhook sends the mail via sendgrids / mailchimps REST api
The webhook returns { "continue": false }
The send function does not send the mail via SMTP

Customize mail templates conditionally (users from domain X get another mail than users from domain Y)

You have a SaaS that has tenants. For every tenant new users can register. The users will be matched to the tenant by mail. Every tenant should have a different email template for signup / password reset.
You set the AUTH_WEBHOOK_BEFORE_EMAIL_TEMPLATE_CREATION to{
  "url": "https://your-lambda/auth-webhooks/beforeEmailTemplateCreation",
  "timeout": 5000
}

The lambda gets all the the data it needs via post and returns the following individual template:{
  "renderedTemplate": "<html [...]"
}

The email lib will use that template instead of the local

Check custom password block list (e.g. contains company name)

Often bad passwords in companies are based on the company name. For example: nhostWinter2022 or something. That password is not in the hibp list.
Your client wants to disallow all passwords that contain the company name.
I think you can imagine now how this would work :) Instead of sending the password to hibp it sends it to your custom lambda.
Well, now that I'm thinking about it this could be a security problem if SSL wasn't checked properly or something. So care should be taken with this feature ^^
The lambda would return something like { "passwordIsPwned": true }

Disable sign up / login conditionally

You have this fancy new startup idea and want to allow signup only on Friday afternoons to make it super rare.
Before each signup a webhook lambda is asked if the signup is active

the lambda gets the user details so it could decide that VIP users with mail<EMAIL_ADDRESS>are always able to login for all the other mails it must be Friday.
the lambda returns something like { "registeringIsActive": false }

I hope this makes my idea clear and shows how powerful such a feature could be. People could build so many extensions and the nhost auth core doesn't have to be polluted. For example the hibp check could easily be a webhook.

It's basically a plugin system but programming language agnostic and without the hassle of installing and managing plugins


"Input must be greater than 0" input on beta distributions

Although beta distributions do have probability density at 0, a sample should probably never actually return 0. This would allow people to log beta distributions if they pleased.

I'm pretty sure that log10 uses convolution. There's no samples here. (A bug with the format/estimate though)

I'm pretty sure that log10 uses convolution.

No, convolutions are implemented only for Add, Subtract and Multiply.


Hide all masthead links inside the hamburger icon on mobile devices

Summary
Hide all masthead links inside the hamburger icon on mobile devices.
Motivation
Some of the links looks odd-one-out, while other rests peacefully inside the hamburger icon

Drawbacks
Nothing, since this feature will activate only in mobile devices, people will like it (at least I'll ❤ it)
How to do it?
Something related with breakpoints. I am not yet capable to understand all the intricacies without not messing something up.
Important Note:- If you are not going to consider this enhancement, please give me some pointers, so I can do it myself without messing other things in the theme.

Duplicate of #1418, #1301

Thanks for the pointer


Authentication problems with lazy and pooled connections

EDIT: clarify issue
Only the top one of these works:
import os
import sys
import txmongo
import pymongo.uri_parser
import pymongo
from twisted.internet import defer, reactor

mongo_uri = os.environ.get('MONGOLAB_URI')
mongo_creds = pymongo.uri_parser.parse_uri(mongo_uri)

if sys.argv[1] == 'normal':

    @defer.inlineCallbacks
    def example():
        conn = yield txmongo.MongoConnection(*mongo_creds['nodelist'][0])

        db = getattr(conn, mongo_creds['database'])
        yield db.authenticate(mongo_creds['username'], mongo_creds['password'])
        test = db.test

        yield test.insert({'1':'1'})
        docs = yield test.find(limit=10)
        for doc in docs:
            print doc

if sys.argv[1] == 'pool':

    @defer.inlineCallbacks
    def example():
        conn = yield txmongo.MongoConnectionPool(*mongo_creds['nodelist'][0])

        db = getattr(conn, mongo_creds['database'])
        yield db.authenticate(mongo_creds['username'], mongo_creds['password'])
        test = db.test
        yield test.insert({'1':'1'})

        # fetch some documents
        docs = yield test.find(limit=10)
        for doc in docs:
            print doc

if sys.argv[1] == 'lazy':

    @defer.inlineCallbacks
    def example():
        conn = txmongo.lazyMongoConnection(*mongo_creds['nodelist'][0])

        db = getattr(conn, mongo_creds['database'])  # `foo` database
        yield db.authenticate(mongo_creds['username'], mongo_creds['password'])
        test = db.test  # `test` collection

        yield test.insert({'1':'1'})
        docs = yield test.find(limit=10)
        for doc in docs:
            print doc

if sys.argv[1] == 'lazypool':

    @defer.inlineCallbacks
    def example():
        conn = txmongo.lazyMongoConnectionPool(*mongo_creds['nodelist'][0])

        db = getattr(conn, mongo_creds['database'])  # `foo` database
        yield db.authenticate(mongo_creds['username'], mongo_creds['password'])
        test = db.test  # `test` collection

        yield test.insert({'1':'1'})
        docs = yield test.find(limit=10)
        for doc in docs:
            print doc

if __name__ == '__main__':
    example().addCallback(lambda ign: reactor.stop())
    reactor.run()```

The lazy methods fail with 'not connected' and the pooled method fail with 'auth fails'.

I want to use authentication inside a cyclone request, but I don't want to authenticate if it already has happened.
I don't think txmongo supports this naturally at the moment.

which doesn't work :(

Could you give an example of how to use the authenticate? At the moment, all the other connection methods return objects while queries/inserts return deferred.  It looks like I need to authenticate each time at query time with txmongo, which is a pain - there is no way to check if I am already authenticated.

Any luck or progress with this Fiorix/James?
Also having the same issue.

I had to go back to the synchronous driver.

Likewise.


Can't have spaces in @prop default value

/**
 * @prop {String} obj.greeting='hello world' - Greeting
 * @prop {Array} obj.list=[] - List
 */
var obj = {
  greeting: 'hello word',
  list: []
};

Above codes will generate following table.

Name
Type
Default
Description

obj.greeting
String
'hello
world' - Greeting

obj.list
Array
[
List

Is this a bug or is there a way to have spaces in default values?
Same issue in @param.

I'd like to fix this bug. I didn't figure it out doclet parameter in publish.js. Where has it been created?

I saw a sign in cli.js which is props.docs variable.  But it still is a mystery for me that where it is come from.

The problem is with the regex used in this function


how to use this wirelessly, using adb connect....

is it available?

https://github.com/Genymobile/scrcpy/blob/master/doc/connection.md#tcpip-wireless


“Some input files use or override a deprecated API” Error

I just created an app bundle and I encountered such an error.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

I guess this is the code that gives error.
var coinList = List<CoinDeepInfo>();
I created a bundle for trial purposes, can't I upload it to playstore because it gives an error? How can I fix this error? I don't know how to use the new code version.

@regenin
They seem to be warning than errors and indicates there are some functions which are deprecated. Check if any of the plugins you are using which needs upgrade that may get rid of these messages. Also the IDE helps to identify these and fixes to make.
You may still upload it to playstore since they are not errors.
Search over StackOverflow to get more details on it.
I am going ahead and closing this, as this issue seems more of a question rather than bug. If you disagree, write in comments and I'll reopen it.
Thanks.


setup-hooks/strip: print strip stderr if command fails

this is easiest to do through a file
mktemp needs six X because busybox only accepts exactly six X https://github.com/NixOS/nixpkgs/pull/178626
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

[ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1

Looks like this broke macos xnu package building in staging (somewhere early in the bootstrap):
...
@nix { "action": "setPhase", "phase": "fixupPhase" }
post-installation fixup
checking for references to /private/tmp/nix-build-xnu-3789.70.16.drv-0/ in /nix/store/xm41xjvqazqwxjlk38aispfprrc6xyri-xnu-3789.70.16...
stripDirs: Ranlib command is empty

Maybe this will work
diff --git a/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix b/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
index 266c2ef4dfef..b490b6f2195b 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/xnu/default.nix
@@ -63,6 +63,7 @@ appleDerivation' (if headersOnly then stdenvNoCC else stdenv) (
   MIG = "mig";
   MIGCOM = "migcom";
   STRIP = "${stdenv.cc.bintools.targetPrefix or ""}strip";
+  RANLIB = "${stdenv.cc.bintools.targetPrefix or ""}ranlib";
   NM = "${stdenv.cc.bintools.targetPrefix or ""}nm";
   UNIFDEF = "unifdef";
   DSYMUTIL = "dsymutil";

ranlib is copied https://github.com/NixOS/nixpkgs/blob/4214c79d6935b20630beaa03e35a8568444fcbd4/pkgs/stdenv/darwin/make-bootstrap-tools.nix#L128-L130

RANLIB = "${stdenv.cc.bintools.targetPrefix or ""}ranlib";

Seems to work! The darwin.xnu installed successfully. Will take some time for stdenv to complete, but look healthy so far.

https://github.com/NixOS/nixpkgs/pull/245021

@vcunat noticed seemingly related failures on staging-next: https://hydra.nixos.org/log/ssd7k0nhyc4pnvyffphs4l4i1c5031qc-libsmbios-2.4.3.drv and https://hydra.nixos.org/build/229681745/nixlog/2
The failures is:
nix build -f. libsmbios -L
...
gzipping man pages under /nix/store/zg67ja6p7ix78rxnv5zawgdk3g7zkk67-libsmbios-2.4.3/share/man/
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
...
moving /nix/store/zg67ja6p7ix78rxnv5zawgdk3g7zkk67-libsmbios-2.4.3/sbin/* to /nix/store/zg67ja6p7ix78rxnv5zawgdk3g7zkk67-libsmbios-2.4.3/bin
...
mktemp: failed to create file via template 'striperr.XXXXXX': No such file or directory

As if something removed TMP or current working directory from under current process.

The shell-init errors are there on master
Maybe this line causes it https://github.com/NixOS/nixpkgs/blob/8e2fc8a27d41e3235fe66f744e0ae25f98eed42f/pkgs/os-specific/linux/libsmbios/default.nix#L38

https://github.com/NixOS/nixpkgs/pull/246264

This invocation if mktemp creates the file in the current directory, which is bad practice.  We should add "--tmpdir=$TMPDIR" or make the template absolute.
I noticed because one package did cd $src during installing, which is a read-only path...

I suppose a worse case is if come package does cd $out or similar and the file then remains in the result.

https://github.com/NixOS/nixpkgs/pull/247759


Publish Tomcat8.5 project

Motivations:

Because some Tomcat API were removed from Tomcat 9, ABI compatibility is broken up (for example, Context#addServletMapping(String pattern, String name) is used in TomcatEmbeddedServletContainerFactory(spring-boot-1.5.x) was removed from Tomcat 9). For this, if Tomcat 9 dependency comes first, fails to startup spring-boot application with NoSuchMethodException.

Modifications:

Publish armeria-tomcat8.5

Thanks, @imasahiro !


Support strict_vars globally in application config

I want a notice whenever a view template tries to access an undefined view variable via $this->var. I know only 2 ways to achieve this:

Call $this->vars()->setStrictVars(true) in every template
Set up an event listener and run setStrictVars(true) recursively on the view model and all its children (taking into account that a model's variables may be stored as an array instead of Zend\View\Variables).

Zend\View\Variables even supports an option "strict_vars" via its constructor, but neither this option nor setStrictVars() appear to be used anywhere within the ZF code.
It would be nice to be able to set strict_vars globally in the application configuration and have the Variables constructor evaluate it.

why not making it a small module
Why not making it a small configuration option? :)

There is no reason to handle view variables different than regular variables, if they are not set but used.

@GeeH: Still relevant, don't close. All available/proposed solutions are far too complicated for such a basic code quality feature. @antiphp has it summed up pretty well. I'd also suggest making the desired behavior the default for ZF3.

This sounds like the job of a module to me.

This issue has been moved from the zendframework repository as part of the bug migration program as outlined here - http://framework.zend.com/blog/2016-04-11-issue-closures.html
New issue can be found at: https://github.com/zendframework/zend-view/issues/76


fixed issue #545

fixed the card width of the blog card in smaller screens
Old:

New:

Looks awesome @AryanBabber!!


Transition from Wiki to Github Pages

The following PR accomplishes the following:

Transition from the Wiki to GitHub pages
Complete some of the items listed in the TODO

oops

LGTM!

Commit history looks pretty ugly but it's ready for merging