fix: #237

Why need this change? / Root cause:

remove anything temporarily useless layouts, functions

Changes made:

remove add/sub 10 pages buttons in rooms page
remove useless text and actions in Header
remove news in Sidebar

Test Scope / Change impact:

Issue

#237

✅ Knip Scan Result for https://github.com/Game-as-a-Service/Game-Lobby-Web/pull/248/commits/2a60d7b2579971b0d6008b440c8892d753060da6

Unused files (9)

Unused files (9)

.bundlewatch.config.js

components/shared/Chat/ChatContent.tsx

components/shared/Chat/ChatMessage.tsx

components/shared/Chat/index.tsx

components/shared/Icon/group/news.tsx

lighthouserc.js

reset.d.ts

scripts/knipScanReporter.js

scripts/lhciScanReporter.js

Unused dependencies (2)

Unused dependencies (2)

@svgr/webpack  package.json

sharp          package.json

Unused devDependencies (5)

Unused devDependencies (5)

@actions/github             package.json

@octokit/core               package.json

@storybook/blocks           package.json

@storybook/testing-library  package.json

@total-typescript/ts-reset  package.json

Configuration issues (1)

Configuration issues (1)

Unused item in ignoreDependencies: @next/bundle-analyzer

🤖 Lighthouse Scan Result for https://github.com/Game-as-a-Service/Game-Lobby-Web/pull/248/commits/2a60d7b2579971b0d6008b440c8892d753060da6

/rooms

Metric
Value

Performance
71

Seo
80

Accessibility
76

HTML Report for LHCI Scan
Report Link

/rooms/abc

Metric
Value

Performance
77

Seo
80

Accessibility
65

HTML Report for LHCI Scan
Report Link

/login

Metric
Value

Performance
52

Seo
80

Accessibility
94

HTML Report for LHCI Scan
Report Link


Ensure BrowZer works when Bootstrapper is deployed behind AWS Load Balancer

Ensure interactions between the Bootstrapper and the ZBR operate as expected

accomplished long ago


Is there a way to disable page refresh when switching between portrait and horizontal screens?

Hi @ZhangLiuCheng
This issue doesn't seem to describe a bug or a feature request. Please see https://flutter.dev/community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and if you need help with your code, please see https://www.reddit.com/r/flutterhelp/
Closing, as this isn't an issue with Flutter itself. If you disagree, please write in the comments and I will reopen it.
Thank you


Add README.md to docs

/hold

Codecov Report
Base: 74.40% // Head: 74.40% // No change to project coverage :thumbsup:

Coverage data is based on head (e0cdd9c) compared to base (926a79f).
 Consider uploading reports for the commit 34bfc56 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #211   +/-   ##
=======================================
  Coverage   74.40%   74.40%
=======================================
  Files          27       27
  Lines        2821     2821
=======================================
  Hits         2099     2099
  Misses        619      619
  Partials      103      103

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

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

Could this go to docs/mkdocs/index.md instead?

/ok-to-test

@enriquebelarte Do we still need that PR after https://github.com/kubernetes-sigs/kernel-module-management/pull/235 has merged?

@enriquebelarte Do we still need that PR after #235 has merged?

I'm not sure if it still makes sense. WDYT @qbarrand ?

I think that midstream should be in sync with upstream + extra stuff relevant to OCP and not to Kubernetes

/cc @iranzo

/lgtm
/assign @ybettan

/approve


Close files after invoking swiftc in SwiftSyntax tool

Close the output file descriptors after the swiftc invocation. I have testing this code in a different program, but have not tested this in situ. (I don't know how to test this particular tool.)

@swift-ci Please smoke test.

Surprisingly enough, NSPipe doesn't require you to explicitly close the file handle for this, though it seems like it should be required.
https://developer.apple.com/documentation/foundation/nspipe/1414352-filehandleforreading

Yeah, there should be no reason to do this. That's the advantage of putting file handles in types with deinitializers.

Here is a short program that demonstrates the issue, unless I am missing something:
import Foundation
func runSync()  {
let process = Process()
process.launchPath = "/bin/echo"
process.standardOutput = Pipe()
process.standardError = Pipe()
process.launch()
process.waitUntilExit()

}
for thousands in 0..<20 {
for i in 0..<1000 {
runSync()
}
print("finished (thousands + 1) thousand")
}

I talked with David about the real culprit: autorelease pools!
import Foundation

func runSync() {
  let process = Process()
  process.launchPath = "/bin/echo"
  process.standardOutput = Pipe()
  process.standardError = Pipe()

  process.launch()
  process.waitUntilExit()
}

for hundreds in 0..<20 {
  for i in 0..<100 {
    autoreleasepool { // NEW
      runSync()
    }
  }
  print("finished \(hundreds + 1) hundreds")
}

That might still be relevant for a long-lived SwiftSyntax tool, but at least this part isn't something to worry about.

@swift-ci Please smoke test

Tx, Jordan & Harlan! I have changed the title of this PR and changed the "fix" to use an autoreleasepool and to implicitly close the files. Would you like me to merge this?


Danish translation

I'd like to create a danish translation. Is this something you would implement?

Hi @Limfjorden, this app does not use any custom strings, so it should already support danish.

@SimonMarquis I was thinking also for the F-droid store and the app name itself.


set cuda device

Fixes # .
Description
Set cuda device to make multi-gpu training work with nvflare.
Types of changes

[x] Non-breaking change (fix or new feature that would not break existing functionality).
[ ] Breaking change (fix or new feature that would cause existing functionality to change).
[ ] New tests added to cover the changes.
[ ] Integration tests passed locally by running ./runtests.sh -f -u --net --coverage.
[ ] Quick tests passed locally by running ./runtests.sh --quick --unittests  --disttests.
[ ] In-line docstrings updated.
[ ] Documentation updated, tested make html command in the docs/ folder.

Thanks for the PR, close as already included in https://github.com/Project-MONAI/MONAI/pull/6158.


use the C++17 filesystem library instead of C APIs

C APIs generally should be avoided in modern C++. I don't think this should be merged without further testing, but it should function.

Are there any actual differences between std::printf and printf?


[Feature]: Save and Load advanced settings

Description
So I try to make some game voice acting on my language and I need to do a character all voices in one go. Or I need to screenshot the advanced settings part if I want to do the exact same the next day.
Problem
No way to save and load advanced settings.
Proposed Solution
Two button one for save the setting one for loading. One dropdown to select the saved settings to load.
Alternatives Considered
I think this is the easiest approach.


733 - Add keyboard navigation in tile palette

The tile palette active selection can now be:

moved with the shift+arrow keys,
expanded on a given side using alt+arrow keys, and
shrunk on a given side using shift+alt+arrow keys.
This functionality is also available when the tilemap editor is in focus.

This behaviour is slightly different from what was mentioned in ticket #733, but I thought this made more sense. The reason I didn't use the arrow keys by themselves for moving the selection as specified was that the arrow keys are used for a different purpose already in the tilemap editor view.

First of all, good catch with the already used arrow keys. Since they're already used for switching tilemap drawing layers, we can't use them for changing tile source selection as well.
Since this is an editor feature I did some usability testing on this first before starting to look into the code, and there are some issues that should be addressed before proceeding.

In a tile drawing workflow, one hand will always be occupied with the mouse, so all keyboard input that augments mouse operation needs to be comfortably expressible with the remaining (usually left) hand.
It works for Shift + Arrows on a standard keyboard, since the right shift key is next to them. It doesn't work for the other combos, since it's not really possible to press Alt + Arrows, or even Alt + Shift + Arrows comfortably with one hand.
The different combinations for shrinking and expanding and moving are confusing and hard to memorize, because it's three different key combos for one feature, and none of it matches standard keys.
The adjusted key binding for the Tilemap Editor feels weird in the context of the Tile Palette, where the arrow keys don't do anything and there is no apparent reason to press Shift in addition.

To address these issues, I'd suggest the following:

Let's get the interaction straight in the Tile Palette first, where we're less constrained by other key bindings.
Use minimal key binding for Tile Palette, avoiding modifier keys where possible. Also reduce the binding to just two: Moving and Adjusting.

Arrows move the selection by one tile in the pressed direction.
Shift + Arrows adjust the selection.

The first arrow press in each axis (horizontal or vertical) selects which side on that axis (left / right, top / bottom) is moved, so the first press will always be an expansion. All subsequent arrow presses move that side while keeping the other side fixed, so both shrinking and expanding is possible. Releasing the Shift key resets the side lock to its initial undefined state.
Example: Expanding bottom right

Shift + Right: Select right side and expand by one to the right.
Shift + Down: Select bottom side and expand by one downwards.

Example: Shrinking bottom right

Shift + Right: Select right side and expand by one to the right.
Shift + Left: Shrink right side by one to the left. [Back to original size]
Shift + Left: Shrink right side by one to the left.
Shift + Down: Select bottom side and expand by one downwards.
Shift + Up: Shrink bottom side by one upwards. [Back to original size]
Shift + Up: Shrink bottom side by one upwards.

Example: Adjusting top left

Shift + Left: Select left side and expand by one to the left.
Shift + Up: Select top side and expand by one upwards.
Shift + Down: Shrink top side by one downwards. [Back to original size]
Shift + Down: Shrink top side by one downwards.

Not perfect, but it somewhat mirrors regular list selection behavior that users know from other software.

Figure out a way which keys to use in the Tilemap Editor to express the same behavior.

Changing the key bindings for layer selection would be an option as well, would need to think of an alternative for that too.

The Tile Palette should auto-scroll if the new selection would otherwise leave the current view.

Thanks for the very thorough comment! I fully agree. What you're describing sounds more natural UX-wise, even though it could mean more key strokes for certain actions. I think we won't be needing to adjust the selection very often anyway so ease of use is more important than key stroke efficiency. I will start working on this within the coming days.

For the controls, pretty much did as @ilexp commented earlier. As for the conflicting controls with the tilemap editor, I changed:

active tilemap switching to page up and page down instead of up and down, since I felt these would be less frequently used controls
deselect game object to be escape instead of left and right since these controls do the same thing anyway and escape seems like a more fitting key for this function

Sorry for not responding earlier - for time reasons, I wasn't able to continue looking into this as needed.
@Barsonax @SirePi Can you guys pick up this PR?

Also happy to keep on working on this if there are any more comments

@cowmanjoe There have been quite a bit of changes in master recently. Can you rebase your branch on master so its up to date again? The changes are mostly in the csproj files so theres a good chance you won't have conflicts.

I've rebased with master and fixed a problem where TilemapCamViewState was not getting the selected area change updates. I modified a csproj file for FlapOrDie because the build was failing without it. I'm not sure if this was the correct thing to do.

I've rebased with master and fixed a problem where TilemapCamViewState was not getting the selected area change updates. I modified a csproj file for FlapOrDie because the build was failing without it. I'm not sure if this was the correct thing to do.

That doesn't seem to be right. I think visual studio was confused maybe because the cache was not cleared? Can you try again without modifying the csproj and first cleaning everything (git clean -fdx can be handy here)?

Ah, thanks! I think I only did git clean -fx before. Build was successful without the change to the FlapOrDie csproj.

Seems there is a small bug somewhere. First time I tried to test the arrow navigation I got this exception:
EditorError:   ArgumentException: Height needs to be greater than or equal to zero.
Parameter name: newHeight
CallStack:
   at Duality.Grid`1.ResizeClear(Int32 newWidth, Int32 newHeight) in C:\git\duality\Source\Core\Duality\Utility\Grid.cs:line 425
   at Duality.Editor.Plugins.Tilemaps.SourcePaletteTilesetView.UpdateSelectedTiles() in C:\git\duality\Source\Plugins\Tilemaps\Editor\Modules\SourcePaletteTilesetView.cs:line 444
   at Duality.Editor.Plugins.Tilemaps.SourcePaletteTilesetView.set_SelectedArea(Rectangle value) in C:\git\duality\Source\Plugins\Tilemaps\Editor\Modules\SourcePaletteTilesetView.cs:line 78
   at Duality.Editor.Plugins.Tilemaps.SourcePaletteTilesetView.ExpandSelectedArea(Int32 diffX, Int32 diffY) in C:\git\duality\Source\Plugins\Tilemaps\Editor\Modules\SourcePaletteTilesetView.cs:line 524
   at Duality.Editor.Plugins.Tilemaps.SourcePaletteTilesetView.OnKeyDown(KeyEventArgs e) in C:\git\duality\Source\Plugins\Tilemaps\Editor\Modules\SourcePaletteTilesetView.cs:line 376
   at System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m)
   at System.Windows.Forms.Control.WmKeyChar(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

The selection also seems to jump sometimes depending on what you have selected.
Steps to reproduce:

Select tile (about at half the width of the tileset)
Press shift + arrow
Profit

I used the TilemapsSample for this.

Oh that's strange! I'm unable to reproduce the bug, but I am also not sure how to run the sample projects. I have just been adding a tilemap to the initial empty project and testing that way. Is there any documentation on how to open the sample projects in the editor or am I missing something easy?

The way to run the sample projects changed very recently. There is now a SampleRunner project. You have to modify the path in launchsettings json to point to the sample you wanna run and then start this project.
Currently on mobile so cannot give more detailed instructions but maybe this is enough for you to figure it out.

I'm still not able to reproduce the bug you are experiencing. Perhaps you can give a bit more detail? Here's a video of me running the Tilemaps sample. I use shift+arrow for each direction on tiles from various points in the middle of the tileset. Is this what you did to reproduce or am I missing something?

Try resizing the tile pallette so it reordens the tiles. Might have to so with the bug.

Ah yes, good catch! The problem did have to do with the multicolumn expansion. The problem should be fixed now.


Fix connectors rake

Fix a couple of issues with the rake tasks for connectors:

bug with organizations task, not being recognized
failure to create provider records for non public providers (that we need also to configure for internal use)

@ethervoid, please review/approve


Set up PyDPF-Core to use numpydoc rather than napoleon and autosummar…

…y of toctree
@ansys-akaszyns I have some questions I'll ask in comments. I expect additional work.

@akaszynski
I've left my comments and will wait to see what edits are necessary and what I learn from your comments before moving on to PyDPF-Post. Maxime took care of updating PyAEDT to use the revised template. Are there other projects that I should do after PyDPF-Post?

Are there other projects that I should do after PyDPF-Post?

Sending personal message...

@cbellot000 Alex says that the switchover from napoleon to numpydoc are non-trivial and that he'd like someone on your team to review and approve this PR. Thanks.

Recommend shifting to how PyAEDT does their docs in https://github.com/pyansys/pyaedt/tree/main/doc/source/API. Effectively, use a toctree instead of autogenerating the entire API definition and organizing the API docs. This is very similar to how pandas does their documentation in https://pandas.pydata.org/docs/reference/index.html#.
While the current approach works as a quick and cheap way to getting out our docs, we need to provide a better organization to the classes and methods exposed.


Couldn't get BlueALSA transport: No such device on Raspberry Pi

I tried everything, I read all the issues, I've spent more than 6 hours with this and I can't figure out what's happening, why I can't make this work.
I have a BT record player. I want to record the signal into a wav file on my Raspberry Pi with Stretch. I successfully connected to the record player using bluetoothctl.
But when I try to run arecord -D bluealsa:HCI=hci0,DEV=F4:04:4C:11:DF:37,PROFILE=a2dp music/test.wav it fails with
ALSA lib bluealsa-pcm.c:680:(_snd_pcm_bluealsa_open) Couldn't get BlueALSA transport: No such device
arecord: main:788: audio open error: No such device

I'm desperate, I read every article and issue and I don't know what else to do.

according to
bluealsa --help

you need to start bluealsa with
bluealsa -p a2dp-sink

You appear to be using an old version of bluealsa, so there may be other issues, but hopefully the above will get you past this immediate issue,

Thanks for answering! If I execute bluealsa -p a2dp-sink then I get:
bluealsa: Couldn't initialize controller thread: Bad file descriptor

What version should I be running? Currently I have 1.3.0

Early versions of bluealsa created a directory for socket files, usually /run/bluealsa - sometimes that was left behund if the demon did not shutdown cleanly.If that directory exists, delete it before starting bluealsa.

@jiserra please use master branch or at least version 2.0.0.

@Arkq Thanks for the answer. I could finally make version 2.0.0, but when I try to run arecord -D bluealsa capture.wav, it says
ALSA lib ../../../src/asound/bluealsa-pcm.c:719:(_snd_pcm_bluealsa_open) Unknown field interface
arecord: main:828: audio open error: Invalid argument

I'm so sorry if you already answered this, I tried searching for answers in the issues and I couldn't find any.

Version 2.0.0 is not compatible with 1.., if you've got custom asoundrc file you will have to upgrade it. Remove "interface" field and look at README for how to properly setup custom asoundrc file.

I sincerely tried everything and I can't make this to work…  Thanks anyway.

To free cache and run bluealsa again in daemon mode from hci0, that's worked many times 👍
rm -rf /var/run/bluealsa/
/usr/bin/bluealsa -i hci0 -p a2dp-source -p a2dp-sink &

This is bluealsa --help output :
Usage:
  bluealsa [OPTION]...

Options:
  -h, --help            print this help and exit
  -V, --version         print version and exit
  -B, --dbus=NAME       D-Bus service name suffix
  -S, --syslog          send output to syslog
  -i, --device=hciX     HCI device to use
  -p, --profile=NAME    enable BT profile
  --a2dp-force-mono     force monophonic sound
  --a2dp-force-audio-cd force 44.1 kHz sampling
  --a2dp-keep-alive=SEC keep A2DP transport alive
  --a2dp-volume         control volume natively
  --sbc-quality=NB      set SBC quality to NB
  --aac-afterburner     enable afterburner
  --aac-latm-version=NB set LATM syntax version
  --aac-vbr-mode=NB     set VBR mode to NB
  --mp3-quality=NB      set encoder quality to NB
  --mp3-vbr-quality=NB  set VBR quality to NB

Available BT profiles:
  - a2dp-source Advanced Audio Source (AAC, MP3, SBC)
  - a2dp-sink   Advanced Audio Sink (AAC, MP3, SBC)
  - hfp-ofono   Hands-Free handled by oFono (hf & ag)
  - hfp-hf      Hands-Free (v1.7)
  - hfp-ag      Hands-Free Audio Gateway (v1.7)
  - hsp-hs      Headset (v1.2)
  - hsp-ag      Headset Audio Gateway (v1.2)

By default only output profiles are enabled, which includes A2DP Source and
HSP/HFP Audio Gateways. If one wants to enable other set of profiles, it is
required to explicitly specify all of them using `-p NAME` options.


Raise exception in DESERIALIZE_OBJECT

Hi, when I try to deserialize a json string, I receive a "raise exception" on method DESERIALIZE_OBJECT at line 35 when it try to find regex '\A\s*"([^:]*)"\s*:'
My json seems to be well formed (I tried to validate it with several online validators), I'm attaching it to the message.
Thanks
example.json.txt

Hi, the problem is in the last node "properties" where both keys name contains char : .
A possible solution is to use this regex \A\s*"([a-zA-Z0-9:_]*)"\s*: in order to accept also char : in the key name. In this way deserializer works succesfully. Let me know.

Hi Teddynet, thank you for the issue report and the proposed solution. I will look into the issue and update the repo.
Regards,
Fatih


Line ending issue with windows (CRLF)

I have simple request:
### Test request
POST {{host}}/something
Accept: text/plain
Content-Type: application/json

{
  "test": "me"
}

With unix (LF) line ending it executes as expected.


Page doesn't return to correct scroll position.

When A link on a page is clicked,  say from clicking on box() on #/reference/ the browser back button doesn't alway return to the position on the reference page was clicked on.
I think this stackoverflow explains the problem and a solution by using $(window).scrollTop();  to save the screens scroll position on unload in a cookie and then testing if there is a cookie and if there is setting the $(window).scrollTop(cookie); onload.
I don't know if this would work as I've not tested it.

I'm still seeing the issue as described by @hellonearthis in the first comment above. I.e scroll position isn't maintained when going from the reference list page to a specific function and back when using the back button. it is most noticeable when scrolling all of the way to the bottom of a long function reference page and then using the back button.
I don't think scroll anchoring implemented in browsers fixes this issue specifically. I've tested on FF Developer edition (71.0b11), Chrome (70.0.3538.110) and Safari on iOS 12 and see the scroll position issue on all three browsers.
If this is something that needs fixing I'm happy to sort it out.

@andrewcowley If you are willing to look into this that would be great. :)

Just experienced this while preparing a tutorial for students. Going to the reference page and clicking on DOM works (scrolls to DOM group in both Chrome + Safari) but trying to link a tutorial to that section by using the DOM Group URL fails to jump to the anchor. Same is true when using the back button as mentioned in initial issue.
I think this could be solved by checking onload if there's a location.hash and if so, jumping to that section?
Don't have this repo downloaded/setup for building/testing.. but the following solution should work:
if (location.hash) {
    let target = location.hash;
    window.scrollTop = document.querySelector(target).offsetTop;
}

I could also reproduce this.
There is also one thing to be noticed that if the user has scrolled down a bit being on this page (meaning there is some value to window.pageYOffset which is !=0) and now when page is refreshed. The page does not scroll back to (0,0). Instead gets some value = 541 (window.pageYOffset)
But if the user has not scrolled down meaning the scroll position is equal to (0,0) and page is refreshed. The page does not get any YOffset value and remains at (0,0) only.
Depending on the scroll position of the page before refreshing the page. The scroll positon differs at page onload


Add interface to allow Spam filtering by third-party apps

I don't want to include a Spam filter into the app itself. Instead we could add an interface that allows third-party apps to provide Spam filtering capabilities.

I dislike this because it is reliant on additional apps and resources adding a basic spam filter to the app is something that should have been done by default and this seems like a bit of a copout to avoid adding what is a base feature of most email clients

There seems to have been a previous attemt to just include very simple filter https://github.com/Yogu/k-9 i don't know of the quality of this implementation, but it might be worth a shot?

I am a longtime user of K9-mail in Germany.
But unfortunately I have no skills in programming at all. On my search for a solution to the exact same problem that mikeloeven described allready in #1490 I am really disappointed that there seam to be no progress in dealing with this issue. I also since many years have a provider called 1blu that doesnt filter obvious SPAM emails. That was no problem with my PC for many years. Just since I use my smartphone with K9-Mail which still doesnt filter obvious SPAM and also doesnt allow me to filter on my own it became really bad. Consequently I get a lot of SPAM Mails daily and cant change it.
I would really appreciate if anyone who has the skills to do so would try to find a solution in programming something to solve this issue. I totally agree with mikeloevens argumentation in #1490 that a spam-filter is a basic service of any good and competitive email-provider.
With regards from Germany

I second this feature request. Not all provider filter spam, some only add a header that indicates a score (my provider does it, but fortunately I don't rely on their scoring, and with my several email accounts, I get from 2 to 40% spam, spending half of my K-9 time to delete emails)!
Adding a way to 1) add a bayesian spam filter (surprisingly, such engines in Android seem simply.. absent), 2) allow a third-party spam filter app or 3) filter incoming messages, would be a great value added to this app.

I would like to work upon this issue as described in my proposal.
Regards,
Biswajit Roy.

a spam-filter is a basic service of any good and competitive email-provider.

But K-9 is an email user agent, not an email provider. Providers are in general in a much better position to accurately detect and classify spam than clients (though endpoint classification also has its advantages). In any event, a spam detection and classification engine is not a trivial project and development-wise does not have much in common with writing an email user agent, so it does make sense for filtering functionality to be implemented via an external application through a defined API, in the same way as other important but non-core functions are done, such as address books, encryption, attachment display, etc.

Maybe give a try,
It would be useful already classified emails "Subject [SPAM], Email Headers Spam-assasin...." to be filtered some how, because all "[SPAM]" messages are present in INBOX
Maybe some simplified rules like Mozilla Thunderbird
Sample Classified Email Headers

X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.myset.ro
X-Spam-Flag: YES
X-Spam-Level: ************
X-Spam-Status: Yes, score=12.7 required=4.0 tests=BAYES_99,BAYES_999,
DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HTML_IMAGE_ONLY_16,HTML_MESSAGE,
HTML_SHORT_LINK_IMG_2,RDNS_NONE,SPF_HELO_NONE,SPF_PASS,URIBL_ABUSE_SURBL,
URIBL_BLACK,URIBL_DBL_SPAM,URIBL_SBL,URIBL_SBL_A autolearn=no
autolearn_force=no version=3.4.0

I agree, my email provider do not seem to filter anything and i constantly classify emails as spam, often they are completly identical and completly obviously spam, maybe something like this might work https://github.com/ptnplanet/Java-Naive-Bayes-Classifier
I tried to do a fork, but the project structure seems way to complicated for my skillset, hope someone gets around to add a basic filter...

FWIW, a sane provider will implement something on top of sieve and rspamd to mark mails as spam when you move them to the spam folder.

Yea you don't choose your provider you know.
I did some search and FairEmail actually seems to have some kinda of Bayesian classification, I'll see if it works :)


Bug: AmazonS3.listObjects(ListObjectsRequest) result does not include exact match of prefix

Assume the following file structure:
bkt\
bkt\foo\bar\
bkt\foo\bar\baz\
bkt\foo\bar.txt
Now execute the following code, given amazonS3:
var listRq = new ListObjectsRequest();
listRq.setBucketName("bkt");
listRq.setPrefix("foo/bar/");

var listing = amazonS3.listObjects(listRq);
System.out.println(listing.getObjectSummaries()
            .stream()
            .map(S3ObjectSummary::getKey)
            .collect(Collectors.joining(", ")));

Expected Behavior
Executing this against S3 results in:
foo/bar/, foo/bar/baz/

Observed Behavior
Executing this against S3Mock results in:
foo/bar/baz/

Version Details
s3Mock version used: 2.1.20 (edit: also tested with 2.1.22)
AWS S3 SDK version: 1.11.579 (this version is the last where S3Mock integration tests run inside IntelliJ for us)

I have a similar issue in my unit tests without defining prefixes.
Here is a snippet:
@ClassRule
public static final S3MockRule S3_MOCK_RULE = S3MockRule.builder().silent().withHttpPort(S3_PROVIDER_PORT).build();

protected AmazonS3 s3Client = S3_MOCK_RULE.createS3Client(S3_PROVIDER_REGION);

@Before
public void init() {
  s3Client.listBuckets().forEach(b -> purgeBucket(s3Client, b));
  s3Client.createBucket(BR_BUCKET_NAME);
}

@Test
public void test1() {
     ... // Creates 3 objects.
    var listing = s3Client.listObjects("mybucket");  // OK, return 3.
}

@Test
  public void test2() {
     ... // Creates 3 objects.
    var listing1 = s3Client.listObjects("mybucket"); // Returns 3 if run individually but 2 if run after test1().
    var listing2 = s3Client.listObjects("mybucket"); // Always returns 3 (even when the previous list returns 2)
}

Note that the isTruncated() returns false each time so that is not the issue here.

@outsideMyBox
can't reproduce your problem locally after adding your code (plus setup plus "purge bucket") to the com.adobe.testing.s3mock.junit4.S3MockRuleTest
  @Before
  public void init() {
    s3Client.listBuckets().forEach(b -> purgeBucket(
        s3Client.listObjects(b.getName()).getObjectSummaries()
            .stream()
            .map(S3ObjectSummary::getKey)
            .collect(Collectors.toList()))
    );
    s3Client.createBucket(BUCKET_NAME);
  }

  @Test
  public void test1() {
    createFiles(UPLOAD_FILE_NAME, 3);
    ObjectListing listing = s3Client.listObjects(BUCKET_NAME);  // OK, return 3.
    assertThat(listing.getObjectSummaries().size(), is(3));
  }

  @Test
  public void test2() {
    createFiles(UPLOAD_FILE_NAME, 3);
    ObjectListing listing1 = s3Client.listObjects(BUCKET_NAME); // Returns 3 if run individually but 2 if run after test1().
    assertThat(listing1.getObjectSummaries().size(), is(3));
    ObjectListing listing2 = s3Client.listObjects(BUCKET_NAME); // Always returns 3 (even when the previous list returns 2)
    assertThat(listing2.getObjectSummaries().size(), is(3));
  }

  private void purgeBucket(List<String> keys) {
    // Delete the sample objects.
    DeleteObjectsRequest multiObjectDeleteRequest = new DeleteObjectsRequest(BUCKET_NAME)
        .withKeys(keys
            .stream()
            .map(DeleteObjectsRequest.KeyVersion::new)
            .collect(Collectors.toList())
        )
        .withQuiet(false);
    // Verify that the objects were deleted successfully.
    DeleteObjectsResult delObjRes = s3Client.deleteObjects(multiObjectDeleteRequest);
    int successfulDeletes = delObjRes.getDeletedObjects().size();
    assertThat(successfulDeletes, is(keys.size()));
  }

  private void createFiles(String name, int count) {
    for (int i = 0; i < count; i++) {
      createFile(name, i + name);
    }
  }

  private void createFile(String fileName, String keyName) {
    final File uploadFile = new File(fileName);
    s3Client.putObject(new PutObjectRequest(BUCKET_NAME, keyName, uploadFile));
  }

the listobjects calls always work and return the correct count.
So I can only guess what the problem is - maybe a timing issue?
If your problem persists, then please open a new issue linking a working unit-test, for instance in your fork of this repository, or an empty repository where we can run the test with maven or gradle.

closing since nobody replied and I can't reproduce this.
I made several refactorings in 2021 to the way we escape incoming bucket names, keys, delimiters and prefixes, so I guess I fixed this along with several other issues complaining about (non-) matching keys and prefixes / delimiters.


xgboost can not connect recource manager

Yarn cluster has two resource manager :
one is active
one is used for backup
Now I  run distribution xgboost demo ，get error like this:
17/11/25 01:07:30 INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm209
It means can not  find resource manager , how to solve ?expect reply ,thank you .
process of training model is ok
2017-11-25 01:07:50,870 INFO @tracker All of 2 nodes getting started
2017-11-25 01:08:01,396 INFO [01:08:01] [0]     test-error:0.016139     train-error:0.014433
2017-11-25 01:08:01,810 INFO [01:08:01] [1]     test-error:0.000000     train-error:0.001228
2017-11-25 01:08:22,532 INFO [01:08:22] [0]     test-error:0.016139     train-error:0.014433
2017-11-25 01:08:22,831 INFO [01:08:22] [1]     test-error:0.000000     train-error:0.001228
2017-11-25 01:08:39,420 INFO [01:08:39] [0]     test-error:0.016139     train-error:0.014433
2017-11-25 01:08:39,876 INFO [01:08:39] [1]     test-error:0.000000     train-error:0.001228
Application application_1508463472810_31780 finished with state FINISHED at<PHONE_NUMBER>068

I find  yarn set HA(high available) ，problem may be caused by this setting ,let me check


Gamedata update required for 8216530

Placeholder issue so nobody thinks it's not known.

"CTFPlayerShared::PulseRageBuff()"'s window signatures is changed.
new - \x55\x8B\xEC\x83\xEC\x18\x33\xC0\xC7\x45\xF8\x83\x00\x00\x00

"CTFPlayer::GetObjectOfType()"
new - \x55\x8B\xEC\x51\x53\x8B\xC1\x56\x57\x33\xFF\x89\x45\xFC\x8B\x98\x44\x23\x00\x00
"CBaseObject::DestroyScreens()"
new - "\x56\x57\x8B\xF9\x8B\xB7\xEC\x09\x00\x00"

I've made my own signatures with wildcards for the low bits (CBaseObject::DestroyScreens() should be fine since that was already masked), but thank you for the contributions.


[REQUEST] BAX support.

(more info on BAX: https://gbatemp.net/threads/release-bax-boot-animations-for-your-3ds.497717/)
Since the updater (by default) overwrites boot.firm whenever it updates Luma, it breaks any existing BAX install.
The way I'd fix this is add a built-in config menu if possible, or at least some sorta lumaupdater-config.txt on SD root, so that we can change the boot.firm path after the updater is compiled. (e.g. SD:\bax\boot.firm instead of just SD:\boot.firm)
Like maybe a toggle?
If it were done through a .txt on SD root, I'd format it like so:

\Luma Updater configuration file. Check the wiki for more info.  |
|
useBAXpath [Y] (or N for no                                                            |
|
____________________________________________________________________/

You should be updating Luma manually in that case. That's not a high priority right now. If you know how, you can feel free to make a PR.


Enable .env file for setting config

@di-sukharev Can we get this merged in and a new NPM package deployed?

i wonder why do we need it?


Vector subtract and divide: precise order of operation (a-b, a/b)

For graphene_vec*_subtract() and graphene_vec*_divide(), even if it's obvious it should be documented the order of the parameters in the operation, since subtract and divide are not commutative.
So, I guess the order is a-b and a/b.

btw from the book that I read, vector division doesn't make sense. In graphene it's more like an array component-by-component division.

Yes, the order of the arguments is the order of the operands. That's a well established behaviour, one that we also use when multiplying matrices, or multiplying matrices with vectors.
All vector operations are component operations. Like graphene_vec[234]_multiply(), graphene_vec[234]_divide() is a useful scaling operation when you have a scalar value that you want to apply to each channel in the vector — except that division may be slower, depending on the hardware.


New version: DiffEqBayesStan v2.2.0

Registering package: DiffEqBayesStan
Repository: https://github.com/StanJulia/DiffEqBayesStan.jl
Created by: @goedman
Version: v2.2.0
Commit: ba377fb0137a21b4ce660f6a3ab034fe99678a85
Git reference: HEAD
Description: Stan only version of DiffEqBayes.jl
Release notes:

Rel 2.1.0 - Switch to cmdstan 2.29.2, remove StanDump

@goedman same question as in #61789
[noblock]

@goedman I'm going to manually merge this pull request and will close the other.
Note that you should never create a git tag before successful registration, because if there are automerge problems to be fixed then you'd have a mismatch between the tag and the actually released version in the registry. You have to create the tag after registration, either manually or let TagBot do it for you automatically. Not that anyone cares about git tags, definitely not the package manager: for it the only thing which matters is the registry, nothing else.

@giordano  Thanks a lot Mosè! Yes, I manually tagged all other StanJulia packages and must have accidentally jumped ahead with DiffEqBayesStan.jl. I'll drop doing this and simply rely on the registry. Thanks again!


Inner classes functions should appear in functions list panel

Godot version:
3.0.2 stable
OS/device including version:
MacBook Air (13-inch, Early 2014) (1,4 GHz Intel Core i5)
MacOS High Sierra 10.13.3
Issue description:
Gdscripts can contain classes, that can contain functions. The functions panel of the code editor is not showing the classes nor the classes' functions.

Steps to reproduce:

Create a gdscript with a class and a function
The class nor the function appears in the functions panel

Keep in mind scripts are classes already. So when you write class in a GDScript, you actually define a class within a class. Such classes have no magical access to their enclosing instance. It's like they are in a namespace.
The editor is not showing functions of inner classes because it makes no sense.
That means, when you add a script to a node, that node will get an instance of that script. Not the inner class.
So you can't call functions on that inner class because the script on the node is not an instance of that inner class.

I understand that those are inner classes. But still, they are supported in gdscript, the code is there, so that's why its functions should appear in the functions panel/navigator.
It can look like this:
InnerClass:
    innerFunction1
    innerFunction2
function1
function2

or like this:
InnerClass.innerFunction1
InnerClass.innerFunction2
function1
function2

The issue is that 'how' would it call it?  You need to call those functions (unless static) on an 'instance' of the class, so how would you define that instance if it is, say, stored somewhere else?

Yes, you can instance that inner class and use the inner functions without problems. I am actually using them without problems. They just don't appear in the panel/navigator.
Here an usage example: https://github.com/jahd2602/godot-inventory/blob/master/inventory.gd

Oooh hang on I completely misunderstood the use case... 🤦♂
You don't want to call them.
You want them to show up in the list of functions from the script editor, and that's indeed a sensible request.
Maybe that panel could be promoted as an "outlining" of the current script and show functions, and classes as folders so we can see functions in them, like you said.

What are some of the files that should be modified to accomplish that?

What are some of the files that should be modified to accomplish that?

https://github.com/godotengine/godot/blob/6f328420c3f62726c2264d5d3725a48d57f218e1/editor/plugins/script_editor_plugin.cpp#L1429-L1451

I have been diving into the code, and it looks like a new for loop is needed here
https://github.com/godotengine/godot/blob/6f328420c3f62726c2264d5d3725a48d57f218e1/modules/gdscript/gdscript_editor.cpp#L110-L119
But that would only change gdscript, there should be similar changes for all supported languages right?
nativescript.cpp
visual_script.cpp
etc...

But that would only change gdscript, there should be similar changes for all supported languages right?

Not really. Only GDScript has the concept of inner classes. Unless you want to change this to show the whole outline as well.

C# also has inner classes. I think that depends on whatever parses the edited script, and if that doesn't return nested symbols, then the panel just won't show them.

I could get this to work fine: https://github.com/jahd2602/godot/commit/9df6e7e20ffa20b00371a84d687622e5680cacae
It is using this notation:
InnerClass.innerFunction1
InnerClass.innerFunction2
function1
function2

I am working on top of 3.0.2 because after that point, master is very buggy in macOS. Should I pull request branch 3.0.2?

Should I pull request branch 3.0.2?

I don't think so. It's better to send to master.

Maybe you can open an pr from your 3.0.2 to master.
CC @akien-mga

No, pull requests should be made from a branch synced with master and to the master branch.


improvement(ffmpeg_data_source): support read timeout

Signed-off-by: pingkai<EMAIL_ADDRESS>(cherry picked from commit 4fe4c670636b3896ea7e4342c6b25bf0345f5ead)

Codecov Report

Merging #226 into release/0.1 will decrease coverage by 1.79%.
The diff coverage is 66.66%.

@@               Coverage Diff               @@
##           release/0.1     #226      +/-   ##
===============================================
- Coverage        72.29%   70.50%   -1.80%
===============================================
  Files              200      200
  Lines            10664    10666       +2
===============================================
- Hits              7710     7520     -190
- Misses            2954     3146     +192

Impacted Files
Coverage Δ

framework/data_source/ffmpeg_data_source.cpp
70.58% <66.66%> (-4.42%)
:arrow_down:

mediaPlayer/media_packet_queue.cpp
61.60% <0.00%> (-18.40%)
:arrow_down:

framework/demuxer/play_list/HLSManager.cpp
58.96% <0.00%> (-14.35%)
:arrow_down:

mediaPlayer/buffer_controller.cpp
51.69% <0.00%> (-6.78%)
:arrow_down:

framework/demuxer/play_list/HLSStream.cpp
65.46% <0.00%> (-5.10%)
:arrow_down:

mediaPlayer/player_msg_control.cpp
77.04% <0.00%> (-4.92%)
:arrow_down:

mediaPlayer/abr/AbrManager.cpp
90.47% <0.00%> (-4.77%)
:arrow_down:

mediaPlayer/SuperMediaPlayer.cpp
73.51% <0.00%> (-3.97%)
:arrow_down:

framework/demuxer/play_list/playList_demuxer.cpp
77.92% <0.00%> (-2.60%)
:arrow_down:

... and 11 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 275e172...3d57bec. Read the comment docs.


Kunlunxin

Add kunlunxin backend

 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.brianlcy123 seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Clients list - configurable age-out of clients

Currently, clients listed seem to stay in the client table for around 6 months since they were last seen.
Would it be possible to have a configurable age-out so that they drop out after a configurable value (e.g. 4 weeks)? This list could get very large in busy areas?

Ooh. Likes this.

Now we only show online clients - you can  change the view to see all


Add uninstall hook for the kube-stack chart

This adds an uninstall hook which makes sure that we get rid of the CRs before we uninstall the operator. Closes #1300

@jaronoff97 can we reuse the prom live stack charts solution, whatever it is?


[Question] Is there any way to use a full connection string to connect?

As titled, the intent is to have one secret in our key vault to pass through a connection string to the JDBC connection.

as an idea you could have a json string like this one in your keyvault:
{"connectTimeout" : "5", "url" : "<resourcename>.database.windows.net", "bulkCopyTimeout" : "6000", "bulkCopyTableLock" : "true", "databaseName" : "dbname", "bulkCopyBatchSize" : "100000", "user" : "username_credential", "password" : "password_credential"}

and then pull it out of keyvault and use it like this:
// Import libraries
import com.microsoft.azure.sqldb.spark.config.Config
import com.microsoft.azure.sqldb.spark.connect._
import org.apache.spark.sql.functions._

// pull string out of keyvault and assign to final val jsonStr, then:
val m = scala.util.parsing.json.JSON.parseFull(jsonStr).getOrElse(0).asInstanceOf[scala.collection.Map[String,String]] + ("dbTable" -> "tbl_details") // change dbTable value to your target table

val writeConfig = Config(m)

// load dataframe here

df.bulkCopyToSqlDB(writeConfig)

where in the above you could manage the batch size and timeout in the same way you manage the target table.
apologies if i misunderstood the question.

Interesting I guess I could do that - I was hoping I could pull the connection string in ci/cd and store that in a secret but this might be a plan of attack

there might be a better way to do it via ci/cd; this was just an approach. if you land on a better on i'd be keen to trade secrets. :)


Please provide an example of usage

I was wondering if you could provide an example of how to download a youtube video?
On the prompt screen, I type in 'video' followed by the URL of the video, but it says 'command not found'.
e.g. typing the following and pressing enter gives 'command not found'
BashTube >> video https://www.youtube.com/watch?v=DybzmWASPkE

Of course, I plan to create a video about the use of this script, I will get to work with that, I will put it in the README.md
When I finish the video and upload it I will comment with the link of the video :D
To download a video you have to write the option "video", then you will be asked to paste the link of the video you want to download (To get the link you have to go to YouTube and enter the video, there it will appear to share and copy the link)
------------Example------------
BashTube >> video
Copy & Paste the URL of the video: (paste the link)
and the video will begin to download (The downloaded video will be stored in the "Downloads" folder)
I hope this explanation has been helpful

Yes, I followed your instructions, but after typing in 'video' and pressing enter an error message briefly appeared:
File "video.py", line 2 in
import youtube_dl
ImportError: No module named youtube_dl
So, I pip installed youtube_dl. The error message listed above has gone, but the expected behaviour still doesn't happen(it doesn't prompt me for a video url as suggested in your post above).
So now, if I type 'video', press Enter, then the prompt returns to BashTube >>
(I'm on a Mac btw)

How strange, for the moment it has not happened to me, I will try to investigate what has caused that error


Update docs for amp platform

ref: https://github.com/appcelerator/amp/issues/437
ref: https://github.com/appcelerator/amp/issues/459
ref: https://github.com/appcelerator/amp/issues/472
The docs need to be updated to use amp platform . . .

Closing since all referenced issues are closed


[HOLD #11768] [$1000] Login - After creating a new account the user is not brought to Concierge conversation

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

Action Performed:

Navigate to https://staging.new.expensify.com/
In the email field, enter a gmail email address for a new account
Press continue
Set a password that follows the password requirements
After setting the password, verify user is brought to Concierge conversation

Expected Result:
After creating a new account the user is brought to Concierge conversation
Actual Result:
After creating a new account the user is not brought to Concierge conversation
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS
Android
Mobile Web

Version Number: 1.2,17.0
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers): any
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/196317411-f4fbc586-07eb-4057-8565-036c6d358e0b.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

I was able to reproduce this on staging when when the width of the viewport is at most 800*915. This is an external fix

Upwork: https://www.upwork.com/jobs/~010696c2ee4726b141

Reviewing today!

@rushatgabhane what do you mean by RCA? 😂

reviewing today!

doubled

not overdue, will put some more $$$ to it if no updates by Monday

doubling

I have a doubt about this issue,
we have created an issue in the past that for a new user we should open the FAB menu,
so how can we handle this scenario in mobile view for a new user who should open the FAB menu and also navigate to Concierge conversation?
cc: @eVoloshchak @dylanexpensify

I'd say we should prioritize navigating to the Concierge conversation over opening the Fab menu.

Proposal
as we have to navigate to Concierge for mobile devices as web is working fine, we have to make 2 changes here

we have to check if a mobile device
we have to pass isSmallScreenWidth here, for checking mobile device in Welcome actions

https://github.com/Expensify/App/blob/952e5c39e4be989bd4aaea251ce5d3c4c64faa7a/src/pages/home/sidebar/SidebarScreen/BaseSidebarScreen.js#L62
-          Welcome.show({routes, showCreateMenu: this.showCreateMenu});
+          Welcome.show({routes, showCreateMenu: this.showCreateMenu,isSmallScreenWidth: this.props.isSmallScreenWidth });

then navigate to the Concierge chat

in welcome page we have to import Report actions for accessing navigateToConciergeChat function

+import * as Report from './Report';

pass one more param in show function for accessing isSmallScreenWidth
https://github.com/Expensify/App/blob/952e5c39e4be989bd4aaea251ce5d3c4c64faa7a/src/libs/actions/Welcome.js#L98

-function show({routes, showCreateMenu}) {
+function show({routes, showCreateMenu, isSmallScreenWidth}) {

at last when we are showing create a menu, rather than need to check if isSmallScreenWidth then navigateToConciergeChat
https://github.com/Expensify/App/blob/952e5c39e4be989bd4aaea251ce5d3c4c64faa7a/src/libs/actions/Welcome.js#L123-L125

-            showCreateMenu();
+            if(isSmallScreenWidth) {
+               Report.navigateToConciergeChat();
+            } else {
+               showCreateMenu();
+           }

Video After Fix
https://user-images.githubusercontent.com/35371050/200774718-1f2f0578-186d-4a1b-8dd0-bd7ce131630e.mov

@jayeshmangwani, thanks for the proposal!
It is based on @Ollyws's proposal with the exception of using Report.navigateToConciergeChat(), which in turn also just calls  DrawerActions.closeDrawer(), so the proposals are identical

@jayeshmangwani, thanks for the proposal! It is based on @Ollyws's proposal with the exception of using Report.navigateToConciergeChat(), which in turn also calls DrawerActions.closeDrawer(), so the proposals are identical

I'm talking about this case
https://user-images.githubusercontent.com/9059945/200853314-5a1dd839-5e82-4979-b4ce-ba4deb58dee8.mov

if we were to make the drawer close on every report route the user would be presented with a chat instead of the sidebar every time they open expensify web on small screens.

Seems like expected behavior, currently it just navigates to the main screen ignoring reportID in the URL
@Gonals, could you please take a look at this? I'm not entirely sure what is the expected behavior here

Hmmm. It makes sense to me that, if we are providing a reportID, we should direct the user to the chat, even in small screens, rather than the main menu.
@marcaaron, do you have an opinion on this?

We are discussing deprecating the drawer navigator so this should not be a problem in the future. I'd suggest we do nothing for now and close this issue or put it on hold and add it to the long list of bugs related to the drawer navigator.

@marcaaron can we also add HOLD to the title ?

added to title, @madmax330 !

not overdue - moving to weekly

Reviewing the issue based on the weekly bug update chore:
@Gonals this is one of the oldest issues in the /App repo. To help us clear out the large backlog of bugs, can you:

Decide whether any proposals currently meet our guidelines and can be approved as-is
For any that can't, please take this issue internal and treat it as one of your highest priorities
If you have any questions, don't hesitate to start a discussion in #bug-zero

@tjferriss, this is on HOLD :)

Taking over this issue as part of the larger navigation project. Also linking to the main tracking issue.

Still on hold for the larger react navigation re-write.

Still on hold for the navigation re-write.

Still on hold for the navigation revamp.

Switched out weekly for monthly as the project is large and has no defined ETA.

Still on hold for the navigation project.

Getting there, but still on HOLD

Still on HOLD

This is actually working as expected now. Closing


Refactor: remove ak.deprecations_as_errors

This behaviour can be replicated with warnings.simplefilter("error", category)
Additionally remove usage in tests where no deprecated behaviour exists.
From greping the code, there are currently no clients of this global variable besides that of deprecate.
This will be useful for making the tests pass in #917, but is not directly related to it.

This is good. I like the use of a standard library call, rather than a global variable in Awkward.
Our deprecation function and/or the custom one for ak.fill_none's axis argument should recommend this line of code instead of leaving it to the user to come up with that.
Also, the warning for ak.fill_none's axis should recommend the new default, since that's the best way to silence the warning when they see it.

@jpivarski are you happy for this to merge? I'll reply to your other points on #917

The recommendations for ak.fill_none's axis can go on #917, but ak._util.deprecate is missing a message to the user about calling warnings.simplefilter("error", FutureWarning). (Maybe we need a subclass of FutureWarning called AwkwardDeprecationWarning, so that such a filter doesn't eliminate too much?)
It's true that the ak._util.deprecate isn't currently in use, but just to avoid forgetting to add such a message later.

AwkwardDeprecationWarning

OK, I'll add a note about raising warnings as Exceptions using simplefilter. It's a really unfortunate choice of name because simplefilter doesn't really filter - it changes the handling for (a category of) warnings.
I'm not sure about adding a custom warning type: there are already some useful ones:
In [1]: DeprecationWarning.__mro__
Out[1]: (DeprecationWarning, Warning, Exception, BaseException, object)

In [2]: FutureWarning.__mro__
Out[2]: (FutureWarning, Warning, Exception, BaseException, object)

If we use the built-in ones, the only potential problem is if the user makes DeprecationWarning raise an Error, and some of our code (or dependencies) implements such a warning. I'd recommend your guidance on this. Worst case is, we make an ugly diamond inheritance:
In [6]: class AwkwardDeprecationWarning(DeprecationWarning, AwkwardWarning):
   ...:     pass
   ...:
   ...:

In [7]: AwkwardDeprecationWarning.__mro__
Out[7]:
(__main__.AwkwardDeprecationWarning,
 DeprecationWarning,
 __main__.AwkwardWarning,
 Warning,
 Exception,
 BaseException,
 object)

Python's DeprecationWarning is hidden from ordinary users: it gets reported in testing, but not when a library is used interactively. That's why we have to use or inherit from FutureWarning.
The only problem I see with diamond inheritance is being able to guess the method resolution order, but exception classes rarely have any custom methods. So that inheritance diagram looks fine to me. However,

If we use the built-in ones, the only potential problem is if the user makes DeprecationWarning raise an Error, and some of our code (or dependencies) implements such a warning.

Wouldn't that be desirable? If a user makes DeprecationWarning raise an error, then they want our deprecations to raise errors, too.
Or—change the name in all of the above to FutureWarning. I guess for clarity, ours should be named AwkwardFutureWarning, too (so it's easy to guess that it inherits from FutureWarning).

Python's DeprecationWarning is hidden from ordinary users: it gets reported in testing, but not when a library is used interactively. That's why we have to use or inherit from FutureWarning.

We can have Awkward register a default filter for the warning level for its own package to solve this

module is a string containing a regular expression that the module name must match. The expression is compiled to be case-sensitive.

That way we can use the appropriate warning type

The only problem I see with diamond inheritance is being able to guess the method resolution order, but exception classes rarely have any custom methods. So that inheritance diagram looks fine to me. However,

If we use the built-in ones, the only potential problem is if the user makes DeprecationWarning raise an Error, and some of our code (or dependencies) implements such a warning.

Wouldn't that be desirable? If a user makes DeprecationWarning raise an error, then they want our deprecations to raise errors, too.

I was thinking if someone that Awkward uses for something internal emits a warning, that would then break our code that uses it. However, I hadn't seen the module filter as above- this enables us to scope the raise functionality to just Awkward.

Or—change the name in all of the above to FutureWarning. I guess for clarity, ours should be named AwkwardFutureWarning, too (so it's easy to guess that it inherits from FutureWarning).

However, I hadn't seen the module filter as above- this enables us to scope the raise functionality to just Awkward. So, actually, we can just use the built-in warning types!

Oh, okay, then let's use that.

OK, this should do it.

Great! I suppose the "default" filter means that they'll see the DeprecationWarning, then?

Another example of an obvious name ;) Yes, by default Python has the following filters
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning

which ignores DeprecationWarnings unless they're raised in __main__ (default enables them for __main__).

Thanks!


[Error] NaN points using new lidar.

Hi, I'm using the Quanergy M8 Lidar.
Regarding the parameter settings, I followed up on: https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/issues/161
But at the time of running the bag I have received the following [Error]: point cloud is not in dense format please remove NaN points first
The problem is that Quanergy M8 Lidar appears to have NaN points. *Something similar happened here: https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/issues/33 but basically i'm in this same situation: https://github.com/RobustFieldAutonomyLab/LeGO-LOAM/issues/33#issuecomment-706821318
How could i fix it? - Looking forward for your reply.

After I cleaned the data to make it flat, I still see the error:
Failed to find match for field 'ring'.

Any comments?

After I cleaned the data to make it flat, I still see the error:
Failed to find match for field 'ring'.

Any comments?

there is a variable called useCloudRIng in utility.h. Turn it to false.


enable support for esphome

Hi!
Thank you for the great project!
I really want to try it with my VP18EC which is about 18yrs old. However, my Server and the nilan (both panel and the cts600) are separated by a bunch of walls i do not wish to penetrate.
I do have a bunch of esp32s and run esphome.io on them. There is an RS485 component available and with some level shifter one could use it to maybe interface with the cts600?
Would you be willing to look info this?
I tried once to use this Combo in parallel with the display but after some seconds the display posted some error about lost communication and i gave up ...
Thank you!

As it is, this integration speaks directly with some serial RS485 adapter. Really there should be some intermediate communication layer inbetween, allowing for e.g. communication over esphome. Perhaps this layer should be the HA standard "modbus" integration, or something thereabouts.
Maybe someone with a better understanding of the HA architecture than myself could suggest what should/could be the appropriate RS485 layer?

point taken. thank you for the feedback :-)


focus

i don't know if the focus works.. I added it to index.js (of templating resources).
it binds, it stops in focus.js but in blurlistener/focuslistener, the value variable is the text value of my input and not a boolean

I just tested and it works for me. Would you mind share your VM/View? Also what browser are you using?

i'm using chrome.
my view:
<input id="inputSearch" class="validate" type="text" value.bind="searchText" placeholder="placeholder" focus.bind="hasFocus">
<div show.bind="showCalc" > </div>

VM:
@customElement('auto-complete')
export class AutoComplete {
    hasFocus = false;
    searchString = '';
    get searchText() {
        return this.searchString;
    }
    set searchText(newValue) {
    }
   get showCalc()
    {
       return ((this.searchString.length > 0) && this.hasFocus);
    }
)

this is a customElement.
Thanks
Felix

That works as well. Have you tested with the latest release from yesterday? If possible could you put together a repo that replicates the issue?

this works now perfectly with the new release. Thanks alot


JSON Schema v0.2: Hash the UACs

Motivation and Context
We should NEVER emit a plain text UAC, for security reasons.
We should emit a SHA-256 hash of the UAC instead, per the JSON Schema spec.
What has changed
DTO field changed to uacHash
New HashHelper to convert String and/or Bytes to Hash
Tests
How to test?
Maven clean install
Run ATs on branch of same name
Links
https://github.com/ONSdigital/ssdc-shared-events/blob/main/event_dictionary/v0.2_RELEASE/dictionary.md#payload_oneOf_i8_uacUpdate_uacHash
https://trello.com/c/jB50vAb8

 JSON Schema v0.2 RELEASE : UACs should be hashed and don't emit plain text UAC (5)


403 Forbidden with Gradle

I am using Gradle 2.13 and trying to build a Marathon plugin. So I need to declare a dependency on
provided "mesosphere.marathon:plugin-interface:0.15.5"

But Gradle reports;
Could not resolve mesosphere.marathon:plugin-interface:0.15.5.
> Could not get resource 'http://downloads.mesosphere.io/maven/mesosphere/marathon/plugin-interface/0.15.5/plugin-interface-0.15.5.pom'.
> Could not GET 'http://downloads.mesosphere.io/maven/mesosphere/marathon/plugin-interface/0.15.5/plugin-interface-0.15.5.pom'. Received status code 403 from server: Forbidden
Likewise, if I try to fetch it from my browser, I will get an Error (XML) back;
AccessDeniedAccess Denied2934955A90A4212FfbLukNcKuM0hpz2bOST9FV+47HsG82bnJrfvFN1PfzcZrwGon6oloDC8nv6r+KfTTDrwwt1Fb2g=
Version 0.13.0 gives the same result.

Hi @niclash,
unfortunately you are receiving a 403 instead of a 404, which would be semantically correct.
You are depending on a scala compiled artifact, therefore this artifact has a suffix related to the scala version which compiled it. So, if you are not using scala, you need to add this suffix manually, in your case plugin-interface_2.11.
In your case, the line should look like:
provided "mesosphere.marathon:plugin-interface_2.11:0.15.5"

Hope this fixes your issue and I will close this task now. If you have any further questions or this solution is not working for you, feel free comment on this task and/or e-open the task.
Kind regards
Johannes


Test steps netcdf exporter

Closes #200 by including a specific test for the use of a callback function to export a STEPS forecast to netcdf.
Additionally, 42c44d5 fixes a bug introduced by cf34300 which caused an error when a callback was passed with return_output=True.
@pulkkins, can you quickly have a look at 42c44d5 ?
@RubenImhoff can you verify that the test would have caught the issue described in #200?

Tests are currently failing for python 3.8 because of an AttributeError in decorators.py:72:
    @wraps(importer)
    def _import_with_postprocessing(*args, **kwargs):

        precip, *other_args = importer(*args, **kwargs)

        _dtype = kwargs.get("dtype", dtype)

        accepted_precisions = ["float32", "float64", "single", "double"]
        if _dtype not in accepted_precisions:
            raise ValueError(
                "The selected precision does not correspond to a valid value."
                "The accepted values are: " + str(accepted_precisions)
            )

        if isinstance(precip, np.ma.MaskedArray):
            invalid_mask = np.ma.getmaskarray(precip)
            precip.data[invalid_mask] = fillna
        else:
            # If plain numpy arrays are used, the importers should indicate
            # the invalid values with np.nan.
            _fillna = kwargs.get("fillna", fillna)
            if _fillna is not np.nan:
                mask = ~np.isfinite(precip)
                precip[mask] = _fillna

>       return (precip.astype(_dtype),) + tuple(other_args)
E       AttributeError: 'NoneType' object has no attribute 'astype'

/usr/share/miniconda/envs/test-environment/lib/python3.8/site-packages/pysteps/decorators.py:72: AttributeError

Tests are currently failing for python 3.8 because of an AttributeError in decorators.py:72:
    @wraps(importer)
    def _import_with_postprocessing(*args, **kwargs):

        precip, *other_args = importer(*args, **kwargs)

        _dtype = kwargs.get("dtype", dtype)

        accepted_precisions = ["float32", "float64", "single", "double"]
        if _dtype not in accepted_precisions:
            raise ValueError(
                "The selected precision does not correspond to a valid value."
                "The accepted values are: " + str(accepted_precisions)
            )

        if isinstance(precip, np.ma.MaskedArray):
            invalid_mask = np.ma.getmaskarray(precip)
            precip.data[invalid_mask] = fillna
        else:
            # If plain numpy arrays are used, the importers should indicate
            # the invalid values with np.nan.
            _fillna = kwargs.get("fillna", fillna)
            if _fillna is not np.nan:
                mask = ~np.isfinite(precip)
                precip[mask] = _fillna

>       return (precip.astype(_dtype),) + tuple(other_args)
E       AttributeError: 'NoneType' object has no attribute 'astype'

/usr/share/miniconda/envs/test-environment/lib/python3.8/site-packages/pysteps/decorators.py:72: AttributeError

I was able to reproduce the error in python 3.8. It seems to be originated in the import_netcdf_pysteps importer, on line 206:  metadata["threshold"] = np.nanmin(precip[precip > np.nanmin(precip)]). The precip variable has all NaN values, producing the following error:
There was an error processing the file zero-size array to reduction operation fmin which has no identity"
In case of failure, by default, the import_netcdf_pysteps catches the error, print a warning, and returns None, None, None. The first returned None value produced the error on the  _import_with_postprocessing decorator since it expects an array for the precipitation field.
Though, I still couldn't find why this error is only raised in python 3.8 and not in 3.6.
I'll dig a little bit more into it.

I was able to reproduce the error in python 3.8. It seems to be originated in the import_netcdf_pysteps importer, on line 206:  metadata["threshold"] = np.nanmin(precip[precip > np.nanmin(precip)]). The precip variable has all NaN values, producing the following error:
There was an error processing the file zero-size array to reduction operation fmin which has no identity"
In case of failure, by default, the import_netcdf_pysteps catches the error, print a warning, and returns None, None, None. The first returned None value produced the error on the  _import_with_postprocessing decorator since it expects an array for the precipitation field.
Though, I still couldn't find why this error is only raised in python 3.8 and not in 3.6.
I'll dig a little bit more into it.

Nice work! I'll try to take a look at it today. :)

Nice work! I'll try to take a look at it today. :)

I was able to reproduce the error in python 3.8. It seems to be originated in the import_netcdf_pysteps importer, on line 206: metadata["threshold"] = np.nanmin(precip[precip > np.nanmin(precip)]). The precip variable has all NaN values, producing the following error:
There was an error processing the file zero-size array to reduction operation fmin which has no identity"
In case of failure, by default, the import_netcdf_pysteps catches the error, print a warning, and returns None, None, None. The first returned None value produced the error on the _import_with_postprocessing decorator since it expects an array for the precipitation field.
Though, I still couldn't find why this error is only raised in python 3.8 and not in 3.6.
I'll dig a little bit more into it.

Thanks Andres for having a look. Unfortunatly I can't manage to reproduce the error in my 3.8 environment. Can you please share the steps you used?

I was able to reproduce the error in python 3.8. It seems to be originated in the import_netcdf_pysteps importer, on line 206: metadata["threshold"] = np.nanmin(precip[precip > np.nanmin(precip)]). The precip variable has all NaN values, producing the following error:
There was an error processing the file zero-size array to reduction operation fmin which has no identity"
In case of failure, by default, the import_netcdf_pysteps catches the error, print a warning, and returns None, None, None. The first returned None value produced the error on the _import_with_postprocessing decorator since it expects an array for the precipitation field.
Though, I still couldn't find why this error is only raised in python 3.8 and not in 3.6.
I'll dig a little bit more into it.

Thanks Andres for having a look. Unfortunatly I can't manage to reproduce the error in my 3.8 environment. Can you please share the steps you used?

These are the steps I followed:
conda create -n test_py38 python=3.8

conda activate test_py38

conda install cython numpy jsmin jsonschema matplotlib netCDF4 opencv pillow pyproj pygrib scipy dask pyfftw cartopy h5py PyWavelets pandas scikit-image pytest pytest-cov

pip install git+https://github.com/pySTEPS/pysteps.git@test-netcdf-exporter

Then, from from the tests directory:
pytest test_nowcasts_steps.py

These are the steps I followed:
conda create -n test_py38 python=3.8

conda activate test_py38

conda install cython numpy jsmin jsonschema matplotlib netCDF4 opencv pillow pyproj pygrib scipy dask pyfftw cartopy h5py PyWavelets pandas scikit-image pytest pytest-cov

pip install git+https://github.com/pySTEPS/pysteps.git@test-netcdf-exporter

Then, from from the tests directory:
pytest test_nowcasts_steps.py

Thanks @aperezhortal for the help, I was able to reproduce the errors by installing the latest scipy version (1.6).
This looks a bit complicated and probably deserves a separate issue. For the moment I was able to avoid the error by setting vel_pert_method=None when calling the nowcasts.steps (see ef6288f). From what I understand, the AttributeError mentioned above is caused by

output of steps.forecast being all NaNs (this is what @aperezhortal noticed in the first place) with scipy>=1.6.
which is caused by the call to extrapolator_method(R_f_ip, V_pert, [t_diff_prev], **extrap_kwargs_) (L#757 of steps.py) (Note that this is calling semilagrangian.extrapolate )
which caused by the variable V_pert being all NaNs
which is returned by generate_vel_noise(vps[j], t_total[j] * timestep) (L#754 in steps.py)

Worth noticing that with scipy<1.6, step 2 seems to returned a field of finite values, which did not trigger the final AttributeError. I need to look into this a bit more, but it seems that the behavior of semilagrangian.extrapolate with respect to input NaNs changed. Might be related to recent changes in map_coordinates.

Thanks @aperezhortal for the help, I was able to reproduce the errors by installing the latest scipy version (1.6).
This looks a bit complicated and probably deserves a separate issue. For the moment I was able to avoid the error by setting vel_pert_method=None when calling the nowcasts.steps (see ef6288f). From what I understand, the AttributeError mentioned above is caused by

output of steps.forecast being all NaNs (this is what @aperezhortal noticed in the first place) with scipy>=1.6.
which is caused by the call to extrapolator_method(R_f_ip, V_pert, [t_diff_prev], **extrap_kwargs_) (L#757 of steps.py) (Note that this is calling semilagrangian.extrapolate )
which caused by the variable V_pert being all NaNs
which is returned by generate_vel_noise(vps[j], t_total[j] * timestep) (L#754 in steps.py)

Worth noticing that with scipy<1.6, step 2 seems to returned a field of finite values, which did not trigger the final AttributeError. I need to look into this a bit more, but it seems that the behavior of semilagrangian.extrapolate with respect to input NaNs changed. Might be related to recent changes in map_coordinates.


Please ask, how to upload the image to the server in the editor?

Q: where is the way to upload pictures? Do not want to convert the image to a string;
Seeking guidance

@yonghui666
I think it's the same question as issue #127. Check it out.
And I hope you will keep the issue template and register your issue. :)


sszgen: max size shadowed by first occurence of custom type def

Bytes []byte

type A struct {
        Foo Bytes `ssz-max:"2048"`
}

type B struct {
        Bar Bytes `ssz-max:"32"`
}

If you run sszgen on these structs, both A and B will use 2048 as the max size for the byte list. In the case of B, this causes an incorrect hash-tree-root to be calculated, because the mix in should be based on 32, not `2048.

It's also making a MarshalSSZ method with an offset that is never used:
func (b *Bytes) MarshalSSZTo(buf []byte) (dst []byte, err error) {
    dst = buf
    offset := int(4)

    return
}

@ferranbt I'm using the sszgen given by go install github.com/ferranbt/fastssz/sszgen@latest

Fixed in #76. There are two things here:

There was an error indeed on the tags being reused for the other object. This one is fixed.
The object Bytes cannot ever be ssz generated since it requires tags. You would have to skip it with --exclude-objs flag.

Great - thank you @ferranbt. Will --exclude-objs also resolve the following issue:
import "github.com/ethereum/go-ethereum/common/hexutil"

type A struct {
        Foo hexutil.Bytes `ssz-max:"2048"`
}

type B struct {
        Bar hexutil.Bytes `ssz-max:"32"`
}

and sszgen --include ../go-ethereum/common/hexutil --path . --objs A,B causes the resulting encoding file to have the error
./main_encoding.go:6:2: imported and not used: "github.com/ethereum/go-ethereum/common/hexutil"

Ok, now this is a different thing hahah. I was wondering if that Bytes object would come from a different place. In this case, you do not need to use --exclude-objs since it is not part of the main source. Do you mind opening another issue regarding this?


fix prroi_pool API cn doc

add new input params to prroi_pool API, fix cn doc.

 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.

 All committers have signed the CLA.

Can one of the admins verify this patch?


Setup U-ADS marketplace test and dev access/environment

https://unity-sds.gitbook.io/docs/developer-docs/common-services/docs/users-guide/deployment/deployment-concepts-and-infrastructure/detailed-breakdown-of-project-onboarding-steps

@mcduffie ping for status.

@mcduffie @mike-gangl Is it okay if we move this ticket to "Future Work", since we are putting the "U-ADS into the Marketplace" on ice for now?

@mcduffie , @pymonger will start to work on this in October


Meta: Community Wiki Changes Immediate

I recently modified the community wiki page https://github.com/commaai/openpilot/wiki/SSH and the changes were live immediately with no approval process (see the history for my change). I'm not even certain anyone is notified that changes have been made. Can I have someone peer review the changes I've made? (I added the Experienced Developer Quick Start)
This behavior may be intentional, but I looked for anything discussing this and couldn't find it. I'm opening this report since the policy could be abused by spam bots.
Best of memory, when I've made similar changes in other projects it generated a pull request to the wiki directly in browser. Perhaps my mind has fabricated this memory though.

This is intentional. The README's in the repo are intended to be authoritative, while the wiki is community maintained (see the SSH README as an example). AFAIK, there is no feature like the one you remember in GitHub Wikis.

Thanks for the explanation. This open-and-shut bug report should now help future people curious about this, so I think it was worth the effort in the end.


Version 3.3.0-rc6 actually doesn't contain fix for #959

Hello!
Seems like #1002 just isn't there. Tested on pip and from repository. Just download https://github.com/yourlabs/django-autocomplete-light/archive/3.3.0-rc6.zip and look at file src/dal_select2/widgets.py

Indeed, #959 is fixed on master, but not on rc6. At least not anymore, because I vaguely remember it was there, but not 100% sure.

Can you try with 3.3.0 please ?

3.3.0 works, thanks!

Now the fix is there! Thanks.


Fix DataFrame.apply to support additional dtypes.

Fix DataFrame.apply to support additional dtypes.
After this, additional dtypes can be specified in the return type annotation of the UDFs for DataFrame.apply.
>>> kdf = ks.DataFrame(
...     {"a": ["a", "b", "c", "a", "b", "c"], "b": ["b", "a", "c", "c", "b", "a"]}
... )
>>> dtype = pd.CategoricalDtype(categories=["a", "b", "c"])
>>> def categorize(ser) -> ks.Series[dtype]:
...     return ser.astype(dtype)
...
>>> applied = kdf.apply(categorize)
>>> applied
   a  b
0  a  b
1  b  a
2  c  c
3  a  c
4  b  b
5  c  a
>>> applied.dtypes
a    category
b    category

FYI: without the fix:
>>> applied
   a  b
0  0  1
1  1  0
2  2  2
3  0  2
4  1  1
5  2  0
>>> applied.dtypes
a    int64
b    int64
dtype: object

Codecov Report

Merging #2125 (5446ec7) into master (c9e4791) will decrease coverage by 5.40%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master    #2125      +/-   ##
==========================================
- Coverage   95.37%   89.96%   -5.41%
==========================================
  Files          60       60
  Lines       13591    13477     -114
==========================================
- Hits        12962    12125     -837
- Misses        629     1352     +723

Impacted Files
Coverage Δ

databricks/koalas/frame.py
93.46% <100.00%> (-3.07%)
:arrow_down:

databricks/koalas/plot/plotly.py
15.78% <0.00%> (-81.06%)
:arrow_down:

...bricks/koalas/tests/plot/test_frame_plot_plotly.py
23.33% <0.00%> (-76.67%)
:arrow_down:

...ricks/koalas/tests/plot/test_series_plot_plotly.py
26.92% <0.00%> (-71.26%)
:arrow_down:

databricks/koalas/usage_logging/__init__.py
28.20% <0.00%> (-64.36%)
:arrow_down:

databricks/koalas/usage_logging/usage_logger.py
47.82% <0.00%> (-52.18%)
:arrow_down:

databricks/koalas/typedef/typehints.py
69.38% <0.00%> (-26.03%)
:arrow_down:

databricks/koalas/__init__.py
77.63% <0.00%> (-14.48%)
:arrow_down:

databricks/conftest.py
87.27% <0.00%> (-12.73%)
:arrow_down:

databricks/koalas/tests/indexes/test_base.py
91.84% <0.00%> (-8.16%)
:arrow_down:

... and 28 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 c9e4791...5446ec7. Read the comment docs.

Thanks! merging.


refactor: use mocha instead of ava

I switched this over to ava at some point.  That was a mistake.  I am trying to standardize our stuff on on mocha, and I wanted to get code coverage working better, so we're back here.  It's actually faster than ava in this case 😆

Codecov Report

Merging #63 into master will increase coverage by 2.04%.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           master    #63      +/-   ##
========================================
+ Coverage   97.95%   100%   +2.04%
========================================
  Files           1      1
  Lines          49     49
  Branches        9      9
========================================
+ Hits           48     49       +1
+ Misses          1      0       -1

Impacted Files
Coverage Δ

src/index.ts
100% <0%> (+2.04%)
: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 cf25ff9...0d86b1d. Read the comment docs.


Fix autodetection of built-in SDCard readers

The built-in SDCard device driver in Linux marks these drives a
non-removal. See the comment at
https://elixir.bootlin.com/linux/v5.8.18/source/drivers/mmc/core/block.c#L2335.
This change modifies the drive detection logic to consider all built-in
SDCard readers to hold removable block devices from fwup's point of
view. Even if the Linux kernel maintainers view these devices as
non-removable, this change should be safe to nearly all fwup users
since it's rare to use an SDCard for a system drive. There's another
check, though, so if you use an SDCard for a root filesystem, fwup
will not autodetect it.
Fixes #154

Coverage increased (+0.003%) to 87.204% when pulling e4bccadabb40ea71d8d8f098e1a71a960f1c8a1b on fix-mmcblk-detection into c0d4ef9a766d96b4426f09de6233bc18190c379d on main.

Coverage increased (+0.003%) to 87.204% when pulling e4bccadabb40ea71d8d8f098e1a71a960f1c8a1b on fix-mmcblk-detection into c0d4ef9a766d96b4426f09de6233bc18190c379d on main.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


TextFormField reset() calls setState() twice

I was reviewing the TextFormField code and I found its reset code calls setState:
https://github.com/flutter/flutter/blob/bced0351aedd719f65429d02b0baa8c8653342ea/packages/flutter/lib/src/material/text_form_field.dart#L346-L352
But before that, reset calls super.reset(), and this's the code for super.reset():
https://github.com/flutter/flutter/blob/bced0351aedd719f65429d02b0baa8c8653342ea/packages/flutter/lib/src/widgets/form.dart#L442-L450
So in the end there will be 2 calls to setState() from inside the reset() function.
Not a major bug or performance impact, but a minor improvement.

Cc @justinmc


AttributeError: 'MultipleOptimizer' object has no attribute 'step'

Encountered while training models in a multi-node setting (+ validation iter +  early stopping):
Traceback (most recent call last):
  File "/scratch/project_2005099/data/god-save-the-king/redo/mammoth/mammoth/distributed/communication.py", line 235, in consumer
    process_fn(
  File "/scratch/project_2005099/data/god-save-the-king/redo/mammoth/mammoth/train_single.py", line 168, in main
    trainer.train(
  File "/scratch/project_2005099/data/god-save-the-king/redo/mammoth/mammoth/trainer.py", line 293, in train
    self.optim.externally_managed_step(gradient_syncs)
  File "/scratch/project_2005099/data/god-save-the-king/redo/mammoth/mammoth/utils/optimizers.py", line 413, in externally_managed_step
    self._scaler.step(self._optimizer)
  File "/usr/local/lib64/python3.9/site-packages/torch/cuda/amp/grad_scaler.py", line 452, in step
    retval = self._maybe_opt_step(optimizer, optimizer_state, *args, **kwargs)
  File "/usr/local/lib64/python3.9/site-packages/torch/cuda/amp/grad_scaler.py", line 350, in _maybe_opt_step
    retval = optimizer.step(*args, **kwargs)
AttributeError: 'MultipleOptimizer' object has no attribute 'step'

@Waino seems related to #8 and #66 ?

Indeed. Due to the removal of the grad hook, MultipleOptimizer no longer has a method step, it has been replaced with externally_managed_step which takes information about which optimizers need to be stepped. This means that it is no longer compatible with torch.cuda.amp.GradScaler.
We may have to move the GradScaler inside of MultipleOptimizer, to wrap each sub-optimizer individually.
As a workaround, not using fp16/amp still works.


Airtable shows two different times for an event (timezone issue?)

Formatted and machine readable different times

Is this happening across the board or to a specific spider?

Not sure -- this was reported by @diaholliday and he showed me an example but I didn't see which spider it was from. Generally speaking, a round of checking on datetimes and fixing any inconsistencies would be useful.

Across the board

looks like there's a timezone issue (or something) between "start-time-formatted" and "start-time"

OK, that is really helpful! Next steps for the person that picks this up:

[ ] Verify which (if either) column shows the correct time
[ ] Check to see how the Airtable upload code is determining these values.
[ ] Verify datetimes coming out of spiders are correct and with the right timezone info.

Took a look at this, and start_time_formatted seems to have the right time, but start_time is consistently 6 hours later. From looking at the output of the Airtable pipeline on a few of the spiders, the start_time string seems to have the right value (the -6:00 is consistently at the the end of the string with the right time), but Airtable seems to be converting it to UTC

I wonder if fiddling with Airtable tz settings might resolve this. I'll take a look later.

Any update on this issue?

@diaholliday I think this is resolved in EventsTest. We can test once the rollout is complete.


koord-scheduler: change NodeNUMAResource API endpoints

Signed-off-by: Joseph<EMAIL_ADDRESS>Ⅰ. Describe what this PR does
change the NodeNUMAResource plugin's API endpoints to use the same RestfulAPI style.

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[x] I have written necessary docs and comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in make test

/approve


[BUG] Operator is not Istio Servicemesh Bulletproof

I am trying to get an Opensearch cluster running in combination with the Istio Servicemesh. The Servicemesh takes over the encryption for me. While pure TCP stream (i.e. port 9300) can be double-encrypted and thus has no effect on the transport layer, I fail at http port 9200. The operator generates a security configupdate job at bootstrap, which necessarily requests https://opensearch.{namespace}:9200. I have no option here to either set it to http or to set an annotation for this job.

Hi @Crazyigor1987. The securityconfig-update-job uses client certificates, so it always needs to connect with its own https/tls connection.
As I see you've already filed a specific issues for the annotations, I'm closing this issue. If you have specific issues/ideas to make the operator work (better) with istio, please feel free to file separate issues for them.


fix: add missing init files

allows us to run commands without the need for pip install -e .
For example, streamlit run scripts/sampling.py --server.port 8888 requires us to either run pip install -e or make the changes in this pull request.

Thank you for your contribution!


Empty response body

Hi,
I would like to return a void (empty) object on operations that do not require a response body in Asp.Net core.
I use MediatR for MVC with CQRS.
My command class:
public class PatchCustomerCommand : IRequest<Unit>
{
	public string TenantCode { get; set; }
	public JsonPatchDocument<PatchCustomerDao>  Customer { get; set; }
}

the handler class:
public class PatchCustomerCommandHandler : IRequestHandler<PatchCustomerCommand, Unit>
{
	....
	public async Task<Unit> Handle(PatchCustomerCommand request, CancellationToken cancellationToken)
	{
		....
		return Unit.Value;
	}
}

And my controller:
[HttpPatch("{tenantCode}")]
public async Task<ActionResult<object>> Patch(string tenantCode, [FromBody] JsonPatchDocument<PatchCustomerDao> value)
{
	return Ok(await _mediator.Send(new PatchCustomerCommand
								   {
									   TenantCode = tenantCode,
									   Customer = value
								   }));
}

Expected json result:
"" (empty body)
Actual result:
"{}" (two curly brackets)
TechDetails:
TargetFramework: netcoreapp2.2
MediatrNugetPackage: MediatR.Extensions.Microsoft.DependencyInjection
MediatrNugetPackageVersion: 7.0.0
Thank you :)

You can return instead of void, but Unit. I can't use void as a first-class type, so the Unit type can represent "null" or "nothing"


Tree component bug

I write a tree component,in it,i refer child component which required by itself.

Vue warn :Failed to mount component: template or render function not defined.
Can't i use its own component in its tempalte?

Did you provide your component with a name option ?

在路由文件中，导入组件时不要使用  const Comp =  import("./comp.vue")  这样的方式导入组件
正确方式应该是这样：  import Comp from './comp.vue'  ，如果使用第一种方式，就会报错。


Example Gigatables

Hello, I'm newbie with react and I need to display data in a table and make CRUD. I have an API with this functionalities, but I don't know how to implement GigaTables in my code. Can I see any example code or something to guide me? Thanks a lot

See here- https://github.com/GigaTables/reactables#user-content-minimal-configuration
Of course u'll need to install npm and all dependencies for Gigatables, but it is simple as run:
brew install node

and
npm i

google everything u don't know.


fix(TransactionsStats): update CollectiveTransactionStats

Follow-up on https://github.com/opencollective/opencollective-api/pull/10194
The previous fix works for the JS version. However, fast balances are still affected by the bug because the change was only made on CurrentCollectiveTransactionStats, without being propagated to CollectiveTransactionStats.

Latest version looks good.


Fixed Typings to make snoowrap compile in TypeScript 3.7.0-beta

Closes:
https://github.com/not-an-aardvark/snoowrap/issues/224

LGTM


Can't start proxying from Chrome 40.0.2214.28.

Running the same build, I can use Chrome 39.0.2171.71 to get access from another instance of 39.0.2171.71 or from an instance of 40.0.2214.28. I can not use Chrome 40 to get access from either 39 or 40.
I noticed this in the app background page of 40 (but not in 39):
*[PeerConnection](11/4 21:19:44.550) D: socksRtc: negotiateConnection_: dodging.
It seems like in 40, the negotiateConnection function returns prematurely, following from this logic:
if (_this.pc_.localDescription && _this.pc_.remoteDescription) {
{
_this.pc_.localDescription, _this.pc_.localDescription;
}
return log.debug(_this.peerName + ": negotiateConnection_: dodging."), _this.onceConnected;
}
(from line 511 in uproxy-core-env.js)
Right after this block of code is a call to createOffer, which is therefore never reached.
When running Chrome 39, localDescription and remoteDescription are null, but in 40 they're both equal to RTCSessionDescription {sdp: "", type: ""}.

Thanks for the detailed description, @lucyhe.
It seems pretty clear that we'll need to wait for version 41 so I'm going to close this for now. If that changes, we can re-open:
https://github.com/uProxy/uproxy/issues/615


Accessories not shown

What issue do you have? Please be as thorough and explicit as possible.
Details of your setup.

Do you use (1) Homebridge UI-X (2) Homebridge CLI or (3) HOOBS?
HOOBS

Which version of Homebridge/HOOBS do you have?

V4

Which platform do you run Homebridge/HOOBS on (e.g. Raspberry Pi/Windows/HOOBS Box)? Please also mention your version of Node.js/NPM if known.

Raspberry Pi

Which version of this plugin (homebridge-deebot) do you have? Has the issue started since upgrading from a previous version?

The issue started after I changed my account.

Which ECOVACS devices do you have that are causing issues? Please include product models if applicable.

Deebots X1
Please paste any relevant logs below.

The issue is the deebots not showing up in hoobs which previously did. This happen after I changed my account. Before this it is working perfectly such as cleaning or docking.

@yokouchi86
I need the "class" for the Deebot X1 to make it available in the underlying library.
Please check "Plugins" -> "Homebridge Deebot" -> "Settings" -> "My devices" -> "Class (Resource)"

@yokouchi86
I also need the full official model name (e.g. "Deebot X1 Omni", "Deebot X1 Turbo")

Unfortunately HOOBS doesn’t offer this “my devices” option, this is only available in the Homebridge UI.
@yokouchi86 you can get the same information by using the plugin settings to turn on “Debug Logging”, then save and the bridge will restart, can you copy and paste here all the logs from the deebot plugin that appear?

@mrbungle64 I cannot see the my devices option under hoobs as @bwp91 mentioned.
@bwp91 not sure if I am doing the right thing.
''
11/14/2021, 6:48:08 PMDeebot Bridge starting
11/14/2021, 6:48:11 PMDeebot BridgeLoaded plugin 'homebridge-deebot'
11/14/2021, 6:48:11 PMDeebot BridgeLoading 1 platforms...
11/14/2021, 6:48:11 PMDeebot BridgeDeebotInitialising plugin v4.2.7 | Node v14.18.1 | HB v1.3.4 | HOOBS v4...
11/14/2021, 6:48:11 PMDeebot BridgeDeebotPlugin initialised. Setting up accessories....
11/14/2021, 6:48:11 PMDeebot BridgeDeebotUsing ecovacs-deebot library v0.6.8.
11/14/2021, 6:48:11 PMDeebot BridgeBridge is running on port 51866.
11/14/2021, 6:48:13 PMDeebot BridgeDeebot✓ Setup complete. Interested in sponsoring this plugin? https://github.com/sponsors/bwp91
''

The issue started after I changed my account.

Have you updated the config with your new account details? It doesn't look like the plugin is registering any devices... is your deebot device definitely linked to the account you have configured in the plugin?

@bwp91 I am positive that I linked to the account, as I had done this yesterday and Deebot shows up in accessories. However, after I changed to my new account (old account is gone), re-setup the Deebot on the new account and reinstall the plugin, nothing appear.

@bwp91

Can you go to the plugin section in the hoobs ui, do the deebot plugin and click this icon to update to the beta version:

Then select the existing deebot bridge and it will install the beta version. The bridge will then restart and can you copy and paste the logs that appear again?

@bwp91
1/14/2021, 7:16:32 PMDeebot BridgeLoaded plugin 'homebridge-deebot'
11/14/2021, 7:16:32 PMDeebot BridgeLoading 1 platforms...
11/14/2021, 7:16:32 PMDeebot BridgeDeebotInitialising plugin v4.2.8-beta.3 | Node v14.18.1 | HB v1.3.4 | HOOBS v4...
11/14/2021, 7:16:32 PMDeebot BridgeDeebotPlugin initialised. Setting up accessories....
11/14/2021, 7:16:32 PMDeebot BridgeDeebotUsing ecovacs-deebot library v0.7.0-alpha.1.
11/14/2021, 7:16:32 PMDeebot BridgeBridge is running on port 51866.
11/14/2021, 7:16:34 PMDeebot BridgeDeebot[0] device(s) found in your ECOVACS account.
11/14/2021, 7:16:34 PMDeebot BridgeDeebot✓ Setup complete. Join the plugin's Discord community! https://discord.gg/cMGhNtZ3tW

11/14/2021, 7:16:34 PMDeebot BridgeDeebot[0] device(s) found in your ECOVACS account.

The plugin isn't discovering any devices in your account 🤔

@bwp91 yup thats where I am lost. It didnt happen previously. Let me try create another account and see how it is.

@bwp91 not sure what happen, I restore my robot again and this time it works. Suddenly it is detected. Thanks for your prompt response, really appreciate it.

@yokouchi86
Please still provide the "class" and full official model name 😉
Thank you in advance

@mrbungle64 is it this? I not sure how to find the official model name but in the add robot list is named "Deebot X1 Omni"
initialised with id [167f64d7-2bf0-4a16-988c-2518bc8a5446] additional info {"did":"167f64d7-2bf0-4a16-988c-2518bc8a5446","name":"E0AP15155C09HKTR0174","class":"8bja83","resource":"kPOe","nick":"Riku Deebot","company":"eco-ng","bindTs":1636899790247,"service":{"jmq":"jmq-ngiot-cn.dc.cn.ecouser.net","mqs":"api-ngiot.dc-cn.cn.ecouser.net"}}.

Hi @yokouchi86 yes I think this is what mrbungle64 needs, and I am glad that everything seems to be working again :)

@mrbungle64 is it this? I not sure how to find the official model name but in the add robot list is named "Deebot X1 Omni"
"class":"8bja83"

Thanks 👍🏻


[BUG]: "@agent" doesn't work in V1.6.7?

How are you running AnythingLLM?
AnythingLLM desktop app
What happened?
"@agent" doesn't work in V1.6.7
Stop at
"Agent @agent invoked.
Swapping over to agent chat. Type /exit to exit agent execution loop early."
or
Directly go to
"Agent session complete."
Are there known steps to reproduce?
No response

Work nornally now ..
so strange

I have the same problem.. nothing happens with the agents
Agent @agent invoked.
Swapping over to agent chat. Type /exit to exit agent execution loop early.
Agent session complete.

You can find logs here: https://docs.anythingllm.com/installation-desktop/debug
Agent closing early is almost always a user config issue:
https://github.com/Mintplex-Labs/anything-llm/issues/1793
https://github.com/Mintplex-Labs/anything-llm/issues/2248
& many more you can search in issues @trafficonese