Multiple libXNVCtrl in system after update

Describe the bug
Greetings.
I'm currently using the Nvidia beta 555.52.04 driver.
After an update, NixOS replaced libXNVCtrl-555.52.04 with libXNVCtrl-390.157 and libXNVCtrl-550.90.07. According to this pull request, this library is not tied to the driver version. However, now I have two versions of the library in my system, whereas before I had only libXNVCtrl-555.52.04, which matched my Nvidia driver version.
I would prefer to have only one version of the library, ideally matching the Nvidia driver version, to avoid any unexpected behavior. Is there something I should do on my end to achieve this?
Steps To Reproduce
Steps to reproduce the behavior:

Be nvidia user.
Update nix flake and rebuild.
two libXNVCtrl appear.

Expected behavior
Having one libXNVCtrl in system and matched with nvidia driver version if possible.
Screenshots

Additional context
Add any other context about the problem here.
Notify maintainers

@aidalgol @kira-bruneau  @Kiskae
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
  nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.9.3-xanmod1, NixOS, 24.11 (Vicuña), 24.11.20240609.c7b821b`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix Super) 2.22.0pre20240422_5ecd820`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/store/rljkm6h18fjvavm6l17jiil8glphc44f-source`

Add a :+1: reaction to issues you find important.

This really should have been pinged only @NixOS/cuda-maintainers.  One of the people pinged was only involved with #318092 because it touched MangoHUD, and is not a maintainer of nvidia packages.

On NixOS, packages are not "on the system" in the same way that they are on other Linux distributions.  libXNVCtrl-390.157 is part of your system profile, but is only in scope for packages that reference libXNVCtrl.  That PR actually reverted changes that put libXNVCtrl into /run/opengl-driver/lib/, and after my series of PRs around libXNVCtrl the only things that should be different are,

libXNVCtrl provides a shared library, and
libMangoHud.so has ${libXNVCtrl}/lib on its RPATH

So the only way you could have libXNVCtrl-390.157 in your system profile is if you have mangohud in your system profile.  Do you?

This really should have been pinged only @NixOS/cuda-maintainers. One of the people pinged was only involved with #318092 because it touched MangoHUD, and is not a maintainer of nvidia packages.

Oh, I just pinged everyone who participate in pull request. My apologizes.
I'm using mangohud from Home-manager module.
If I'm using nix.lock from 5 days ago, nh ( nix helper ) show on rebuild:
[U.]  #068  libXNVCtrl                              390.157, 550.90.07 -> 555.42.02

I'm using mangohud from Home-manager module.

OK, that would be why, then.  I'm not sure why the top level libXNVCtrl is that version in particular.  I don't think anything needs fixing in nixpkgs, for the reasons discussed/mentioned in https://github.com/NixOS/nixpkgs/pull/318092, https://github.com/NixOS/nixpkgs/pull/318092#pullrequestreview-2105412242, https://github.com/NixOS/nixpkgs/issues/314289#issuecomment-2144037037, and https://github.com/NixOS/nixpkgs/pull/312811#discussion_r1613495768.  If you experience any unexpected behaviour with MangoHUD, then we would want to rule out the RPATH change from #318092 as a possible cause.
To reiterate, libXNVCtrl-390.157 is only visible to mangohud on your system.  It cannot cause problems for anything else, because nothing else will see it.

@VeilSilence thanks for noticing!
The impure deployment of the library via hardware.opengl.extraPackages was a compromise, and so, to an extent, is the new approach. Multiple versions of the library sneaking into the closure is a possible side-effect, maybe we could polish this further. Could you post the outputs of nix why-depends /run/current-system /nix/store/.../libXNVCTRL-...so for each version of the library? You can also use nixpkgs#nix-tree for the purpose

@VeilSilence thanks for noticing!
The impure deployment of the library via hardware.opengl.extraPackages was a compromise, and so, to an extent, is the new approach. Multiple versions of the library sneaking into the closure is a possible side-effect, maybe we could polish this further. Could you post the outputs of nix why-depends /run/current-system /nix/store/.../libXNVCTRL-...so for each version of the library? You can also use nixpkgs#nix-tree for the purpose

The impure deployment has been removed in one of the PRs linked above. Since it's an interface to a versioned X protocol extension it doesn't actually matter what version you use as a client.

@VeilSilence thanks for noticing!
The impure deployment of the library via hardware.opengl.extraPackages was a compromise, and so, to an extent, is the new approach. Multiple versions of the library sneaking into the closure is a possible side-effect, maybe we could polish this further. Could you post the outputs of nix why-depends /run/current-system /nix/store/.../libXNVCTRL-...so for each version of the library? You can also use nixpkgs#nix-tree for the purpose

nix why-depends /run/current-system /nix/store/.../libXNVCTRL-...so
error: getting status of '/nix/store/.../libXNVCTRL-...so': No such file or directory

❯  nix why-depends /run/current-system /nix/store/.../libXNVCtrl-...so
error: getting status of '/nix/store/.../libXNVCtrl-...so': No such file or directory

find /nix/store -name 'libXNVCtrl*'

❯  find /nix/store -name 'libXNVCtrl*'
/nix/store/xmr8a99y0a7xfjiaxghbhi47d7b1khdh-libXNVCtrl-390.157/lib/libXNVCtrl.a
/nix/store/xmr8a99y0a7xfjiaxghbhi47d7b1khdh-libXNVCtrl-390.157/lib/libXNVCtrl.so.0.0.0
/nix/store/xmr8a99y0a7xfjiaxghbhi47d7b1khdh-libXNVCtrl-390.157/lib/libXNVCtrl.so
/nix/store/xmr8a99y0a7xfjiaxghbhi47d7b1khdh-libXNVCtrl-390.157/lib/libXNVCtrl.so.0
/nix/store/cp6gmfn98pbl1xj4sfwrvild9wav8v1q-libXNVCtrl-550.90.07/lib/libXNVCtrl.a
/nix/store/cp6gmfn98pbl1xj4sfwrvild9wav8v1q-libXNVCtrl-550.90.07/lib/libXNVCtrl.so
/nix/store/cp6gmfn98pbl1xj4sfwrvild9wav8v1q-libXNVCtrl-550.90.07/lib/libXNVCtrl.so.0
/nix/store/cp6gmfn98pbl1xj4sfwrvild9wav8v1q-libXNVCtrl-550.90.07/lib/libXNVCtrl.so.0.0.0
/nix/store/zibhj33r9s7b04gjjkfxx05md0rfjmlj-source/src/libXNVCtrl
/nix/store/zibhj33r9s7b04gjjkfxx05md0rfjmlj-source/src/libXNVCtrlAttributes
/nix/store/223k1ryry4m6a47nhq6bgjqyxs1wc32m-libXNVCtrl-555.42.02/lib/libXNVCtrl.a
/nix/store/223k1ryry4m6a47nhq6bgjqyxs1wc32m-libXNVCtrl-555.42.02/lib/libXNVCtrl.so
/nix/store/223k1ryry4m6a47nhq6bgjqyxs1wc32m-libXNVCtrl-555.42.02/lib/libXNVCtrl.so.0
/nix/store/223k1ryry4m6a47nhq6bgjqyxs1wc32m-libXNVCtrl-555.42.02/lib/libXNVCtrl.so.0.0.0
/nix/store/0jzfva7wwmzfgzya3a1wfkbjf3y16xb6-source/src/libXNVCtrl
/nix/store/0jzfva7wwmzfgzya3a1wfkbjf3y16xb6-source/src/libXNVCtrlAttributes
/nix/store/48ky96zh3137j5062gy71xhplr8g9f8d-opengl-drivers/lib/libXNVCtrl.a
/nix/store/48ky96zh3137j5062gy71xhplr8g9f8d-opengl-drivers/lib/libXNVCtrl.so
/nix/store/48ky96zh3137j5062gy71xhplr8g9f8d-opengl-drivers/lib/libXNVCtrl.so.0
/nix/store/48ky96zh3137j5062gy71xhplr8g9f8d-opengl-drivers/lib/libXNVCtrl.so.0.0.0
/nix/store/67nlnnmh10h3ls404021rfdlrf41by6n-steam-run-usr-target/lib/libXNVCtrl.a
/nix/store/67nlnnmh10h3ls404021rfdlrf41by6n-steam-run-usr-target/lib/libXNVCtrl.so
/nix/store/67nlnnmh10h3ls404021rfdlrf41by6n-steam-run-usr-target/lib/libXNVCtrl.so.0
/nix/store/67nlnnmh10h3ls404021rfdlrf41by6n-steam-run-usr-target/lib/libXNVCtrl.so.0.0.0
/nix/store/2k8khh265gmj84g6slbr6zfq9p03q1dp-steam-usr-target/lib/libXNVCtrl.a
/nix/store/2k8khh265gmj84g6slbr6zfq9p03q1dp-steam-usr-target/lib/libXNVCtrl.so
/nix/store/2k8khh265gmj84g6slbr6zfq9p03q1dp-steam-usr-target/lib/libXNVCtrl.so.0
/nix/store/2k8khh265gmj84g6slbr6zfq9p03q1dp-steam-usr-target/lib/libXNVCtrl.so.0.0.0
/nix/store/3nidy6sd5migll8llpdl2512yqr66008-steam-run-fhs/usr/lib64/libXNVCtrl.a
/nix/store/3nidy6sd5migll8llpdl2512yqr66008-steam-run-fhs/usr/lib64/libXNVCtrl.so
/nix/store/3nidy6sd5migll8llpdl2512yqr66008-steam-run-fhs/usr/lib64/libXNVCtrl.so.0
/nix/store/3nidy6sd5migll8llpdl2512yqr66008-steam-run-fhs/usr/lib64/libXNVCtrl.so.0.0.0
/nix/store/nwj2vlj8b0fp31a7fxns7658p2ilbb9x-steam-fhs/usr/lib64/libXNVCtrl.a
/nix/store/nwj2vlj8b0fp31a7fxns7658p2ilbb9x-steam-fhs/usr/lib64/libXNVCtrl.so
/nix/store/nwj2vlj8b0fp31a7fxns7658p2ilbb9x-steam-fhs/usr/lib64/libXNVCtrl.so.0
/nix/store/nwj2vlj8b0fp31a7fxns7658p2ilbb9x-steam-fhs/usr/lib64/libXNVCtrl.so.0.0.0

nix why-depends again

  ~
❯  nix why-depends /run/current-system /nix/store/xmr8a99y0a7xfjiaxghbhi47d7b1khdh-libXNVCtrl-390.157/lib/libXNVCtrl.a
/nix/store/rw780dk85jg0982aq9ad2pqsr62yszqd-nixos-system-Nix-graphical-workstation-24.11.20240609.c7b821b
└───/nix/store/j8djnra1xpyx55gz2nky6gazxgvp3y40-etc
    └───/nix/store/igqxc6nycap61frm1271g25zppsk5sb9-user-environment
        └───/nix/store/nw2fgk3d2040yrmh17ya9lyg34306aiv-home-manager-path
            └───/nix/store/r6sihahiahkdwd1pf6ry47yxk34rg59k-mangohud-0.7.2
                └───/nix/store/b5i61k79ardwi0mahgr9s2bnajmxbylx-mangohud-0.7.2
                    └───/nix/store/xmr8a99y0a7xfjiaxghbhi47d7b1khdh-libXNVCtrl-390.157

  ~
❯  nix why-depends /run/current-system /nix/store/cp6gmfn98pbl1xj4sfwrvild9wav8v1q-libXNVCtrl-550.90.07/lib/libXNVCtrl.a
/nix/store/rw780dk85jg0982aq9ad2pqsr62yszqd-nixos-system-Nix-graphical-workstation-24.11.20240609.c7b821b
└───/nix/store/j8djnra1xpyx55gz2nky6gazxgvp3y40-etc
    └───/nix/store/igqxc6nycap61frm1271g25zppsk5sb9-user-environment
        └───/nix/store/nw2fgk3d2040yrmh17ya9lyg34306aiv-home-manager-path
            └───/nix/store/r6sihahiahkdwd1pf6ry47yxk34rg59k-mangohud-0.7.2
                └───/nix/store/cp6gmfn98pbl1xj4sfwrvild9wav8v1q-libXNVCtrl-550.90.07

  ~
❯  nix why-depends /run/current-system /nix/store/223k1ryry4m6a47nhq6bgjqyxs1wc32m-libXNVCtrl-555.42.02/lib/libXNVCtrl.a
'/nix/store/rw780dk85jg0982aq9ad2pqsr62yszqd-nixos-system-Nix-graphical-workstation-24.11.20240609.c7b821b' does not depend on '/nix/store/223k1ryry4m6a47nhq6bgjqyxs1wc32m-libXNVCtrl-555.42.02'

Mangohud for some reason pull two times libXNVCtrl? Even though my nvidia driver is 555.52.04 currently.

I suspect thats the 32-bit version of mangohud, since the newer drivers don't support it anymore.
https://github.com/NixOS/nixpkgs/blob/9d0b1700fbb4bffea4ed4f30706113f6f17ce19a/pkgs/os-specific/linux/nvidia-x11/default.nix#L33
I'm actually wondering why nvidia-settings depends on the driver at all, since it goes through libXNVCtrl and libnvidia-ml for its functionality. And it should be fine to compile libXNVCtrl as 32-bit even for newer drivers.


Elastic training support

Supports scaling up/down training to compatible GPU counts. Adds new 'elasticity' key to our config json. Users indicate their max acceptable batch size and acceptable micro batch sizes. DeepSpeed will find a batch size that is usable with the largest list of compatible GPU counts. The intended consumers of this API and JSON addition are both the user training code and also the infrastructure scheduler.
    "elasticity": {
        "enabled": true,
        "max_train_batch_size": 2000,
        "micro_batch_sizes": [2,4,6],
        "min_gpus": 1,
        "max_gpus" : 10000,
        "min_time": 20,
        "version": 0.1
    }

@jeffra I haven't looked at this closely, but am I right to assume this requires the user to also use the training_data argument of deepspeed.initialize()? Also, how does the infrastructure scheduler tie to this config?


System Clock

Is your feature request related to a problem? Please describe.
Windows computers have an option to drop the taskbar until you hover over the bottom of the screen on the windows screen.  Doing so with a program like RuneLite open will not do anything.  In short to take advantage of the larger feeling of full-screen RuneLite some players lose access to a clock.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Please create a toggleable plugin where the system clock is checked and is added to an overlay in-game which shows the computer's system time.
Describe alternatives you've considered
If an overlay wouldn't work a new section could be added to the Timers & Stopwatch plugin  where the time is listed above the timers or stopwatches on the sidebar
Additional context
An example of this can be seen here.
https://cdn.mmos.com/wp-content/gallery/mabinogi/Mabinogi-Title.jpg
The game clock in Mabinogi can show both it's in-game clock and system clock.  Since Runescape doesn't have a day-night cycle all I'd like is a System Clock on the side of the screen.

You can already show local time in the report button plugin settings


Is tyro compatible with argparse?

Hi, great development tools, much thanks!
But I wonder is tyro compatible with argparse? If I want to use tyro and argparse at the same time, how should I make them both work?

Hello! tyro is built on top of argparse, but is designed to completely abstract argparse away. Using the tyro API simultaneously with the under-the-hood argparse API isn't a design goal.
You could try simple-parsing (https://github.com/lebrice/SimpleParsing) or jsonargparse (https://github.com/omni-us/jsonargparse)!

Hello! tyro is built on top of argparse, but is designed to completely abstract argparse away. Using the tyro API simultaneously with the under-the-hood argparse API isn't a design goal.
You could try simple-parsing (https://github.com/lebrice/SimpleParsing) or jsonargparse (https://github.com/omni-us/jsonargparse)!

Got it now! Thank you.


Is the page missing some available projects?

Hi guys,
I came across pillarjs, I've really like the idea.
Checking it for future implementations, I've realised that the website is missing in the list 4 available projects:

router
parseurl
resolve-path
cookies

All of them except, cookies, are in version 1.x
Do they have to be in the website or you want not to add to the list?
Thanks.

Do they have to be in the website or you want not to add to the list?

I'll add them in a moment. They were missing because we were not vigilant :)

Ok, they're all added :)

Great thanks ;D


add bcftools merge cwl tool

This cwl tool allows an array of input vcfs to be merged together. input vcfs need to be bgzipped and tabix indexed. merge method none produces the best resulting vcf. using the method of indels or both causes the alternate field to get updated in a way where the variant has alt1,alt2 which is not ideal for parsing downstream for SVs. The indels and `both methods also would only merge 2 calls if the variants have the same starting position and reference. With my testing only a very small number(~400 out of 32k) of variants from multiple callers fit this requirement and were being merged together.

I thought about exposing the --output-type option but that would require the output_vcf_name input to match the extension produced by bcftools. I guess since the output_vcf_name is an input the user can hopefully provide the correct file extension!


nomad_1_0: 1.0.9 -> 1.0.10, nomad_1_1: 1.1.3 -> 1.1.4

Motivation for this change
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.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

[x] Fits CONTRIBUTING.md.

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

2 packages built:

nomad
nomad_1_0

Result of nixpkgs-review pr 136213 at 00d1b4f1 run on aarch64-linux 1

2 packages built successfully:

nomad (nomad_1_1)
nomad_1_0


client-go auto updater is broken

https://prow.istio.io/job-history/gs/istio-prow/logs/update_api_dep_api_postsubmit
it has failed every time

This is fixed now


Index out of size when trying to drag file to scripts panel

Godot version:
3.2 2fc2d82
OS/device including version:
Ubuntu 18.04
Issue description:
When I try to drag to empty script panel any file differnt than godot script(with gd extension) then this error occurs:
ERROR: move_child: Index p_pos=-1 out of size (data.children.size() + 1=2)
   At: scene/main/node.cpp:323.
ERROR: set_current_tab: Index p_current=-1 out of size (get_tab_count()=1)
   At: scene/gui/tab_container.cpp:464.

Steps to reproduce:
Edit:
GIF

The video is dead. I can only get
scene\gui\tab_container.cpp:552 - Index p_current=0 out of size (get_tab_count()=0)

when dragging non-script file on empty script list.

Doesn't happen anymore in 8958e1b


RichTextLabel: update the cache when the scroll hide.

This a proper fix for #23933, i hope 8), revert 970dc91(caused issue: when after long text with scrollbar, set a new long text, scroll offset will be ignored.)
No need to clear the scroll offset, it's cleared in _update_scroll(), but cache not updated.
Updated test project:
godot_3_rich_text.zip

Thanks!


Add pax instructions

We should have some type of pax instructions in the README. Currently coldkernel will get the kernel built, however we do not offer any guidance on what to do once the kernel boots. If the user runs into an issue, they are likely to be unaware of pax entirely.

Added pax instructions for grub2 with https://github.com/coldhakca/coldkernel/commit/dbd03f41b39199151f6f0547fe4ee59cccc2dcde

Closing, https://github.com/coldhakca/coldkernel/issues/11 will resolve this when complete.


[New Core]: Midnight Resistance

Core Author username
jotego
Core .yml snippet
display_name: Midnight Resistance
repository: jtbin
path: pocket/zips/jotego.jtmidres.zip

Closed per 579a4e5fa9d6a183dbd34afba3d423b9abc19809


refactor(tuning): ♻ remove Ratio extension type in favor or Cent.fromRatio constructor

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

10 of 10 (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%

Covered Lines:
1187

Relevant Lines:
1187

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

11 of 11 (100.0%)  changed or added relevant lines in 5 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%

Covered Lines:
1187

Relevant Lines:
1187

💛  - Coveralls


chore: improve activity bar and panel layout

feat: improve activity bar layout
docs: rename and move stories

https://782-improve-design-of-activi.react-science.pages.dev/stories/?path=/story/components-activity-bar-and-panel--activity-toolbar-layout


tslint 5.0.0 contains custom rule breaking changes

Since tslint v5.0.0, there is a breaking change to the API for custom tslint rules.
The good news is that it looks like changing this is a pretty straightforward refactoring.
- public applyWithProgram(srcFile: ts.SourceFile, langSvc: ts.LanguageService): Lint.RuleFailure[] {
-     return this.applyWithWalker(new Walker(srcFile, this.getOptions(), langSvc.getProgram()));
+ public applyWithProgram(srcFile: ts.SourceFile, program: ts.Program): Lint.RuleFailure[] {
+     return this.applyWithWalker(new Walker(srcFile, this.getOptions(), program));

However changing this would also mean a breaking change to this package/ruleset, since it would make tslint versions >= 5.0.0 the new dependency. Are there any concerns with that? Do we need to ensure that any new updates to these rules are compatible with projects using older version of tslint?

Hi @bgold09
tslint has been introducing a lot of backwards compatibility changes recently. The 4.0.0 upgrade was was quite a bit of work and is not backwards compatible. And now 5.0.0 is released very quickly thereafter. It seems like their approach is to not worry about backwards compatibility and just increase the major version. This is an unfortunate situation for all the rules developers like us.
I suggest you make the change in a non-backwards compatible way and then increase the tslint-microsoft-contrib version to 5.0.0 as well.
Thanks,

Hmm, this is actually less straightforward than I thought. These rules don't actually use the applyWithProgram() function of TSLint TypedRules, but the language service is used elsewhere.
I'll need to spend some time investigating how to proceed.

Just a brief update: making pretty good progress and working to get all the tests passing

Thanks @bgold09 for the update !
Let us know if you are blocked and need any help from our side !

I have all the tests passing now, with some caveats that I'll explain later. The issue now is that the tslint plugin for grunt does not accept an option to enable type checking (see palantir/grunt-tslint#67); we need that to lint our own project.
However I was able to fix that quite easily, but we'll have to wait for them to accept the PR and publish a new version of the task.

@loicraux, @HamletDRC: the one remaining thing is to fill in the rule metadata for the new rules that have been introduced. Could you help to determine what we should do for those? They include:
banTypes, matchDefaultExportName, newlineBeforeReturn, noDuplicateSuper, noImportSideEffect, noInvalidTemplateStrings, noNonNullAssertion, noReferenceImport, noSparseArrays, noUnnecessaryCallbackWrapper, preferTemplate, returnUndefined

Thanks @bgold09 for the update !
For the additional metadata for tslint rules, I would go with the following metadata :
{
    banTypes: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/pull/2175",
        "issueClass": "Ignored",
        "issueType": "Error",
        "severity": "Critical",
        "level": "Opportunity for Excellence",
        "group": "Configurable",
        "commonWeaknessEnumeration": "710"
    },
    matchDefaultExportName: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/pull/2117",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    newlineBeforeReturn: {
        "gitHubIssueOrPR": "http://eslint.org/docs/rules/newline-before-return",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Low",
        "level": "Opportunity for Excellence",
        "group": "Whitespace",
        "commonWeaknessEnumeration": "710"
    },
    noDuplicateSuper: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/issues/1983",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    noImportSideEffect: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/issues/2116",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    noInvalidTemplateStrings: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/issues/2283",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Moderate",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    noNonNullAssertion: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/issues/1444",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    noReferenceImport: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/pull/2273",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    noSparseArrays: {
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    noUnnecessaryCallbackWrapper: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/pull/2249",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Correctness",
        "commonWeaknessEnumeration": "710"
    },
    preferTemplate: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/issues/772",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Clarity",
        "commonWeaknessEnumeration": "710"
    },
    returnUndefined: {
        "gitHubIssueOrPR": "https://github.com/palantir/tslint/pull/2251",
        "issueClass": "Non-SDL",
        "issueType": "Warning",
        "severity": "Important",
        "level": "Opportunity for Excellence",
        "group": "Clarity",
        "commonWeaknessEnumeration": "710",
        "recommendation": "false, // this actually affect the readability of the code"
    }
}

I am not sure for the CWE values, @HamletDRC can you double check please ? ^^
Thanks !

Additionally I'm getting false positives with tslint v4 (as required by ms-contrib) and ts 2.3.


Mood tracker backend

Notion ticket link

[Mood Tracker] Backend

Implementation description

Added mood model
Added getInMonth, getInRange, and post APIs

Steps to test
Please note: these steps have been modified after the schema was changed, if you tested with the old schema it may be necessary to delete your mongodb moods collection (in the collections section of your cluster in mongodb atlas).

In pages/index.tsx around line 195 and replace this code:

const Home: React.FC = () => {
    const [showAlert, setShowAlert] = useState(true);
    const [user, setUser] = useState<any | null>(null);

    const variant = useMediaQuery({ query: `(max-width: 925px)` })
        ? "mobile"
        : "desktop";

    useEffect(() => {
        const getCurrentUser = async () => {
            const currentUser = await Auth.currentAuthenticatedUser();
            setUser(currentUser);
        };

        getCurrentUser().catch(console.error);
    }, []);

    return (
        <>

with this code:
const Home: React.FC = () => {
    const [showAlert, setShowAlert] = useState(true);
    const [user, setUser] = useState<any | null>(null);

    const variant = useMediaQuery({ query: `(max-width: 925px)` })
        ? "mobile"
        : "desktop";

    const handleGetInMonth = async () => {
        const response = await axios({
            method: "GET",
            url: "/api/mood/getInMonth",
            params: {
                username: "testing2",
                month: 3,
                year: 2022,
            },
        });
        console.log(response);
    };

    const handleGetInRange = async () => {
        const response = await axios({
            method: "GET",
            url: "/api/mood/getInRange",
            params: {
                username: "testing2",
                startTimestamp: new Date("Mar 30, 2022").toISOString(),
                endTimestamp: new Date("Mar 30, 2022").toISOString(),
            },
        });
        console.log(response);
    };

    const handlePost0 = async () => {
        const response = await axios({
            method: "POST",
            url: "/api/mood/post",
            data: {
                username: "testing2",
                timestamp: new Date("Mar 30, 2022").toISOString(),
                moodScore: 0,
            },
        });
        console.log(response);
    };

    const handlePost4 = async () => {
        const response = await axios({
            method: "POST",
            url: "/api/mood/post",
            data: {
                username: "testing2",
                timestamp: new Date("Mar 30, 2022").toISOString(),
                moodScore: 4,
            },
        });
        console.log(response);
    };

    useEffect(() => {
        const getCurrentUser = async () => {
            const currentUser = await Auth.currentAuthenticatedUser();
            setUser(currentUser);
        };

        getCurrentUser().catch(console.error);
    }, []);

    return (
        <>
            <Button onClick={handleGetInMonth}>GET MO</Button>
            <Button onClick={handleGetInRange}>GET RG</Button>
            <Button onClick={handlePost0}>POST 0</Button>
            <Button onClick={handlePost4}>POST 4</Button>

Import Button at the top of the file
Go to http://localhost:3000/
Observe the GET MO, GET RG, POST 0, and POST 4 buttons
Open the console
Click on POST 0
Observe that a mood is posted with moodScore 0 for Mar 30, 2022
Click on GET MO
Observe that an array is returned with the mood that was posted
Click on GET RN
Observe that an array is returned with the mood that was posted
Click on POST 4
Observe that a mood is posted with moodScore 4 for Mar 30, 2022 (i.e. the previous moodScore was modified from 0 to 4)
Click on GET MO
Observe that an array is returned with the mood that was posted
Click on GET RN
Observe that an array is returned with the mood that was posted
Play around with posting and getting. Change the query params and data and verify that it matches the API specifications in the notion ticket. Please ping or message me on slack or discord if you have questions.

What should reviewers focus on?

Does it work?
Does the schema make sense?
Do the API implementations make sense?

Checklist

[x] My PR name is descriptive and in imperative tense
[x] My commit messages are descriptive and in imperative tense. My commits are atomic and trivial commits are squashed or fixup'd into non-trivial commits
[x] I have run the appropriate linter(s)
[x] I have requested a review from the PL, as well as other devs who have background knowledge on this PR or who will be building on top of this PR

Instead of a custom validator I used a pre hook for saving since I couldn't really figure out the validator. Please let me know if it looks ok, and if I can make improvements.


feat: improve screenshots ux

With this PR, when adding a screenshot with more than one monitor, a folder will be created with the screenshots from each screen instead of appending the screen name to the end of the file name. This way it is easier to share.
We also add notifications for when the screenshot was successfully created and if you click on it, it will open the screenshot on the Web UI.
On error, it also shows a notification.
This addresses some of the issues on #765.
It also starts using share.ipfs.io instead of the main gateway link.

Sorry for the delayed response; Christmas ate my time away.
Seems good to me; I get the folder with both screenshots inside.


Explainable undo split

This pull request resolves the issue #561 by modifying the code for chirho.explainable.handlers.components.undo_split and contributes additional tests as a safeguard.
This specifically resolves inaccuracies for SearchForExplanation where split would create two counterfactual worlds and undo_split would only undo one of them.

Looks good to me, @eb8680 can you review please?

@PoorvaGarg can you resolve the merge conflicts in the notebook?


VS Error: RZ10012: Found markup element with unexpected name 'SomeMudBlazorElement'. If this is intended to be a component, add a @using directive for its namespace.

Things to check

[X] I have searched the existing issues for this bug
[X] To rule out a caching problem I made sure the bug also happens in an incognito tab

Bug type
Component
Component name
All
What happened?
From time to time I get this error in Visual Studio (Community 2022 (64-bit) - version 17.11.3).
I don't know when and why. All required usings and namespaces are present.
It is also just a design time error, the app compiles and launches flawlessly.
Most of the time the error disappears when I delete bin and obj folders and restart VS.

Expected behavior
VS should not display an error
Reproduction link
https://try.mudblazor.com/
Reproduction steps
I cannot reproduce the error as it occurs randomly.
Relevant log output
No response
Version (bug)
7.6.0
Version (working)
No response
What browsers are you seeing the problem on?
Other
On which operating systems are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

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

From time to time I get this error in Visual Studio (Community 2022 (64-bit) - version 17.11.3).
I don't know when and why. All required usings and namespaces are present.
It is also just a design time error, the app compiles and launches flawlessly.

Then this a wrong repository to report such issues. MudBlazor is not responsible on how your IDE is behaving.
Report this to Razor team instead: https://github.com/dotnet/razor or report to Visual Studio team: https://learn.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio?view=vs-2022


error reading retrieval from FHIR in ODM example

Hello,
any idea why the following error pops up?
from odmlib import odm_loader, loader

def load_study_odm_v2_0(filepath: str):
    engine = loader.ODMLoader(odm_loader.XMLODMLoader(
        model_package="odm_2_0", ns_uri="http://www.cdisc.org/ns/odm/v2.0")
    )
    engine.open_odm_document(filepath)

    return engine.load_odm()

load_study_odm_v2_0("example.xml")

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
[<ipython-input-64-1a86b7ad92d6>](https://localhost:8080/#) in <cell line: 1>()
----> 1 load_study_odm_v2_0("example.xml")

10 frames
[<ipython-input-63-b0aedd3594d7>](https://localhost:8080/#) in load_study_odm_v2_0(filepath)
      1 def load_study_odm_v2_0(filepath: str):
----> 2     engine = loader.ODMLoader(odm_loader.XMLODMLoader(
      3         model_package="odm_2_0", ns_uri="http://www.cdisc.org/ns/odm/v2.0")
      4     )
      5     engine.open_odm_document(filepath)

[/usr/local/lib/python3.10/dist-packages/odmlib/odm_loader.py](https://localhost:8080/#) in __init__(self, model_package, ns_uri, local_model)
     75             self.ODM = importlib.import_module(f"{model_package}.model")
     76         else:
---> 77             self.ODM = importlib.import_module(f"odmlib.{model_package}.model")
     78         self.nsr = NS.NamespaceRegistry()
     79

[/usr/lib/python3.10/importlib/__init__.py](https://localhost:8080/#) in import_module(name, package)
    124                 break
    125             level += 1
--> 126     return _bootstrap._gcd_import(name[level:], package, level)
    127
    128

/usr/lib/python3.10/importlib/_bootstrap.py in _gcd_import(name, package, level)

/usr/lib/python3.10/importlib/_bootstrap.py in _find_and_load(name, import_)

/usr/lib/python3.10/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)

/usr/lib/python3.10/importlib/_bootstrap.py in _load_unlocked(spec)

/usr/lib/python3.10/importlib/_bootstrap_external.py in exec_module(self, module)

/usr/lib/python3.10/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)

[/usr/local/lib/python3.10/dist-packages/odmlib/odm_2_0/model.py](https://localhost:8080/#) in <module>
     54
     55
---> 56 class StudyEventDef(OE.ODMElement):
     57     """ represents ODM v2.0 StudyEventDef and can serialize as JSON or XML """
     58     OID = T.OID(required=True)

[/usr/local/lib/python3.10/dist-packages/odmlib/odm_2_0/model.py](https://localhost:8080/#) in StudyEventDef()
     62     Category = T.String(required=False)
     63     Description = T.ODMObject(element_class=Description)
---> 64     ItemGroupRef = T.ODMListObject(element_class=ItemGroupRef)
     65     WorkflowRef = T.ODMListObject(element_class=WorkflowRef)
     66     Alias = T.ODMListObject(element_class=Alias)

NameError: name 'ItemGroupRef' is not defined

where example.xml is the provided example for retrieval from FHIR in ODM v2.0.

Any pointers on the error?

odmlib does not yet support ODM v2.0. That said, I'll take a look at the example and will let you know what's causing the problem.

I had a quick look at the example.
The code ran for me after I:

moved the ItemGroupRef and WorkFlowRef classes before the StudyEventDef class in odmlib/odm_2_0/model.py
added "2.0" to ODM.ODMVersion in value_set.py

I had a quick look at the example. The code ran for me after I:

moved the ItemGroupRef and WorkFlowRef classes before the StudyEventDef class in odmlib/odm_2_0/model.py
added "2.0" to ODM.ODMVersion in value_set.py

Thanks a lot, @lexjansen.
I will test it out with those modifications later today and see if it works as expected; will report back!

@lexjansen, error seems solved in terms of not raising an exception, but not in terms of content.
I am not sure if you have tried to read the content of the loaded ODM v2.0 study trial, but says it is empty (no studies), while the example XML definition clearly contains a study definition inside. I would say, we are halfway there.

@DiTo97 That's good. But like Sam mentioned, the current odmlib is based on an early draft version of the ODM v2.0 schema.
The example you took is based on the final schema.
These changes just solved the error. I have not looked further,


Class ambiguity from frames4merge <- unlist(apply(with(cellMinMax,... in CreateDbFromParser.R#L271 causes crash

Hi Holger,
When running sm make_db on the sample called "original" that I'll send you by email, I get the following message:

1] "replacing cell IDs in dbonds..."
Error in setkeyv(value, key) :
some columns are not in the data.table: frame
Calls: dt.merge ... as.df -> as.data.frame -> merge -> data.table -> setkeyv
Execution halted
Error in job make_db while creating output files original.sqlite, cellshapes.RData.
RuleException:
CalledProcessError in line 58 of /tissue_miner/workflow/tm.snkmk:
Command 'CreateDbFromParser.R /movies/original' returned non-zero exit status 1
File "/tissue_miner/workflow/tm.snkmk", line 58, in __rule_make_db
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
Job failed, going on with independent jobs.
Exiting because a job execution failed. Look above for error message

the frames4merge variable should be a suite of integers, but it becomes a matrix when running the script on the example. It sounds like a coercion issue.
go here
Could you fix this ?

I'll have a look asap

It think I was rigth about the coercion issue. Here is the documentation of the unlist() funtion in R:

The output type is determined from the highest type of the components in the hierarchy NULL < raw < logical < integer < double < complex < character < list < expression, after coercion of pairlists to lists.

Could you fix that as soon as possible ?
Best,
Raphael


Support for .super from ES6

Which version of PhantomJS are you using? Tip: run phantomjs --version.
(I am currently figuring it out, I'm posting this on behalf of Chutzpah, and trying to ascertain the version of PhantomJS it uses)

What steps will reproduce the problem?

Run a unit test against a module that calls .super()

super is undefined

When debugging the site or runnign on production, this works fine

Which operating system are you using?

Did you use binary PhantomJS or did you compile it from source?

Please provide any additional information below.
This in particular prevents us from adding javascript unit tests to our thick client :cry:

Update: version is 2.1.1

This feature will be available in upcoming release 2.5.


Add leja sequences

None of the untested lines are intended for use (internal or external), just for reproducibility.


Add live Hacktoberfest PR Counter to site footer

 <-- this is super cool!
On our website, it would be even cooler 😎
Your task, if you should choose to accept it, is to embed this badge into the footer, to help increase awareness of our Hacktoberfest project on the site! If it works better somewhere else on the site (like in the events section, or the navbar) feel free to add it there instead!
Resources

Badge source: https://img.shields.io/github/hacktoberfest/2021/P2PHackClub/website

This is a "first-timers-only" issue. That means that we are requesting that only those new to open source try this one out! Please ask as many questions as you need, I am here to help you create your first contribution to open-source :D

Can I work on this?

@thatrobotdev I have created a PR please check.


book2: match ebook release assets by name, not content-type

Since progit2 2.1.309 switched to using a GitHub Action to generate releases, it no longer sets the content-type field of the release assets. And thus we fail to find any ebooks to link, since we are looking for assets with "application/pdf", and so on.
Instead, let's do a suffix match against the name of each asset, looking for the appropriate file extension. This works fine, since the names are all obvious ("progit.epub", and so on). And it should be backwards-compatible with older translations that haven't yet picked up the new Actions-based workflow, since they used the same sensible names.
We may revert this later if the assets start generating with correct content-types again. But it looks to be non-trivial (there's some discussion in #1498), so this seems like a good solution in the meantime.
/cc @HonkingGoose

Instead, let's do a suffix match against the name of each asset, looking for the appropriate file extension. This works fine, since the names are all obvious ("progit.epub", and so on). And it should be backwards-compatible with older translations that haven't yet picked up the new Actions-based workflow, since they used the same sensible names.

I agree, this seems like a good fix for now. Will probably help the translations as well, as they will probably follow the main English repo with their CI setup, as they can basically copy/paste from the English repo and be done with their CI/releases.
That content-type thing needs to be fixed with the upstream action that ProGit2 uses, or by ProGit2 using another action.
I'm open for suggestion on a better action! 😉

I don't think the Travis CI is ever going to report back; it's still hooked to travis-ci.org, which shut down about 2 weeks ago. We probably should switch that out for an Action workflow.
I'm going to merge this through in the meantime, since the ebook links are currently broken on the site.

I don't think the Travis CI is ever going to report back; it's still hooked to travis-ci.org, which shut down about 2 weeks ago. We probably should switch that out for an Action workflow.

It's not going to report back, it's on permanent holiday. The poor CI bot is off on a vacation after being hammered with requests all the time. 😄
The ProGit2 Travis builds on travis-ci.org were also not working at all, hence the migration to GitHub Actions. 😉


Graphviz support badge

Is it possible to show a badge or an icon on agents that has propagate immediately set to true in view diagram mode?

That's a good idea. Or maybe a different line styling.

Also, is it possible include a button Show only Orphan Agents (shows agents that are not linked to any other agents) like the one that says Hide Disabled Agents. Please consider too.

I believe the propagate_immediately? attribute already affects the line styling.

...Where a dashed arrow indicates events will be propagated periodically, and a filled arrow indicates events will be propagated immediately.

@knu I have propagate immediately unchecked agents with both dotted and solid lines and vice versa?

@knu looking at my diagram one logic I am seeing for the dotted vs solid is control. If an agent controls another agent then a dotted line links them. For example scheduler agent controlling other agents or website agent sending payload to a event formatting agent. these have dotted on mine
For website agent that send payload to trigger agent which may or may not process that data based on a trigger is not controlled by website agent and has a solid line connecting them. these have solids on mine
Does the second line have to do anything with this? Its a guess, I don't know what language this is.
'style: ('dashed' unless receiver.propagate_immediately?),
label: (" #{agent.control_action}s " if agent.can_control_other_agents?),'

It looks like it is dashed unless propagate_immediately is set.


Bug when first argument is a string instead of an array of strings

Works:
fullReloadPlugin(['dir/*.php'])

Breaks:
fullReloadPlugin('dir/*.php')

The argument is passed to Array.from, so dir/*.php is turned into ['d', 'i', 'r', '/', '*', ...]! Now all of these are watched as separate globs, including *, so lots of watcher processes are spawned, every single file in the project is watched and the development server slows to a crawl.

It's not a bug, the plugin is expecting an Array.
If you have TypeScript in your editor it should warn you about it.
I'm ok accepting a pull request to throw an explicit error if it's not an Array.

Confused it with another of my plugins.
Seems like Array.from is incorrect, I'll make a fix shortly.

Thanks! :)

Thanks for reporting, released a fix in 1.0.4 😃


Allow replace algorithms with functors with non-const call operators

The CUDA back end for thrust::replace_copy_if would fail to compile if
called with a predicate that had a non-const function call operator.
Fix the problem by changing thrust::cuda_cub::__replace::new_value_if_f's
function call operators to be non-const.  The operators don't need to be
const member functions because there are no const objects of type
new_value_if_f.  Having the operators be const unnecessarily requires
that the function call operator of the embedded predicate be const.

Here is a test program that fails with the current Thrust and is fixed by this change:
#include <thrust/replace.h>
#include <thrust/device_vector.h>
struct always_true {
        __device__ bool operator()(int x) { return true; }
};
int main() {
        thrust::device_vector<int> input;
        thrust::device_vector<int> output;
        thrust::replace_copy_if(thrust::cuda::par,
                input.begin(), input.end(), output.begin(), always_true(), 1);
}

$ nvcc replace.cu
.../include/thrust/system/cuda/detail/replace.h(69): error: no instance of function "always_true::operator()" matches the argument list and object (the object has type qualifiers that prevent a match)
            argument types are: (const int)
            object type is: const always_true

Do you have a usecase where a non-const call operator is required, or is this just for convenience? I believe that the current behavior is intentional, but need @jaredhoberock to confirm.
Since the predicate functor is copied into the device's environment but not back to the host, any changes to the functor during device execution will not be visible from the host. Requiring the call operator to be const is a way of enforcing this -- without this requirement users may try to write functors that cannot be supported across backends.
For a somewhat contrived example:
struct always_true_and_count {
  int num_executions{0};
  __device__ bool operator()(int)
  {
    ++num_executions;
    return true;
  }
}

num_executions may be non-zero after the algorithm executes on tbb, but it would always be zero on CUDA, and this sort of inconsistency is what we want to avoid. By requiring that operator() is const, these sorts of subtle bugs are avoided.

Do you have a usecase where a non-const call operator is required, or is this just for convenience? I believe that the current behavior is intentional, but need @jaredhoberock to confirm.

I'm not sure if the standard weighs in on this issue. Sequential algorithms allow non-const callables, but it makes sense to mutate their state in sequence.  I think Thrust should either allow non-const callables in all algorithms (unless there is some weird circumstance where it is impossible) or prohibit them everywhere to enforce a consistent rule.
I lean in favor of allowing non-const to work. Forcing programmers to decorate their functors with additional keywords that don't do any real work seems pedantic in this case. If they try to do any state mutation in their functors, it's up to them to make sure that it makes sense for their use case.

This issue was uncovered by Intel's parallel algorithms test suite, not by a real world example.  The C++ standard doesn't give implementations the freedom to forbid user-supplied non-const callables.  (Thrust algorithms aren't standard conforming, but it is nice to avoid unnecessary differences.)
If I remember correctly, replace_copy_if was the only Thrust algorithm where the Intel test suite found this issue.  Other Thrust algorithms accept non-const callables without problems.
Function objects that actually change their state are problematic in any parallel algorithm, even when no GPU is involved.  There will be multiple copies of the callable (one per thread), or the callable will be shared and accessed simultaneously from multiple threads.  And callables are passed by value, even in sequential algorithms, so getting the modified state back out is difficult.  There is nothing special about thrust::replace_copy_if that makes a non-const callable more problematic there than anywhere else.
For the reasons of standards conformance and consistency, I think this is a good change.

Ah, I was under the impression that thrust already prohibited non-const callables everywhere after a similar issue popped up on another MR. I stand corrected :)
Agreed that consistency with the other algorithms and the standard are more important here. I'll land this patch soon.

Internal CI submitted: shelve 28210844


Fix ReactDOM.render Warning in frontend/lib/store/tests/local-limit.test.ts

  console.error
    Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot

      64 |
      65 |   it('should return true for canSearch if search count is below the maximum limit', () => {
    > 66 |     const { result } = renderHook(() => useSearchLimit());
         |                                  ^
      67 |
      68 |     act(() => {
      69 |       result.current.incrementSearchCount();

I think we should use the @testing-library/react to fix it

Hi @ahaapple , Can you assign me this issue?


error after uploading contract code in  "prepare your first contract tutorial"

Is there an existing issue?

[X] I have searched the existing issues

Experiencing problems? Have you tried our Stack Exchange first?

[X] This is not a support question.

Bug report for compiling, code snippets, templates, etc.
An error after uploading flipper.contract code on the contracts ui.
I was following the tutorial: https://docs.substrate.io/tutorials/smart-contracts/prepare-your-first-contract/
Issue has come up for multiple people:
https://substrate.stackexchange.com/questions/5259/rust-ink-execution-finished-with-debug-buffer
Steps to reproduce the problem
follow tutorial: https://docs.substrate.io/tutorials/smart-contracts/prepare-your-first-contract/

@Daanvdplas, were you following this part of the tutorial with the workaround to use a specific nightly build:
If the command indicates you are using version 1.5.0, run the following commands to update Rust to use a compatible version of the toolchain:
rustup toolchain install nightly-2022-08-15
rustup target add wasm32-unknown-unknown --toolchain nightly-2022-08-15
rustup component add rust-src --toolchain nightly-2022-08-15
You can then compile contracts using this toolchain by running the following command:
cargo +nightly-2022-08-15 contract build
It seems like it is fixed in ink 3.4.0 that was just released. I was able to remove cargo-contract and re-install it and then compile flipper with the latest version of ink!
Related PR to remove the workaround: https://github.com/substrate-developer-hub/substrate-docs/pull/1600

I tried it again and I'm having the same issue. The moment I upload the smart contract I receive this message:

Other than that everything is working, so I can use the smart contract (last steps of the tutorial). I do not however get any output in my terminal when using the get() or flip() of the contract (I don't know if it should).
Last, I read somewhere that production of blocks is changed to when a extrinsic is received. This is not changed in the document. So after starting the substrate-contracts-node the document says it should produce blocks, but this shouldn't be the case due to this change.
Hope this all helps!

@Daanvdplas, were you following this part of the tutorial with the workaround to use a specific nightly build:
If the command indicates you are using version 1.5.0, run the following commands to update Rust to use a compatible version of the toolchain:
rustup toolchain install nightly-2022-08-15 rustup target add wasm32-unknown-unknown --toolchain nightly-2022-08-15 rustup component add rust-src --toolchain nightly-2022-08-15
You can then compile contracts using this toolchain by running the following command:
cargo +nightly-2022-08-15 contract build
It seems like it is fixed in ink 3.4.0 that was just released. I was able to remove cargo-contract and re-install it and then compile flipper with the latest version of ink!
Related PR to remove the workaround: #1600

hello, could you please teach me how to remove and reinstall cargo-contract, and which commands I should use? "cargo +nightly-2022-08-15 contract build" seems too complex to use.
Thanks for answer my question !

To remove the installed package:
cargo uninstall cargo-contract
To re-install:
cargo install cargo-contract --force


DBZ-3650 WIP docker image for starting kafka/kafka-connect/zookeeper

https://issues.redhat.com/browse/DBZ-3650

We should definitively not commit the entire kafka into git!


Longer Password list

If you find that 100 passwords is not enough, here's my go-to password list:
https://github.com/danielmiessler/SecLists/tree/master/Passwords

Thank you. Greatly appreciated. In future versions of this gem, I do plan to add functionality that allows the developer to tweak the number of passwords checked against.

This is also a blocker for us. We would like to use 100k or 1M common passwords for our check. Being able to config the extension to point to a custom list would be great.

Finding a list that long of passwords that already meets Devise's 8 character minimum isn't easy. Most of those "common passwords" are 4-6 characters long.

I fail to understand what you're getting at. If an organization cares enough about security to add extensions for the Devise Gem, why would they go into devise.rb to change the minimum password length?
Larger lists, along with customization for the length of list, will be added to future versions. That is already in the road map. Give me another couple of weeks, and I should have that update loaded.

I didnt mean they would be shortening it necessarily. They could be increasing the min length to 12, for example, in which case even more from the existing list would now be 'invalid'.
Having the path customizable in a future version would be great!

You could run a map enum based on devise's min password setting.
Another option is just using Troy Hunt's list.

@pachonk Is Troy Hunt's list better than the ones you linked to before?

@bradseefeld if they're increasing the min length instead of decreasing, then your argument of having a list that includes 4 character passwords doesn't make sense to me.

Troy Hunt's list is definitely more complete, but it's 5+GB and it's sha1 hashes which would require some re coding from what you currently have.

Hmm, yes. That would require some big changes. I'll keep that in mind for the future, but for now, the next version will just have one of the larger lists that you provided up above. 10M is still a large set of passwords to choose from.

I think running some sort of select or reject on the list based on devise max password could make sense too.
You could use ag - the silver searcher which is super fast and not allow partial passwords too

That's my thoughts exactly. Using select on the array with between? using the range that Devise provides. That way, if the developer changes the range, the list provided will be relevant.

I wouldn't care about the max much... Most people don't touch it and it'll just waste time on a comparison that is rarely going to return "false" on the max side.

I didn't look at source code.much... but thats a lot of passwords to have in an array. Consider using RDS in some way at that scale.

I'm not familiar with RDS.
My plan is not to return ALL the values held in the text file. As you say, that could be a very large list. Down the road, I intend to allow the devs to customize the number of values to check against, with 100 being the default.

RDS is like mysql, postgres, mssql, etc.
On Fri, Sep 8, 2017, 2:28 PM Chris Larsen<EMAIL_ADDRESS>wrote:

I'm not familiar with RDS.
My plan is not to return ALL the values held in the text file. As you say,
that could be a very large list. Down the road, I intend to allow the devs
to customize the number of values to check against, with 100 being the
default.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/HCLarsen/devise-uncommon_password/issues/1#issuecomment-328193355,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGaPS5xbwO-lk5XyFcbxkFivs-UmvdD9ks5sgZVPgaJpZM4OgTSB
.

No, do not add a database dependency to this gem.
We just need to be able to config the path to the list. If you're that worried about removing passwords that are too long or too short from the list, filter those out when the list is loaded (the list should only be loaded once at boot anyway).
Passwords containing 'weak passwords' within them should be allowed. If my password is "this is a Str0ng password, but may look weak because its got some common dictionary words in it" then it should not be rejected! Passphrases are whats being suggested to users in a lot of apps and if their phrase includes one weak password string, it should not be rejected outright.

Without a database, I can't see scaling to extremely long password lists.
Could eventually have adapters to support Redis, ActiveRecord, local array, etc.

You mean a relational database? That would also require a lot of retooling. Not something I'm interested in doing.

@bradseefeld based on what you're saying there, I don't think you're understanding the point of this gem. The point is to prevent users from signing up using a password on the list of most common passwords. It does a direct match check between the entered password and the list. Nothing more.

@HCLarsen, I understand that... Im not sure where the miscommunication is. All I am requesting is to have the path to the list of passwords be configurable so that we can use our own list.

While I appreciate the feedback that both of you are providing, your suggestions do not fit within the use cases that this gem was designed to address. I'm closing this issue, as I don't see further discussions being helpful.


mpd as player with resume play

I experimented with mpd in the last days and it showed to be a good replacement for vlc. As i was running vlc "daemon-like" with playlist juggling before, i had to make only small adjustments. And then it escalated a little bit and i added resume play to it.
Update: The features described here have been merged in a new branch and can be pulled with git https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/pr80-mpd-as-audio-player
mpd and mpc
mpd can be controlled like vlc with an rc interface (nc localhost 6600). The available commands can be found here: https://www.musicpd.org/doc/protocol/command_reference.html
I also use mpc, the command line client. It has less commands available but it's easier to write "mpc play" than "echo play | nc localhost 6600". So it could be completely replaced.
Resume play
I added a new script, resume_play.sh, which is called from playout_controls with the option -c=savepos everytime when there is a stop, shutdown or load-new-playlist command. It saves the filename of the current track and time to a file named lastplayed.dat in to the corresponding folder ONLY if there's already a file named lastplayed.dat. This is done to control resume play for different audio folders how you desire.
This can be set in the web app, where i added a status marker to the folders in "Available Audio" and a control button (expand the accordion). This button simply writes or deletes the lastplayed.dat file in the folder. There is no button for livestreams as it doesn't make sense.
To resume the old position the script is called with -c=resume and looks for the lastplayed.dat and tries to find the audio file indicated there in the already loaded playlist (this is done for podcast support). If it is found, it resumes, otherwise it starts the playlist from the beginning.
One issue i haven't found a solution (yet?) is, if you resume playing in the middle of the playlist and you listen until the end, next time you start that playlist it will start from the same position in the middle of the playlist. This is because there's no event i could use to call the resume_play.sh if the playlist ends. But maybe mpd offers something, i haven't looked very deep into the possibilities. Works now.
Setup
Install mpd and mpc:
sudo apt install mpd mpc
in the RPi-Jukebox-RFID folder:
git checkout pr80-mpd-as-audio-player
Make sure the shell scripts are all executable:
chmod +x /home/pi/RPi-Jukebox-RFID/scripts/*.sh
Configure mpd:
sudo nano /etc/mpd.conf
Find these options and change to following:
music_directory                "/home/pi/RPi-Jukebox-RFID/shared/audiofolders"
playlist_directory             "/tmp"
user "root"
auto_update "yes" (you have to remove the # in front of that line)
and maybe
mixer_control   "yourAudioIfaceNameHere"
i had to change it to Master, but as it defaults to PCM, it should work for the most without change.
reboot and
mpc update
Regressions
There's no youtube support yet, but i can be added with youtube-dl.
Another thing my test user uncovered is that you can't skip from the first track to the last track of the playlist via "previous track". This behaviour is different than in vlc.

Hi @zxa
thanks for the quick work. I got it to work, but have to start from scratch to write the exact install procedure. There was a mpc update at some point.
On the Raspberry Pi 3 mpd uses 3% CPU power.
VLC uses 15% CPU power, which is 5 times more. Not sure what that means for battery power. But it should make a difference.
What's the difference on your machine?
If we do the switch to mpd I guess that this should be with a version jump to 1.0
I find it difficult at the moment to see a configurable version that supports mpd vlc and mpg123
In my heart though, I would like to have a master branch which does not kill running Phonieboxes on git pull because it will continue to run vlc while it adds the option to switch to an alternative player (requiring the apt-get install and mpd config, of course)
What are your thoughts?

Hi @zxa
one other big advantage of mpd comes to mind: it might be possible to drop running many things as root. Currently this is the case because (from what I remember) the web app required it and there was something about VLC. However, mpd might make it easier to move away from running as root which is a nice feature of Raspian, I admit :)
Then the Phoniebox might extend its reach also to other platforms. Even without the RFID feature, the current web app is a treat and good enough for a standalone?

Hi @MiczFlor

There was a mpc update at some point.

You are right, i forgot about that. There are two ways to solve that:

uncomment the line auto_update "yes" in mpd.conf
or we use absolute pathes in the playlists, but as they have to start with file:// i was to lazy to do that.
I updated my comment above.

On the Raspberry Pi 3 mpd uses 3% CPU power. VLC uses 15% CPU power, which is 5 times more. Not sure what that means for battery power.

I don't know either. On the Zero W the CPU load is approx three times higher. The main difference is that at the beginning of a playlist VLC produces an awfuf stuttering sound for a few seconds maybe because the CPU of the Zero W is at 100% in that time. I tested that on two boxes (pictures coming soon ;-) ).

I find it difficult at the moment to see a configurable version that supports mpd vlc and mpg123

I wouldn't do a mpg123 version. It has the same CPU load on my machine and lacks a lot of features of mpd, especially the codec support. So, in my opinion, we gain nothing with mpg123.
VLC has only one advantage left, the Youtube support (which isn't usable on Zero Ws). mpd can't do that and i would use youtube-dl to retain some kind of Youtube support. Although there seem to be the possibility to stream Youtube via youtube-dl and ffmppeg to mpd, i wouldn't do that as youtube-dl needs up to 10 seconds to start on a Raspberry and i imagine that the needed live converting with ffmpeg will set your Pi in to flames ;-)
Thatswhy i think it's the better way to download the Youtube audio with youtube-dl and have it offline on your pi. Or is there a use case for a Phoniebox where you need a Youtube live stream?
If there's no major show stopper discovered, i would drop vlc in the future. The rc-interface is to limited in my eyes (for example sometimes my test user likes to listen to a song over and over again, and a "single repeat" feature would be nice. There's this command in the rc-interface of vlc, but there is no output if you have enabled it or not. mpd's status output is way more talkative.)

In my heart though, I would like to have a master branch which does not kill running Phonieboxes on git pull because it will continue to run vlc while it adds the option to switch to an alternative player (requiring the apt-get install and mpd config, of course)

I don't know if people read the release notes before upgrades, if they do upgrades at all. Maybe you see more in the traffic graph. Is it possible on Github to set an other branch as the main branch (not "master") from which the readme.md is shown? Then we could retire the master branch and start a new one. But i'm not that into git.

one other big advantage of mpd comes to mind: it might be possible to drop running many things as root.

Maybe. It seem to work well as the user "mpd", only the resume feature is broken then (i guess it's because it requires to delete old playlists, but i want to change this anyway).

Good work. I'll give it a try now on my new RPi3. If I'll get it to work I'll test in on the RPi1B+ too.
I think there can be a feedback in 2 or 3 days.
Because of the Client/Server architecture of mpd there are different Clients for Windows, Linux, Android and Apple. Nice if you want to shut down the childrens phonie from the mobile device...

Hi @Luegengladiator
Which mpd client are you using? Maybe it's something for the documentation if someone wants to use an external client.

Hi @zxa
I'm using gmpc but thats only a personal choice.
There is a wide variety of clients. Please have a look here: https://www.musicpd.org/clients/
MPD is the Server and MPC or GMPC is the client communicating with the Server locally or remote.
Communication is on Port 6600 but to communicate with the Server the Server has to listen on the Network Interface (10..., 192.168..*  or 172.16-32..). NOT on localhost or <IP_ADDRESS>

I did some testing now on the mpd Version and it is BEATUIFUL!
I really like it.
Thanks a lot for that!
At the moment I'm thinking about linking the phonie to my Stereo having RFIDs for the kids and the background Client gmpc on PC Devices and MPDroid on Mobile Devices for parents.
On "audiofolders" I mounted my NAS Music-folder and on "audiofolders/audiobooks" i mounted NAS audiobook-folder. So it's simple to define Parent Playlists with all the Music from the Client and "hard coded" RFID Playlists for the Kids. All running on one RPi 3. To support the subfolders, I did some path-recalculation for the temp m3u. I'll bring it to git if the pull-request #94 is finished.

@zxa
I played around with a special RFID to restart the actual Playing List, not only the actual playing track.
I did it in playout_control with:
playlistreset)
mpc play 1
;;
and linked it at the moment to a special RFID but will link it to a gpio in future.
Do you want to add it to the code?

I am closing this ticket, because of the launch of version 1.0 on master. If you have any issues, please try first if they are still happening on the latest version 1.0. If so, open another ticket, please.

Use this thread for update issues if you are running stretch

The version 1.0 has not been tested on jessie

Read this thread if you are running jessie

Version 1.0 is a major improvement (which will be full of bugs, for sure :) and I want to thank all the contributors and Phoniebox lovers with their input, pictures, bug fixes and suggestions.


Can't create Spark cluster

Cannot create Spark cluster:

About page:

Karaflogs:
karaflogs2016-06-11 11-21-04.txt

@akylbekesenaliev can you attach logs please?

@eabyshev I have

sorry, not noticed my bad, also will be good paste about version of plugin too.

These error appear because for installation you choose node which contains in already created cluster, need to show proper output for that, will fix it.


improvement in About our section

I want to improve  About our section. it will looks more attractive. please assign it to me

I want to work on this issue under GSSoC'23. Please assign me this.


Setup nginx config file for dynamic module building

This sets up a config file so nginx knows how to use this module as a dynamic one.
See https://www.nginx.com/resources/wiki/extending/new_config/
With this change, passing the option
--add-dynamic-module=/path/to/opentelemetry-cpp-contrib/instrumentation/nginx"

to when configuring nginx allows building this plugin as well.

Hi @TomRoSystems @seemk,
Is there anything I can do to help you review this PR?

Hi @TomRoSystems @seemk,
Is there anything I can do to help you review this PR?

Hey, thanks for the ping :) I was away for 2 weeks and just came back today.
With this config file, how are for example OpenTelemetry CPP include paths handled? Are they passed to the nginx config command line?

Yes, the include paths are passed to the nginx config command line.
As an example, you can see my draft PR adding this module to ingress-nginx: https://github.com/kubernetes/ingress-nginx/pull/7621/files#diff-d96b4dbdd33ef5b9f1b1c7ce45ef0a515f55a55f130318c1af397e731a42d232R674

If I understand correctly currently it's looking for the include paths in the system path? So if Otel CPP is installed elsewhere, ngx_module_incs would need to be set in the config file? And the same goes for linking?
Not that it matters much, could very well live with this for now, just trying to understand it :smile:

I'm not really an expert at C compilation. I've adapted this config file from the one in opentracing: https://github.com/opentracing-contrib/nginx-opentracing/blob/master/opentracing/config
I'm happy to add any config that you will think would be better.

In your ingress-nginx PR does it work like this? My hunch is that all the OpenTelemetry libs and libstdc++ would need to be linked to the module at the config file as well: ngx_module_libs="-lstdc++ -libopentelemetry_trace ...".
However OpenTelemetry CPP consists of a huge list of libraries that all need to be linked, all the libabsl_*, libopentelemetry_*.
This was something I had issues with when initially trying to build it via nginx's build system and opted for a CMake build with a workaround (e.g. https://github.com/open-telemetry/opentelemetry-cpp-contrib/blob/main/instrumentation/nginx/src/otel_ngx_module_modules.c) that mimics what the nginx build system does.

I haven't been able to do extensive testing of the feature, and sending data yet. But yes, with the library being built in my ingress-nginx, I am able to build the library, and start nginx with the module configured.

Ok, weird. It might be because of system paths then, let's merge it for now if it helps with ingress-nginx, would love to see it used there. Thanks!


Combo box text unreadable on High Contrast White

Using latest from master

In Environments tool window, it is partially correct.

The hover colors should be white on dark purple on that last screenshot.

Cookiecutter "Next" button is also unreadable.

That screenshot above where the hover color is light blue - that is fixed by restarting VS after changing windows theme.

We need to check, but I don't think high contrast white is required for us - fairly sure I saw somewhere that VS only supports high contrast dark. But I could be wrong?


matchers: add filter state matching input

Commit Message: adding filter state matching input
Additional Description: Adding a matching input of type 'FilterStateInput', that retrieves a specific filter state object by a given key and uses the serialized value as a matching candidate.
Risk Level: low
Testing: unit and integration tests
Docs Changes: matcher_api
Release Notes: none
Platform Specific Features: none

/retest

@ohadvano can you update the PR description with the PR template?

/retest


'Branch/Branch.h' file not found when linking manually (re-opened)

After going through these directions, and installing Branch via Cocoapods, RNBranch.m still can't find Branch/Branch.h
I was able to get everything compiling by putting
#import <Branch-SDK/Branch.h>

...at the top of RNBranch.m, only after updating my HEADER_SEARCH_PATHS for RNBranch.xcodeproj to have $(SRCROOT)/../../../ios/Pods/Branch in it.
...Also while trying to figure this out, I realized this documentation seems inconsistent as it uses branch-react-native-sdk and react-native-branch (two different modules) interchangeably in setting up the SDK (see screenshots).

This was addressed in 1.0.0, released Friday. Closing.

I'm still having issues with this on 2.3.3 - could there be some troubleshooting conclusion as to what to check in the README?

@evanjmg which pod version are you using? Seems like the issue appears with pod version greater than 1.5.3.
I just updated pod to version 1.6.1. and got the issue.


Feedback on Metrics

Hide Hot Rod metrics (reason: not released yet)
Fix missplaced endif
Add largest JGroups thread pool size metric
Add hit and success ratios example to Hot Rod metrics

Thanks @pruivo


Revert "test: remove chromium test"

Reverts LetsStreamIt/bootstrap#26
This pr will be kept open to see when the chromium test will stop having issues.

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

v1.0.9
GitHub release

Your semantic-release bot :package::rocket:


Test refactor: just one prepareExecDir()

As requested by @HappyRay in https://github.com/azkaban/azkaban/pull/1244#issuecomment-326722462.

Thanks for the PR!


Zend forms collections not works with plain elements (like Zend\Form\Element\Text)

Pls check details here https://gist.github.com/alexshelkov/5991065

Resolved in #6263


TypeError: sequence item 3: expected str instance, list found

Description
When starting a new task:
=== Console output:
Executing task 1: Develop a task list.
Exception in thread Thread-2 (run_task):
Traceback (most recent call last):
File "/home/brice/miniconda3/envs/agent/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/home/brice/miniconda3/envs/agent/lib/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/home/brice/Agent-LLM/AgentLLM.py", line 369, in run_task
result = self.run(task=task["task_name"], prompt="execute")
File "/home/brice/Agent-LLM/AgentLLM.py", line 154, in run
formatted_prompt, unformatted_prompt = self.format_prompt(
File "/home/brice/Agent-LLM/AgentLLM.py", line 133, in format_prompt
formatted_prompt = self.custom_format(
File "/home/brice/Agent-LLM/AgentLLM.py", line 106, in custom_format
return re.sub(pattern, replace, string)
File "/home/brice/miniconda3/envs/agent/lib/python3.10/re.py", line 209, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: sequence item 3: expected str instance, list found
INFO:     <IP_ADDRESS>:59044 - "GET /api/agent/Vicuna/task/status HTTP/1.1" 200 OK
Steps to Reproduce the Bug
Ubuntu 22.04
Conda environment with python 3.10
No docker
Launch backend with python app.py
& frontend with yarn run dev
Create a new Agent, Oobabooga, and launch a task
Expected Behavior
No error
Actual Behavior
Exception on console:
Executing task 1: Develop a task list.
Exception in thread Thread-2 (run_task):
Traceback (most recent call last):
File "/home/brice/miniconda3/envs/agent/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/home/brice/miniconda3/envs/agent/lib/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/home/brice/Agent-LLM/AgentLLM.py", line 369, in run_task
result = self.run(task=task["task_name"], prompt="execute")
File "/home/brice/Agent-LLM/AgentLLM.py", line 154, in run
formatted_prompt, unformatted_prompt = self.format_prompt(
File "/home/brice/Agent-LLM/AgentLLM.py", line 133, in format_prompt
formatted_prompt = self.custom_format(
File "/home/brice/Agent-LLM/AgentLLM.py", line 106, in custom_format
return re.sub(pattern, replace, string)
File "/home/brice/miniconda3/envs/agent/lib/python3.10/re.py", line 209, in sub
return _compile(pattern, flags).sub(repl, string, count)
TypeError: sequence item 3: expected str instance, list found
INFO:     <IP_ADDRESS>:59044 - "GET /api/agent/Vicuna/task/status HTTP/1.1" 200 OK
Additional Context / Screenshots
No response
Operating System

[ ] Microsoft Windows
[ ] Apple MacOS
[X] Linux
[ ] Android
[ ] iOS
[ ] Other

Python Version

[ ] Python <= 3.9
[X] Python 3.10
[ ] Python 3.11

Environment Type - Connection

[X] Local
[ ] Remote

Environment Type - Container

[ ] Using Docker
[X] Not Using Docker

Acknowledgements

[X] My issue title is concise, descriptive, and in title casing.
[X] I have searched the existing issues to make sure this bug has not been reported yet.
[X] I am using the latest version of Agent-LLM.
[X] I have provided enough information for the maintainers to reproduce and diagnose the issue.

Please pull latest and try again.


fix _isArrayLike jsdoc now that it is internal

https://github.com/ramda/ramda.github.io/pull/179

:cow2:


Make entity event async

Codecov Report
Attention: Patch coverage is 91.66667% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 89.57%. Comparing base (ec5d62b) to head (0d92727).
Report is 46 commits behind head on devel.

Files
Patch %
Lines

hahomematic/platforms/generic/entity.py
66.66%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##            devel    #1502      +/-   ##
==========================================
- Coverage   90.42%   89.57%   -0.86%
==========================================
  Files          49       49
  Lines        6037     6166     +129
==========================================
+ Hits         5459     5523      +64
- Misses        578      643      +65

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add Spotify Data Card and table of contents

Adds the Spotify Data Card tool to the "Widgets" section and also adds a "Table of Contents" section

Adds the Spotify Data Card tool to the "Widgets" section and also adds a "Table of Contents" section

Thank you my friend for adding tools and editing 🙏💙

yeah, no problem 👌🏽

🙏💙


Add Use Color and Use HDR properties to LightmapGI

Follow-up to https://github.com/godotengine/godot/pull/50572.
Colored lightmaps and HDR lightmaps can be disabled to reduce file size, which is useful for mobile/web platforms.
This closes https://github.com/godotengine/godot/issues/50569 and closes https://github.com/godotengine/godot/issues/50570.
File size comparison in a given 3D scene:

HDR enabled, color enabled (default): 9.80 MB
HDR enabled, color disabled: 3.32 MB (3× smaller)
HDR disabled, color enabled: 902 KB (11× smaller)
HDR disabled, color disabled: 471 KB (21× smaller)

I think this is a misunderstanding of how lightmaps work in Godot 4.0, but may be good to improve the usability on this.

I think this is a misunderstanding of how lightmaps work in Godot 4.0, but may be good to improve the usability on this.

What do you mean by misunderstanding? Changing an image's pixel format will reduce its size on disk. I don't think there's anything more involved :slightly_smiling_face:

Rebased and tested again, it works as expected.

Rebased and tested again, it works as expected. Note that this will benefit from https://github.com/godotengine/godot/pull/93440 when using large lightmaps and Use HDR disabled, as to sidestep the WebP format limitation of 16383×16383 pixels. This will be especially relevant after https://github.com/godotengine/godot/pull/94243.

Some things to consider:
Directional lightmaps will not work with non-hdr formats since the SH coefficients require a storage format that supports negative values,
Grayscale HDR will only affect the size of the exr image, not the imported one,
Non-hdr lightmaps work best for indirect (dynamic) lighting, direct (static) will usually exceed the maximal value.


Display results task fails when "display graph" is false

Documentation says that "display-graph: (optional) (default: true)", but if task is display-results, and if  both display-graph and display-table are set to false, then it causes the following error:
cat: /tmp/eco-ci/output.txt: No such file or directory
Error: Process completed with exit code 1.

Notes:

I'm ruining it on a private runner.
I'm usign green-coding-berlin/eco-ci-energy-estimation@v2

Thank you for the report! I'll take a look at it

Unfortunately I'm not able to reproduce this. Do you have a workflow yaml file you can share that I can take a look at?

@franciscotbjr - are you still experiencing this issue?


Persist grafana dashboards and make them editable

Currently, grafana dashboards are deployed via the dashboard provisioning feature . This is great because the dashboards come pre-loaded with the grafana deployment. The downside, however, is that grafana does not support modifying these dashboards, and persisting the changes (we are also using configmaps, which are read-only).
Ideally, the grafana dashboards can be modified, and the changes persisted to something like a PV+PVC.

One potential solution that just occurred to me is to continue using the provisioning feature to provide the out-of-the-box dashboards, but then document or change the grafana deployment to use a PV/PVC for the grafana data location.
There might be better solutions here though, but I am not super familiar with Grafana internals.

Should be able to mount the dashboards to the PVC, then use an initContainer to drop in the template files and boostrap.


optimize Kabsch algorithm implementation

The way the matrices are used is probably less than ideal as multidimensional arrays in Julia are stored in column-major order.
http://julia.readthedocs.org/en/latest/manual/performance-tips/

Not exactly relevant anymore, i think. Before speed becomes an issue, memory long is:
Two random 10.000.000x3 matrices take up about 1 GB of memory and the calculation takes about 1 s.


Update clowdapp to add migrations

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change
What is it?

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Documentation update
[ ] Tests update

Checklist:

[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] I run go fmt ./... to check that my code is properly formatted
[ ] I run go vet ./... to check that my code is free of common Go style mistakes

Codecov Report

Merging #488 (5db1ea9) into main (bd279e3) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #488   +/-   ##
=======================================
  Coverage   31.01%   31.01%
=======================================
  Files          32       32
  Lines        3224     3224
=======================================
  Hits         1000     1000
  Misses       2130     2130
  Partials       94       94

Continue to review full report at Codecov.

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


build: update to version of neutrino w/ BIP 155 support

Fixes #4973

Weird that the go.sum didn't change....

so there's a bit more that needs to be done: the dialer and nameresolver for neutrino have to change

It looks like the tag v0.14.0 of neutrino isn't for a commit on the master branch...

/facepalm
correcting...

Here's the patch I used to sync neutrino on mainnet w/ bip155 & lnd - everything but the modules changes are relevant: https://github.com/Crypt-iQ/lnd/tree/neutrino_config

Updated: new tag, release notes, the diff above applied.


Fix confusing, wrong wording in doc

Coverage remained the same at 91.647% when pulling 152f220c0f0f8f6a9bf621df9ed346dcb27f7b66 on SuperFluffy:fix_argroup_doc into d29d7cc0e2b5e2cf52f2dd337bb42b605580a448 on kbknapp:master.

Coverage remained the same at 91.647% when pulling 152f220c0f0f8f6a9bf621df9ed346dcb27f7b66 on SuperFluffy:fix_argroup_doc into d29d7cc0e2b5e2cf52f2dd337bb42b605580a448 on kbknapp:master.

Coverage remained the same at 91.647% when pulling 152f220c0f0f8f6a9bf621df9ed346dcb27f7b66 on SuperFluffy:fix_argroup_doc into d29d7cc0e2b5e2cf52f2dd337bb42b605580a448 on kbknapp:master.

Thank you! @homu r+

:pushpin: Commit 152f220 has been approved by kbknapp

Sorry for the long wait, I'd been traveling for work :wink:

:hourglass: Testing commit 152f220 with merge 2600a60...


Outdated cask: aseprite

Outdated cask: aseprite.
Info:

version: 1.1.6.
appcast url: https://github.com/aseprite/aseprite/releases.atom.

Sorry, was messing with find_outdated_appcasts and didn't realise it would create untagged issues.


sort diagrams alphanumerically in report

Summary:
This provides alphanumeric sorting for the diagrams in the report, to allow some ordering in priority
Description for the changelog:
sort diagrams alphanumerically in report
Other info:
closes #696

particularly ugly code also throws a Vue warning: [Vue warn]: You may have an infinite update loop in a component render function.
                v-for="(diagram, idx) in model.detail.diagrams.sort((a, b) => {
                        if (a.title < b.title) return -1;
                        if (a.title > b.title) return 1;
                        return 0;
                    })"


Gregtech argon gas

If I traing move gregtech argon gas throught mechanical pipe game crash and world is corrupted.
Using Mek v9 and gregtech 6.03.03.
crash-2016-06-28_17.22.41-client.txt

Fixed in development.


Fixes GetCurrentMonitor() detection inconsistency issue

Changes the GetCurrentMonitor() to use glfwGetMonitorPos() (R1839) and glfwGetVideoMode() (R1840-R1844) instead of glfwGetMonitorWorkarea() (L1842) for non-fullscreen monitor detection on PLATFORM_DESKTOP.
Fixes https://github.com/raysan5/raylib/issues/3213.
Edit: added line marks.

@ubkp Very nice! Thanks for the review!


Added a new concordance pipeline SOMALIER to compare tumor and normal samples

The new outputs added to the gathered version of the CWL should also be passed as inputs to the gather step to ensure they are also collected.

Can we get a second review/+1 on this PR, please?  Thanks!


"Bug fix" in Shapely 2.0.2 causes enormous slowdown in checking for equality of geometric objects

Expected behavior and actual behavior.
The "bug fix" in Shapely 2.0.2:
"Fix regression in the (in)equality comparison (geom1 == geom2) using __eq__ to not ignore the z-coordinates (#1732)."
significantly slowed down the process for checking equality of geometric objects.  I have a function that (as part of a much larger function) tests a simple LineString for inclusion in a long list of LineStrings, all of which are simple line segments between two points.  (I'm deliberately avoiding geometric intersection because that caused some other problems with a GEOS bug in rare cases.)  So it has to perform this equality test a very large number of times, and the new behavior is slowing down this function by orders of magnitude and rendering it unusable.
Steps to reproduce the problem.
The following code runs in 0.26 seconds in Shapely 2.0.1 and takes 44.08 seconds in Shapely 2.0.2:
from shapely import LineString
import time
import random

long_linestring_list = []
for i in range(1000):
    a1 = random.random()
    b1 = random.random()
    a2 = random.random()
    b2 = random.random()
    long_linestring_list.append(LineString([(a1, b1), (a2, b2)]))

small_linestring_list = []
for i in range(100):
    a1 = random.random()
    b1 = random.random()
    a2 = random.random()
    b2 = random.random()
    small_linestring_list.append(LineString([(a1, b1), (a2, b2)]))

start = time.time()
for i in range(10):
    test = [segment for segment in small_linestring_list if (segment in long_linestring_list or shapely.reverse(segment) in long_linestring_list)]
end = time.time()

print(end - start)

Operating system
Mac OSX 10.15.5
Shapely version and provenance
Shapely 2.0.2 installed from pypi

Thanks @jnclelland for your report.
Tagging @jorisvandenbossche as maybe he has some idea how to optimize this?

One of the reasons could be that np.array_equal() is well optimized for large arrays but quite inefficient for very small arrays. For arrays of 2 or 3 elements, it is usually much faster to simply compare the coordinates directly with tuple equality or list equality. I forked the repo but I don't find a way to set it up correctly to test the fastest solution. Is there a documentation on this? :)

Slightly adapted version (without the reverse call and tqdm):

from shapely.geometry import LineString
import time
import random

long_linestring_list = []
for i in range(1000):
    a1 = random.random()
    b1 = random.random()
    a2 = random.random()
    b2 = random.random()
    long_linestring_list.append(LineString([(a1, b1), (a2, b2)]))

small_linestring_list = []
for i in range(100):
    a1 = random.random()
    b1 = random.random()
    a2 = random.random()
    b2 = random.random()
    small_linestring_list.append(LineString([(a1, b1), (a2, b2)]))

start = time.time()
for i in range(10):
    test = [segment for segment in small_linestring_list if segment in long_linestring_list]
end = time.time()

print(end - start)

You are right that this is definitly a performance regression in shapely 2.0.2 (although a somewhat anticipated one, given the implementation is now in Python instead of done by GEOS in C, but I didn't expect such a large difference).
But one thing to note is that it is only a regression compared to shapely 2.0, and not so much compared to shapely 1.8 or earlier. Running the above snippet gives me 17.5s on shapely 1.8, 0.15s on shapely 2.0.1 and 24s on shapely 2.0.2 (so still a slowdown compared to 1.8, but not as dramatic, and of course, one of the highlights of the 2.0 release was its better performance).
One way to speed this up with shapely 2.0.2 is to use the shapely function that exposes the same functionality as what was used under the hood before in 2.0.1, i.e. the equals_exact function.
If you replace segment in long_linestring_list with shapely.equals_exact(segment, long_linestring_list).any() (which I think should be equivalent?), the runtime on shapely 2.0.2 goes back from 24s to 1s for me (still not as fast as the 0.15s from shapely 2.0.1, but much closer).
Pasting here for completeness (with the same setup of variables):
start = time.time()
for i in range(10):
    test = [segment for segment in small_linestring_list if shapely.equals_exact(segment, long_linestring_list).any()]
end = time.time()
print(end - start)

You could also further make this faster by using array idioms entirely (instead of the for loop), something like:
small_linestring_list = np.array(small_linestring_list)
long_linestring_list = np.array(long_linestring_list)
test = small_linestring_list[shapely.equals_exact(small_linestring_list, long_linestring_list[:, None]).any(axis=0)]

One of the reasons could be that np.array_equal() is well optimized for large arrays but quite inefficient for very small arrays.

That's a good point, and will certainly contribute to it (in general numpy array operations are almost always slower for tiny arrays because of the overhead). Now, I did a very quick profile on the example above, and it seems that array_equal still only accounts for around 22% of the total runtime. More time is spent in getting the actual coordinates and has_z. So while we could speed up the array_equal part for smaller arrays, it wouldn't bring as back close to the timing of 2.0.1.

On the longer term, I think this will be fixed by https://github.com/shapely/shapely/pull/1760, which is pushing this logic back from Python into C (but now with the correct semantics for the Z coordinate).

I forked the repo but I don't find a way to set it up correctly to test the fastest solution. Is there a documentation on this? :)

@Eskapp our contributing guidelines are a bit lacking, sorry for that! The install guide (https://shapely.readthedocs.io/en/stable/installation.html) has some content on building it for development.

FWIW, I tested this with the branch of https://github.com/shapely/shapely/pull/1760, and that brings the timing back on par with shapely2.0.1 (around 0.2s, so just a tiny bit slower)
I was also thinking that we could easily optimize the current implementation of shapely 2.0.2 by adding a shortcut check for the number of coordinates, before actually getting the coordinates and comparing them. In many practical cases that should help, although that would still not help for the specific example in this issue given that this uses all linestrings of the same length.


Poor Choice for Adaptive Cards Overview video

The Adaptive Cards Overview video (first one listed) is a very poor choice for this document its more of a sales and marketing type of video.  Thankfully the article itself more accurately overviews what adaptive cards are because the video does a poor job of this.  I mention this only because TOO often videos listed as being an over view of or basic description of are mostly buzz words and industry hype you'd see in a sales and or marketing video then something useful for someone trying to find out what the thing actually is and not how its going to be the next digital savior if I buy it.

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

ID: 87d1e8a9-5bad-9e08-a895-ad222e72d4dd
Version Independent ID: 96e622ee-eea0-c487-e453-e1aad2cda1dd
Content: Adaptive Cards Overview - Adaptive Cards
Content Source: AdaptiveCards/index.md
Product: adaptive-cards
GitHub Login: @matthidinger
Microsoft Alias: mahiding

Thank you taking the time to provide this feedback @edcarden. We debated this a bit internally and realized it's hard to find the ideal placement for it. Many folks visiting the site don't know exactly which scenarios adaptive cards were meant to address, so we thought the Overview page was the most reasonable place. We don't really have a separate "technical overview" vs "marketing overview" section today, but as we evaluate our docs over the year we'll definitely trying to make this cleaner.


It is possible to change the domain xip.io in order to avoid DNS problems?

Hi,
I would like to know if it is possible to change the domain xip.io in order to avoid problems with some domains?
Many thanks in advance.
Juan Antonio

You can use NISE_DOMAIN to specify the domain name. See README for the detail.


Improve 'BackMyStack' first dispatch.

Currently in our first dispatch, we're repeating the process of fetching recommended collectives on opencollective api by calling the backing.json api endpoint again.
We already have the recommended collectives for first dispatch we shouldn't call that endpoint to reanalyze and fetch them again as this takes significant amount of time leading to intermittent failure with dispatch.

Let's forget about this solution.
I recommend to address the root issue and to stop trying to do the dispatch synchronously.
When redirected to BackYourStack:

we can display a simple confirmation message without the details. say that the dispatch will be happening and they will get a confirmation email
the dispatch GraphQL mutation should just answer "ok", and process the dispatch in the background (this behavior can be turned on with an option asynchronous/synchronous)
the dispatch process should send a confirmation email to the admins of the donating collective, this should contain the details that where earlier in the confirmation screen.


Allow downgrade prevention on Windows platform

The install actions for the Windows platform will now only execute if
the download was executed. This mirrors the behavior of the non-Windows
platforms.
Fixes https://github.com/chef-cookbooks/omnibus_updater/issues/137

Retry the CI job perhaps? It looks like it was an unrelated failure before it even got to the Rake tasks:

/opt/chefdk/embedded/bin/chef: No such file or directory

This issue has been solved in the new chef_client_updater cookbook. I'm going to close this issue out here since we've deprecated this cookbook in favor of the new method. We believe it provides a much better experience and encourage everyone to try it out.