gnome3.gnome-music: 3.38.1 -> 3.38.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for gnome3.gnome-music is: "Music player and management application for the GNOME desktop environment"
meta.homepage for gnome3.gnome-music is: "https://wiki.gnome.org/Apps/Music"
meta.changelog for gnome3.gnome-music is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 3.38.2 with grep in /nix/store/gn1kxdx3cgwaa7b0wl2wb39m2b18z7iq-gnome-music-3.38.2

directory tree listing: https://gist.github.com/50952f7561a5358e775be8771f424d96

du listing: https://gist.github.com/f17ef23834e3441fad2757140735ad04

Rebuild report (if merged into master) (click to expand)

3 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
1 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
1 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
gnome3.gnome-music

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/gn1kxdx3cgwaa7b0wl2wb39m2b18z7iq-gnome-music-3.38.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A gnome3.gnome-music https://github.com/r-ryantm/nixpkgs/archive/ac78093668e85d4ff284020698861e36828bf4ef.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/gn1kxdx3cgwaa7b0wl2wb39m2b18z7iq-gnome-music-3.38.2
ls -la /nix/store/gn1kxdx3cgwaa7b0wl2wb39m2b18z7iq-gnome-music-3.38.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review 1

1 package built:

gnome3.gnome-music

Maintainer pings
cc @hedning @jtojnar @worldofpeace @dasj19 for testing.

Cnanges look okay

Overview of changes in 3.38.2
Bugs fixed:
Do not make display an empty view on launch
Fix new songs retrieval when they are added to the music directory (#422)
Fix artist queries to retrieve art
Fix playlist sorting crash (#417)
Wrong checkbox style in AlbumWidget (#414)
Thanks to our contributors this release:
Jean Felder
Marinus Schraal
Updated translations:
Chinese (Taiwan)


New card details interaction

You did it @vivekkamineni2018!
Thank you for signing the Anthem Opensource Software CLA.


BUG Fix invalid locale being set for domain mode

Fixes #419
Merge up to 4.1 and so on after merge.

Need to target 4.0 branch in order to merge up to 4.1?

Re-target at 4.0 branch if needed before merge

oh oops.

Fixed.

@tractorcow I'll merge up now


cmd/vet: check for time formats with 2006-02-01

yyyy-dd-mm is a time format that isn't really used anywhere [1]. It is much more likely that the user intended to use
yyyy-mm-dd instead and made a mistake. This happens quite often [2] because of the unusual way to handle time formatting and parsing in Go. Since the mistake is Go specific and happens so often a vet check will be useful.
See: https://github.com/golang/tools/pull/342

https://stackoverflow.com/questions/2254014/are-there-locales-or-common-programs-that-use-yyyy-dd-mm-as-the-date-format
https://github.com/search?l=&p=1&q="2006-02-01"+language%3AGo&type=Code

I don't think "isn't really used" meets the precision bar for vet
Looking over the instances where they show up, there seem to be valid uses in there, especially wrt to tests

We would need some evidence of frequency to put this in. Is there any?

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

There is a lots of projects on Github with this issue: https://github.com/search?l=GO&q="2006-02-01"+language%3AGo&type=Code
Even bigger projects have or had bad code:

https://github.com/couchbase/go-couchbase/blob/118e3f09dbf08c7310d6bc1a5cfe5e6f8a0e3c32/populate/populate.go#L18
https://github.com/gobuffalo/buffalo/blob/20f545e952c31f65eadf7a4833388ed2eaa37589/binding/decoders/time_test.go#L55-L56
https://github.com/juju/juju/commit/f992f35c22c23a5dc043bcd3beae552e3912e058

The buffalo link is a test and specifically follows the 2006-02-01 line checking that 2017-01-10 is parsed as October 1st. The couchbase code looks to be code that generates database entries, and I wouldn't be surprised if it's deliberately choosing the US date format. Some other code in the first page of that search is explicitly using US format:
https://github.com/jserranojunior/learning-golang/blob/0503e6c60367225fc4b1218123b121bfce063441/Projects/ConvertDates/ConvertDate.go#L27
I've in the past run into YYYY-DD-MM and MM-DD-YYYY when dealing with government forms (which was highly confusing, personally).
I think this might be a good signal some of time, but would have false positives. I also feel that anybody that knows the 2006, 01, and 02 numbers also knows the documentation mentioning that 01 is the month and 02 is the day (or, if they're like me, the person looks up what 01 and 02 refer to every time they need to format a time in Go). I'd bet that more often than not, the choice of 02 and 01 is deliberate. If anything, this feels like a check more suited for a linter that an org / teams could opt into, rather than a default check that cannot be opted out of.

I tried to make sense of the document but Google Translate doesn't really help. The specific section is:
Құжаттың күні араб санымен мынадай дәйектілікпен: жыл, айдың күні, ай. Айдың күні мен ай жұп араб санымен
нүкте арқылы бөлініп, жыл төрт араб санымен ресімделеді.

Which translates to:
The date of the document is in Arabic numerals in the following order: year, day of the month, month. The day of
the month and the month are separated by a pair of Arabic numerals, and the year is represented by four Arabic
numerals.

But since the author(s) on Wikipedia specifically use . as delimiter I don't think this format is relevant to this proposal.

No change in consensus, so accepted. 🎉
This issue now tracks the work of implementing the proposal.
— rsc for the proposal review group

That is great to hear. I already suggested an implementation here: https://go-review.googlesource.com/c/tools/+/354010 (and here: https://github.com/golang/tools/pull/342)

There is a little chance of false positive in places that had to provide compatibility with such erroneous format.
For example, we can find such in LLVM code, in some weird Apache tests and other places.
Adding this to go vet is unfortunate, IMO this should be implemented as linter that at least supports suppression.

@ernado As seen above there is Go code that erroneously uses this format, so the vet check is useful.  Your examples are not Go code, so it's hard to know how significant those cases are.  It will be possible to avoid the vet check by using a variable rather than a constant.

Agree, thank you.

The LLVM code says yyyy-dd-mm in the comment but has $year, $month, $day, in the code.

If "2006-01-02" is worthy of a vet check, is it also worthy of a constant? Maybe time.RFC3339Date?

I'm not sure, none of the other formats have separate constants for the datetime and just the date.

I'm not sure, none of the other formats have separate constants for the datetime and just the date.

Indeed, but they also don't have a vet check.

If "2006-01-02" is worthy of a vet check, is it also worthy of a constant? Maybe time.RFC3339Date, time.ISO8601Date or just time.ISODate?

Seems like this is going to happen: https://github.com/golang/go/issues/52746

Should this be closed given https://go.dev/cl/354010 is merged?

CL 354010 adds the timeformat analysis pass, but it's not part of cmd/vet yet.


Grant request: Polkadot-js extension account visibility management enhancement - authorization per account and per website

Project Abstract
In response to the RFP: https://github.com/w3f/Grants-Program/blob/master/rfps/privacy-enhancement-polkadot-extension.md This is a grant request to enhance Polkadot-js extension's user privacy by letting them select what account should be shared with what website, instead of granting access to any visible account.
For which grant level are you applying?

[x] Level 1:  Up to $10,000, 2 approvals
[ ] Level 2:  Up to $50,000, 3 approvals
[ ] Level 3:  Unlimited, 5 approvals (for > $100k Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied, renamed ( project_name.md) and updated.
[x] A BTC or Ethereum (DAI/USDT) address for the payment of the milestones is provided inside the application.
[x] I have read and acknowledged the terms and conditions.
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted.

How Did You Hear About our grants program?

[ ] Social Media
[ ] Hackathon
[x] Personal Recommendation
[ ] Substrate Builders Program
[ ] Investor/VC
[ ] Online Search
[x] Other: this Github repo

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@Tbaut thanks for applying for this grant. Just for reference: https://github.com/polkadot-js/extension/issues/1037#issuecomment-1084283229

Oops, sorry I missed the fact that it was a mandatory. I will just follow what is the standard here in terms of licence, testing, and will make sure to write an article about my work.

Sorry again for not checking this. Should be good now.


⚠ Cioos Pacific CKAN has degraded performance

In e61e63e, Cioos Pacific CKAN (https://catalogue.cioospacific.ca) experienced degraded performance:

HTTP code: 200
Response time: 11990 ms

Resolved: Cioos Pacific CKAN performance has improved in 8012f24 after 5 minutes.


Smarter error messages for JSX accidentally put outside a JSX expression

Search Terms
TS2657 TS2695 TS2304 JSX map label:"Domain: JSX/TSX"
Suggestion
TS should emit clearer error messages for invalid JSX caused by the case where a developer expected code to be in a JSX expression context but instead it's evaluated in a non-JSX context (regular code).  A signpost for these kinds of issues is that the compiler errors go away if the offending code is wrapped in a Fragment.
Use Cases
TS emits a helpful error message ([ts] JSX expressions must have one parent element. [2657]) when a simple JSX expression has two sibling elements without a single parent element or fragment.  But this only works if your code successfully emits multiple JSX elements. If you're combining JSX and text e.g. <Foo>{bar} then the helpful error message is not shown.
These kinds of errors are easy to solve in simple JSX but can be really challenging to spot when the offending code is in the middle of complex TS code, because it's not obvious that the problem is JSX-related instead of "something in my TS code is broken".
The root cause is a misunderstanding between the developer (who's assuming code to be in a JSX expression context) and the compiler (which knows that the code is NOT in a JSX expression context.
From the developer's point of view, the fix for these problems is simple: wrap the offending TS code in a Fragment or another element. This gave me an idea for how TS could perhaps show smarter error messages. Could the TS compiler recognize cases where the following two conditions are true?

the developer may have expected code to be evaluated as a JSX expression, e.g. the code is inside a JSX element, or the code has a JSX element as a sibling.
the compiler errors go away if the code is treated as a JSX expression instead of as regular TS code

If so, then the TS compiler could show an error message (e.g. "JSX expressions must be wrapped in a fragment or JSX element") at the start or end of the offending code. Even if there are false positives-- e.g. legitimate code bugs inside a {code} block inside some JSX-- it's probably better to give devs multiple possible reasons for a compiler error than to omit a likely reason.
For example, here's two patterns I've run across recently:

Pattern A: An inline function is defined inside a JSX element (or fragment) AND and there's a compiler error in that code AND the errors go away if the function's body were wrapped in a fragment. Examples:

    Test #1: GOOD
    <>
      {data.map((str: string, i: number) => (
        {str} // no error
      ))}
    </>

    Test #2: GOOD
    <>{data.map((str: string, i: number) => (
        <>{i}: {str}</> // no error
      ))}
    </>

    Test #3: BAD
    <>
      {data.map((str: string, i: number) => (
        {i}: {str} // errors: [ts] ')' expected. [1005]; [ts] Cannot find name 'str'. [2304]
      ))}
    </>

Pattern B: A JSX element (wrapped in < and >) is immediately preceded and/or immediately followed by non-JSX code that generates a compiler error AND the code would not throw a compiler error if it were wrapped in a Fragment.

    Test #4: GOOD
    <>
      {data.map((str: string, i: number) => (
        {i}+": "+{str}+"\n" // no error
      ))}
    </>

    Test #5: GOOD
    <>
      {data.map((str: string, i: number) => (

<>{i}+": "+{str}+"\n"</> // error on
: [ts] Left side of comma operator is unused and has no side effects. [2695]
      )) // Good error here: [ts] JSX expressions must have one parent element. [2657]
      }
    </>

    Test #6: BAD
    <>
      {data.map((str: string, i: number) => (

{i}+": "+{str}+"\n" // errors: [ts] Cannot find name 'i'. [2304]; [ts] Cannot find name 'str'. [2304]
      )) // error (on second parenthesis): [ts] '}' expected. [1005]
      }
    </>

Examples
Here's the full example from above.
const repro = () => {

  const simpleJSX = (

hi
  // confusing error here: [ts] Left side of comma operator is unused and has no side effects. [2695]

bye

  ); // Good error here: [ts] JSX expressions must have one parent element. [2657]

  const data = ['a', 'b', 'c'];
  return (
  <>
    Test #1: GOOD
    <>
      {data.map((str: string, i: number) => (
        {str} // no error
      ))}
    </>

    Test #2: GOOD
    <>{data.map((str: string, i: number) => (
        <>{i}: {str}</> // no error
      ))}
    </>

    Test #3: BAD
    <>
      {data.map((str: string, i: number) => (
        {i}: {str} // errors: [ts] ')' expected. [1005]; [ts] Cannot find name 'str'. [2304]
      ))}
    </>

    Test #4: GOOD
    <>
      {data.map((str: string, i: number) => (
        {i}+": "+{str}+"\n" // no error
      ))}
    </>

    Test #5: GOOD
    <>
      {data.map((str: string, i: number) => (

<>{i}+": "+{str}+"\n"</> // error on
: [ts] Left side of comma operator is unused and has no side effects. [2695]
      )) // Good error here: [ts] JSX expressions must have one parent element. [2657]
      }
    </>

    Test #6: BAD
    <>
      {data.map((str: string, i: number) => (

{i}+": "+{str}+"\n" // errors: [ts] Cannot find name 'i'. [2304]; [ts] Cannot find name 'str'. [2304]
      )) // error (on second parenthesis): [ts] '}' expected. [1005]
      }
    </>

  </>
)};

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
(because it only applies to code that already has a compiler error)

[x] This wouldn't change the runtime behavior of existing JavaScript code

[x] This could be implemented without emitting different JS based on the types of the expressions

[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)

[x] This feature would agree with the rest of TypeScript's Design Goals.

For reference, here's the place in the compiler's parsing code that the "good" message TS2657 is generated: https://github.com/Microsoft/TypeScript/blob/d79c37cd191a5d10ad678f2a1379c6267e914bf2/src/compiler/parser.ts#L4020

This is a very good suggestion, and @justingrant explains very well the mismatch between the compiler's understanding and my own.
I ended up here after being confused for the nth time by TS2695: Left side of comma operator is unused and has no side effects. But there is no comma within a mile of the offending fragment. Worse than simply not explaining the problem properly, TS2695 sends the user on a wild goose chase in this scenario.
Javascript currently gives the following error for the same scenario, which couldn't be clearer:
Parsing error: Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?

Note that this is not limited to JSX elements.
Given the following code fragment:
//  is_someting_happening is my attempt to create a joystick "event" when "something interesting" happens.
//  "someting interesting" = any joystick movement if either enabling trigger is pressed
//  or, if a previously pressed trigger has been released.
//  Otherwise, no data should be sent.

function is_something_happening(gopigo3_joystick) {
    if (gopigo3_joystick.trigger_1 == 1 || gopigo3_joystick.head_enable == 1) {  //  Has an enabling trigger event happened?
        if (old_time_stamp != Number.parseFloat((gopigo3_joystick.time_stamp).toFixed())) {  // and, has the timestamp changed?
            send_data(gopigo3_joystick)  //  then, send data to the robot and. . .
            old_time_stamp = Number.parseFloat((gopigo3_joystick.time_stamp).toFixed())  //  Save current time_stamp to compare to future changes
            old_trigger_state = 1  // record trigger was pressed
        }
    }
    else if (old_trigger_state == 1) {  // current trigger value MUST be zero here - old_trigger_state = 1 means a trigger has changed
        send_data(gopigo3_joystick)  // send the trigger release event
        old_time_stamp = gopigo3_joystick.time_stamp  //  Save current time_stamp to compare to future changes
        old_trigger_state = 0  // record the fact that the trigger was released
    }
    return(old_time_stamp, old_trigger_state);
}

Generates this error in Visual Studio Code:
 "Left side of comma operator is unused and has no side effects.
Note that the expression return(old_time_stamp, old_trigger_state); is actually wrong as JavaScript cannot return multiple discrete values from a function, (which I did not know until this happened), however the error message is less than clear and does not indicate to me the exact nature of the mistake; that is, trying to return multiple values from a JavaScript function call.
I suspect that this particular case falls outside the JSX element case defined by the original post, but it appears to be captured by the same logic which is confusing.  If the suggested "parsing error" error message is implemented, (Adjacent JSX elements must be wrapped in an enclosing tag), it would be even less clear than it is now.
Thanks!


LLama backend is broken

LocalAI version:
latest-aio-gpu-nvidia-cuda-12
Environment, CPU architecture, OS, and Version:
$ uname -a
Linux server 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux

$ lsmod | grep nvidia
nvidia_uvm           1540096  0
nvidia_drm             77824  0
drm_kms_helper        208896  1 nvidia_drm
nvidia_modeset       1314816  2 nvidia_drm
video                  65536  1 nvidia_modeset
nvidia              56778752  19
nvidia_uvm,nvidia_modeset                  drm
614400  4 drm_kms_helper,nvidia,nvidia_drm

docker-compose.yml
Describe the bug

All models with llama.cpp as the backend just don't work
To Reproduce

Replicate my setup
Chat with pre-installed llava from the webui
See nothing in the webui
See weird stuff in logs

Expected behavior

I should've received a response
Logs

Here's localai running from start to finish (with me running llava from webui)
localai-log.txt
Additional context

I have wiped /models and ran localai once before recording the log
From what I see, the model successfully loads in llama.cpp, but localai doesn't recognize this and tryes to use a bunch of other backend, untimately arriving at stablediffusion

Any updates?


installation

Hi! Thank you very much for making this open-source!
I tried installing the package using multiple ways (Option 1 in INSTALL.md: ./install.sh, option 3 in INSTALL.md, and make all) but I still get: -bash: deduplication: command not found.
Option 1 was mostly successful with the exception of the installation of mkl-ftt. make all failed with the following error:
which: no activate in (/home/arjung2/.conda/envs/fast_near_duplicate_img_src_py3/bin:/opt/apps/swsuite/bin:/usr/local/cuda-10.1/bin:/opt/apps/openmpi-4.0.0-gcc-4.8.5/bin:/usr/local/cuda/bin:/usr/lib64/qt-3.3/bin:/opt/apps/anaconda3/condabin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/ibutils/bin:/home/arjung2/.local/bin:/home/arjung2/bin)
echo

source  && conda env create -f environment.yml && conda deactivate
/bin/bash: line 0: source: filename argument required
source: usage: source filename [arguments]
make: *** [setup] Error 2

Any ideas? Thank you once again for making this work open-source!

Hi, @arjung128 in which operating system are you installing the library? Linux MacOS?

Hi, I am also having this problem using pip installation. I am on Ubuntu 19.10.
here is an issue about it on mkl-fft from 2018

@arjung128 and @voidcase The procedures now should work. I removed the dependency with mkl-ftt, and I moved from Anaconda to Virtualenv. The INSTALL.md has been updated.

@voidcase let me know if it works so I can close the issue. Thanks!

@umbertogriffo installation seems to work fine now, thanks :)


Dereference related objects to fix #85

(see also http://docs.mongoengine.org/guide/querying.html#getting-related-data)

Codecov Report

Merging #86 into fix-72 will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           fix-72      #86   +/-   ##
=======================================
  Coverage   61.36%   61.36%
=======================================
  Files          72       72
  Lines        2200     2200
  Branches      173      173
=======================================
  Hits         1350     1350
  Misses        811      811
  Partials       39       39

Impacted Files
Coverage Δ

mass_flask_core/utils/graph_functions.py
100% <100%> (ø)
:arrow_up:

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 b043693...623cae0. Read the comment docs.

Should be closed with #97


Navigation

I forward the guide to create the map and load the map
I don't know why i open the rviz will got the follow result and cannot control the robotis

Make the map screen

Load the map screen

Hi :)
The map you created is too small to drive TB3.
I recommend you would check it chapter 11.7.1 Costmap in ROS Robot Programming
Best regards
Darby

@routiful
When i run the navigation sample, if the map is small will trigger the map rotation problem?

Hi :)
Sorry for late reply.
The map rotation problem is caused by failed localization.
You can solve it by making bigger map

@routiful
I made the map to double size still have the rotation problem.
What is the size you prefer for the map?

@routiful
Still not work
How can i send you the video ?

@mathgameapi
Would you like to upload capture you worked?
If you want to send your video, upload your video on youtube and tell me link.

@kijongGil
Video 1 :http://megashare.megahd.com.br/47e605e1c6204e39ae253837f04e2cb7
Video 2 :
http://megashare.megahd.com.br/04666f9d560ed49cf5b23615416093c2
http://megashare.megahd.com.br/2fc3558b70605755c67e7fc050fdedfe
http://megashare.megahd.com.br/750a1aa57765b3d6069c1b60194f372a
http://megashare.megahd.com.br/9ae81fb1d1acdde365b1d43f04890573

I can't watch your video 2, It can't extract.
Your map looks troubled in video 1.
please remake a map with slam package. Then, place the TB3 in the same position when you start slam and navigation.
If the problem isn't solved, show me the error messages in your terminal.

@kijongGil

Could you move the TB3 out of the area surrounded by red lines?
Because the meaning of the red line is the area where robots can not go. But, your TB3 is located in this area.

I'm going to close this until you update the issue with more information. If you do so I'll reopen the issue. Also, you can reopen this issue to show this issue to the users whenever. Thanks. :)


ZF 3.0.0 Compatibility

I've started to modernize all modules required by Apigility to support newer versions of ZF components.
API Problem is second one in the series.
Other PRs:

api-problem

build still failing

@AGmakonts — If you can get to the changes I suggested tonight, awesome; if not, I'll tackle them in the morning.
Thanks!

@weierophinney not sure if that's sill urgent for you but I'll try to fix all the issues this evening (UTC+2) ;]

@AGmakonts I can start work on this immediately, so carry on with other stuff. :smile:

Closing, as the commits in this are now incorporated in #145, which completes the feature.
Thanks for getting the ball rolling, @AGmakonts !


Issues/59 - Graph shows multiple oldest nodes on auto refresh

Changed graph node options to reset to the previous node properties on node state reset.

Hey @kpasagada! Just testing out your PR. Looks good and works well when I don't touch the graph, but I am observing some odd behavior from the graph when it is autorefreshing after I try to move the graph (see gif below)

I assume it has to do with recreating the graph with each update since the useEffect will run everytime the cluster is updated. Maybe we can trick the graph by passing leader and oldest into the graph as references stored in useRef and only update those references?
If it's not important enough to hold up the PR, just let me know. Thanks!

@augustinevt Good observation! The re-render has been happening since Zac removed the graph variable from redux state https://github.com/Headstorm/shukra/pull/72 (This was Hop's suggestion since we didn't want to store derived values in redux state). Your solution will help update leader and oldest nodes, but I believe will not solve the re-renders. Ideally, we will have to stop unnecessary re-renders when the graph data is the same. Let me see if I can find a solution for this, else we will merge the PR and look for a solution at a later point.


[docs] 🚑 Fix broken link

[x] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

I have simply updated the link as

Those files are private and subject to change
Want to limit the documentation on the file structure

@wcandillon Thanks


Set contact_gallery to false for auction (ask specialist) inquiries

Problem
Currently for inquiries on artworks during an auction, we show ask specialist button. Ask specialist inquiries are the ones that don't go to partners and are going to Artsy specialist staff. For that to work, the inquiry post request should set contact_gallery to false otherwise API will treat them as a normal Contact Gallery inquiry. Currently contact_gallery is true for Auction Inquiries.
(possible) Solution
I've modified apps/artwork/lib/inquire.coffee to get a contact_gallery parameter which by default is true. Then this method will use that parameter to set contact_gallery on ArtworkInquiry.
Then I modified all the places that we render inquiry.jade to pass ContactGallery using the inquiry's contact_gallery.
In components/simple_contact/templates/forms/inquiry.jade I added a new hidden field to the form which will be part of submitted form which makes sure we use proper contact_gallery value.
In apps/artwork/components/auction/view.coffee when calling inquire method we also pass false for contact_gallery to make sure it's properly set on inquiry.
cc: @broskoski @starsirius

          1 Warning

  :warning:
  Please assign someone to your PR

  Generated by :no_entry_sign: danger

Thanks for taking care of this, @ashkan18! Given that the inquiry flow is somewhat complicated (also with A/B testing, etc) and this change could potentially touch multiple places, it would be great if we could pair with @mzikherman or someone on the gmv team at some point and walk through the flow.

Closing this after talking to @broskoski , we are going with different approach where we update steps and test-steps to go to specialists if partner is an Auction partner.

Thanks @ashkan18 for taking care of this and @broskoski for providing help! 🙇


Check how dock pane border should be improved in VS2013 themes

Dock pane strips and captions have borders drawn with colors, so the main dock pane areas should also have its left and right borders drawn with preset colors.

A related patch is
https://github.com/shintadono/dockpanelsuite/commit/b1ccc75b3459a8c0747f874a9ab18625ebae3979

Another related patch https://github.com/armano2/dockpanelsuite/commit/0be68e575658918e6fad663ddbafd42a5886a5d9

The top/bottom bars in sample project should be part of dock panel borders, and such empty spaces should also be added to left/right sides. Of course, when auto hide strip appears, it should be moved inside. This explains why when the auto hide window appears the strip becomes narrower, as that's actually the border being hidden by the popped out window.

[ ] Remove top/bottom bars
[ ] Revise dock pane content rectangle to leave enough borders (6 pixels thin) on the sides
[ ] Shrink auto hide strip size to match the above changes.


ci: build extension for duckdb v1.1.0

This would address #10.
All we would need is a built distribution of this extension for the latest DuckDB version.

thanks for the PR, ive just opened and merged one which also bumps the submodules https://github.com/duckdb/uc_catalog/pull/12


[STRI 6] Malicious turret can block controlled account healing

What version are you using?
0.0.0
Scenario
Request an honest turret to remove a malicious one from the set of trusted signers fails.
Why
removeTurret is not filtered from existingSigners: https://github.com/stellar/stellar-turrets/blob/a459bc930a6458deb1e187be509212112b4214e7/wrangler/src/ctrlAccounts/heal.js#L31
So it is present in existingSigners: https://github.com/stellar/stellar-turrets/blob/a459bc930a6458deb1e187be509212112b4214e7/wrangler/src/ctrlAccounts/heal.js#L61-L65
A new signer must be trusted by all incomingTurretsKeys: https://github.com/stellar/stellar-turrets/blob/a459bc930a6458deb1e187be509212112b4214e7/wrangler/src/ctrlAccounts/heal.js#L131-L134
Recommendation
We should remove removeSigner from existingSigners

To resolve STRI 5 and 6, I have rewritten the heal function entirely, and included a variety of utility functions. in 8da4937
The new workflows are found in L173 to L271 of trust.js
https://github.com/stellar/stellar-turrets/blob/8da4937077a9916d777e62e3def05c0293c810be/wrangler/src/trust/trust.js#L173-L271

This is patched here: https://github.com/stellar/stellar-turrets/pull/11 and merged into master here: https://github.com/stellar/stellar-turrets/commit/cf6de0e32adfd2e6f1ff73a8eaa8e8cce9de00de


docs(ansible): add readme with manual artifacts downloading explanation

Description

add README to ansible role artifacts. It provide instruction how to download package artifacts manually. Also link to this README will be used in documentation on pages:

installation tutorial
logging simulation
planning  simulation

See https://github.com/autowarefoundation/autoware.universe/issues/3137
Tests performed

Not applicable.
Effects on system behavior

Not applicable.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@esteve Yes, make sense. I will switch it to draft for now and update.

@lexavtanke sorry I wasn't more specific. I meant adding a checksum file like this:
https://help.ubuntu.com/community/HowToSHA256SUM
so that users can check the files easily by running sha256sum -c SHA256SUMS, we might want to sign that file with GPG eventually as well.

@esteve before I had started I also had this Idea because I wasn't sure. But I come to a conclusion that it will work for the first time and if user will update models manually one by one and will keep engines in the folders and run chechsum it can be confusing. After initial run of autoware user will have some additional files like trt engines.
Here is the example for lidar_centerpoint.

Do you think it will be better to push user to update all artifacts simultaneously? If so we will need to add a new playbook to ansible and modify setup-dev-env.sh or provide separate script for updating.

@lexavtanke I think it's fine if the models change because the user modifies them, but the first time they are downloaded it'd be useful for the user if they can verify the files easily (with sha2156 for example). Here's the SHA256SUMS file I generated locally:
7fe62fcebe0e0f62a000d06aa94d779feb444d933671a4a3189fe01be8c19a00  ./image_projection_based_fusion/pts_backbone_neck_head_pointpainting.onnx
3ca452ea5ca9467bf782955f75704ba8466841e275e8b8acd991b9911d53249e  ./image_projection_based_fusion/pts_voxel_encoder_pointpainting.onnx
86348d8c4bced750f54288b01cc471c0d4f1ec9c693466169ef19413731e6ecc  ./lidar_apollo_instance_segmentation/hdl-64.onnx
eec521ebad7553d0ea2c90472a293aecb7499ab592632f0e100481c8196eb421  ./lidar_apollo_instance_segmentation/vlp-16.onnx
95ef950bb694bd6de91b7e47f5d191d557e92a7f5e2a6bdf655a8b5eed4075cc  ./lidar_apollo_instance_segmentation/vls-128.onnx
3fe7e128955646740c41a25be0c8f141d5a94594fe79d7405fe2a859e391542e  ./lidar_centerpoint/pts_backbone_neck_head_centerpoint.onnx
9bb0b634f3664bd098ce7d6a3d8a9fb7cc8d9b8252b27f302c71e43316bab551  ./lidar_centerpoint/pts_backbone_neck_head_centerpoint_tiny.onnx
dc1a876580d86ee7a341d543f8ade2ede7f43bd032dc5b44155b1f0175405764  ./lidar_centerpoint/pts_voxel_encoder_centerpoint.onnx
2c53465715c1fd2e9dc5727ef3fca74f4cdf0538f74286b0946e219d0ca5693b  ./lidar_centerpoint/pts_voxel_encoder_centerpoint_tiny.onnx
634a1132eb33f8091d60f2c346ababe8b905ae08387037aed883953b7329af84  ./tensorrt_yolo/coco.names
61e922f76918dd3d8e0abdc5fb7406f390609e08bd8ab9e5d3b97afb00f30f8c  ./tensorrt_yolo/yolov3.onnx
0e877c716fbf8a2b431ee3e57f6c7411a6741319b52c32c6dafc53c7e1b17027  ./tensorrt_yolo/yolov4-tiny.onnx
7c7343156c1bd4b397fd1e44b27334691a6219db3ce2e29a03b72af65ddb8f39  ./tensorrt_yolo/yolov4.onnx
a627e5f70180a8746482b572194090466db62c8d1256602c1cd20374dd960e34  ./tensorrt_yolo/yolov5l.onnx
ee6f67f7c00a34cc4cef2fdd9db30dd714df1a4fb2d7e9fc1731cfe85b673133  ./tensorrt_yolo/yolov5m.onnx
be335ff7746957debf1a6903a61fa3f568b780b4afe4958edf2d4bc98e9e0825  ./tensorrt_yolo/yolov5s.onnx
d7cb4cd7078f87bda22a37828d72867accecedf9f74d0d87b5cc1f6f1180a019  ./tensorrt_yolo/yolov5x.onnx
3540a365bfd6d8afb1b5d8df4ec47f82cb984760d3270c9b41dbbb3422d09a0c  ./tensorrt_yolox/label.txt
cc378d327db5616b0b3a4d077bf37100c25a50ecd22d2b542f54098da100f34c  ./tensorrt_yolox/yolox-sPlus-T4-960x960-pseudo-finetune.EntropyV2-calibration.table
f5054e8a890c3be86dc1b4b89a5a36fb2279d4f6110b0159e793be062641bf65  ./tensorrt_yolox/yolox-sPlus-T4-960x960-pseudo-finetune.onnx
b9e9d7da33342262ccaea4469b4d02b8abb32b6d7bf737f9e0883fece1b8f580  ./tensorrt_yolox/yolox-sPlus-opt.EntropyV2-calibration.table
36b0832177b01e6b278e00c7369f1de71e616c36261cbae50f0753d41289da01  ./tensorrt_yolox/yolox-sPlus-opt.onnx
471a665f4243e654dff62578394e508db22ee29fe65d9e389dfc3b0f2dee1255  ./tensorrt_yolox/yolox-tiny.onnx
1a5a49eeec5593963eab8d70f48b8a01bfb07e753e9688eb1510ad26e803579d  ./traffic_light_classifier/lamp_labels.txt
55ebb0d117a5e8943f8d1c6769f1d856b533079d4d871d8e923255cc992ad48a  ./traffic_light_classifier/traffic_light_classifier_efficientNet_b1_batch_1.onnx
684e29843e3128eadb774018730644b3ab9b0a06dc4cdaeed579c2f3fa5d5265  ./traffic_light_classifier/traffic_light_classifier_efficientNet_b1_batch_4.onnx
44d94540fa8b89dfb39cd9a8523cf010ddfb10ea2f1f9b53bf3618ce7f4912ad  ./traffic_light_classifier/traffic_light_classifier_efficientNet_b1_batch_6.onnx
455b71b3b20d3a96aa0e49f32714ba50421f668a2f9b9907c30b1346ac8a3703  ./traffic_light_classifier/traffic_light_classifier_mobilenetv2_batch_1.onnx
41bb79a23a4ac57956adb8e9cb3904420db1b0cd032e97b670cc4f8b174ae3fe  ./traffic_light_classifier/traffic_light_classifier_mobilenetv2_batch_4.onnx
e4792eed6a46fdbd02be2f3a4f1ce91f36fa77698493caf3102e445178c0f058  ./traffic_light_classifier/traffic_light_classifier_mobilenetv2_batch_6.onnx
a41e6e3324e32c30b3b2fe38908eaf3471e2bfdaeb9e14ca0c1c3bc0275119c6  ./traffic_light_fine_detector/tlr_labels.txt
922839fcf22bd32ae5065146fcec193e9d6360ca03bd4c83faea835045daf8eb  ./traffic_light_fine_detector/tlr_yolox_s_batch_1.onnx
b3c6e00acc6ff547d165469684ffb620a9a6330e9d591d445f50c4cf5cb4e292  ./traffic_light_fine_detector/tlr_yolox_s_batch_4.onnx
2824d4c5b7ab5f6bfd41e43e82747107c53e1c727b1cf1dd6746bc49e6749128  ./traffic_light_fine_detector/tlr_yolox_s_batch_6.onnx
e29e6ee68751a270fb285fd037713939ca7f61a897b4c3a7ab22b0d6a9a21ddf  ./traffic_light_ssd_fine_detector/mb2-ssd-lite-tlr.onnx
a41e6e3324e32c30b3b2fe38908eaf3471e2bfdaeb9e14ca0c1c3bc0275119c6  ./traffic_light_ssd_fine_detector/voc_labels_tl.txt
1f660e15f95074bade32b1f80dbf618e9cee1f0b9f76d3f4671cb9be7f56eb3a  ./yabloc_pose_initializer/resources.tar.gz

I'm going to use it to update the ansible scripts so that all the files have a SHA256 sum (right now, some still a have an MD5 one)

@esteve I've added SHA256SUM to README.

@lexavtanke I see, I meant a separate file, so that users can run sha256sum -c SHA256SUMS to check the integrity of the files. If they have to copy and paste the contents of README, they won't do it and it's also more difficult to automate.


Removal of superceded packages

Discussed in https://github.com/aplteam/Tatin/discussions/57

Originally posted by DavinChurch September  1, 2021
I had an unexpected thing happen, and though it was intended by design I think the behavior should be changed.
Scenario: I installed a test package Tester-0.1.0 and tried it out. Then I added Tester-0.2.0 (in addition to the previous version) and tried it out. All looked fine so I left both versions installed and moved on to installing and checking FilePlus-0.1.0. I wanted to make some changes there so I uninstalled FilePlus-0.1.0 in preparation for building a new version. It did uninstall FilePlus-0.1.0 but it also uninstalled Tester-0.1.0 at the same time!
Neither of these packages have any dependencies nor is anything else dependent on them. Tester-0.1.0, even though it was a principal package, was removed simply because a newer version existed. However, I contend that this behavior is improper and should be changed.
I can see how 0.1.0 might be needed in one application or sub-application while 0.2.0 is simultaneously needed in another. Tatin should not make the assumption that since I now have 0.2.0 I shouldn't need 0.1.0 any more. It may well be mistaken. Only the user knows whether or not they still need that version installed. Therefore, only the user should be in control of uninstalling principal packages, even if a newer version might be available. Let the user uninstall 0.1.0 themselves if they decide they don't need it any more.

Note: we talk about principal packages here. Dependencies that are not required anymore because of the uninstall of a principal package will always be uninstalled as well.
In the future (v0.55.0) only explicitly mentioned principal packages will be removed.
However, both the user command (via -prune) as well as the API function (via an additional flag) will allow implicit removals of stuff that is not required. Also, both methods will inform the user if stuff is left behind that is from Tatin's point of view superfluous.


Simplify setupCommands.ts and prettier workflow

TODO:

[x] Test registering Commands because I did the PR with github.dev (Visual Studio Code in the Browser).

I just tested it and it seemed to work. Feel free to merge if you are fine with the changes

Cool, thanks for adding this! I wasn't able to test this, but I looked over the additions and it looks good to me


Circle 2.0

Has anyone got to this work with Circle 2.0?
I am trying..
RAILS_ENV=continous_integration bundle exec rspec --format RspecJunitFormatter -o $CIRCLE_TEST_REPORTS/rspec.xml```

Issues here are for this gem. For integration with CI providers I'd suggest trying their support and documentation. CircleCI seem to have a discussion forum. 😊

Seems like there's an issue open over there about this:
https://discuss.circleci.com/t/test-result-report-not-detected/11081
Sounds like Circle 2.0 isn't collecting the reports properly.

If anyone comes across this thread, this is how I fixed it...
Example .circle.yml file...
version: 2
jobs:
  build:
    working_directory: ~/myemergencycontactnumber-api
    docker:
      - image: circleci/ruby:2.4.1-node
        environment:
          RAILS_ENV: continous_integration
          PGHOST: <IP_ADDRESS>
          PGUSER: rails_test_user

      - image: circleci/postgres:9.6.3-alpine
        environment:
          POSTGRES_USER: rails_test_user
          POSTGRES_PASSWORD: ""
          POSTGRES_DB: continous_integration

    steps:
      - checkout

      - restore_cache:
          keys:
            - myemergencycontactnumber-api-{{ checksum "Gemfile.lock" }}
            - myemergencycontactnumber-api-

      - save_cache:
          key: rails-demo-{{ checksum "Gemfile.lock" }}
          paths:
            - vendor/bundle

      - run:
          name: Setup Bundler and Gems
          command: |
            gem install bundler
            gem update bundler
            gem install brakeman
            gem install rubocop
            gem install rubocop-rspec
            bundle config without development:test
            bundle check --path=vendor/bundle || bundle install --without development test --path=vendor/bundle --jobs 4 --retry 3

      - run:
          name: Setup Postgres
          command: |
            sudo apt-get install postgresql-client

      - run:
          name: Setup Rails Database
          command: |
            RAILS_ENV=continous_integration bundle exec rake db:drop
            RAILS_ENV=continous_integration bundle exec rake db:setup

      - run:
          name: Run Brakeman
          command: |
            RAILS_ENV=continous_integration brakeman -z

      - run:
          name: Run Rubocop
          command: |
            RAILS_ENV=continous_integration bundle exec rubocop --format fuubar --require rubocop-rspec --config .rubocop.yml

      - run:
          name: Run Rspec
          command: |
            RAILS_ENV=continous_integration bundle exec rspec --format RspecJunitFormatter -o /tmp/test-results/rspec.xml

      - store_test_results:
          path: /tmp/test-results

You have to have both the output setup and where to store it.  Their docs are a bit all over the place and this took me close to an hour to get working. Are you using 2.0 @sj26 ?

@chrishough no, I use (and now work for) Buildkite. We were playing with rspec junit reporting recently so I've been doing a bit of work on this gem. 😊

Ahh, no worries. I was curious.  At least my post will help others using it for Circle.


Add ability to pass extra props to cancel text in modal

Problem:
There is no ability to pass allowFontScalling configuration to cancel text component
Solution:
support external cancelTextPassThruProps property that will be passed to cancel text component
I believe this will also solve this issue

Thanks @tetianastepova for adding this feature 👍


Desktop notifications: close on click

I see you recently added the functionality to be able to click on the desktop notification and it will take me to the same place as if I clicked on the sidebar notification, which I really like. I actually already wanted to make an issue for that, but you beat me to it. 🙂
And now I think only one little thing is missing: when you click on the desktop notification to take you somewhere, it should also close, not remain sitting there, because you obviously don't need it anymore. Closing the desktop notification on click is a normal and expected behavior on other websites where I use the desktop notification feature.

Another related thing I wanted to ask. I just got a notification about a new Authentic theme version (19.15). I click on the desktop notification, but it just refreshes the page because I'm already on the System information page. I then tried the sidebar notification and it does the same thing. I understand that's expected behavior because the button for updating the theme is on that page, so it takes me there correctly, but why not initiate the update on notification click? Although that is maybe a bad idea because it's probably not good to do things without confirmation. And yes, I know about the little green update button embedded in the sidebar notification. I also noticed that if I click the normal part of the notification, that little green button will disappear.

Hi,
Great analysis, thank you.
I expected notifications to be closed. I will double check tomorrow.


Franklin + Literate, allow multiple environments

At the moment a "Franklin site" is considered as one environment, upon "serving" the environment is activated and everything is done in it.
For tutorial websites you might want each tutorial to have its own (esp if a tutorial depends on big stuff like Flux or whatever)

I use pinned environments for all of my literate scripts, and therefore I would be very interested if one could use specific environments. Maybe one could use the same behaviour as IJulia and always activate (and instantiate?) a package environment if a Project.toml file is present in the same directory as the script? Or add a configuration option that would allow to specify the path to the environment and probably should be set to the root directory of the webpage as default?

Yes your suggestions are good ones thanks! a slightly weird alternative could also be to have a load_environment function which would take the path of a given Project.toml file which the user could put anywhere they like so it doesn't mess the organisation of their scripts.
I need a bit of time to figure this out which path makes most sense and then a bit more time to implement it 😄


Make prom-client a peer dependency

To make it easier to add additional metrics from outside this module it would be good if this module like eg. https://github.com/SimenB/node-prometheus-gc-stats added prom-client as a peer-dependency rather than as an ordinary dependency.
Reason for doing so is that it is important that all modules that interacts with the prom-client module are interacting with the same instance of the module and this will only happen if they all require the same installed modules – and the only way to really guarantee that is to have all modules require the dependency of the top project.
With the current setup there will be multiple instances of prom-client if the different modules have different version requirements from prom-client or if someone uses npm 2 or for some other reason doesn't flatten the dependency tree.

+1 on this.
I just encountered this issue where I was collecting additional metrics using prom-client but it wasn't showing up in /metrics.  It turned out that nodejs module cache had two different prom-clients (one from epimetheus and one from my direct dependency).  With such a core metrics instrumentation library, everyone need to play nice.
Here is a similar scenario on submodule dependency: http://justjs.com/posts/singletons-in-node-js-modules-cannot-be-trusted-or-why-you-can-t-just-do-var-foo-require-baz-init

I've submitted a pull request for this change: https://github.com/roylines/node-epimetheus/pull/19

I believe this breaks the example.  Here's an output snippet from running docker-compose up:
restify_1     | module.js:472
restify_1     |     throw err;
restify_1     |     ^
restify_1     |
restify_1     | Error: Cannot find module 'prom-client'
restify_1     |     at Function.Module._resolveFilename (module.js:470:15)
restify_1     |     at Function.Module._load (module.js:418:25)
restify_1     |     at Module.require (module.js:498:17)
restify_1     |     at require (internal/module.js:20:19)
restify_1     |     at Object.<anonymous> (/src/node_modules/epimetheus/lib/metrics.js:1:78)

It is a peer dependency now (see #19), I think this issue can be closed.


[Native ESM] [ts-jest@next] ReferenceError: exports is not defined

🐛 Bug Report
Under a certain condition with native ESM support, the test fails with ReferenceError: exports is not defined.
To Reproduce
package.json:
{
  "private": true,
  "type": "module",
  "devDependencies": {
    "@babel/core": "^7.13.1",
    "jest": "^27.0.0-next.3",
    "ts-jest": "^27.0.0-next.6",
    "typescript": "^4.1.5"
  },
  "scripts": {
    "test": "node --experimental-vm-modules node_modules/.bin/jest --no-cache"
  },
  "jest": {
    "transform": {
      "\\.[jt]sx?$": "ts-jest"
    },
    "extensionsToTreatAsEsm": [
      ".ts"
    ]
  }
}

lib.ts:
export const X = 42;

lib.test.ts:
import { X } from "./lib";

test("X", () => {
  expect(X).toBe(42);
});

tsconfig.json:
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["ES2015", "DOM"],
    "allowJs": true,
    "checkJs": true,
    "isolatedModules": true,
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true,
  }
}

$ node --version
v14.15.5
$ yarn test
yarn run v1.22.5
$ node --experimental-vm-modules node_modules/.bin/jest --no-cache
(node:23494) ExperimentalWarning: VM Modules is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 FAIL  ./lib.test.ts
  ● Test suite failed to run

    ReferenceError: exports is not defined

      1 | import { X } from "./lib";
    > 2 |
        | ^
      3 | test("X", () => {
      4 |   expect(X).toBe(42);
      5 | });

      at lib.test.ts:2:23

Test Suites: 1 failed, 1 total
Tests:       0 total
Snapshots:   0 total
Time:        2.343 s
Ran all test suites.
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

And without --no-cache, the following behaviors are observed:

Change lib.ts a bit (e.g. adding / removing empty lines) and rerun the test: the test starts to fail.
Change lib.test.ts a bit (e.g. adding / removing empty lines) and rerun the test: the test starts to pass.

Expected behavior
The test is expected to always pass.
Link to repo (highly encouraged)
https://github.com/qnighy/ts-jest-esm-failure-example
The example above was extracted from https://github.com/qnighy/ts-type-module-example.
Debug log:
https://gist.github.com/qnighy/9ba2c6b2023c4a8dad38c53faf4ed592
envinfo
System:
    OS: Ubuntu 20.04 on WSL2
    Node version: v14.15.5

Npm packages:
    jest: 27.0.0-next.3
    ts-jest: 27.0.0-next.6
    typescript: 4.1.5
    babel(optional): 7.13.1

Hi, would you please check with Jest repo. IIRC export is not supported yet. We only transpile ts to js and Jest runs the transpires codes so I don’t think this is ts-jest issue.

You

See more at facebook/jest#9430

Yes, I was experimenting with the native ESM support mentioned in https://github.com/facebook/jest/issues/9430, so I thought it's being implemented in ts-jest@next. Is my understanding wrong, or shouldn't have I filed ts-jest@next's issue here?

A similar configuration works with babel-jest@next so I thought it's ts-jest@next's issue

I see you missed one important thing, enable support esm config option for ts-jest. If you go to online doc and choose next version, you will find the guide :)

Aaah, this one! https://kulshekhar.github.io/ts-jest/docs/next/guides/esm-support
Thanks! It turned out to be my mistake.


data.aws_lambda_invocation.invoke_codebuild_job IAM Consistency

During a "fresh" apply of this module, I encountered the following error:
│ Error: Lambda function (aft-lambda-layer-codebuild-invoker) returned error: ({"errorMessage": "An error occurred (AccessDeniedException) when calling the StartBuild operation: User: arn:aws:sts::005713683566:assumed-role/codebuild_invoker_role/aft-lambda-layer-codebuild-invoker is not authorized to perform: codebuild:StartBuild on resource: arn:aws:codebuild:ap-southeast-1:005713683566:project/python-layer-builder-aft-common-8x2kigja because no identity-based policy allows the codebuild:StartBuild action", "errorType": "ClientError", "stackTrace": ["  File \"/var/task/codebuild_invoker.py\", line 30, in lambda_handler\n    job_id = client.start_build(projectName=codebuild_project_name)[\"build\"][\"id\"]\n", "  File \"/var/runtime/botocore/client.py\", line 386, in _api_call\n    return self._make_api_call(operation_name, kwargs)\n", "  File \"/var/runtime/botocore/client.py\", line 705, in _make_api_call\n    raise error_class(parsed_response, operation_name)\n"]})
│
│   with module.control_tower_account_factory.module.aft_lambda_layer.data.aws_lambda_invocation.invoke_codebuild_job,
│   on .terraform/modules/control_tower_account_factory/modules/aft-lambda-layer/lambda.tf line 21, in data "aws_lambda_invocation" "invoke_codebuild_job":
│   21: data "aws_lambda_invocation" "invoke_codebuild_job" {
│

This seems to be an IAM eventual consistency issue. It worked on a subsequent apply a couple of minutes later.

Hi there, thanks for the issue. Transient issues from IAM do happen from time to time; we've got a few backlog items to look into retries for access denied errors. Has this been occurring routinely for you, or was it just the one fresh apply?

I've only done one apply for now. I'll report back if it happens again.

+1 more issues with - data "aws_lambda_invocation" "invoke_codebuild_job"

Thanks for the extra context here, we've gone ahead and created a backlog to dive into and address these eventual consistency issues

AFT 1.4.2  changed how IAM roles are created and managed in part to address eventual consistency issues.
Given that this report pre-dates 1.4.2, I'm going to close this issue at this time. Please feel free to open new issues if you experience these issues again after upgrading to AFT 1.4.2 or later.

Hey all
Not sure if this is isolated to me but using the current time of writing latest version of AFT 1.9.0 I experienced the time out error as well
Some version details if needed
aws --version
aws-cli/2.9.21 Python/3.11.1 Darwin/22.2.0 source/arm64 prompt/off

===
Terraform v1.3.7
on darwin_arm64
+ provider registry.terraform.io/hashicorp/archive v2.3.0
+ provider registry.terraform.io/hashicorp/aws v4.56.0
+ provider registry.terraform.io/hashicorp/local v2.3.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
+ provider registry.terraform.io/hashicorp/time v0.9.1

Your version of Terraform is out of date! The latest version
is 1.3.9. You can update by downloading from https://www.terraform.io/downloads.html


AsyncQdrantClient calls blocking event loop

Currently trying to utilise qdrant for a production usecase and this requires building an API for real time vector search. It is crucial for this to be async so that it can scale well for multiple users. But when using the async client with FastAPI and Uvicorn, latency increases as number of concurrent users increase.
Current Behavior
Latency of the endpoint increases as concurrent users increase.
Steps to Reproduce
from fastapi import FastAPI
import asyncio
from qdrant_client import AsyncQdrantClient

app = FastAPI()
asyncClient = AsyncQdrantClient(url = 'prod.qdrant.com', port = 80)

@app.post('/sleep')
async def sleep(request: Request) -> dict:
    await asyncio.sleep(0.1) # simulate 100ms I/O call
    return {'message': 'success'}

@app.post('/recommend')
async def recommend(request: Request) -> dict:
    await asyncClient.recommend(
        collection_name = 'my_collection',
        positive = ['4be0643f1d98573b97cdca98a65347dd'],
        limit = 10,
    )
    return {'message': 'success'}

Run the above app using uvicorn
Load test the endpoint using locust
The /sleep endpoint scales to 50 concurrent users while maintaining a p99 latency of 110ms (as expected since the requests are concurrent)
4.The /recommend endpoint does not do this. At 1 concurrent users the p99 latency is 10ms, 65ms at 10 users and 260ms for 50 concurrent users. (this is unexpected if the requests are processed concurrently)

Uvicorn version: 0.27.1
FastAPI version: 0.110.0
Qdrant version: 1.7.3 (both server and client)
Qdrant is deployed on k8s with 10 pods and 20vCPUs each. All vectors are in memory and utilization of pods is <1 vCPU during testing.
Expected Behavior
The requests should be processed concurrently. Maybe the async call using the client is blocking the event loop and preventing FastAPI from processing other requests

Latency of the endpoint increases as concurrent users increase.

This is kinda expected. You can't scale indefinitely by just adding parallel calls.
But also considering that

memory and utilization of pods is <1 vCPU during testing.

there might be two possibilities, depending on your configuration it of the collection: either bottleneck is in disk, or bottleneck is on the client side.
Could you please try to do the same with gRPC?

Thanks for the response @generall
I know its not possible to scale indefinitely using parallel calls as you will bottleneck at some point. However this number should be very high compared to the tests I have ran and should not increase linearly for such small amount of requests (like the /sleep endpoint hits 110ms instead of 100ms). Also the request I'm sending qdrant is the most basic kind of request (a batch recommend request would be heavier on the CPU side). Even scaling that basic request to 2/3/5 parallel calls the latency increases almost linearly.
Regarding the CPU consumption, I've tried this with multiple configs for collections and the latency results are always the same. Just the CPU and memory usage changes on the pods. Also as mentioned the db is entirely in memory.
I've experimented with different shard_numbers, replication_factor and segment_count but the latency is always the same. I think I've assigned more than sufficient hardware resources to the DB as well. I've gone through the optimization section of the docs as well.
Is there some specific configuration of the collection I should try? (assuming the db is the bottleneck)

(assuming the db is the bottleneck)

If storage is all in memory and CPU usage on DB side is small, I don't think DB is a bettleneck, actually.
I would try to check what's the client CPU usage. You can check GET /telemetry to verify that latency. as observed from db side, correlates with client measurements


Fixed defaultValue check

Previously defaultValue was checked for truthy, but a default value of 0 would return false and not set the value in the form. changed to a defined check so we can handle any value, including 0.

@bluebill1049 do you want an issue filed for all PRs? or is this ok by itself?

Thanks, @kabriel PR is great! minor comment.

@bluebill1049 fixed. i like the helper!


feat--added scroll to top button

Added the scroll to top button for the issue #18. Please review this. Thank you.

add a video for showing demonstartion

https://github.com/DevSoc-Asansol2023/DevSoc-Main/assets/113552756/fe831109-c86c-46f7-a8ce-f0215c5166c6

Screen Recording - Made with RecordCast.webm

Mobile view?

Screen Recording - Made with RecordCast (1).webm
Mobile View

Its looking and working nice
But please take care of that package thing


Camera animations

if the scroll doesn't stop  exactly at  a mentioned point  in the Orchestrate Function  the camera will skips frames and struggle
in this example  :  if you scroll to 0.5 , 1 ,1.5 , 2.5  ...  the camera will skip frames at the end of those points

with the usage of sanping you won't have this issues because you will  snap exactly to those points but if you spam scroll snap you will see the camera struggling , it would be great to make the camera wait the previous animations , or at least have a delay between snaps

This was actually caused by multiple clips happening after one another when damping is enabled. Should be fixed as of version: 0.2.0


version 1.3 from branch

Modifications:
sure fire versions
surefire reporting, in particular make @DisplayName junit 5 annotation effictive for maven CLI and netbeans test output window,
plugin versions for mockito and pitest.
perishable sales (my version) works cleanly with this version.
Please accept deploy to maven central.

here a screenshot for netbeans test output with display names


MODE OF AES

I WAS LOOKING FOR A CODE TO PERFORM AES ENCRYPTION IN C. I CAME ACROSS A DOCUMENT STATING THAT THERE ARE DIFFERENT MODES OF AES (for eg:CBC,ECB). PLEASE TELL ME WHICH MODE OF AES IS BEING IMPLEMENTED THROUGH THIS CODE? IF I RUN THIS CODE IN A MICROCONTROLLER FOR MY PROJECT, WHICH RUNS AT 168Mhz CLOCK, HOW MUCH TIME WILL THE AES ENCRYPTION PART ALONE WILL TAKE TO COMPLETE THE PROCESS. LOOKING FORWARD FOR YOUR REPLY.
THANKS & REGARDS

您的邮件已收到,我将尽快回复，谢谢


[HW]

Name: Sujan Manandhar
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/sujan-m-111915b/
Attach the homework screenshots below for both step II and step III:

Hey Sujan Manandhar, great job! Congrats! Here is your badge! https://api.badgr.io/public/assertions/UtTxxcSkQHaOhV6dADEWkg


Feature Request: costume response/request filter function

I've came across the need to have parts of my response body written to the log,
currently this library supports all or nothing, with dot notation support it will improve greatly as I will be able to pick specific parts of the body to log, but dot notation is not enough,
I have for example a response body that contains an array of big objects and frankly I only want their ids to be logged, with dot notation that's impossible unfortunately.
It would be extremely helpful to control the response object that's gonna be written to the log
at first i thought that requestFilter and responseFilter were exposed precisely for that,
but they only control properties of the object, I propose changing these functions implementations (or deprecating them and creating new functions) that will be given the full object and their return value will be the object that will be written to the log

The library has a "dynamicMeta" function option that if specified allows you to add arbitrary metadata programmatically to the log entry.  See the "index.d.ts" for the signature but it's basically a function that takes in two arguments, the express request and express response and if it returns an object, its fields get added to the log entry metadata.


Add Data from another country

Is there a way to expand this set of data to another country?
I know many of the developers in the north part of Mexico, is there a way I can provide you the beta for further expansion?

We welcome new datasets.  Just make sure they're compatible with our license, CC0.
Ways you can share new climbs with us:

Submit data files in machine-readable formats such as JSON, CSV, etc
Coming soon:  you can add new climbs to our database: https://github.com/OpenBeta/open-tacos/issues/496

Hi @Jorghe,
you can now add new areas for Mexico.
FAQ: https://openbeta.substack.com/p/hackathon-2022


Use VFs from the same PF for different modes (netlink, vfio, ...)

When there is a single PF on a host, or one would like to reuse the same PF for multiple types of workloads, right now it's impossible because device plugin is configured on per-PF basis. We should have a way to split out particular VFs to use for one type and the rest for another type; or to not use part of available VFs at all. (The latter is useful when some VFs are utilized for hypervisor network connectivity.)
This can be achieved by either allowing to specify VF and not just PF IDs in config.json.

@booxter, I totally agree with this feature I raise this before on K8s Network & Resource management projects weekly scrum updates. I suggested before to be able to exclude VFs as this will resolve also https://github.com/intel/sriov-network-device-plugin/issues/58.

@booxter Actually, you can achieve this with current implementation without any changes.
Let me give you an example. Say you have a PF with 4 VFs:  00:01.0, 00:01.1 with vfio-pci and  00:01.2, 00:01.3 with netdev driver. You can have two resource pool endpoints as follows:
{
    "resourceList":
    [
        {
            "resourceName": "sriov_vfio",
            "rootDevices": ["00:01.0", "00:01.1"],
            "sriovMode": false,
            "deviceType": "vfio"
        },
        {
            "resourceName": "sriov_vfio",
            "rootDevices": ["00:01.2", "00:01.3"],
            "sriovMode": false,
            "deviceType": "netdevice"
        }
    ]
}

The "rootDevice" contains the pci address of the VFs regardless of what PFs they belong to. In this case you cannot mix this with PF's pci address and "sriovMode":  should be false. Only penalty is you're gonna have to provide each VF's pci address by hand in the config file. Where in, with PF's pci address and "sriovMode": true will let you discover these VFs pci address dynamically.

I think this can be accomplished with above configuration. And with new selector based config, this can also be achieved by using driver selector to distinguish VFs of different mode.
I'm going to close this issue for now and feel free to re-open if any remaining questions.


IRGen thunk outlining mangling fixes

Change the mangling to free up space in the W namespace
Correctly mangle generic types
ODR identical thunks together

@swift-ci Please smoke test

@swift-ci Please test

Note that this fixes a miscompile - we used to fold together outlined retain and release calls for different generic signatures, which is wrong

Build failed
Swift Test OS X Platform
Git Sha - 473b6caf3b73add9918882d7b059c8db050e65cc

@swift-ci Please smoke test

Looks good to me. Might be a good check that the demangler robustly handles/ignores the old manglings since the OS manglers on some platforms may still try to digest them.

As I mentioned on PR 15555 - looks good to me. thanks for doing this.


UMCCRISE: make dragen_tumor_id and dragen_normal_id inputs optional

From Stephen:

the sample IDs should be automatically inferred from the BAM headers and the arguments exist as a sanity check

Ah sweet, well that solves having to mine the rgsm values


⚠ Processors has degraded performance

In df565cb, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 45 ms

Resolved: Processors performance has improved in 984deb0.


Lazy init scope model in config

What is the purpose of the change
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #11142 (31cb63c) into 3.1 (e7146d7) will decrease coverage by 4.89%.
The diff coverage is 85.71%.

@@             Coverage Diff              @@
##                3.1   #11142      +/-   ##
============================================
- Coverage     69.46%   64.57%   -4.90%
+ Complexity      127       14     -113
============================================
  Files          1496     1421      -75
  Lines         78820    59312   -19508
  Branches      13842     8721    -5121
============================================
- Hits          54752    38300   -16452
+ Misses        19344    16968    -2376
+ Partials       4724     4044     -680

Impacted Files
Coverage Δ

...ava/org/apache/dubbo/config/ServiceConfigBase.java
75.00% <50.00%> (-7.36%)
:arrow_down:

.../java/org/apache/dubbo/config/ReferenceConfig.java
73.46% <50.00%> (-12.82%)
:arrow_down:

...n/java/org/apache/dubbo/config/AbstractConfig.java
81.53% <87.50%> (-4.63%)
:arrow_down:

...g/apache/dubbo/config/AbstractInterfaceConfig.java
79.61% <100.00%> (-4.32%)
:arrow_down:

.../org/apache/dubbo/config/AbstractMethodConfig.java
88.46% <100.00%> (+0.22%)
:arrow_up:

...ain/java/org/apache/dubbo/config/ModuleConfig.java
65.57% <100.00%> (+1.16%)
:arrow_up:

...a/org/apache/dubbo/config/ReferenceConfigBase.java
59.44% <100.00%> (-6.46%)
:arrow_down:

...luster/router/script/ScriptStateRouterFactory.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...he/dubbo/test/common/impl/GreetingServiceImpl.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...zookeeper/curator/CuratorZookeeperTransporter.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 492 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Karma cant capture Chrome on WIndows 8?

I am running karma 0.12.3
I can get Karma server to run on Windows machine where browser starts up and hangs with "server starting" message (i dont know if thats what suppose to happend on karma start), but everytime i am making a change inside of test files, karma is able to detect that change is made, but then i am getting folowing error:
DEBUG [karma]: List of files has changed, trying to execute WARN [karma]: No captured browser, open localhost:9876/
after 200000 ms i can see in console "IE or Chrome have not captured in 200000 ms, killing".
I have checked my etc/host file it is clean. I have checked that i created IE_BIN and CHROME_BIN enviroment variables but i still cant get it to work. i strugled with this problem for 3 days now, i really dont know what to do now.
I can see folowing error in browser console, but it disapears again  right after i saw it:
WebSocket connection to 'ws://localhost:9876/socket.io/1/websocket/ynDB1e0iun-Zm5IeZKAv' failed: WebSocket is closed before the connection is established.

Closing for now, please reopen if this is still an issue with the latest version.


Allow incompletely specified Time Formats

In #7927 a user was asking for the ability to show a less specific TimeFormat as the timestamp on the UI. The previous log.Fatal prevents users from deliberately reducing the time specificity.
This PR changes that log.Fatal into a log.Warn with some more information to advise users.
Fix #7927

Codecov Report

Merging #8816 into master will decrease coverage by <.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #8816      +/-   ##
==========================================
- Coverage   41.25%   41.24%   -0.01%
==========================================
  Files         543      543
  Lines       69766    69767       +1
==========================================
- Hits        28782    28776       -6
- Misses      37295    37302       +7
  Partials     3689     3689

Impacted Files
Coverage Δ

modules/setting/setting.go
45.61% <0%> (-0.08%)
:arrow_down:

modules/log/event.go
64.61% <0%> (-1.03%)
:arrow_down:

routers/repo/view.go
37.71% <0%> (-0.88%)
:arrow_down:

models/gpg_key.go
55.03% <0%> (-0.56%)
:arrow_down:

routers/api/v1/convert/convert.go
81.73% <0%> (ø)
:arrow_up:

routers/api/v1/utils/hook.go
0% <0%> (ø)
:arrow_up:

models/webhook_msteams.go

models/webhook_dingtalk.go

models/webhook_discord.go

models/webhook_slack.go

... and 8 more

Continue to review full report at Codecov.

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

@zeripath I don't think this is a feature and the formatter is broken? Maybe we should reset it to default.

@lunny not sure what you mean?
The current settings code enforces that any display timeformat has to be able to fully convert between datetimes with no loss of precision.


Fix weird signature help

Fix #124.

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

npm package (@latest dist-tag)
Visual Studio Marketplace
GitHub release

Your semantic-release bot :package::rocket:


Sort stacked bar widgets

@BarVolunteering wasn't sure if this widget already sorted - injured_accidents_with_pedestrians
Any other stacked bars that you know of that are not sorted?

I will check about injured_accidents_with_pedestrians, but maybe @shaniwein remember if its sorted?
The other bars that need to be sorted are:
accident_count_by_car_type  (issue #2071)
injured_count_by_accident_year (issue #2070)
accident_count_by_accident_year (issue #2050)

Update after PR - The bars that need to be sorted are:
accident_count_by_car_type (issue #2071)
and maybe injured_accidents_with_pedestrians

injured_accidents_with_pedestrians is sorted

@BarVolunteering great work! Can I close this one?

Yes


Update MultiTest links

Since the MultiTest docs are not yet ready, most of the links in the Sylvia to the MultiTest are not internal, but leads to docs.rs.
Once the MultiTest docs are done we should update links f.e. of App to lead to proper documentation section about it.

Which links you need? Except App?


Ignore lintian error about package revision.

https://clusterhq.atlassian.net/browse/FLOC-1566

Thanks @tomprince this seems sensible and also like something we will find out soon enough that we need to change if we do - if we submit the packages to some repository for example.


Extreme stuttering in Apex Legends

Apex Legends stutters immensely when compared to GNOME despite being launched the exact same way (Lutris with gamescope enabled)

sway?

It works fine for me on Steam, did you try it ?

Sway is weird and refuses to launch apps for me, but Wayfire (built as wayfire-git from the aur) gives the sane performance as GNOME, so it does appear to be Hyprland specific.

It works fine for me on Steam, did you try it ?

Lutris just acts as a launcher for Steam games, although I did try Steam directly and got the same results.

Same here but with other games, Games stuttering compared to KDE in my case.

but Wayfire (built as wayfire-git from the aur) gives the sane performance as GNOME, so it does appear to be Hyprland specific.

wf doesn't use wlroots-git. It might be a wlr issue after all.
Can anyone check sway-git?

Apex works well for me through steam. I will say a fresh apex install stutters for me at first until it compiles/caches shaders. Not sure if that’s what your experiencing or not

Nah, I went into firing range for almost half an hour and it was still constantly stuttering.

Tested sway-git it seems it gave me fluid experience on gaming compared to hyprland, but I had mouse issues on sway.

Any news?

No, idk what's up

Maybe updating to the latest version of wlroots will fix it? I've seen that they've made a lot of changes.

we are not that far behind -git.

Still it's a try.

Try to isolate the issue. It runs perfectly fine on my end. Both on Sway and Hyprland.

Does it present on latest -git version wlroots had update

I can test tomorrow

I can confirm. The problem is present on hyprland-git+wlroots-git but not on wlroots+hyprland. The bug is several stuttering.

I've noticed this as well, Sway is visibly smoother than Hyprland (GIT).
Although according to Mangohud, frametimes and fps are very similar?
I've tried playing around with VRR/VFR without luck.
I'm not sure how to debug this to be honest

I can confirm. The problem is present on hyprland-git+wlroots-git but not on wlroots+hyprland. The bug is several stuttering and -10 -20 fps

Hyprland bundles wlroots, your system wlroots don't matter.
If this is a regression, I'd like a git bisect to be done.

I can confirm. The problem is present on hyprland-git+wlroots-git but not on wlroots+hyprland. The bug is several stuttering and -10 -20 fps

Could you test with kernel command line parameter gpu_sched.sched_policy=0

@vaxerski I noticed that if I move with just the keyboard, the game is completely smooth (Halo Infinite in my instance but it's most likely the same issue as with Apex Legends). The stuttering only occurs when I actually move the mouse.
Could this be related?

One thing that hasn't been mentioned here yet might warrant a protocol for VRR: the hardware cursor. When the application controls the refresh rate a hardware cursor will refresh slowly and stutter, when the cursor controls the refresh rate the application content will appear to stutter. There is also the option of refreshing the panel with a multiple of the application refresh rate while the cursor is changing but that has its limits in hardware and might still cause stutter with strongly fluctuating frame times, though the latter could be somewhat alleviated with present-timing.
What I implemented for KWin is to always give the cursor precedence (I think in Sway it's the same?) and we'll give the user the option to disable that (for fullscreen) but that's far from ideal. While apps that explicitly want to control their timing could always draw a software cursor (or with present-timing only when VRR presentation occurs) that's not really a good solution either.
(https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/44#note_897546)

@vaxerski I noticed that if I move with just the keyboard, the game is completely smooth (Halo Infinite in my instance but it's most likely the same issue as with Apex Legends). The stuttering only occurs when I actually move the mouse.
Could this be related?

One thing that hasn't been mentioned here yet might warrant a protocol for VRR: the hardware cursor. When the application controls the refresh rate a hardware cursor will refresh slowly and stutter, when the cursor controls the refresh rate the application content will appear to stutter. There is also the option of refreshing the panel with a multiple of the application refresh rate while the cursor is changing but that has its limits in hardware and might still cause stutter with strongly fluctuating frame times, though the latter could be somewhat alleviated with present-timing.
What I implemented for KWin is to always give the cursor precedence (I think in Sway it's the same?) and we'll give the user the option to disable that (for fullscreen) but that's far from ideal. While apps that explicitly want to control their timing could always draw a software cursor (or with present-timing only when VRR presentation occurs) that's not really a good solution either.
(https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/44#note_897546)

Could you test with kernel command line parameter gpu_sched.sched_policy=0

There's no difference with gpu_sched.sched_policy=0 on a RX 6800 XT :/

There's no difference with gpu_sched.sched_policy=0 on a RX 6800 XT :/

Does enabling vsync fixes stuttering?

Does enabling vsync fixes stuttering?

I've tried enabling/disabling these to no avail:

Direct scanout
VRR
VFR
10 bit colors
Low/high refresh rate
Vulkan/GLES2 renderer
WLR_DRM_NO_ATOMIC env
WLR_NO_HARDWARE_CURSORS env

I may be wrong but it seems like this issue is correlated to the mouse cursor, moving around in game with just the keyboard is buttersmooth.
For wlroots, there is a experimental patch here for wlroots if it's indeed the mouse cursor causing it in Hyprland: https://gitlab.freedesktop.org/drm/amd/-/issues/2186#note_1765619 (but Hyprland would need to be tweaked to use this patch and it's outside of my expertise)

@ThatOneCalculator This is how the stuttering looks on my end. Is it the same as yours?
https://youtu.be/LuTYTEaJJyI

@ThatOneCalculator This is how the stuttering looks on my end. Is it the same as yours?
https://youtu.be/LuTYTEaJJyI

Try switching to linux-lts kernel. It should fix.

@GrabbenD mine is a bit more ittermittent

Try switching to linux-lts kernel. It should fix.

Thanks for the idea
Certain kernels make the issue less apparent but it's still there 🙁 . Here's all I've tried:

5.15.109-LTS
6.1.26-LTS
6.1.26-RT
6.1.13-rt7-xanmod (smoothest in my opinion)
6.2.11-xanmod
6.2.13-LQX
6.2.13-ZEN
6.2.13-TKG

6.2 has some more demand stuttering then 6.1 in case

Try switching to linux-lts kernel. It should fix.

Thanks for the idea Certain kernels make the issue less apparent but it's still there 🙁 . Here's all I've tried:

5.15.109-LTS
6.1.26-LTS
6.1.26-RT
6.1.13-rt7-xanmod (smoothest in my opinion)
6.2.11-xanmod
6.2.13-LQX
6.2.13-ZEN
6.2.13-TKG

Reason i suggested because 6.2.x has some stuttering issues that was introduced meanwhile 6.1 has less

I've been testing on both hyprland and hyprland-git today and I cannot reproduce now. My kernel is beign josh's 6.0.0-1-hdr-git-02753-gff57328e5784 for all my tests so far. I'll keep an eye on this issue in case I can find something conclusive.

Thanks for the update @Zeioth

Did you try Halo Infinite? (It's free on Steam)
What's your distro?
Which GPU?
Did you try it with GameScope? (On my end it almost fixes stuttering completely)

I'm in progress of trying OpenSuSE instead of NixOS.

Update: the stuttering in NixOS (hyprland-git https://github.com/hyprwm/Hyprland/commit/2e28e88dfdca3d836c5dbedb916e0f629fc6a540) is worse than with OpenSuSE Tumbleweed (Hyprland v0.24.1). OpenSuSE gives me roughly 20-30 better fps & decreases frametime with 3-4ms since they're using x64_86-v3 optimization level with LTO+PGO.
Turns out the stuttering only happens when the game runs below my monitor's refresh rate even with vrr=1
~> hyprctl monitors
Monitor DP-3 (ID 0):
<EMAIL_ADDRESS>at 0x0
	description: Dell Inc. Dell AW3821DW #HLAYMxgwABTR (DP-3)
	make: Dell Inc.
	model: Dell AW3821DW
	serial: #HLAYMxgwABTR
	active workspace: 2 (2)
	reserved: 0 0 0 0
	scale: 1.00
	transform: 0
	focused: yes
	dpmsStatus: 1
	vrr: 1

My monitor's Freesync range is 1-144 hz and it even has a dedicated GSync Ultimate chip :/
For clarification, I pretty much only installed Hyprland, xdg, MESA, codecs, kernel-firmware, pipewire, steam, mangohud & gamemoded while testing this.

Another update:

Changing power profile for the GPU greatly improved 1% lows and avg fps but the stuttering is still visible when fps falls below monitor's refresh rate:
# /etc/udev/rules.d/30-amdgpu.rules
KERNEL=="card1", SUBSYSTEM=="drm", DRIVERS=="amdgpu", ATTR{device/power_dpm_force_performance_level}="manual", ATTR{device/pp_power_profile_mode}="1"

(see: https://gitlab.freedesktop.org/drm/amd/-/issues/1500#note_1854170)

Furthermore I tried using async frames (MESA_VK_WSI_PRESENT_MODE) but it looks like it's not supported by wl-roots yet.
(see: https://docs.mesa3d.org/envvars.html#envvar-MESA_VK_WSI_PRESENT_MODE)
(reference: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/65)

Does enabling vsync fixes stuttering?

Just a update: vsync off (ingame) with vrr=0 (Hyprland) performs exactly the same as: vsync off (ingame) with vrr=1 (Hyprland)
(it vastly reduces stuttering but it's still there when fps < refresh rate)

It seems like Variable Refresh Rate (VRR) in Hyprland doesn't actually adjust monitor's refresh rate in that case? I have no way of verifying this in my panel unfortunately

@ThatOneCalculator If your intermittent stuttering is actually caused by frame drops and not a different bug like fTPM stutter bug in AMD CPUs, I don't think there is much we can do about it until the VRR implementation gets improved:
https://github.com/hyprwm/Hyprland/issues/927
Related issues:

With vrr and atomic modesetting, some cursor plane updates are dropped
https://github.com/swaywm/sway/issues/6832
https://github.com/swaywm/sway/issues/5601
https://github.com/swaywm/sway/issues/5076
RFC: Add zwp_vrr_v1

@ThatOneCalculator Isn't that connected?
https://github.com/hyprwm/Hyprland/issues/1919
Check it with hyprctl keyword debug:overlay true

Great find @grappas!
On my end VRR/vsync seems to be the culprit as the compositor's FPS is correct (debug:overlay=1 + misc:vfr=0):

Great find @grappas! On my end VRR/vsync seems to be the culprit as the compositor's FPS is correct (debug:overlay=1 + misc:vfr=0):

But just to be sure check it CPU bottlenecked (lowest settings possible).

But just to be sure check it CPU bottlenecked (lowest settings possible).

Sure @grappas, I can reproduce your issue by forcing my game to be CPU bound. Let's continue the discussion here: https://github.com/hyprwm/Hyprland/issues/1919#issuecomment-1556268402 (since it's unclear if this PR is about stuttering from VRR or resource starvation as the author isn't replying).

Same here on sway. For me is the only way to smooth run Apex is turn screen mode to Windowed and run sway with -Dnoscanout. Switch to Fullscreen or Borderless causes immediate stuttering. Removing noscanout option completely disables vrr. Really annoying but it works for now. Can someone else check that Windowed mode helps with stuttering?

why not try on -git with tearing?

why not try on -git with tearing?

Can confirm it works but personally not a fan of tearing. Fells pretty stuttery even witn 200+ fps on 144Hz monitor. I'm looking for smooth vrr gameplay, but this game even with regular vsync is kinda of a mess.

I have not found any way to resolve this in Hyprland 🙁
It has the worst stuttering in comparison to Sway, KDE (Wayland) and RiverWM.
However, I have a really good solution for Sway:
There's 2 parts to this problem

Atomic Modesetting causes your mouse's polling rate to change your monitor's refresh rate. Here's is a workaround for Sway (check this comment for Sway 1.9-dev compatible patches).
As a reference, here's the outdated solution to this issue.
Direct scanout causes the monitor to run at max refresh rate, here's a workaround for Sway
Extra: make sure VSync is disabled in-game to avoid having multiple buffers
Extra: try to force enable VRR with kernel boot argument on AMD

I've tried this with a RX 6800 XT + Ryzen 9 5950X (fTPM off) + 1000Hz mouse and confirmed this issue exists in multiple monitors in Arch Linux, Fedora & OpenSuSE Tumbleweed:

AOC Q32G1WG4
MSI MAG27CQ
Alienware AW3821DW

why not try on -git with tearing?

Thanks for the idea but this makes it worse, the stuttering is still there and in-game textures are completely smeared out due to tearing.

@vaxerski
My monitor's built-in FPS counter reports 6 HZ in desktop when VRR is enabled with Sway. However, with Hyprland it's stuck at 120Hz all the time, even when playing games at 80 FPS. What's strange is that the monitor claims adaptive sync is enabled when using Hyprland. I'm guessing something in Hyprland is constantly pushing max FPS to the screen - maybe to make the animations buttersmooth?
I've tried isolating this issue with various combinations of settings to no avail:

misc:vrr 2/1/0
misc:vfr 1/0
misc:no_direct_scanout 1/0
debug:damage_tracking 2/1/0

I'm not sure what else to try, I've back revising this issue once in a while since March of this year (when I started using Hyprland)

what if you enable tearing? without that it will push 2x fps of your game

However, with Hyprland it's stuck at 120Hz all the time,

It's actually a gamescope thing. If you want i.e. 240Hz you want to set -r 480.

Thanks for taking a look guys!

what if you enable tearing? without that it will push 2x fps of your game most likely

My games are GPU bounds
I'm getting stable 80-90 FPS
Enabling tearing gives me the same result as @roman3pm, it's still stuttering since the monitor is stuck at 120 HZ

It's actually a gamescope thing. If you want i.e. 240Hz you want to set -r 480.

I don't use Gamescope since I haven't found any performance difference when it's running in nested mode. Nonetheless I tried gamescope -f -r 120 -- %command% and gamescope -f -r 240 -- %command% but there's no difference, the monitor is still stuck at 120 HZ

@vaxerski
When I say the monitor is stuck at 120 HZ, I mean it. It never dips below 120 HZ in Hyprland.
I find it strange that I can reproduce this issue on 3 different monitors
I'm currently running Arch Linux with pretty much defaults settings everywhere, I only installed MESA drivers, Pipewire, Wireplumber, Pavucontrol, Steam, Halo Infinite, Brave browser & Foot terminal.

Have you tried forcing fps with mangohud?

Have you tried forcing fps with mangohud?

Are you thinking about forcing vsync through MangoHud? Gave this a shot but it made no diference:
# ~/.config/MangoHud/MangoHud.conf

### Vulkan VSync [0-3] 0 = adaptive; 1 = off; 2 = mailbox; 3 = on
vsync=0

### OpenGL VSync [0-N] 0 = off; >=1 = wait for N v-blanks, N > 1 acts as a FPS limiter (FPS = display refresh rate / N)
gl_vsync=1

Considering I have to disable direct scanout in Sway to get the right refresh rate (which I verify with my monitor's OSD), there's probably a similar bug somewhere in Hyprland but I'm not sure how to go about finding it 🙁

To uncap fps without vsync in Apex you should switch mangohud's vsync=1 (means off) and in game switch to triple buffering and maybe include launch command +fps_max 300. It helps a bit if you play with tearing on.
Try to play in windowed mode. I saw some pro player streamers plays in windowed mode in OS Windows too. Something strange with this game.
By the way I think Apex devs should pay attention to this. CS2 runs perfectly smooth without any tinkering at all with vsync off.

To uncap fps without vsync in Apex you should switch mangohud's vsync=1 (means off) and in game switch to triple buffering and maybe include launch command +fps_max 300. It helps a bit if you play with tearing on.
Try to play in windowed mode. I saw some pro player streamers plays in windowed mode in OS Windows too. Something strange with this game.

Apex plays fine without stuttering in KDE fullscreen though.
In hyprland though I still get stuttering.

Updated workaround I found in another issue is to launch gamescope in embedded mode in another tty:
So press Ctrl+alt+F2, then after replacing your monitor dimensions and frame rate:
https://github.com/ValveSoftware/gamescope/issues/995gamescope -W 1920 -H 1080 -r 144 --adaptive-sync -e -f -- steam

Though things seemed less good with a limited frame rate for me so I do:
https://github.com/ValveSoftware/gamescope/issues/995gamescope -W 1920 -H 1080 --adaptive-sync -e -f -- steam

@ParetoOptimalDev Just leave a link to the solution next time instead of making your own half-assed copy & paste with missing details
https://github.com/hyprwm/Hyprland/issues/927#issuecomment-1556270866

@ParetoOptimalDev Next time just leave the link to the workaround instead of making your own half-assed copy & paste with missing details
#927 (comment)

Don't be an asshole for no reason.

I only noticed stuttering in games in 2 situations
If i use gamescope some games like Apex stutters for me
If i have vrr enabled in my monitor the GPU is stuck at 96mhz (linux 6.7.6)
I have a 6700XT and R7 2700X the monitor is a Samsung Odyssey G5 32" 165hz

Not related to Apex Legends specifically but I've been intermittently having this issue on UE5 based games as well.
Occurring in Mortal Online 2 and Gray Zone Warfare. It's most severe when game FPS is lower than my monitor refresh rate (165hz), if I FPS limit a game to 60fps it's practically motion-sickness inducing. Making sure the game's FPS matches or exceeds my refresh rate minimizes the effect but it is still noticeable

Not running -git build but the OpenSUSE TW repo recently updated to 0.42. I can't speak for OP since I don't play Apex Legends but the (mostly UE5 via VKD3D but also happened in BG3 using Vulkan renderer) games that were exhibiting this stuttering for me under wlroots all seem to be fixed now under aquamarine, so it definitely seems to have been a wlroots-specific issue at least in my case.

Closing, then?


Plugins Clarity

Thanks for open sourcing this architecture!
To me it is not clear how Plugins work. Perhaps it could be clarified in the README.
I don't see the PluginFramework package in the project.
I see that there is a builder closure that takes in a flag. Is this builder set by the interactor? Is there a plugin manager instance that gets injected into the interactor and then has that closure exposed to the view? How do we listen to state changes or react to the plugins and where is that setup? How are these plugins introduced into the project SPM?
Sorry if this is not the correct channel to ask questions. Thanks!

I also have the same problem. Where is the PluginFramework package?


feat: add swiping ability for the hybrid listings page on mobile

Pull Request Template
Issue Overview
This PR addresses #133

[ ] This change addresses the issue in full
[x] This change addresses only certain aspects of the issue
[ ] This change is a dependency for another issue
[ ] This change has a dependency from another issue

Description

Add a way to swipe the listings list up or down from the listings hybrid page. This uses the react-swipeable package
Add a way to go back to the hybrid page from either the listings list only page, or the listings map only page
Style the "swipe area"
Create a new layout without the footer and use that layout for the listings page as well as the search-demo page. The footer will likely not be there for mobile and might just be at the end of the listings list for desktop, so it's easier to take it out now

How Can This Be Tested/Reviewed?

Bring up the public site and go to the listings page.
On desktop, verify that the listings page looks the same as before: two columns, the left is the map and is fixed and the right is the listings list and is scrollable.
Open Chrome Developer Tools and go to Toggle Device Toolbar. Pick a mobile device

You should see the listings combined page as above. Verify that you can still scroll through the listings list
Swipe up on the region above the listings list.
You should now just see the listings list page like this
. Verify that you can scroll through the list and still see the swipe region at the top.
Scroll down on the top region to go back to the combined view
Now scroll down from the combined view, and this should take you to just the listings map page which should look like this

Verify that you can still interact with the map by clicking on a pin
Swipe up on the bottom region to go back to the listings combined page

When testing, I am not always able to get the swiping to work. I would prefer to merge this PR and test from a mobile device using the dev page.
Checklist:

[x] My code follows the style guidelines of this project
[ ] I have added QA notes to the issue with applicable URLs
[x] I have performed a self-review of my own code
[x] I have reviewed the changes in a desktop view
[x] I have reviewed the changes in a mobile view
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules
[ ] I have assigned reviewers
[ ] I have run yarn generate:client and/or created a migration if I made backend changes that require them
[x] My commit message(s) is/are polished, and any breaking changes are indicated in the message and are well-described
[ ] Commits made across packages purposefully have the same commit message/version change, else are separated into different commits

Reviewer Notes:
Steps to review a PR:

Read and understand the issue, and ensure the author has added QA notes
Review the code itself from a style point of view
Pull the changes down locally and test that the acceptance criteria is met
Also review the acceptance criteria on the Netlify deploy preview (noting that these do not yet include any backend changes made in the PR)
Either explicitly ask a clarifying question, request changes, or approve the PR if there are small remaining changes but the PR is otherwise good to go

On Merge:
If you have one commit and message, squash. If you need each message to be applied, rebase and merge.

scrolling the listings tab works once and then stops working. the console is emitting these seemingly relevant warnings

scrolling the listings tab works once and then stops working. the console is emitting these seemingly relevant warnings

Thanks for pointing that out, I hadn't seen those warnings since they were hidden by default in Chrome. I made a small change (removing preventScrollOnSwipe: true) and that removes the warnings which makes sense based on the documentation here https://www.npmjs.com/package/react-swipeable. That doesn't fix the issue about the swiping not working the second time around, I am still looking into that but it might be some issue with react.

I think this can be merged in. Chris did a fix for the build error Isaac is referring to, in a separate PR #150.