AppBar has additional space when parameter "primary" is false

I want customize SafeArea above AppBar in my application but can't because there is additional area below when I set a parameter "primary" to false.
Steps to Reproduce

Run flutter create empty_app.
Update AppBar in main.dart:
appBar: AppBar(      title: Text(widget.title),      primary: false,    ),

Actual results:

Expected results:

flutter doctor
[✓] Flutter (Channel master, 1.24.0-8.0.pre.94, on Mac OS X 10.15.6 19G2021 darwin-x64, locale ru-RU)
    • Flutter version 1.24.0-8.0.pre.94 at /Users/sizyikh/Documents/sdk/flutter
    • Framework revision 9470a7e864 (72 minutes ago), 2020-11-04 21:49:59 -0800
    • Engine revision bf259226b2
    • Dart version 2.12.0 (build 2.12.0-21.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/sizyikh/Documents/sdk/Android
    • Platform android-30, build-tools 30.0.2
    • ANDROID_HOME = /Users/sizyikh/Documents/sdk/Android
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 49.0.2
    • Dart plugin version 193.7547
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.50.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (1 available)
    • iPhone 11 Pro Max (mobile) • EB439C15-2FC6-48B2-9B9A-259D82E7D304 • ios • com.apple.CoreSimulator.SimRuntime.iOS-14-0 (simulator)

• No issues found!

Hi @jagrdev
This is expected, you can see the documentation of the primary property for more info. Here is what it says:

Whether this app bar is being displayed at the top of the screen.
If true, the app bar's toolbar elements and [bottom] widget will be
padded on top by the height of the system status bar. The layout
of the [flexibleSpace] is not affected by the [primary] property.

Closing as this is working as intended.


Add post reading time

Expected behavior
User can see an estimated time to read the post.

As I posted in #1094, I'm not sure if this is useful at all.. It would be more useful if it was on the article itself or on the article preview.
See like in medium:


IDENTITY-6318 external bps is not shown for human task approvals In tenant mode

external bps profiles are not shown for human task approvals in user portal for tenants
Lebels
Type: Bug
Priority: Normal
Component/s: workflows
Severity: Major
Estimated Complexity: Moderate
Issue migrated from: https://wso2.org/jira/browse/IDENTITY-6318

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


[GLUTEN-1632][CH]Daily Update Clickhouse Version (20230609)

Auto commit by gluten daily build, please check the build status and merge it if it's green.

no need merge see https://github.com/oap-project/gluten/pull/1895


Is it possible to improve website speed by resizing images after uploading?

Hi,
first: You have developed a very nice theme that I use as a baseline.
I want to know if it is possible to have more versions of images after I upload them as a header in any post. I saw that in the package.json there are several formats defined: xs, s, m, l, .... but I think that they aren't used everywhere in the app.
For example, on my blog at knulst.de, I got several issues with properly sized images as you can see in this lighthouse report
Another post from me which contains several images has this lighthouse report
Is there a way of changing the theme programmatically to support generating more versions of the image AND using the best size for different screens?
I'm not sure if I am doing it wrong. Maybe I upload the wrong images with the wrong sizes or format (For example, I use png instead of webp).
If there is anything I can do I would be happy if you can suggest anything.

Hi,
According to the lighthouse report, the biggest problem in your case is related to the unused Javascript that is loaded by Ghost automatically, most of that code is related to Portal, unfortunatelly I can't do much about it since the theme doesn't have control over that.
As you can see in the hero template, the theme uses the different sizes available for the hero image in the srcset attribute. However, the browser is responsible of choosing the right one based on different factors such as speed connection, window size, pixel density, etc. If the browser already has the biggest image in cache then it will use that one regardless of the suggested sizes, the same happens if you are using a retina screen or if your connection is good enough.
There is in fact an issue with the Unsplash images that are used as feature images, the issue is that Ghost doesn't generate smaller versions of such images, if you want to use them I would suggest to download the image first and then upload it manually instead of just selecting it in the Ghost editor.

Thanks for the answer.
I already optimized some things, used webp images instead of jpg, and try to increase size. Unfortunately, the lighthouse still says that the images are in the wrong format and can be adjusted.
Maybe I try to change the different formats to w300, w400, and w500 to have much smaller steps or test other things.
What I found weird is, is that if I have a look at both images in the report that are marked I can see that the hero image has the src="https://www.knulst.de/content/images/size/w2000/2022/09/image--65-.webp" but the article image in the bottom uses the src="/content/images/size/w600/2022/09/image--56-.webp
So one is using w2000 the other one uses w600 and I do not understand why I can have them aligned to use the appropriate image.


sharding feature v1.0 for ClusterSynchroManager

What type of PR is this?
/kind feature

What this PR does / why we need it:
Implement the basic sharding feature of the ClusterSynchroManager
Which issue(s) this PR fixes:
Fixes #599
Special notes for your reviewer:
This is a PR for the V1.0 version of the ClusterSynchroManager sharding feature, based on the latest design version discussed previously
Does this PR introduce a user-facing change?:

Rearranged the logic（pseudocode）：
func reconcileCluster (){
   // To ensure coherent logic, we can add prejudgements in reconcileCluster
    if status.sharding == nil && spec.sharding != name{
        return
    }

    if status.sharding != nil && status.sharding != name {
        return
    }

    // The cluster will be in the following state：
    // spec.sharding == name and (status.sharding ==nil or status.sharding == name)
    // spec.sharding != name and status != nil and status.sharding == name

    if delele {
        do_delete....
        return
    }

    if spec.sharding != name {
        unmanage_and_set_nil()
        return
    }

    set_sharding_name()
    ...
}

It might be useful.

Rearranged the logic（pseudocode）：
func reconcileCluster (){
   // To ensure coherent logic, we can add prejudgements in reconcileCluster
    if status.sharding == nil && spec.sharding != name{
        return
    }

    if status.sharding != nil && status.sharding != name {
        return
    }

    // The cluster will be in the following state：
    // spec.sharding == name and (status.sharding ==nil or status.sharding == name)
    // spec.sharding != name and status != nil and status.sharding == name

    if delele {
        do_delete....
        return
    }

    if spec.sharding != name {
        unmanage_and_set_nil()
        return
    }

    set_sharding_name()
    ...
}

It might be useful.

Thanks for the suggestion, I will improve it over the weekend


Implement implicit grant so that we don't have to authorize every 60 minutes?

Feature Description:
Insert your description here
Additional context
If possible, add some context like how this feature can help what you're making

Spotify recently implemented a new auth method called Authorization Code Flow with Proof Key for Code Exchange (PKCE) which allows users to auth once then we, as devs, can refresh that token whenever we like. I recently implemented this on another project of mine, Genify and have thought about coming back to this project to add it and fix all the other problems

Hi,
Sorry for the delay. The package is updated to v2.0 where it contains PKCE auth which allows for single auth from the user. Try it out since it's a complete rewrite, and it will fix the  INVALID_CLIENT: Invalid redirect URI on authentication. issue :)


Generalize the way to attach a reality data by adding a RealityDataSourceKey to ContextRealityModelProps.

This is a foward port from 2,19.x branch (PR - #Reality data connection #2425)
Generalize the way to attach a reality data by adding a RealityDataSourceKey to ContextRealityModelProps.
We will then resolve at runtime tilesetUrl from this key instead of using tilesetUrl/orbitGtBlob harcoded value for which the host and protocole could have changed after the attachment creation in iModel.
This can be use to attach OPC (instead of using orbitGtBlob) or any other reality data that was using tilesetUrl property.
This is a non-breaking change as the new property is optional but will take precedence over tilesetUrl and orbitGtBlob if present.
This is only an API change for now but might result into an iModel schema change if prove useful.

@Mergifyio update


About the lstm motion model.

Hi，
Thanks for sharing your wondulf work. Is the lstm model retrained by you? Or do you use the pre-trained model provided by DEFT?
Have a nice day ):

hi~
I directly use the pre-trained model provided by DEFT.

Thanks.


Cut version 5 and 🚢

I've created a v5 milestone. We shouldn't let breaking changes fester in master too long before releasing a release candidate, but while we're at it let's sneak some more stuff in!
I've identified five issues that I think should be resolved for v5; take it up in those issues if you think they should be descoped.
With this issue I'm opening the floor to any other suggestions for issues to be added to the v5 milestone.
Let's draw a line under planning any more features to v5 by, say, Wednesday 18th November (that is to say, a freeze on deciding what will go into v5, not doing it obviously), if only to stop it from bloating too much.

Yeah, I like the idea of a milestone but I'm not sure we need any specific date to plan on. We can evaluate issues for version 5 on a case-by-case basis, and if anyone feels we're waiting too long, we can talk about it.
This is also a great issue to discuss anything that's missing (changelog entries, for example). Thanks T-Swizzle.

So I think we're in a good spot now to release a build. I know we still have 5.0.0 issues open, but many of them are either longer-term or could be done without breaking changes. It's been a while since we made a release and I don't want us to get to too far away from the existing release. Does anyone have anything they want to make sure gets in this release? /cc @Moya/contributors

I think some protocols could be still be renamed to match the new ones that remove the Moya from their name
MoyaTarget -> Target
MoyaResquest -> Request
Maybe change the naming of some protocols to include Type or able at the end like a lot of swift protocols do. Would clearly show the line of separation between what is and isn't a protocol. Right now something like MoyaTarget might be confusing since it is not actually a target but a protocol that targets need to implement. TargetType might make more sense for users.

Also if Endpoint is never supposed to be subclassed we could mark it as final. Anyone have a use case where Endpoint would need to be subclassed?

Yes. These all sound amazing.
Endpoint should never be subclasses, so making it final is :100: I'll try and get to these changes this weekend.

OK, anything else? I'll cut a release tomorrow morning if that's all.

Cool cool, this is released in https://github.com/Moya/Moya/commit/117af026df08d006aaac317c92294ebb9d5dffd1 with the podspec at https://raw.githubusercontent.com/CocoaPods/Specs/e0bf8b03d24b0b23829d8667298591ef5a431dfd/Specs/Moya/5.0.0/Moya.podspec.json .
So I'll close the issue and migrate the 5.0.0 milestone to a the "longterm" one.


AMBARI-25668 Integrate the Apache released HBase as back store of Ambari Metrics

What changes were proposed in this pull request?
Since the non managed HDP tarballs are not accessible anymore publicly AMBARI-25599 was an attempt to replace those dependencies of Ambari Metrics with the open source versions. After AMBARI-25599 the Apache version of HBase (  https://archive.apache.org/dist/hbase/2.0.2/hbase-2.0.2-bin.tar.gz  ) does not starting up and failing with:
[root@c7401 ambari-metrics-collector]# less hbase-ams-master-c7401.ambari.apache.org.log
2021-02-10 08:19:01,953 ERROR [main] master.HMasterCommandLine: Master exiting
 java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
 at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<init>(DefaultMetricsSystem.java:38)
 at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.<clinit>(DefaultMetricsSystem.java:36)
 at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:159)
 at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
 at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
 at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:149)
 at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2964)
 Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration.Configuration

This error was caused by the lack of a few jar files.
This modification includes copying the missing jar files to the proper location. After this modification the Ambari metrics can start if the Metrics Service operation mode is embedded.
How was this patch tested?
Manual tests

retest this please

retest maven build


Fixed "Cannot read property 'onDestroy' of undefined"

Happens when unregistering plugin in Angular on production build

The error breaks the whole app for me after it happens, so really hope this gets merged and deployed to NPM soon so as to stop using ugly workarounds. @benmccann could you take a look?

@Svetomechc you'll have to ask someone else to deploy to npm. I've never used this plugin before and don't have permission

@benmccann who has them?
Also, I forgot to include my change in source #185
The file I changed in this PR is the result of a compilation I guess?

Yeah, the PR should include the change only to the source. We'll compile as part of the release process. I removed the last commit. Can you send a new PR?
You can ask on the #dev Slack channel https://www.chartjs.org/docs/latest/developers/contributing.html

@benmccann okay. #186


Cache functions with non-hashable arguments

Goal
I want 'RecursionVisualizer' to work for all sorts of recursive functions, even if they have non-hashable arguments such as lists.
The Issue
For example, consider this implementation of the 0-1 knapsack problem:
@RecursionVisualizer()
def knapsack(capacity, weights, values, i):
  if i == 0 or capacity == 0:
    return 0
  if weights[i-1] > capacity:
    return knapsack(capacity, weights, values, i-1)
  return max(values[i-1] + knapsack(capacity-weights[i-1], weights, values, i-1),
             knapsack(capacity, weights, values, i-1))

which could be called by writing
weights = [10, 20, 30]
values = [60, 100, 120]
capacity = 50

knapsack(capacity, weights, values, len(values))

With the current 'RecursionVisualizer' implementation, this outputs the error
Output exceeds the [size limit](command:workbench.action.openSettings?[). Open the full output data [in a text editor](command:workbench.action.openLargeOutput?fecc58be-ddca-464d-a168-fa0cdafcf410)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb Cell 12 in <cell line: 5>()
      [2](vscode-notebook-cell:/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb#X33sZmlsZQ%3D%3D?line=1) values = [60, 100, 120]
      [3](vscode-notebook-cell:/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb#X33sZmlsZQ%3D%3D?line=2) capacity = 50
----> [5](vscode-notebook-cell:/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb#X33sZmlsZQ%3D%3D?line=4) knapsack(capacity, weights, values, len(values))

File ~/Desktop/projects/recursion-visualizer/recursion_visualizer/recurse.py:105, in RecursionVisualizer.__call__.<locals>.memoized_func(*args, **kwargs)
    103 self.depth += 1
    104 # if args not in self.cache:
--> 105 self.cache[args] = func(*args, **kwargs)
    106 self.depth -= 1
    108 # record node's output, finish time, history, and edge_label

/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb Cell 12 in knapsack(capacity, weights, values, i)
      [5](vscode-notebook-cell:/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb#X33sZmlsZQ%3D%3D?line=4) if weights[i-1] > capacity:
      [6](vscode-notebook-cell:/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb#X33sZmlsZQ%3D%3D?line=5)   return knapsack(capacity, weights, values, i-1)
----> [7](vscode-notebook-cell:/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb#X33sZmlsZQ%3D%3D?line=6) return max(values[i-1] + knapsack(capacity-weights[i-1], weights, values, i-1),
      [8](vscode-notebook-cell:/Users/eitanturok/Desktop/projects/recursion-visualizer/index.ipynb#X33sZmlsZQ%3D%3D?line=7)            knapsack(capacity, weights, values, i-1))

File ~/Desktop/projects/recursion-visualizer/recursion_visualizer/recurse.py:105, in RecursionVisualizer.__call__.<locals>.memoized_func(*args, **kwargs)
    103 self.depth += 1
    104 # if args not in self.cache:
--> 105 self.cache[args] = func(*args, **kwargs)
    106 self.depth -= 1
...
--> 105 self.cache[args] = func(*args, **kwargs)
    106 self.depth -= 1
    108 # record node's output, finish time, history, and edge_label

TypeError: unhashable type: 'list'

The last line of this error message says: TypeError: unhashable type: 'list' because the knapsack function had the lists weights and values.
What I've Tried
I currently have two workarounds for this:

Simply make all data structures hashable. In this case, I could cast weights and values to tuples and everything would work fine:

weights = tuple([10, 20, 30])
values = tuple([60, 100, 120])
capacity = 50

knapsack(capacity, weights, values, len(values))

results in no errors.
2) I could rewrite knapsack to have a wrapper function with the unhashable weights and values as it arguments and an internal function that simply has the index i and capacity as its arguments. This internal function is where the recursion is actually performed and because it is within the same scope of the outer wrapper function, it still has access to the weights and values lists without actually having these unhashable lists as arguments to its function.
def knapsack_wrapper(capacity, weights, values):
    "wrapper function "

    @RecursionVisualizer()
    def knapsack(capacity, i):
        "the actual function"

        if i == 0 or capacity == 0:
            return 0
        if weights[i-1] > capacity:
            return knapsack(capacity, i-1)
        return max(values[i-1] + knapsack(capacity-weights[i-1], i-1),
                   knapsack(capacity, i-1))

    return knapsack(capacity, len(weights))

This code works without any issues.
Moving Forward
Although these are both valid workarounds, I'm still looking for a more general purpose way to get around this problem.

Memoization recipe that allows non-hashable arguments recommends implementing a custom hash function that uses an object's __repr__ for hashing.
However, this is inefficient and still poses various issues. Several commenters on this post point out that even with hashing an object's `repr'  you're not guaranteed that the hash is valid, since a dictionary of sets (for example) could still print the values in an arbitrary order.

Github user @slowli creates a gist which tries to turn non-hashable arguments into hashable arguments with the lines:
mapargs = lambda *args: args

def cached_fn(*args):
    mapped_args = mapargs(*args)
    if not mapped_args in cache:
        cache[mapped_args] = fn(*args)
    return cache[mapped_args]

Yet all mapargs does is cast args to a tuple which still is not helpful if the values in the tuple are unhashable, e.g. lists. I even tried implementing this and like I thought, it did not resolve the error.

I'm thinking of just writing some code to automatically cast lists to tuples in RecursionVisualizer. This has several advantages:

This fix is quite easy to implement
In the recursive functions RecursionVisualizer is likely to encounter, the values we change are likely going to be pointers or integer values. The lists that we recursively iterate through don't usually change. So I don't think creating an immutable tuple will ever affect the performance of 99% of recursive functions used with RecursionVisualizer.


classSize = sizeof(UBoolProperty); Get size error

BUT WHY

GET SIZE IS 144???

All I can recommend is you make sure you know the difference between hex and decimal values for offsets, and double check everything with the C macro offsetof to make sure you have all your class alignments correct for you compiler.

Okay thanks

I got this same exact error. I ended up hard-coding the size of UBoolProperty to 140 lol. Surely this has something to do with the compiler guessing the sizeof UBoolProperty incorrectly.

If its a compiler issue you might have to manually set the right class alignment for your project, can debug with sizeof and the offsetof macro which you can do yourself easily.
https://docs.microsoft.com/en-us/cpp/preprocessor/pack?view=msvc-170#examples


"navbar.logo.alt" is not allowed to be empty

🐛 Bug Report
When I use an empty string for navbar.logo.alt in my config, I get the following validation error:

"navbar.logo.alt" is not allowed to be empty

However, since the logo in my navbar is redundant with the actual project name next to it, I don't want screen readers to read out anything for the logo - it would just duplicate the project name.
Have you read the Contributing Guidelines on issues?
I did now.
To Reproduce
(Write your steps here:)

Create a new Docusarus v2 project.
Set navbar.logo.alt in themeConfig in docusaurus.config.js to ''.
Run npm start.

Expected behavior
The website to start just fine.
Actual Behavior
You get the following output:
A validation error occured.
The validation system was added recently to Docusaurus as an attempt to avoid user configuration errors.
We may have made some mistakes.
If you think your configuration is valid and should keep working, please open a bug report.

ValidationError: "navbar.logo.alt" is not allowed to be empty

Your Environment

Docusaurus version used: Alpha 61 of v2
Environment name and version (e.g. Chrome 78.0.3904.108, Node.js 10.17.0): Node v12.18.2
Operating system and version (desktop or mobile): Ubuntu 20.04

Reproducible Demo
Just the default generated template, with the alt changed.

Hi,

In my opinion it is better that the screen reader reads your alt text vs the image filename

@slorber That is about leaving out the alt text altogether :) I want to specify an empty alt tag, i.e. <img src="logo.svg" alt=""/>.

I see.
Do you have a link from an authority that claims alt="" is a recommended practice in some cases?

@slorber Just added it to my previous comment! :)

thanks, will accept a PR (just need .allow('') in theme validation) or will make one soon


Fix missing transport Cmake file in FreeRTOS console

Fix missing libraries/abstractions/transport/CMakeLists.txt file by renaming it to libraries/abstractions/transport/transport_interface_secure_sockets.cmake
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/bot run checks

/bot run checks


Use badges to redirect to a release

Love this automation! Thanks @gusinacio & @carlosvdr
This change the release process and directly affects very important indexer docs referenced every day, so would great to get more buy-in from everyone before merging this type of change in the future.

Hey, thanks for letting me know about this. It became a big issue with confused indexers running older versions. At the same time, we got a thumbs-up from @trader-payne in Discord so I thought it would be good to merge.
Next time I'll bring this for more people to discuss.

@fordN we've been talking about an automated way of pointing to the Qm hashes and versions since two years now, and even though we had discussions about ENS or using data edge subgraphs for this, nobody took actions. This is what we've come up with in the interim. I think it's a great feature and everyone I've asked so far seems pretty happy with it.
The only thing we have to keep in mind going forward is to make sure we don't create releases until things are production ready. It was the same case before anyway, so nothing really changed if you ask me.

Right, I'm not commenting on the solution. I love the automation. ❤
It's just something we now have to be aware of in process (changes process and assumptions a bit), so we all need to be aware of it before executing the change.

@trader-payne Which I clearly stated in my original message, so I don't get why you are framing my comment as being against automation or against the solution itself.

Makes sense @fordN, my bad! I'm half responsible for this merge as I asked Gustavo to do it once I saw easy it was to solve the problem 😬 But yeah you're right!


bug

VS Code Version:
OS Version:

Steps to Reproduce:

Does this issue occur when all extensions are disabled?: Yes/No

Uploading Xorg.1.log…

/needsMoreInfo


Update README.md

Fix simple typo

Thanks! The README.md itself is generated from the one under doc/ (by running sbt tut). This one should be modified. (Admittedly, I can take care of moving your change there...)

The PR #234 replace this one

Close this PR in favor of #234


[PowerRename] Invalid characters for filenames causing rename to fail

Environment
Windows build number: Microsoft Windows [Version 10.0.18363.836]
PowerToys version: 0.18.1
PowerToy module for which you are reporting the bug (if applicable): PowerRename

Steps to reproduce
Try to rename a file with a filename containing one of the invalid characters which are /?:*"<>|

Expected behavior
PowerRename removes the invalid characters or notifies the user.

Actual behavior
PowerRename tries to rename the file with invalid characters and gets rejected.

Screenshots

Windows Explorer shows the below balloon tip when the user tries to use "/ \ : * ? " < > |" in the file/folder name.

We could modify the UI to have an error column to let the user know why the item cannot be renamed.
Although - there are other cases such as renaming a file or folder to a reserved name such as "CON" which isn't handled before the operation begins.  So this doesn't stop the user from other invalid names - just the most common cases.

Having a warning to inform that the user is typing invalid characters seems a good idea even if it will not cover all the cases.
The problem is that we cannot do it in real time while the use is typing if the regex option is on.
I would suggest that we show the warning only when regex is not selected.

Having a warning to inform that the user is typing invalid characters seems a good idea even if it will not cover all the cases.
The problem is that we cannot do it in real time while the use is typing if the regex option is on.
I would suggest that we show the warning only when regex is not selected.

Special characters and regex is indeed a complicated combo. But we can check the output string of every renamed file. If that contains any forbidden characters, we can show that back in the list.
Maybe we can do this with #1853.

Having a warning to inform that the user is typing invalid characters seems a good idea even if it will not cover all the cases.
The problem is that we cannot do it in real time while the use is typing if the regex option is on.
I would suggest that we show the warning only when regex is not selected.

Special characters and regex is indeed a complicated combo. But we can check the output string of every renamed file. If that contains any forbidden characters, we can show that back in the list.
Maybe we can do this with #1853.


Finish threads, queues and processes excercise assignment

"Have another thread prompting the user for numbers and feeding the responses into the queue. Think about how to terminate all threads cleanly"
https://github.com/jvivian/10k_exome_project/blob/master/Code/mptest_3.py
A common bug that I dealt with was that you need to leave the parentheses off when assigning a function as the target of a thread.
In this case I used the "sentinel" method we talked about to end the program at the user's behest, while maintaining the ability to run N jobs.
I didn't make use of thread.join here, which indicates to me I did something incorrect / inelegant (most likely the use of os_exit), but I figured that the it would be a feature for the job thread to hang when there are no more items in the queue, then resume immediately upon the entry of a new number by the user.
Not that it matters, but there didn't seem to be an easy way to avoid the the output from the job thread overrunning the raw_input request on screen. I piped away the stderr from the subprocess call to make it a little more legible.

There's no way around Thread.join() for a clean exit. sys.exit should only be used in response to exceptional conditions, not the normal flow of a program.
The queue items should be integers. User input should be validated early and then converted to more specific and richer types. User-provided strings should not leech into the system too deeply.
With user input, there is no need to populate the queue anymore.

Hey Hannes,
CJ and I worked on the problem together and we tried to address all of your points.  Let us know if we can improve anything.  https://github.com/jvivian/10k_exome_project/blob/master/Code/mptest_3.py

Entering S does not quit the program. I have to enter it twice.
The handler's while condition is a little convoluted. If any string terminates the loop, then why test for "S"?  I recommend using None or -1 as the sentinel. And instead of S followed by Enter, I would trigger the exit code path if the user does not enter anything, just hits Enter. But that's not so important.
The catch-all except statement should be more specific, if it is needed at all. You don't want to catch any exception, just the one you are expecting, which is ValueError, I believe.
You should not use PIPE with subprocess.call(). See https://docs.python.org/2/library/subprocess.html#using-the-subprocess-module
Use check_call() instead of call().
For bonus points, but not trivial: Ctrl-C currently does nothing. Try to make it exit the program immediately.
More bonus points: If an exception occurs in a handler, make the program exit immediately.

When we discussed sentinels I thought the idea was that each thread would receive it's own sentinel before shutting down -- in this case it was intentional that sending one sentinel would shut down one thread, allowing the other thread to continue working until it receives one as well.   In this case, I've changed the code so that "Enter" will signal the closure of all threads (letting ones that are working finish) and that entering a "-1" will close one thread at a time.
Fixed.
I used it to remove clutter from the screen, but I've reverted.
Fixed.
I tried to implement this (if you look at the commented code), but couldn't get the class "Worker" to work with the the KeyboardInterrupt except statement, it seemed that t.join() wasn't blocking so the program exited immediately.  I was using this site as a reference.
If an exception occurs in the process of calling a handler the program exits immediately.

In a real world program I would separate the user input and error checking into a separate function. That function should print an error message on invalid input, but otherwise ignore the input. It should not exit the program! The q.put(int(val)) is what irks me because it combines input validation logic with queueing logic. Those should be separate.
Anyways, good work. Closing the issue.


integrate devtools by default

Current dependencies on/for this PR:

main

PR #6

PR #7

PR #8   👈

This comment was auto-generated by Graphite.


VLC Buffer Broken

When trying to use VLC as the buffer no stream works. It just gives an error.
2022-10-22 07:06:32 [Threadfin] Buffer:                 true [vlc]
2022-10-22 07:06:32 [Threadfin] Buffer Size:            512 KB
2022-10-22 07:06:32 [Threadfin] Channel Name:           ABC
2022-10-22 07:06:32 [Threadfin] Client User-Agent:      Lavf/58.12.100
2022-10-22 07:06:33 [Threadfin] Streaming Status:       Playlist: ipt - Tuner: 1 / 2
2022-10-22 07:06:33 [Threadfin] VLC path:               /usr/bin/cvlc
2022-10-22 07:06:33 [Threadfin] Streaming URL:          https://xxxx
2022-10-22 07:06:33 [Threadfin] VLC:                    Processing data
2022-10-22 07:06:33 [Threadfin] Streaming Status:       Receive data from VLC
2022-10-22 07:06:33 [Threadfin] Backup Channel URL:      https://xxxx
2022-10-22 07:06:33 [Threadfin] VLC path:               /usr/bin/cvlc
2022-10-22 07:06:33 [Threadfin] Streaming URL:          https://xxxx
2022-10-22 07:06:33 [Threadfin] VLC:                    Processing data
2022-10-22 07:06:33 [Threadfin] Streaming Status:       Receive data from VLC
2022-10-22 07:06:33 [Threadfin] [ERROR] VLC error (Streaming was stopped by third party transcoder (FFmpeg / VLC)) - EC: 1204
2022-10-22 07:06:33 [Threadfin] Streaming Status:       Client has terminated the connection
2022-10-22 07:06:33 [Threadfin] Streaming Status:       Channel: ABC (Clients: 0)
2022-10-22 07:06:33 [Threadfin] Streaming Status:       Channel: ABC - No client is using this channel anymore. Streaming Server connection has ended
2022-10-22 07:06:33 [Threadfin] Streaming Status:       Playlist: ipt - Tuner: 0 / 2
2022-10-22 07:06:33 [Threadfin] [ERROR] VLC error (Streaming was stopped by third party transcoder (FFmpeg / VLC)) - EC: 1204```

Unable to replicate. Mine is working fine with VLC

So I actually also have this problem. But I dont believe it is an issue the threadfin.
This occurs when I have transcoding capabilities enabled in jellyfin. So I believe jellyfin tries to transcode the stream and that causes the connection to terminate somehow.
I have had to just completely disable the buffer or disable the ability to transcode anything in jellyfin.

Ah yes the ole double buffer haha. Jellyfin doesnt have a way to tell it NOT to transcode either which sucks

I am using Plex to test this and its working. Can you test with Plex? This could just be a Jellyfin problem. I abandoned Jellyfin like a couple months ago because of all the glaring issues along with their reluctance to properly update Roku. They denied a ton of my PR's for Roku

Now that you mention it, I actually gave Plex a trial run recently and the buffer seemed to work fine for me. But recently switched back. Plex doesnt allow for a non-home user to access the "LiveTV" portion of a Plex server unfortunately which was a deal breaker for me.

Im in the same boat as you. What I did was make a generic Live TV user with a pin that would change each month

Still the same issue for me.
2022-10-27 14:59:45 [Threadfin] Buffer Size:            512 KB
2022-10-27 14:59:45 [Threadfin] Channel Name:           ABC
2022-10-27 14:59:45 [Threadfin] Client User-Agent:      Lavf/58.12.100
2022-10-27 14:59:46 [Threadfin] Streaming Status:       Playlist: ipt - Tuner: 1 / 2
2022-10-27 14:59:46 [Threadfin] VLC path:               /usr/bin/cvlc
2022-10-27 14:59:46 [Threadfin] Streaming URL:          https://xxxx
2022-10-27 14:59:46 [Threadfin] VLC:                    Processing data
2022-10-27 14:59:46 [Threadfin] Streaming Status:       Receive data from VLC
2022-10-27 14:59:46 [Threadfin] Backup Channel URL:      https://xxxx
2022-10-27 14:59:46 [Threadfin] VLC path:               /usr/bin/cvlc
2022-10-27 14:59:46 [Threadfin] Streaming URL:          https://xxxx
2022-10-27 14:59:46 [Threadfin] VLC:                    Processing data
2022-10-27 14:59:46 [Threadfin] Streaming Status:       Receive data from VLC
2022-10-27 14:59:46 [Threadfin] [ERROR] VLC error (Streaming was stopped by third party transcoder (FFmpeg / VLC)) - EC: 1204
2022-10-27 14:59:46 [Threadfin] Streaming Status:       Client has terminated the connection
2022-10-27 14:59:46 [Threadfin] Streaming Status:       Channel: ABC (Clients: 0)
2022-10-27 14:59:46 [Threadfin] Streaming Status:       Channel: ABC - No client is using this channel anymore. Streaming Server connection has ended
2022-10-27 14:59:46 [Threadfin] Streaming Status:       Playlist: ipt - Tuner: 0 / 2
2022-10-27 14:59:46 [Threadfin] [ERROR] VLC error (Streaming was stopped by third party transcoder (FFmpeg / VLC)) - EC: 1204```

@Wmartin417 are your running Threadfin via docker?

@Wmartin417 are your running Threadfin via docker?

Yes, I am! Have everything running in docker.

Hmmm...
I wonder why I'm getting that error then.

When I manually run the command via the container I get this error:
vlc: unknown option or missing mandatory argument `--sout'

@Wmartin417
What command are you using to call VLC in threadfin?
Default?

@Wmartin417 What command are you using to call VLC in threadfin? Default?

Yeah, the default.

Just to rule this out, can you do it not via docker? Maybe locally? I want to see if this is a docker issue

Please try using 0.9.14

Same error for me on JF and plex, unfortunately.
2022-10-28 17:03:59 [Threadfin] [ERROR] VLC error (Streaming was stopped by third party transcoder (FFmpeg / VLC)) - EC: 1204

ok looks like 0.9.17 has the fix you need

You are a legend. Works perfect on both JF and Plex for me. Thank you so much for this.

Glad I could help!


[CVE fix]: Upgrade ACN 1.5.x to go v1.22.7

Reason for Change:

Issue Fixed:

Requirements:

[x] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] relevant PR labels added

Notes:

/azp run Azure Container Networking PR

/azp run NPM Conformance Tests

/azp run NPM Scale Test

/azp list

/azp run NPM Conformance Tests

i'm not going to leave the same comment on every line but it needs to be fixed everywhere

I thought the CVE fixes are in go v1.22.7. cc @miguelgoms for clarification

i'm not going to leave the same comment on every line but it needs to be fixed everywhere

I thought the CVE fixes are in go v1.22.7. cc @miguelgoms for clarification

@aggarwal0009 that's correct. by specifying ONLY 1.22, you will get the latest patch of 1.22.x which is currently 1.22.8.
The only place we need to explicitly say "minimum of 1.22.7" (and should actually say 1.22.8, since that is the latest release), is in the go.mod

i'm not going to leave the same comment on every line but it needs to be fixed everywhere

I thought the CVE fixes are in go v1.22.7. cc @miguelgoms for clarification

@aggarwal0009 that's correct. by specifying ONLY 1.22, you will get the latest patch of 1.22.x which is currently 1.22.8. The only place we need to explicitly say "minimum of 1.22.7" (and should actually say 1.22.8, since that is the latest release), is in the go.mod

Updated.

/azp run Azure Container Networking PR

/azp run NPM Scale Test

/azp run NPM Conformance Tests


AbstractController allow render template with FormInterface

With Symfony 6.2, we can render a template with the following code:
$form = $this->createForm(MyType::class, $data);
return $this->render('my_template.html.twig', [
    'form' => $form,
]);

But psalm complain about this.
Symfony: Create a form view for passing to template

The error comes from the following function:
protected function renderView(string $view, array $parameters = []): string

When used, this function check if one of the given parameters is an instance of FormInterface and if match call the function FormInterface::createView().

That's weird. I will have some time on Friday to check this out, I don't see why it would happen.


Rename CONDUCT.md to CODE_OF_CONDUCT.md

Refs: https://github.com/Homebrew/brew/commit/a9f5c175c72c24ae13f3ffd24552a81c1c7f118f
This allows Github to detect that we have a code of conduct.

https://github.com/caskroom/homebrew-cask/community

Should we add the code of conduct to the sync script?

Should we add the code of conduct to the sync script?

Yes.

Done.

Should we add the code of conduct to the sync script?

It seldom changes. We might add the COC to the other repos, but adding it to the sync script is unnecessary.

(Should have refreshed the page before replying)
It’s fine, then, if it’s already done.


Fork API integration

As I can see, this lib cannot work with Fork API. E.g. it calls clear directly, so it'll lose scope.

Any ideas on how to do it indirectly and avoid forcing users to do it themselves?

I don't understand why we should call clear on init, but maybe we can postpone in until first interaction with the state?

In the current implementation, history always contains at least 1 record, and this record is the initial state of passed source. Probably can rewrite it to combine($source, $history, ...)tho


typo: fix commented example of async locale load

Thank you so much for this template, really makes life easy and is helping me get used to SvelteKit :)
I think this might be a tiny typo, so here's a small PR

Great catch, thanks! 🙇


[PROBLEM] Excel load

Function:
`
if($request->hasFile('archivo')){
		$path = $request->file('archivo')->getRealPath();

		$data = Excel::load($path, function($reader){})->get();

`
The following error appears:
Call to undefined method Maatwebsite\Excel\Facades\Excel::load()
I followed the installation steps but I do not recognize any function (load, create, etc)
I need help, urgently!
Thank you

Thanks for submitting the ticket. Unfortunately the information you provided is incomplete. Before we can pick it up, please check (https://github.com/Maatwebsite/Laravel-Excel/blob/3.0/.github/ISSUE_TEMPLATE.md) and add the missing information. Filling out the issue template is required as stated in the template.
To make processing of this ticket a lot easier, please make sure to check (https://laravel-excel.maatwebsite.nl/docs/3.0/getting-started/contributing) and double-check if you have filled in the issue template correctly. This will allow us to pick up your ticket more efficiently. Issues that follow the guidelines correctly will get priority over other issues.

I am facing the same issue. I think there is some issue with Laravel 5.6 and this package of version 3

Duplicate #1573
Please make sure you read the upgrade guide: https://laravel-excel.maatwebsite.nl/docs/3.0/getting-started/upgrade

Is there any way to use 2.1 version with Laravel 5.6? I really need import functionality.

No.

What the best option in this case?

Are we need to wait, until version 3.1 for import functionality? or are there any option?


Metallicness still acting strangely

While the roughness is looking very good now, it seems like there's still something odd about metallicness. For one, it turns the albedo map almost pitch black now, and it still has that major sparkly look to it. It probably looks way more overwhelming since it's blooming, but still it's not entirely the metallic outlook other PBR applications seem to give out.
And while I'm at it, this is a bit unrelated but I couldn't help but notice, with HDR rendering enabled all the lasers, particles, lightsabers, etc. look faded and washed out. A bit too transparent and unsaturated, I think. I could take a guess and say it's because of the linear space textures in srgb space, so would there be any way to connect these effects with SP textures?

My answer to #55 probably applies here as well. But I do want to ask what kind of indirect lighting do the applications you're comparing it with use? I do know that without good indirect lighting metallic materials can look kinda rubbish. (And until there is something to bake indirect lighting for maps SP's SWBFII's indirect lighting will definitely fall in the "bad" basket.)

And while I'm at it, this is a bit unrelated but I couldn't help but notice, with HDR rendering enabled all the lasers, particles, lightsabers, etc. look faded and washed out. A bit too transparent and unsaturated, I think. I could take a guess and say it's because of the linear space textures in srgb space, so would there be any way to connect these effects with SP textures?

Actually you just discovered a pretty major bug. You see when HDR rendering is active all relevant vertex colors and textures are treated as being sRGB compressed and are put back into a linear space before being used. For most things this actually produces correct and reasonable results, for others (like stock normal mapped surfaces which are drawn in a, by modern standards, unconventional way) it doesn't. However particles typically responded well to this.
So you saying you were seeing washed out particles didn't sound right. I quickly tested it and agreed with your assessment. After some digging I found the cause. SWBFII normally halves the brightness of everything it renders and then when it renders it's light bloom it corrects the brightness to what it should be, and adds the bloom on top. When SP does HDR rendering this scale is forced to 1.0 (no change).
Due to an oversight on my part it seems like particles were not having this scale forced to 1.0 as they should be, resulting in every particle being drawn at half brightness. Once I knew the cause it was an easy fix and it'll be in the next release a86d3ee50c3b4ba3a91cd253037479cb3ce43d37.
To actually answer your question though, yes it would be possible and I've actually considered adding an particle_emissive rendertype for custom materials so modders could have greater control over which particles become subject to bloom.

Oooh well that is a good question. I'm not a programmer so I honestly couldn't tell about indirect lighting and whatnot, but if it's any indication, I've been using that web tool you linked before for reference and Materialize to actually work with materials. They seem to give consistent results in relation to each other.


Improve deployment documentation for bun runtime

Describe the feature
To build a project and run it properly with bun run .output/server/index.mjs, one has to either set the nitro preset to bun with NITRO_PRESET=bun or modify the nitro config in nuxt config:
export default defineNuxtConfig({
  devtools: { enabled: true },
  nitro: {
    preset: 'bun',
  }
})

However, this is not well documented in the Deployment section, which may introduce some confusion e.g. https://github.com/oven-sh/bun/issues/7142.
Additional information

[X] Would you be willing to help implement this feature?
[ ] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

We don't mention Bun at all on that page, but instead link to the Nitro docs for more info:

In addition to Node.js servers and static hosting services, a Nuxt 3 project can be deployed with several well-tested presets and minimal amount of configuration.
...
🔎 Check the Nitro deployment for all possible deployment presets and providers.


Unify auth flow to automatically redirect users from the apps/new deeplink

this removes the step to go to the homepage and when a user has a deeplink from an app we directly redirect the user to the authentication.

We don't need to do the change in getUser though we can, because the auth call would set the session ID.
the idea was that the handlers redirect to /{backend}/authto authenticate the user thus everything would be the same and only the backend can take care of authentication in that request.

This is also because I wanted the deeplink to /apps/new automatically redirect the user to the alby oauth screen.


Add taget blank

@goodtoseeu57
What's the reason why? Especially since this would be the only link with this


Display stats for the last 7 days

In mvcfamilyapp20191103

Yes, I've got it resolved and working!!!


Error when setting up, even with example data

I tried to setup with my address and failed. But even when entering the example data from the docu into my configurtation.yaml, I get the following error after restarting HA:
Logger: custom_components.aha_region
Source: helpers/update_coordinator.py:197
Integration: aha region ([documentation](https://github.com/flabbamann/aha_region), [issues](https://github.com/flabbamann/aha_region/issues))
First occurred: 06:32:15 (1 occurrences)
Last logged: 06:32:15
Timeout fetching aha Region data

Logger: homeassistant
Source: custom_components/aha_region/sensor.py:77
Integration: aha region ([documentation](https://github.com/flabbamann/aha_region), [issues](https://github.com/flabbamann/aha_region/issues))
First occurred: 06:32:25 (1 occurrences)
Last logged: 06:32:25
Error doing job: Task exception was never retrieved

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 368, in async_add_entities
    tasks = [
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 368, in <listcomp>
    tasks = [
  File "/config/custom_components/aha_region/sensor.py", line 62, in <genexpr>
    AhaWasteSensor(coordinator, wastetype) for wastetype in ABFALLARTEN
  File "/config/custom_components/aha_region/sensor.py", line 77, in __init__
    self._attr_native_value = self.coordinator.data[self._name]
TypeError: 'NoneType' object is not subscriptable

Anything I am doing wrong?

There is a timeout when loading the data. Is https://www.aha-region.de/ reachable from your HA installation?
Or maybe 10 seconds is too low in case you have a bad connection. You could try to set a higher timeout value in this line:
https://github.com/flabbamann/aha_region/blob/master/custom_components/aha_region/coordinator.py#L75

Sorry for the late reply. I finally did some further testing and putting quotation marks around the entries in the YAML fixed it. I just recently moved from Openhab to Home Assistant and am still learning...
sensor:
  - platform: aha_region
    gemeinde: "Hannover"
    strasse: "00152@Am Küchengarten / Linden-Mitte@Linden-Mitte"
    hausnr: "11"

Hi @gafk, thanks for letting me know. Happy it's working now 😃. I'll update the readme 👍


unicore: extract vertical velocity and velocity accuracy

It looks like vertical velocity, and velocity accuracy is not available using NMEA, so we extract them from the Unicore ACRICA message instead.

Data from a flight test looks sane:

This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/um982-isnt-providing-heading-data/35195/26


build: Update known-good for 1.1.89 header

Updated:

scripts/known_good.json

Closing this PR since it was replaced by the 1.1.90 header known-good PR.


Custom store endpoints

Goal:

Building on https://github.com/RasaHQ/rasa_core/pull/1048 the endpoints.yml should now also support the loading of custom written TrackerStores. This is similar to what was done here: https://github.com/RasaHQ/rasa_core/pull/1169.
Issue: https://github.com/RasaHQ/rasa_core/issues/1199

Proposed changes:

add possibility to load custom TrackerStores using the module path
non functional input leads to a warning and the use of the InMemoryTrackerStore
assimilate host parameter of RedisTrackerStore and MongoTrackerStore to correspond to the
field name in endpoints.yml
add the required steps in the documentation

Status (please check what you already did):

[x] made PR ready for code review
[x] added some tests for the functionality
[x] updated the documentation
[ ] updated the changelog

@MetcalfeTom I am not sure how to deal with the url part.
The renaming / mapping we had so far (url to host for Redis and Mongo) adds no value and it also makes it more complicated to test the feature.
So any suggestions on that (and all the rest) are appreciated 🙂

I agree with what you've implemented in that they should all be the same.  My suggestion is to rename the endpoints.yml field to host instead since it is more descriptive than url

Mhm, but I think a host is more likely a url, than url a host. Maybe I should remove the renaming part and simply make a local class inherit from the RedisTrackerStore for test purposes. How about that?

@MetcalfeTom I now created a custom tracker store for the tests and left the url host thing aside


[Module] Out-pass application flow

Both front-end and backend.
I will make the backend module for storing the info in the database.

The form is ready, need a good background or a different text color. The text field is not seen.


add hint for changelog

Coverage remained the same at 66.899% when pulling 0d32346218beaa6cbe2248c7c59ee47ec981eff9 on release-with-changelog-hint into 9c8050a2e7ca696b97a6c5070700e15ce06c3b51 on master.


Pre-processing code for missing datasets

Hi there,
I wonder if the code for preprocessing unprovided datasets could be released? For example, I downloaded bioasq and signal1m following the instruction. But it's not clear to me how to convert the raw dataset to corpus.jsonl, queries.jsonl, qrels/{train/dev/test}.tsv the same way as you did. I think it's critical for reproducing your results and fair benchmarking.
Thank you,
Rui

Thanks @NThakur20 ! I'll reach out to you via email later.

Hi @NThakur20,
I sent an email as well.
It would be great if you could share the details for the html2text initialization for TREC News, and which Anserini tweet indexing options were used for Signal AI.
Thanks!

Hi @thakur-nandan,
I also sent an email to kindly request access to the TREC-News dataset TGZ files. I assure you that the dataset will be used solely for academic purposes. I greatly appreciate your assistance and support!
Thanks!
<EMAIL_ADDRESS>

Hi @gsgoncalves and @Cyril-JZ, you can find the private BEIR datasets here (all preprocessed): https://drive.google.com/drive/folders/1CgDO-KmQQMpGEGeD3R20ZgTTM008xix9?usp=sharing.
Hope it helps!
Thanks!

Thanks for your prompt reply! It helps me a lot!


implicit trailing / in remappings causes file remappings to not resolve

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[x] Foundryup

What version of Foundry are you on?
forge 0.2.0 (d1ab09d 2024-03-30T00:17:25.901579435Z)
What command(s) is the bug in?
No response
Operating System
Linux
Describe the bug
Using remappings.txt
ds-test/=lib/ds-test/src/
src/test.sol=src/testPatched.sol

when ran with forge (notice how its src/test.sol/ instead of src/test.sol)
~> forge remappings
ds-test/=lib/ds-test/src/
src/test.sol/=src/testPatched.sol/

expected behavior is similar to dapptools -- no trailing / is added to the remapping.
simple testcase:

A.t.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.6;

import "ds-test/test.sol";

import {Test} from "src/test.sol";

contract ATest is DSTest {
    function test_basic_sanity() public {
        Test.log();
        assertTrue(true);
    }
}

test.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.6;

library Test {
    event log_string(string);

    function log() internal {
        emit log_string("test");
    }
}

testPatched.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.6;

library Test {
    event log_string(string);

    function log() internal {
        emit log_string("patched");
    }
}

now we run forge:
~> forge test -vv
[⠊] Compiling...
No files changed, compilation skipped

Ran 1 test for src/A.t.sol:ATest
[PASS] test_basic_sanity() (gas: 1821)
Logs:
  test

with dapptools:
~> DAPP_REMAPPINGS=$(cat remappings.txt) dapp test --verbosity 2
 dapp-build: building with linked libraries
dapp: Predeploying test library src/testPatched.sol:Test at 0x0DdeDfFe2789df61F5f76479464F568334414389
dapp: Predeploying test library src/test.sol:Test at 0x5Fe5dAc04fe3527Cf7bDba8798F5A8b5edDfE4Af
Running 1 tests for src/A.t.sol:ATest
[PASS] test_basic_sanity() (gas: 1994)

Success: test_basic_sanity

  "patched"

it does seem like this will be a breaking change if implemented due to some people who may be relying on this unexpected behavior, wdyt?

seems like its caused by this
https://github.com/foundry-rs/foundry/blob/a16714ed40f733013d7a80f4f969564175c3318e/crates/config/src/utils.rs#L177-L179

This seems related to https://github.com/foundry-rs/foundry/issues/6706

@zerosnacks  i believe this issue was fixed in https://github.com/foundry-rs/compilers/pull/49 and all tests passed in foundry CI https://github.com/foundry-rs/foundry/pull/8377 so im guessing we are waiting for foundry main to update to the latest version of  foundry-compilers

Marking as resolved as foundry-compilers has been updated: https://github.com/foundry-rs/compilers/commit/ea346377deaf18dc1f972a06fad76df3d9aed8d9

@zerosnacks doesnt look like original poc has been fixed with latest nightly (00ff367) + (37ea1e9). should i create a test case for this?
$ DAPP_REMAPPINGS=$(cat remappings.txt) dapp test --verbosity 2
 dapp-build: building with linked libraries
[...]

  src/A.t.sol:ATest
   ├╴constructor
   └╴test_basic_sanity()
      ├╴log_string("patched") (src/testPatched.sol:8)
[...]

  "patched" # <--- this is good :)

$ forge test -vvv
[...]
Logs:
  test # <--- this is bad :(

Hi @BlazeWasHere, that would be appreciated. However I'm still not sure what the intended behavior here would be because Foundry does not support remapping individual files to my knowledge, only directories.

@zerosnacks Correct that Foundry does not support individual file remappings, ideally it should (foundry-compilers does) but i think that's related to #6706


Guide/Help

How to use this when i need prefix on my queries? I have setup multitenancy with prefix, but i cannot get this to work in liveview. I keep on getting ERROR 42P01 (undefined_table) relation "users" does not exist
which makes sense because i need to look in the tenant_prefix.users table instead. I'm new to elixir so sorry for any noob questions!

Well i figured out how to do it via finalize_query, but now i think that this evolves into a change request. Because i need to return user from fetch_subject, but how can i modify the socket in fetch_subject?
it works now with this, but that is only thanks to Process.dict, which it what Vnet.Tenant.set_tenant stores tenant in.
      """
      Adds the tenant prefix to the query
      """

      @impl true
      def finalize_query(query, resolution_context) do
        prefix = Vnet.Tenant.prefix()
        query |> Ecto.Query.put_query_prefix(prefix)
      end

      @doc
      """
      Fetches the current user from the session token.
      Also sets the tenant in Process dictionary for finalize_query to use
      """

      @impl true
      def fetch_subject(socket, session) do
        Vnet.Tenant.set_tenant(session["subdomain"])
        Vnet.Users.get_user_by_session_token(session["user_token"])
      end```


Listen for subset-related messages

@PennyQ @maxwelltsai - here is a simple implementation of the glue code to listen to subset additions/changes. At the moment this is not necessarily very efficient, but it should allow you now focus on the visualization.
To try this out (once merged), load a cube, then start up a 3D data viewer as well as a histogram viewer. Then, select a range in the histogram viewer. When you do this, QtVispyWidget.set_subsets will get called (you can add a print statement there to check if you like) and will be given a list of dictionaries. Each dictionary contains 'mask', which is a boolean mask that is the same size/shape as the data, and indicates which pixels are selected, and the color and alpha of the selection are also passed ('color' and 'alpha' in the subsets dictionary). Then, set_canvas gets called after subset updates.
Once we merge this, you can try and see if you can modify set_canvas to highlight the subsets! :)

AppVeyor failed but we don't have to worry about this for now, because this is due to a VisPy issue. So I will go ahead and merge.

@PennyQ @maxwelltsai - now that this is merged, it would be great if you could try and show the subsets in set_canvas if any are present! Let me know if you have any questions! :)


Add touch controller / device manager test automation

To avoid future regressions in the touch screen input feature, implement test automation to simulate touches. A key point of these tests must be to exercise both the TouchController and TouchDeviceManager classes.

@julenka This seems related to what we were just talking about


feat: add ubi installers for various tools

Doing a lot of these in one PR so I can make the edits faster
Tools included:

act
actionlint
apko
chamber
changie
ctop
dive
doctl
flyctl
grype
hadolint (mac os arm64 needs rosetta, but that's true with the asdf plugin too)
helmfile
helmsman
kind
kompose
lefthook
nfpm
pluto
shellcheck
yq

Personal testing on ubi indicates that all of these should install compatible versions of each tool for supported platforms

I had not accounted for the the tests expecting specific backends while working on these, unfortunately

Can we just change the tests to use some other random (preferably lightweight) CLI?

If you don't have time I can probably look into the tests tomorrow, thanks for doing this! Definitely a boost to security for us to move away from these plugins where we can.

yeah changing the tests is probably the easiest solution, since they're not failing due to a bug or anything like that
i'd appreciate if you could do that since i can't actually get the tests to run on my laptop for reasons entirely unrelated to mise lol


Uploading files/images together with submitting a form

The use case is, a user will fill out a form and browse for images to be uploaded then submits the form. How can we use ng-flow in this scenario?

I think you should make it a bit cooler, you have to upload files before a submit, and when files are uploaded, you just have to submit a form with uploaded files id's.
For validation, you should not allow to submit form without uploaded files.
I think this is the best approach, but you can also start upload with $flow.upload() and then listen for file-success event, but this might be harder and not so user friendly as you think.

that didn't really answer the question or help in any way.


[$500] Split - The order of split details and request preview is different before & after opening report

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v1.4.19-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to workspace chat > + > Split bill.
Create a bill split.
Note the order of split preview and request preview (the one with pay button).
Click on the split preview.
Return to the main chat.

Expected Result:
The order of split preview and request preview should be consistent.
Actual Result:
Before opening the expense report from the preview (with green button), the order is the expense preview (with green button), followed by the split preview.
After opening the expense report, the order is interchanged. Now the split preview appears first, followed by the expense preview (with green button).
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[x] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/6b2827f2-9b31-427e-84ff-97b6f69f2a84
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01151f83b81fcfc0b1
Upwork Job ID:<PHONE_NUMBER>618548224
Last Price Increase: 2024-01-12

Proposal
Please re-state the problem that we are trying to solve in this issue.
The issue revolves around the inconsistency in the order of 'split preview' and 'request preview' following the creation of a SplitBill in a workspace chat.
What is the root cause of that problem?
1 - Upon initiating the 'splitBill' action in a workspace chat through IOU.js > splitBill(){createSplitsAndOnyxData(...)}, the optimisticData sets a reportActions_.IOU.created. Upon receiving a response with successData, the reportActions_.IOU.created is then updated, and match the newly created reportActions_.IOU.lastModified.
2 - When displaying 'preview cards' on a chat using ReportActionsUtils.getSortedReportActions, we get the list of reports (reportActions) and subsequently sorting it. Initially, the sorting is based on the timestamp, and if timestamps are identical, further sorting is done by CREATED and REPORTPREVIEW.
3 - Immediately after creating a 'splitBill', both reportActions_.IOU.created values from 'split preview' and 'request preview' are nearly identical. Consequently, in getSortedReportActions, the system falls into one case. However, when successData.response is received, the reportActions_.IOU.created values diverge, leading to a different case in getSortedReportActions.
This inconsistency is at the core of the problem.
What changes do you think we should make in order to solve the problem?
To address this issue, two potential solutions are proposed:

Backend Modification: Investigate the feasibility of preventing the backend from modifying the reportActions_.IOU.created property when 'SplitBill' is called. This modification could contribute to maintaining consistency.

Sorting Adjustment: Adjust the sorting logic in ReportActionsUtils.getSortedReportActions to prioritize sorting by CREATED and REPORTPREVIEW. This adjustment ensures a consistent ordering of 'split preview' and 'request preview', aligning with the desired arrangement of keeping CREATED at the top and REPORTPREVIEW at the bottom.

What alternative solutions did you explore? (Optional)

@alitoshmatov will you be able to review this?

Working on it

I think there is a problem with backend. Based on my research when split bill is made in workspace chat optimistic data for reportActions_{workspace chat} contains two entries one for split bill preview and one for request preview. (1st image)
(2nd image) But backend is sending only one entry for this reportActions_, it is sending only split bill preview. Thus we have

Request preview, which requires pay action - Completely optimistic data
Split bill iou preview - received from backend

But when we go to another report and comeback to workspace chat, openReport request is made and then backend is sending complete  report actions in  reportActions_{workspace chat} which includes split bill preview and Request preview (3rd image)
1st image

2nd image

3rd image

@alitoshmatov sorry for the delay!  Sure can, I'll get an engineer assigned to take a look.

I have been testing to try and re-create this. I haven't been able to.
@kbecciv can you please try to re-create this again and let me know if you're able to?

I just manually tested this locally again. I checked it with timestamps that were the same and timestamps that were different by manually updating the timestamps in my local database. In neither case did the order that the report actions are displayed change. I think this can be closed.
How it displayed with different timestamps:

Manually updating the timestamps of the report actions:
sqlite> SELECT * FROM reportActions WHERE reportActionID =<PHONE_NUMBER>254895829;
created                  reportID          accountID  action  message                                                                                reportActionID
-----------------------  ----------------  ---------  ------  -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------  -------------------
2024-01-12 19:17:37.834<PHONE_NUMBER>986266  15         IOU     {"IOUTransactionID":"3064946919122085017","amount":"1100","comment":"","currency":"USD","lastModified":"2024-01-12 19:17:37.834","participantAccountIDs":[15],"type":"split"}<PHONE_NUMBER>254895829
sqlite> SELECT * FROM reportActions WHERE reportActionID =<PHONE_NUMBER>792148183;
created                  reportID          accountID  action         message                                                                       reportActionID
-----------------------  ----------------  ---------  -------------  ----------------------------------------------------------------------------  -------------------
2024-01-12 19:17:37.838<PHONE_NUMBER>986266  0          REPORTPREVIEW  {"lastModified":"2024-01-12 19:17:37.838","linkedReportID":2595405387559353}<PHONE_NUMBER>792148183
sqlite> UPDATE reportActions SET created = '2024-01-12 19:17:37.834' WHERE reportActionID =<PHONE_NUMBER>792148183;
sqlite> SELECT * FROM reportActions WHERE reportActionID =<PHONE_NUMBER>792148183;
created                  reportID          accountID  action         message                                                                       reportActionID
-----------------------  ----------------  ---------  -------------  ----------------------------------------------------------------------------  -------------------
2024-01-12 19:17:37.834<PHONE_NUMBER>986266  0          REPORTPREVIEW  {"lastModified":"2024-01-12 19:17:37.838","linkedReportID":2595405387559353}<PHONE_NUMBER>792148183

How it displayed with identical timestamps:

I was able to reproduce this:

It took two tries. I think there's just a race condition because there's nothing in the sorting order to ensure that the "IOU preview" appears after the "split preview" (apologies for the ambiguous language)

It's a bit hard to get clear on exactly what is supposed to happen optimistically with a bill split, because the existing tests don't cover REPORTPREVIEW actions, only IOU actions.
So whatever the outcome for this particular issue, I hope that we at least have an external contributor update all scenarios in IOUTest.js to cover the optimistic, success, and failure data for the REPORTPREVIEW actions
cc @cristipaval

update all scenarios in IOUTest.js to cover the optimistic, success, and failure data for the REPORTPREVIEW actions

@roryabraham  can I work on it?

I think there's just a race condition because there's nothing in the sorting order to ensure

Exactly, I believe it is worth reviewing ReportActionsUtils.getSortedReportActions.

update all scenarios in IOUTest.js to cover the optimistic, success, and failure data for the REPORTPREVIEW actions

@roryabraham If we do it, can I work on it?

Exactly, I believe it is worth reviewing ReportActionsUtils.getSortedReportActions.

I'm not sure yet. For sure the canonical order of reportActions on a report comes from the server. I think we need to have a wider conversation about this because the REPORTPREVIEW action is the only reportAction whose created value ever changes in the database, and that's a bit strange.
One solution could be to update the back-end with a 1ms sleep in The Right Place™ to ensure that the REPORTPREVIEW action appears after the IOU action in the report. I don't think it's likely that we want to change the primary sorting criteria to be something other than created timestamp... 🤔
Sorry, not sure the best solution here and need to spend some more time discussing it before we greenlight a solution.

Absolutely, @roryabraham. You brought up a solid point about the only ever-changing created value for REPORTPREVIEW in the database. The 1ms sleep idea seems like a quick fix; I'm with you—let's see if we can unearth a more elegant solution.
Totally get the need for more discussion before giving the green light.
Happy to jump in if need any help.

Issue is reproducible v.1.4.24-7
https://github.com/Expensify/App/assets/93399543/fa5e815f-c29a-4db1-9567-2b8af26f355b

I was able to reproduce this, but I had to have the timestamp for the REPORTPREVIEW action be BEFORE (not the same as) the timestamp for the IOU action.
So, I think this can easily be sorted in the front end.

Mentioned this over DMs, but it's critical that the sorting order of reportActions (or reports, for that matter) to be the same in both the front-end and the back-end. Currently they're actually out-of-sync and we might need to update this query to account for this piece of front-end logic
Failure to do this might lead to the previousReportActionID essentially being "wrong" from the front-end's perspective, which after comment linking is merged could lead to rendering issues and potentially an infinite loop of API calls trying to "fill the gap" from the "missing" reportActions.
This issue is not that urgent, so I want to make sure we take our time to get this right, as the potential downside is pretty bad

@joelbettner and I are a bit confused about this, but have some general thoughts:

It seems like REPORTPREVIEW actions are not generated optimistically.
I further feel that they are weird in that they're the only actions that can move their position in the front-end. It also seems like they're a duplicated source of truth about another report – might it be simpler to just generate report previews on the fly in the front-end only?
The requirement to sync reportAction sorting between the front-end and the back-end kind of sucks. @perunt might it be possible to just update the reportAction sorting in the front-end to just trust the previousReportActionID from the back-end? Then a "gap" is detected anywhere where a previousReportActionID references a reportAction that we just don't have?
It also seems like, at the time when this bug occurs, the timestamps of the IOU and REPORTPREVIEW actions are correct in the database, but incorrect in Onyx. So there's some place in the back-end where we're forgetting to update one or both of those actions in Onyx via Pusher or reliable updates.

Pretty confused because if the REPORTPREVIEW action isn't being generated optimistically, and it isn't coming from the SplitBill API response, then where is it coming from?

cc @cristipaval any insights here?

It seems like REPORTPREVIEW actions are not generated optimistically.

This does seem like it might be missing from the IOU.splitBill action, but I did find ReportUtils.buildOptimisticReportPreview

@joelbettner and I are a bit confused about this, but have some general thoughts:

It seems like REPORTPREVIEW actions are not generated optimistically.

Report previews have changed a lot in the front-end since they were created. Tagging @youssef-lr as I know he's done a decent amount of work around SplitBill

I further feel that they are weird in that they're the only actions that can move their position in the front-end. It also seems like they're a duplicated source of truth about another report – might it be simpler to just generate report previews on the fly in the front-end only?

We discussed this idea when we created report previews. It was decided to have a report action in the database for the report previews because we want them to behave like a report preview, with the ability to react to, reply-in-thread, etc.
The information displayed on the report previews is gathered on the fly. In the database, we store minimal info like linkedReportID, which is the ID of the report that we're previewing. I don't think we have duplicated sources of truth.

The requirement to sync reportAction sorting between the front-end and the back-end kind of sucks. @perunt might it be possible to just update the reportAction sorting in the front-end to just trust the previousReportActionID from the back-end? Then a "gap" is detected anywhere where a previousReportActionID references a reportAction that we just don't have?

I do agree with this. If we agree on another approach, we would also have to refactor the way we sort CREATED report actions. They are always lower than any other report actions, exactly as REPORTPREVIEWS should always be greater when the timestamp is the same.

It also seems like, at the time when this bug occurs, the timestamps of the IOU and REPORTPREVIEW actions are correct in the database, but incorrect in Onyx. So there's some place in the back-end where we're forgetting to update one or both of those actions in Onyx via Pusher or reliable updates.

Note: I don't see any reference to a REPORTPREVIEW action in the response to SplitBill

cc'ing @youssef-lr for the last statement here, let me know if you're the wrong person to tag about SplitBill

I've been doing some digging.
I found that this query does not run when we create a split. Shouldn't it be? Since that query is "the source of truth" for the order of the report actions, when we are creating new report actions by adding splits, I think we should be running that query...no?
I am getting the report actions out of order when I create a new split or add to an existing split:

But as soon as I refresh the page, the query runs and the report actions are back in the correct order:

I also did this...
I added some console logging in the getSortedReportActions function here:
        // First sort by timestamp
        if (first.created !== second.created) {
            if (first.actionName === CONST.REPORT.ACTIONS.TYPE.REPORTPREVIEW) {
                console.log('report preview created: ', first.created);
            }
            return (first.created < second.created ? -1 : 1) * invertedMultiplier;
        }

Then I started adding splits.
Initial creation of the split bill --> the created time on the front end does not match the created time saved in the db:

After a refresh --> the created still does not match the time saved in the db but everything displays in the correct order because this query ran which returned all the entries in the correct order regardless of their timestamp:

I added another split to the report --> the created time on the front end still does not update for the report preview and things display in the incorrect order again:

I refreshed the page --> things displayed in the correct order again despite having the incorrect timestamp in the front end:

cc: @roryabraham @cristipaval @youssef-lr
It looks like MAYBE the report preview action is being optimistically created with a timestamp, but that timestamp never gets updated after the report preview is successfully created?? What do you think?

@roryabraham we do build the optimistic report preview here. I was also able to reproduce this, I can see that the REPORTPREVIEW action has the optimistic created timestamp, but the IOU has the server's timestamp

I think the issue here is that we're not pushing the updated REPORTPREVIEW back to the frontend. So I think this is a backend issue, as when you log out and log back in, the actions get sorted properly. I verified the code and we don't really send back the updated REPORTPREVIEW, so it remains with the optimistic timestamp only. For comparison, here's CompleteSplitBill which sends back the updates REPORTPREVIEW.

Great, thanks for all the investigation and discussion everyone. It looks like this PR will most likely fix this issue. Thanks @youssef-lr!
We're further discussing REPORTPREVIEW actions and previousReportActionID here

Not sure why this didn't get closed when the PR was deployed. I'm going to close it.


Not able to select any team

PFA image

Failed to load resource: the server responded with a status of 404 ()
Fetch.js:140 Uncaught (in promise) TFS.WebApi.Exception: The team with id '6be1f1e4-14a8-445d-804d-231277724a2f' does not exist, or you do not have permission to access it.
at Object. (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/team-calendar/2.0.16/1579110530797/dist/Calendar.js:94:24025)
at https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/team-calendar/2.0.16/1579110530797/dist/Calendar.js:94:22573
at Object.next (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/team-calendar/2.0.16/1579110530797/dist/Calendar.js:94:22678)
at a (https://ms-devlabs.gallerycdn.vsassets.io/extensions/ms-devlabs/team-calendar/2.0.16/1579110530797/dist/Calendar.js:94:21424)
storage.live.com/Users/0xa59fafa76e84ee7b/MyProfile/ExpressionProfile/ProfilePhoto:Win8Static,UserTileMedium,UserTileStatic/MeControlXXLUserTile?ck=1&ex=24:1 Failed to load resource: the server responded with a status of 404 ()

Having similar issues.  Did you ever find a solution for this?  Did you have any add-ons or extensions installed that might have caused it?


Critical bug in trash mode

Cannot move old backup in trash mode, because the file already exists!
Must run mkdir on the parent directory!

Fixed in commit f7378e064f098afe302170a6a5240e1e562441bf