Multinode - Blockchain SetUp

I am trying to setup a blockchain network using 4 vms. each of the vms has fabric-peer and fabric-membersrvc docker images and that seems to work successfully. I have setup password less ssh among all vms for normal user(non-root). But the docker images are unable to communicate with each other.
Do I require Passwordless ssh for "root" users among vms ? Are there any other requirements?

Hello @sanachitmehra,
You should be able test whether your SSH is configured correctly, separately.
First two things I'd check may be:

Docker

Do you have the ip_forward flag set to 1? https://docs.docker.com/engine/userguide/networking/default_network/container-communication/

Vagrant

(Are you using Vagrant, or running these natively, is so:)
I would also check that you allow port forwarding https://www.vagrantup.com/docs/networking/forwarded_ports.html
You can also hit me/us up also on Hyperledger's Slack...

@sanachitmehra Thanks for submitting this issue. However, we have transitioned issue tracking to Jira https://jira.hyperledger.org/ Please transfer this issue there and then close this one. Thanks!


ON-9170 # Added user token encryption

Needs changelog, docs, and public facing encryption and decryption methods.

Needs changelog, docs, and public facing encryption and decryption methods.

Was going to do the methods with the generateUrl task

sounds good 👍


taskscheduler return next run time incorrect

Hi,
I am tring to access task hosted at Europe located server but my code is running on US located server. I am geeting Last Run Time values correct for the task but Next Run time is geeting convert as per EST (US) timezone. Which is past date than last run time !!!
How to get the correct Next Run Time (as per Windows Task Scheduler showing on Europe Server)?
Please help!
Originally posted: 2014-03-12T18:15:58

Interesting. Can you tell me what version of Windows you are running locally and on the remote server? In trying to troubleshoot, it will help me to know if this is a V1 vs. V2 problem or not. Also, if I understood correctly, you are getting the correct next run time value when you use the system Windows Task Scheduler tool. If that is right, what steps are you taking to connect and then discover that value?
Originally posted: 2014-03-13T09:33:32

Hi,
Windows Version for both the servers is Windows Server R2.
Yes, I am getting the correct next run time value when you use the system Windows Task Scheduler tool, but when I am using below code it to get the Next Run time it is converting as per EST (US) timezone.
TaskScheduler.Task task;
//some code here to initilize task object.
task.NextRunTime.ToString();
Result:
Last Run Time
3/13/14 4:30 PM
Next Run Time
3/13/14 11:40 AM
Next Run Time is showing as per (EST) it should be 3/13/14 4:40 PM. In Windows Task Schdule on Europe server it is showing Next Run Time =  3/13/14 4:40 PM.
Please help!
Originally posted: 2014-03-13T09:59:43

Just to be clear, when you get the time using the Windows Task Scheduler tool, are you connecting to the remote server using the system tool on your local machine? Similarly, are you running the code to connect to the remote server from your local machine? I'm trying to make sure the code is being called in the same way before troubleshooting.
Originally posted: 2014-03-14T07:51:30

Hi,
To get time of task from Windows Task Scheduler of Europe server, i am doing Remote Desktop Connection and I can see Next Run Time as per Europe timining.
But When I am running above code from my US Server and tring to get Next Run Time (of task from Windows Task Scheduler of Europe server) using below code I am getting, Next Run Time converted into EST timing.
TaskScheduler.Task task;
//some code here to initilize task object.
task.NextRunTime.ToString();
Would that help you to troubleshoot? Let me know for more information.
Originally posted: 2014-03-14T09:53:35

That helps. Will you try and connect to the server in Europe from your local instance of the Windows Task Scheduler tool (Actions | Connect to Another Computer) and then see if the time zone for next run time is incorrect? The reason I'm asking is that I am only pulling the value directly from the native library and need to know if the library or my wrapper is causing the problem.
Originally posted: 2014-03-17T07:03:55

I tried to connect to Europe server using remote desktop connection and the Next Run Time in task scheduler is showing correct. But while pulling Bext Run Time using code it is showing incorrect (in EST).
Originally posted: 2014-03-17T07:26:01

I understand. However, I'm asking you to connect to the European server using the local Windows Task Scheduler tool. It will then use the same native call to get the next run time remotely that my library is using. If they both return the same time, then I know the problem is in the native library. By doing what you have done, you are always calling the library locally (which I know works consistently).
Originally posted: 2014-03-17T18:06:14


Add link to Cloud Console for the output log.

If GCS Uniform Bucket ACLs are configured then the streaming log is not easily accessible via the link provided.
This change provides an alternate link that allows you to easily get an Authenticated URL to the GCS object.

/retest

Can you provide steps to repro the issue? Here's what I did, and the original link opens fine:

Load the storage browser: https://console.cloud.google.com/storage/browser
Create a new bucket. Use all defaults, except specify uniform access control
Run daisy, supplying the bucket using this argument:  -gcs_path=gs://...
Load the https://storage.cloud.google.com/ link

/hold (We're preparing a release, scheduled to ship Thursday)

/unhold: Talked with Zach, and we're delaying the release until after Thanksgiving.

Can someone bestow the /ok-to-test so I can verify that the tests pass?

/ok-to-test

Can someone bestow the /ok-to-test so I can verify that the tests pass?
Hi Jeremy,
The tests passed.
Can you follow up on Eric's comment? It seems he's unable to reproduce the issue this PR fixes.
Thanks


Introduction of active elements to contol system

With view to variable electricity prices it would be great to get 2 active control entities for the Senec power storage:

Load from Grid (to store power in times with low prices)
Stop discharge (to prevent losing charge in times with low price to e.g. Heat Pumps or Non_Senec Chargers

Both options seem to be available manually for Senec-Technicans

@klaus1956 - for the first switch I know how this works on the Senec V3 - but for the second one I am currently clueless what field in the build in user-interface (webserver) would enable/disable this... During my private research I came across a second switch called 'li_storage_mode' - when enabled the system switch to 'LITHIUM SAFE MODE DONE' - but my observation is, that then still power from the battery is used...
So do you have any additional information about your observation - did you actually saw a 'Senec-Technican' enable ("Stop discharge") on your system?

When I experimented with these functions from the UI I observed strange behavior and later found that SENEC limited my battery to 70% - which is still status.
I delay all further test until I am Bach to normal 100% operation

... it's not "only" your battery that's once more limited to 70% of the original capacity - we are all running in this mode since a couple of days - again...
But it's totally fine when you don't want to do any kind of experiments right now - just let me know, when there is a update...
Allow me to summarize my current understanding, why two different switches are wanted:
When enable the 'Load Battery', then all available power from PV (can be 0) + additional required power from grid will be used to charge the battery to max capacity (currently just 70% - but obviously to 100% in normal conditions)... While the switch is turned on the power stored in battery will not be used - but of course if the battery is not fully changed the system will take the power from the grid to charge the battery.
The additional switch is wanted in the situation, that the battery is not at 100% but you still want to use grid power only... (more or less a "disconnect battery" switch)... As I said - During my research in the html & javascript sources I did not found any traces of such a functionality - but this actually does not mean anything.

In my last test the battery after being fully charged with that function did not return to battery operation - a full night of consumption was taken from the grid instead of the battery.
I am still lacking the understanding of these functions

That's also my understanding of the 'Vollladung' Button in the SETUP-Wartungs Section - once you press/start it - it will fully charge the battery and once it's full the power will not be available to your home - all power is used from PV and GRID only... Till you press the 'Freigeben' button..
"this" functionality is already available in ha-senec-v3 - I know you have a v2.1 - I hope you understand, that I only can test v3 here @ home ;-)


TypeError: 'float' object is not iterable

Hi, thanks for sharing this useful work! I'm reading the program and there was something wrong when I debug 'main.py' (train). The problem is as following:
for ema_decay in args.model_ema_decay:
TypeError: 'float' object is not iterable

'args.model_ema_decay' was set 0.99996 as guideline.
Could you give some suggestions on the problem? Thanks a lot.
Yue.

you can directly change the default args.model_ema_decay from 0.99996 to [0.99996], this for loop is used to train with multiple ema decay numbers simultaneously.

Got it! It can work now.
Thanks a lot!


[mobile] Mobile RPCs

This PR adds the necessary APIs and build scripts in order to compile lnd for mobile platforms.
Building mobile libraries
Prerequisites
gomobile
Follow gomobile in order to intall gomobile and dependencies.
Remember to run gomobile init! (otherwise the lnd build might just hang).
falafel
Install falafel:
go get -u -v github.com/halseth/falafel

Building lnd for iOS
make ios

Building lnd for Android
make android

make mobile will build both iOS and Android libs.
Libraries
After the build has succeeded, the libraries will be found in mobile/build/ios/Lndmobile.framework and mobile/build/android/Lndmobile.aar. Reference your platforms' SDK documentation for how to add the library to your project.
API docs
TODO

@halseth didn't get a chance to review the autogenerated code :(

@cfromknecht added a temp commit with the generated API!

Would be cool to have a way to inject custom protoc plugins like protoc-gen-swift.
At zap we have a custom "falafel" plugin to generate swift apis that i'd like to inject somehow.

Would be cool to have a way to inject custom protoc plugins like protoc-gen-swift.
At zap we have a custom "falafel" plugin to generate swift apis that i'd like to inject somehow.

I think this is a pro-level feature for now, so can be done by modifying gen_bindings directly 😄

This commit currently breaks the build script: https://github.com/golang/mobile/commit/597adff16ade9d88626f8caea514bb189b8c74ee
So need to stay on an older revision for now to successfully build.

This commit currently breaks the build script: golang/mobile@597adff
So need to stay on an older revision for now to successfully build.

Latest gomobile@HEAD fixes this issue.

PTAL @Roasbeef @valentinewallace

Rebased and removed generated code. Generated code can still be inspected here: https://github.com/lightningnetwork/lnd/tree/78bc0b1128edc56f5f7d095a66e3a025d6a2d89e/mobile

Should now be ready to merge


export EdgeShapeBuilder and TipProps

fixes #203

As I said in the #203 I do not see the reason to export these structs.

I am not sure if I describe my problem properly, so I will try again.
The situation is as follows: I am building a graph with a custom implementation of the DisplayEdge trait, i.e. I would like to have my own customized edge drawing. For this, I need to implement the two functions shapes, update and is_inside. In your original source code, i.e. in src/draw/displays_default/edge.rs, the shapes for the DefaultEdgeShape are constructed using an EdgeShapeBuilder.  Therefore I tried to duplicate your code as a starting point for my own experimental CustomEdgeShape.  But then I hit the restriction that EdgeShapeBuilder is private outside the egui_graphs crate. Similar problem with TipProps.
So from my understanding, your API exposes enough for the user of the library, but not for someone who would like to re-implement the edge drawing or the node drawing.
I hope I was able to convey my problem. If you have another solution or if I have overlooked something obvious, I would be happy about any hint.

@nacl42 hope this will help
https://github.com/blitzarx1/egui_graphs/tree/master/examples/rainbow_edges

@blitzarx1 Thank you so much for the rainbow example. It is both illustrative and beautiful. This solves my problem in a much better way!

Nice! Glad to hear it!


XP system taking shape

Folks, Eldric has been working on an XP system, and it's looking good. There will be one more round of feedback from Avengers, but you can a look already right now to see if there are concerns from the point of view of implementation. Academy Developers: To see the document, look for my post in Slack "general" from 30/7/2018.

Fixed by b2fb633e0b697125f27435600ff17eb33184ee16


Skip INP001 for folders containing only *.pyi files

Folders containing only type stubs should not need __init__.py (not sure: but they might need an __init__.pyi )

Ah true -- I'm not 100% sure either if they need __init__.pyi.

I think they don't, but haven't checked.


Fix pep8/pylint errors in Cloudtrail to Slack / Elevator

Moved to ruff, because of 2 big project already using it.
dcb67e9c4d066064e54c72acd14ff69998cf2d59
28e049ed250f75d00c64aef0ab23caf4182685cc


ci(versioning): requires a full depth checkout

the action will have an invalid version bump otherwise.
see also: https://github.com/kuhnroyal/mat-datetimepicker/runs/4641341226?check_suite_focus=true.

wait, why does "test" no longer run?


File sync for devfiles

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespace from that line:

/kind feature
What does does this PR do / why we need it:
This PR implements file syncing for devfile components, using the kubernetes client library. The push code is based on the existing push/sync code used in classic odo, with only a few small tweaks required.
Overall this PR does the following:

It updates the Devfile deployment code to create a shared emptyDir volume (called odo-projects) and mount it under /projects in all of the devfile components that set mountSources: true

This is in line with what Che does for mounting project source

Creates a Push() function in the devfile adapters to handle file syncing

If syncing to the pod for the first time (or if --force is set), it will sync all of files in the source directory using the sync package
If syncing to an already running component:

it syncs only the files that changed (by checking odo-file-index.json)
If any files were deleted from the source directory, it deletes from the remote pod.

Creates a DoesComponentExist() function in the devfile adapters

Returns true if a component with the specified label already exists
Wrapper for utils.ComponentExists

Moved IsEmpty into the pkg/utils package from pkg/component

Needed for both odo "classic" and "devfile" components, so needed to move it to a neutral location.

Tests

Unit tests for new functions

Can't really unit test Push(), as it can't be mocked with the fake Kube client (e.g. requires exec'ing to a running pod)

Integration tests to cover push and sync scenarios

Which issue(s) this PR fixes:
Fixes #2473, https://github.com/openshift/odo/issues/2673
How to test changes / Special notes to the reviewer:

Build my branch and run make
Run make test to verify unit tests pass
Enable experimental mode
Run odo push verify that the deployment starts and files get synced
Change/add/remove files, verify the proper changes get reflected on the container.

/retest

/retest

Updated to include:
-namespace flag on odo push
- Unrelated to file syncing, but was a requirement to implement integration tests

integration tests 🎉

tests to verify both odo push and syncing works
Adds two simple devfiles, both nodejs. One single container, one multi container
Just a few simple tests right now as there isn’t a complete end to end scenario.

/retest

@amitkrout Thanks for reviewing! I've addressed your review comments in a new commit.

/test v4.2-integration-e2e-benchmark

@rajivnathan Thanks for the review! I've addressed your review comments. I've also moved the FilterIgnores function into the utils package (and written unit tests for it!), as the refactoring of Push() into Start() required it.

/retest

/retest 🙃

/retest

/retest https://github.com/openshift/odo/issues/2642 is making me sad 😢

/retest

@johnmcollier
All existing devfiles are expecting that the source code will be in /projects/<project-name>.
I've noticed that you are pushing files to /projects/.
This will break every existing devfile there is :-(
For example, neither of this will work:

https://github.com/eclipse/che-devfile-registry/blob/master/devfiles/java-web-spring/devfile.yaml
https://github.com/elsony/devfile-registry/blob/master/devfiles/springBoot/devfile.yaml

I know that there is no good solution for us, as we can't work with multiple projects in devfile right now.
What if we do this:

If there is exactly one project defined in devfile, odo pushes code to /projects/<project-name>/
In all other cases (no project, or multiple projects) it pushes the source code directly to /projects.

This will make most of the devfiles usable with odo.

@kadel I agree we need to figure out where source should be synced in a way that works for most devfiles. I've just finished trying out John's latest changes and things work pretty well so maybe we can open a separate issue to handle deciding where files should be synced? We can then go through the use cases in a bit more detail and updating the code to change where to sync should be pretty simple.

@kadel @rajivnathan The changes to support pushing to /projects/<projectName> when exactly one project is defined was pretty straightforward, so I've pushed up a commit that does the following:

Before syncing the source code, odo checks how many projects were defined in the devfile

If exactly one, it sets the "sync folder" to /projects/<projectName>, ensures /projects/<projectName> exists in the container and pushes the files to that folder
If either no projects are defined, or multiple projects are defined, odo syncs to /projects

As Rajiv notes, we'll probably need to do some more more work later to properly iron out support for multiple projects, but this is a fine start at the very least.

/lgtm opened https://github.com/openshift/odo/issues/2705 for follow up discussion on how best to handle multiple projects

▶ odo push
 •  Push devfile component spring-petclinic  ...
 ✓  Checking file changes for pushing [12ms]
 ✓  Waiting for component to start [121ms]
 ✓  Syncing files to the component [2s]
 ✓  Push devfile component spring-petclinic [3s]
 ✓  Changes successfully pushed to component

▶ odo push
 •  Push devfile component spring-petclinic  ...
 ✓  Checking file changes for pushing [8ms]
 ✓  Waiting for component to start [114ms]
 ✗  Syncing files to the component [30s]
 ✗  Failed to start component with name spring-petclinic.
Error: Failed to create the component: Failed to sync to component with name spring-petclinic: error while streaming command: Internal error occurred: error executing command in container: container is not created or running

For the second push, I changed the environment variable in devfile.
I guess it's because of this https://github.com/openshift/odo/issues/2661

@kadel Yup, looks like it

@kadel Yup, looks like it, since changing the environment variable would have restarted the deployment.

Push command needs to detect this and wait, till the pod is ready again.
This can be addressed in a separate PR, but we need to fix it.

/approve

Separated out pushLocal into 3 more functions and added unit tests for them. Going to refactor ExecCMDInContainer in a separate PR to make it:

Take fewer params (probably a struct of some kind in the sync package). Will also update pushlocal and push to take fewer params too.
Make it more unit-testable.

I'll refactor both ExecCMDInContainer in kclient and occlient (as the syncclient interface requires clients to implement this function)

Confirmed with @johnmcollier this sync support do incremental sync to only sync the changed file.


tailscale: 1.46.0 -> 1.46.1

Description of changes
https://github.com/tailscale/tailscale/releases/tag/v1.46.1
Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

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

2 packages built:

tailscale
trayscale

sorry, I didn't check if there was an active PR for this update before making mine. v1.46.1 was merged in #245823.


Handle progress results in QuickOpen controller (attempt 2)

This is a potential solution for https://github.com/Microsoft/vscode/issues/27152 that addresses problems with the previous implementation that was reverted.

[x] Maintains correct sorting
[x] Maintains user selection across updates

@nicksnyder I think another challenge is that the scroll position is being reset when symbol results are kicking in. I would expect that either the selected item remains stable where it was in the tree (everything scrolls around it) or if the selected element is not in view, restore the top element that we had.

@bpasero I agree


Repost Best Photo Unicode Error

Please follow the guide below

Issues submitted without this template format will be ignored.
You will be asked some questions and requested to provide some information, please read them carefully and answer completely.
Put an x into all the boxes [ ] relevant to your issue (like so [x]).
Use the Preview tab to see how your issue will actually look like.

Before submitting an issue, make sure you have:

[x ] Updated to the latest version
[x ] Read the README and docs
[x ] Searched the bugtracker for similar issues including closed ones

Purpose of your issue?

[x ] Bug report (encountered problems/errors)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections requests more details for particular types of issues, you can remove any section (the contents between the triple ---) not applicable to your issue.

For a bug report, you must include the Python version used, code that will reproduce the error, and the error log/traceback.
Paste the output of python -V here:
Code:
bot.login()

users = None
if args.users:
    users = args.users
elif args.file:
    users = read_list_from_file(args.file)

repost_best_photos(bot, users, args.amount)

Error/Debug Log:
"Traceback (most recent call last):
File "repost_best_photos_from_users.py", line 93, in
repost_best_photos(bot, users, 5)
File "repost_best_photos_from_users.py", line 27, in repost_best_photos
repost_photo(my_bot, media)
File "repost_best_photos_from_users.py", line 69, in repost_photo
text = ''.join(f.readlines())
File "C:\Users\killerherts\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 3: character maps to
2017-08-31 18:05:12,323 - INFO - Bot stopped. Worked: 0:00:12.290358
2017-08-31 18:05:12,323 - INFO - Total requests: 19"

Describe your issue
I am attempting to use the repost best photo from user but I am getting this error. I saw a closed topic that said try python 3 I did that still no luck.

I have tried adding locale.getdefaultlocale = (lambda *args: ['en_US', 'utf8']) this does not seem to effect much
`
Traceback (most recent call last):
File "C:\Users\killerherts\Documents\instabot\examples\repost_best_photos_from_users.py", line 93, in
repost_best_photos(bot, users, args.amount)
File "C:\Users\killerherts\Documents\instabot\examples\repost_best_photos_from_users.py", line 27, in repost_best_photos
repost_photo(my_bot, media)
File "C:\Users\killerherts\Documents\instabot\examples\repost_best_photos_from_users.py", line 69, in repost_photo
text = ''.join(f.readlines())
File "C:\Users\killerherts\AppData\Local\Programs\Python\Python36-32\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 3: character maps to

`


Add some helpful guides to README

Just realized className overrides the default class. It should be merged instead.


[Addition]: 14 HS bobcat cluster

Hotspot b58 Addresses
11r7AWhJY2RK4QEShGjcLjDYEDZpDbZqanDdjv64FXukExYJXsQ
11P8W9TqFApG8Ei8eSbprsWsDhcwVWWRch1fuXEktMX5xJbEm7T
112iHMmnmduDoumAoFZ1GsqxZmqQ8zh2h266H4GQbbpdb3CifzDA
118wCXNXYz75zkeft6cFZ3ARpUXUoQcsk5TnCNEUa61qaGhnmkp
11H8R9wkiN4sbx43e2DeVeKALHv5zmX9tjtHNht3UJ6WJzMFFeP
11d2bnGJmqtVcB4kYQiyqPNdqje58L5hoABomgGVPqEqTgTivgj
112Mg9i6QYxgzU8VRgNZmfnMgPik5WDDwkm9fM5oxsKA12YNHqWi
1122HwGfHFcj3c4vKSo8pvBH1yp5JxTDKddGt4Ymd3KUFsFxDXx3
112WShCETwAcr3qMLN96ZYtXfSRevxMgu9a91LHJNMHbWGGhR5fP
11HqDcxghAa2PoPJsBQxHr2ActDXMtcxssx84bnkj2d96yTkJuH
11ktRzN9MT6NbqpmwwV18tEMJ5xjTXGjXU7WwFJQk8dHJvdUozh
112LxJwCwWhDbdd4ExfrYfoTwNnv2dJ2jvTS8Zq9E7TqUyCWXuDw
112AxJw2dXuvmAAq5CKrt4jTZG2FManj7oFPqxqX95qKq9d7Tqiv
11cG9GrtB6AjC4KJg9wTTMDvxkzDTcsg3yKU8GdjHRYide76fvC
Discord Handle
they are obvious self-witnessing and impossible long distance
Reason(s)
they are obvious self-witnessing and impossible long distance

It is not an impossible distance, and they are obviously NOT self-witnessing.

188 hotspots 5 days 3 hops
If you are going to start with the fake issues again it will do you no good.
It doesn't slow up the denylist process.
It doesn't 'make people think' bobcats are being ignored.
It just annoys everyone and makes us more determined to report the gaming hotspots.


Unable to install kustomize with golang 1.18

I'm unable to use kustomize, or any Makefile targets that leverage kustomize, with golang 1.18:
$ gvm list

gvm gos (installed)

   go1.17
=> go1.18
$ ls build/_tools
controller-gen  operator-sdk
$ make kustomize
go: creating new go.mod: module tmp
Downloading<EMAIL_ADDRESS>go: added cloud.google.com/go v0.38.0
go: added github.com/Azure/go-autorest/autorest v0.9.0
go: added github.com/Azure/go-autorest/autorest/adal v0.5.0
go: added github.com/Azure/go-autorest/autorest/date v0.1.0
go: added github.com/Azure/go-autorest/logger v0.1.0
go: added github.com/Azure/go-autorest/tracing v0.5.0
go: added github.com/PuerkitoBio/purell v1.1.1
go: added github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
go: added github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a
go: added github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d
go: added github.com/davecgh/go-spew v1.1.1
go: added github.com/dgrijalva/jwt-go v3.2.0+incompatible
go: added github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633
go: added github.com/evanphx/json-patch v4.9.0+incompatible
go: added github.com/go-errors/errors v1.0.1
go: added github.com/go-openapi/analysis v0.19.5
go: added github.com/go-openapi/errors v0.19.2
go: added github.com/go-openapi/jsonpointer v0.19.3
go: added github.com/go-openapi/jsonreference v0.19.3
go: added github.com/go-openapi/loads v0.19.4
go: added github.com/go-openapi/runtime v0.19.4
go: added github.com/go-openapi/spec v0.19.5
go: added github.com/go-openapi/strfmt v0.19.5
go: added github.com/go-openapi/swag v0.19.5
go: added github.com/go-openapi/validate v0.19.8
go: added github.com/go-stack/stack v1.8.0
go: added github.com/gogo/protobuf v1.3.1
go: added github.com/golang/protobuf v1.3.2
go: added github.com/google/gofuzz v1.1.0
go: added github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
go: added github.com/googleapis/gnostic v0.1.0
go: added github.com/gophercloud/gophercloud v0.1.0
go: added github.com/hashicorp/errwrap v1.0.0
go: added github.com/hashicorp/go-cleanhttp v0.5.0
go: added github.com/hashicorp/go-multierror v1.1.0
go: added github.com/hashicorp/go-safetemp v1.0.0
go: added github.com/hashicorp/go-version v1.1.0
go: added github.com/inconshreveable/mousetrap v1.0.0
go: added github.com/json-iterator/go v1.1.8
go: added github.com/mailru/easyjson v0.7.0
go: added github.com/mattn/go-runewidth v0.0.7
go: added github.com/mitchellh/go-homedir v1.1.0
go: added github.com/mitchellh/go-testing-interface v1.0.0
go: added github.com/mitchellh/mapstructure v1.1.2
go: added github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: added github.com/modern-go/reflect2 v1.0.1
go: added github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00
go: added github.com/olekukonko/tablewriter v0.0.4
go: added github.com/pkg/errors v0.9.1
go: added github.com/pmezard/go-difflib v1.0.0
go: added github.com/qri-io/starlib v0.4.2-0.20200213133954-ff2e8cd5ef8d
go: added github.com/spf13/cobra v1.0.0
go: added github.com/spf13/pflag v1.0.5
go: added github.com/stretchr/testify v1.6.1
go: added github.com/ulikunitz/xz v0.5.5
go: added github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca
go: added github.com/yujunz/go-getter v1.4.1-lite
go: added go.mongodb.org/mongo-driver v1.1.2
go: added go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5
go: added golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
go: added golang.org/x/net v0.0.0-20200625001655-4c5254603344
go: added golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
go: added golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd
go: added golang.org/x/text v0.3.2
go: added golang.org/x/time v0.0.0-20190308202827-9d24e82272b4
go: added google.golang.org/appengine v1.5.0
go: added gopkg.in/inf.v0 v0.9.1
go: added gopkg.in/yaml.v2 v2.3.0
go: added gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
go: added k8s.io/api v0.18.10
go: added k8s.io/apimachinery v0.18.10
go: added k8s.io/client-go v0.18.10
go: added k8s.io/klog v1.0.0
go: added k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6
go: added k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89
go: added sigs.k8s.io/kustomize/api v0.6.5
go: added sigs.k8s.io/kustomize/cmd/config v0.8.5
go: added sigs.k8s.io/kustomize/kustomize/v3 v3.8.7
go: added sigs.k8s.io/kustomize/kyaml v0.9.4
go: added sigs.k8s.io/structured-merge-diff/v3 v3.0.0
go: added sigs.k8s.io/yaml v1.2.0
$ ls build/_tools
controller-gen  operator-sdk

Expected behavior: Either a successful kustomize installation, or a error describing why kustomize can't be installed
Actual behavior: make kustomize exits successfully without installing kustomize in the tools directory, causing subsequent steps in the install process to fail

Closing this since @mrogers950 fixed this in 146.


Add note for Preact support?

I wanted to use your MDX plugin with Preact.
I had to add this block to my vite config:
  alias: {
    react: 'preact/compat',
    'react-dom': 'preact/compat'
    },

I also had to add   "@mdx-js/preact" in my package json.
This may be helpful to note for others who want to use your plugin with Preact.
Obviously the better solution would be to not have a hard dependency on @mdx-js/react.
Could a possible solution be checking for React or Preact in the user's package.json and telling them to install either @mdx-js/react, @mdx-js/preact?
I'm happy to work on a PR for this if Preact is something you'd like to support.

Sounds good and I'll happily accept a PR.

Could a possible solution be checking for React or Preact in the user's package.json and telling them to install either @mdx-js/react, @mdx-js/preact?

I'd rather do
let preactInstalled
try {
  require('preact')
  preactInstalled = true
}  catch(err) {
  preactInstalled = false
}

Same for react. We then inject accordingly.
If neither preact nor react is installed, we should throw an error telling the user that either react or preact should be installed.
We should also then remove react from the package.json#peerDependencies.
Let me know if you see problems with that solution. Looking forward to review the first vite-plugin-mdx PR.

So I have small PR ready that adds Preact support, but when I was testing the React example repo just make sure it didn't break, I got this error in my dev console in Chrome.
react-dom.development.js:67 Warning: A string ref, "undefined", has been found within a strict mode tree. String refs are a source of potential bugs and should be avoided. We recommend using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref
    at MDXContent (http://localhost:3000/src/Hello.mdx?import:8:3)
printWarning @ react-dom.development.js:67
react-dom.development.js:13212 Uncaught Error: Expected ref to be a function, a string, an object returned by React.createRef(), or null.

react-dom.development.js:20085 The above error occurred in the <MDXContent> component:

    at MDXContent (http://localhost:3000/src/Hello.mdx?import:8:3)

I'll need to look at this further b/c the error doesn't occur in the master branch only in my forked dev version. My branch is here: https://github.com/ajstrand/vite-plugin-mdx/tree/add-preact-support if you're curios

👍 Neat.
At first glance, I'm guessing the error is because @mdx-js/preact is in @brillout/vite-plugin-mdx's dependency list which leads isPreactInstalled() to falsely return true when you run the React example.

You were right, I had overlooked the fact that I left preact dependencies in the base package json. Removing them fixed the issue.

@ajstrand Released in<EMAIL_ADDRESS>


Bump Wireshark to 2.0.2

Thank you for the contribution. It was merged directly as 52bc04b7f541f153d04a668be652c41dabc442f6 to keep commit history cleaner. Your contribution is still credited to you.

Also, check out cask-repair, it makes Cask updates like this quite easy (details in CONTRIBUTING)


Populate image references in UPS

If the plan references Setup images, DRRs, or Patient ID photo, include those references in the UPS Input Information Sequence.
Include the patient id photo sequence in the UPS itself

@christof-schadt-bl expressed interest patient photo id


fix(ci): Update test pipeline

Includes:

Remove non-existent input.
Fix JDK version in the build job.
Skip tests in the build job.

Does this was already tested in the other PR?
You can check it works by committing this change to this PR-6 first

Does this was already tested in the other PR?

Thanks! It's ready now. As you can see in #6, the test job fails when any of the tests fails.

@shoriwe The dev branch is not protected. I can merge without your approval.

PS: Squash and merge

Should I create a PR from dev to main now?

@PedroChaparro Yes, you should


[FLINK-13229][table-planner-blink] ExpressionReducer with udf bug in blink

What is the purpose of the change
When a udf is reduced by ExpressionReducer, there will be a code gen exception.
Verifying this change
ut
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

Test pass in: https://travis-ci.org/JingsongLi/flink/builds/557348029


General Wiki Information.

Could someone list out exactly how many Ideas in the Wiki are still open to do/implement ? Uassigned/Not-Implemented or otherwise ?

Hello @ankitvad , thank you for your interest!
The list of free ideas is completely up-to-date, actually. All ideas listed are available for you to execute (neither assigned nor implemented) and similar efforts are mentioned where applicable. Ongoing efforts tend to be mentioned in the issue tracker.


Always return to Dashboard after trying out Forgot UserName/Password in SSO Login page

Please find the steps to create this issue.

Configure travelocity application with identity server (Service providers etc.)
Click login button in travelocity application
Click on Forgot Password/Username
Click cancel button of Forgot password/Username screen
Enter valid username and Password and sign in
It is redirecting to Identity Server Dashboard

Ideally, it should return to a correct service provider which initiated the login request. As per the SAML tracer, once we click on cancel button in Forget Password/Username, it sends a SAML request with issuer "wso2.my.dashboard", So after that, it's proceeding as Dashboard issuer.

Thank you for your contribution!
We are closing this issue since it has not been prioritized for a long time. Chances are that it has already been solved in more recent versions. If not, we will be re-evaluating this when it becomes a priority.


Does Netopeer support time capability: https://datatracker.ietf.org/doc/rfc7758/

Does Netopeer support time capability: https://datatracker.ietf.org/doc/rfc7758/.  i.e scheduling a netconf command

No, this capability is not supported. Seems it is just an experimental feature and hearing about it first time now (when it was published in 2016), I would say it was not adopted.

Thanks @michalvasko for confirmation


Update rambox to 0.5.8

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

@vitorgalvao can you please revert these commit. 0.5.8 has not been released yet. This release tag has not package.
See comment here
This results in following error
brew cask install rambox
==> Downloading https://github.com/saenzramiro/rambox/releases/download/0.5.8/Rambox-0.5.8-mac.zip

curl: (22) The requested URL returned error: 404 Not Found
Error: Download failed on Cask 'rambox' with message: Download failed: https://github.com/saenzramiro/rambox/releases/download/0.5.8/Rambox-0.5.8-mac.zip
The incomplete download is cached at /Users/talha/Library/Caches/Homebrew/Cask/rambox--0.5.8.zip.incomplete
Error: nothing to install

https://github.com/caskroom/homebrew-cask/pull/34954


pipenv seems to pay attention to the installed packages. Should it?

I've been using pipenv for a while, and it's been great, but from time to time I run into behaviour that I find unexpected. This unexpected behaviour feel related to me, and they seem to be related to pipenv somehow giving consideration to the dependencies that I have installed, when I want it to ignore whatever I have installed and replace it with what is in my Pipfile.
I should say that what I am expecting pipenv to be is basically yarn for Python, so this may be my mistake.
Describe your environment
OSX
Python 3.5.3 (7a22aa3bd5bf, Dec 25 2017, 17:11:18)
[PyPy 5.10.0 with GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)]
pipenv, version 10.1.0
Issue
$ pipenv install
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv install --skip-lock to bypass this mechanism, then run $ pipenv graph to inspect the situation.
Could not find a version that matches aiohttp<3,==3.0.1,>=2.0,>=2.3.0

So that makes  sense, because the version of aiohttp cannot both be 3.0.1 and also <3. Where do these dependencies come from?
$ pipenv graph
raven-aiohttp==0.6.0
  - aiohttp [required: >=2.0, installed: 3.0.1]
aioinflux==0.1.1
  - aiohttp [required: >=2.3.0, installed: 3.0.1]

Additionally, I have aiohttp = "<3" in my Pipfile.
So the only reference to the specific version of ==3.0.1 seems to be what is currently installed. However, I just noticed that raven-aiohttp has a bug with aiohttp>=3 (https://github.com/getsentry/raven-aiohttp/issues/27), so I changed my Pipfile to exclude these versions, and now I expect pipenv to install the proper dependencies for me. Am I wrong or is pipenv wrong?
I noticed the same recently when I work with editables from git, and I want to update to a new commit hash. If I update the hash in the Pipfile (or switch the dependency in the Pipfile from a package name to a editable), then Pipenv will never generate the correct lock file for me, no matter what command I try; it always uses the package and version that is already installed.

I noticed that pipenv lock -v shows very helpful debugging output, which explains to me why 3.0.1 is pulled into the requirements (it's not because of what is currently installed); I couldn't see this fact from pipenv graph.
The behaviour described re. editables I still see, but I will possibly create a new ticket for that.


Is there any built-in pagination for models?

Hello. I've read the documentation on site, but can't find anything about that. There is offset and limit functions in queries doc, plus count function in Aggregates section. But there is nothing like this for models. May be I've missed something.

No there is no built in pagination for models also this should be moved to adonis-lucid repo


fix: load and set playback on Android

Hi this fixes the audio loading issue and the playback rate

Hi
could you add an evidence to make sure it is running successfully?


fix: Avoid potential package resolution issues when integrating other libraries that also depend on SQLite.swift

Issue 2592
Change version requirement for SQLite.swift from exact match starting on 0.13.2.
This avoids potential resolution conflicts for projects that depend on other libraries that also depend on SQLite.swift, but with requirements for newer versions (current version is 0.14.1).
Check points: (check or cross out if not relevant)

[ ] ~Added new tests to cover change, if needed~
[x] Build succeeds with all target using Swift Package Manager
[x] All unit tests pass
[x] All integration tests pass
[ ] ~Security oriented best practices and standards are followed (e.g. using input sanitization, principle of least privilege, etc)~
[ ] ~Documentation update for the change if required~
[x] PR title conforms to conventional commit style
[ ] ~If breaking change, documentation/changelog update with migration instructions~

DataStore checkpoints (check when completed)

[ ] Ran AWSDataStorePluginIntegrationTests
[ ] Ran AWSDataStorePluginV2Tests
[ ] Ran AWSDataStorePluginMultiAuthTests
[ ] Ran AWSDataStorePluginCPKTests
[ ] Ran AWSDataStorePluginAuthCognitoTests
[ ] Ran AWSDataStorePluginAuthIAMTests

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Thanks for opening this PR.  We'll review and come back to you on this.

Hi @cezarcp Our team has reviewed this PR.  While we understand that pinning to an exact version can cause conflicts with other dependencies; however, we intentionally pin to an exact version to avoid unexpected breaking behaviors that can result in production outages in the past.  We cannot take this change to avoid unplanned, unreviewed, and untested dependency upgrade.

Thanks for looking into it @phantumcode.


Add an option to specify filename

Adds an option to specify the Dockerfile to use, just like docker build supports.

Hey @iamthad, thanks for your contribution 🙂
According to the failing lint and test, something seems to be not quite right yet.
Could you please also add a unit test for the new functionality?
Once again, thank you 🙂

One final request: Could you please also update the usage output in the readme? Thank you!

Once again, thank you for you contribution 🙇♂


Horizontal scrolling doesn't work on responsive table UI Tailwind on iOS

I'm using the responsive tables with horizontal scrolling that Adam created inside another layout he created Inbox UI and this is the final result
.
it's seems works fine in the Tailwind.run app, even in local browser with the responsive tool :

but when i tested on an iPhone 7 and other iOS devices (Safari, Chrome, Firefox) the horizontal scroll doesn't work :

i still dont know why is the problem.

Did you solved this? I had the same problem

I was having the same issue and after looking for the solution I found it (I guess):
here's my example I really hope it works for you


'Show local weather' challenge needs update since "CodePen is going HTTPS"

Challenge Name

Show the Local Weather
Issue Description

Taken from CodePen website :

What Will Change
Beginning June 1, 2017:
Every page on CodePen will be served over HTTPS.
Requests that come in over HTTP will be redirected to HTTPS.
We’ll attempt to request an HTTPS version of any content linked via HTTP. If an HTTPS version is available, we’ll load that content over HTTPS. If not, the content may fail to load (more details below).

Therefore we cannot use the second method proposed on the challenge :

Or:
Use an Internet Protocol API to get user location (ex. IP-API) and then use the OpenWeatherMap API for the weather. Be sure to connect to CodePen.io via http://.

The other option gives a cross-origin error :

Use HTML5 Geolocation to get user location and then use the Dark Sky API which uses an HTTP Secure connection for the weather. Also, be sure to connect to CodePen.io via https://.

Managed to work around it by adding "https://crossorigin.me/" before the actual api request path.
I think this is would be useful information for campers.

Closing in favor of #15598


Sticks not working as wanted

So when I am using the stick, it would be great if it could detect and output keys as "key-pressed" and hold the keys that are binded. This will make in game movement and things like mouse navigation possible. This is a great app!

OK found an alternative that fixed the issue for me. Sorry for the issue.
Here is the alternative that can be used in games which need smooth movement: JoyKeyMapperSilicon


[llamacpp] Removing llamacpp support in DJL

Description
Brief description of what this PR is about

If this change is a backward incompatible change, why must this change be made?
Interesting edge cases to note here

Just trying to understand why we are removing llamacpp engine? is there a replacement planned to support LLM's via DJL?

Just trying to understand why we are removing llamacpp engine? is there a replacement planned to support LLM's via DJL?

We don't have maintainer can actively maintain this module.
We we focused on supporting LLM via Python engine in DJLServing repo
We working on rust engine and will support rust based LLM support in future.


add debug-embed feature to allow embedding in debug builds

As discussed in #41 this adds the debug-embed feature.
I didn't add anything to the readme because the feature is not yet release and it might be confusing.
Closes #41

@lukad Thank You.


Raidemulator redesign

Summary
This is a draft PR for a redesigned raidemulator. There are still some outstanding issues to resolve, but I want to get this PR open for feedback on the visual and functional side of the redesign.
Remaining issues to resolve:

[x] When importing logs, the encounters displayed in the bottom tab don't always refresh and can require a page reload to display properly
[x] When switching current encounters the selected perspective isn't set correctly
[ ] A lot of linting cleanup needs to happen
[x] Static class properties aren't supported by eslint's default parser, so need to pull those outside of the class defintions
[ ] Need to test this in the actual overlay display, all testing so far has been in browser directly
[x] Displayed trigger text when seeking isn't cleared properly
[ ] Languages other than English need tested, both network logs and imported ACT logs
[x] Documentation for new classes
[x] Remove jQuery dependency
[x] Use Regexes class to reduce duplicate Regexes
[x] Intro modal
[ ] Automatically trim encounter to pre-pull countdown or beginning of encounter, whichever is earlier
[x] Performance improvements for seeking
[x] Show selected player's name
[ ] Make time in encounter bar editable
[x] Fix regex cloning for trigger display
[ ] Collapse duplicate triggers that all trigger at once

Features brought by this redesign:

New UI
Tracking triggers per player
Trigger debug info tracked and displayed
Can pause, resume, and seek during encounter playback
Encounters are stored in IndexedDB and can be loaded again later without having to re-import. A 116mb network log uses approximately 60mb of IndexedDB storage
Encounter parsing now captures pre-pull actions by default, with an option to prune the encounter to the first hostile action or to the Engage line
Can import Network logs directly without having to go through ACT

Usage:

Open ui/raidboss/raidemulator.html?OVERLAY_WS=ws://<IP_ADDRESS>:10501/ws with ACT open and listening on a websocket. This is required still due to the way cactbot manifests and timelines are stored.
Import logs via ACT or import logs via the web page UI, or even by dragging and dropping a log file on to the web page
Expand the encounter tab with the button bottom-right and drill down to the encounter you want to view, then click Load Encounter
Select a perspective by clicking a player on the right (first tank's perspective is selected by default)
Click play, or click on the progress bar at the top to seek to a spot in the encounter, or hover over the indicators in the bar to see what triggers fire where.
Expand the trigger info with the buttons in the trigger info pane. If a trigger didn't pass its condition, it is hidden by default but can be displayed by unchecking the checkbox in the top right.

Screenshots

Version 2
Eventually I'll start working on a v2 of this redesign.
Planned features for v2

Track 'in party' status based off party update log lines
Encounter map showing player positions during the fight
Cache calls to cactbot ACT overlay handlers so that WS connection is only required the first time

Potential features for v2

Interactive timeline debugging tool
Interactive trigger debugging tool

@quisquous Based on the feedback already given, I'd like to propose a couple things:

Drop jQuery, it'll increase the code for everything UI-related by about 200 lines.
Pull in Parallel.js for webworkers, for the analysis of data. https://parallel.js.org/
Modify the existing Regexes functions to capture everything required for the actual encounter analysis
Move party/alliance tracking into v1

Thoughts/opinions? Should #3 be its own separate PR along with the other non-raid-emulator changes that have been required?

@quisquous Based on the feedback already given, I'd like to propose a couple things:

Drop jQuery, it'll increase the code for everything UI-related by about 200 lines.

:+1:

Pull in Parallel.js for webworkers, for the analysis of data. https://parallel.js.org/

I'd say this sounds like a version 2 sort of thing.

Modify the existing Regexes functions to capture everything required for the actual encounter analysis

Separate pull request here sounds perfect.  Thanks for understanding.  It's that sort of duplication that easily gets out of date, especially for something like a raid emulator that not everybody is using all the time.

Move party/alliance tracking into v1

This seems like also ok to push into version 2.  Or, ideally if it gets done by the next alliance raid.  :)

Pull in Parallel.js for webworkers, for the analysis of data. https://parallel.js.org/

I'd say this sounds like a version 2 sort of thing.

The reason that I was thinking about bringing it into v1 is because using that library makes it really easy to implement.

Move party/alliance tracking into v1

This seems like also ok to push into version 2. Or, ideally if it gets done by the next alliance raid. :)

Next alliance raid is exactly why I was thinking of pulling this into v1.

UI
Could you add some instructions when you first open it up if nothing is loaded?
Can the arrow menu in the bottom right be open by default when the page loads? It seems like everything you want to do to start is in there.
I still kind disagree with your time decision.  I think t=0 should be the pull.  It might be nice to trim negative time to be the first event with a trigger as well, since three minutes of standing around squishes everything else over.  What is your goal around showing that "before pull" time so prominently?  I feel like maybe I'm just not understanding the use case.
I think the "date" selector column in the bottom UI should be narrower.  The width is about three times as long as the date, and the final box gets very crowded at smaller window sizes.
UI nice-to-haves:
It's reaally slow (~3 seconds) to click on the time slider.  It's also reaaaaaally slow (~6 seconds) to click on a person's name.  Can any of this work be deferred?  Saying "performance is a version 2 thing" is also ok.  It's always easier to do synchronous work.
It'd be nice to have the selected player's name above the HP bars, maybe? As an addition to the green box around the job.  I see that there's a mouseover there, but that's not quite visible enough.
Is it possible to collapse multiple triggers with the same log line? For example, something like E7S Insatiable Light which hits multiple people, but the log line is the same with the same time and data is the same afterwards.  I suppose I could add a suppression on this, but it's just noisy in the trigger view.
Could the time on the time slider be editable?
Could the last loaded fight be stored, and then reloaded by default on page load?
Implementation
HP Display has some errors.  Sometimes Max MP is zero and sometimes it's 10k.  I think you just need to always set it to 10k.  There's also an issue where sometimes your hp values are incorrect.  I've seen it say "-0.00004792213/81950" (81950 is also not the max hp for this player).  I see that on the e7s log linked below.

None of the regexes appear to have anything listed.  If I click on a trigger in the trigger view, I see something like:
{
  "triggerHelper": {
    "trigger": {
      "id": "E7S Silver Shot",
      "regex": {},  // <- shouldn't there be something here?
      "filename": "05-shb/raid/e7s.js",
      "localRegex": {}
    },

Upon opening the first time, I got a ton of these errors repeatedly (but I couldn't repro):
RaidEmulatorTimelineController.js:42 Uncaught TypeError: Cannot read property '0' of undefined
    at RaidEmulatorTimelineController.OnLogEvent (RaidEmulatorTimelineController.js:42)
    at raidemulator.js:127
    at processEvent (common.js:239)
    at WebSocket.<anonymous> (common.js:189)

Importing alex_20510_20200429.log

Why is there an Alexander Prime fight in the Mist zone?
Looking at the fight names, a8s has a lot of different fight names.  Maybe it'd be worth finding the mob with the most hit points in the zone / sealed area for consistency?
Console error: Timeline file not found: 03-hw/raid/a8s.txt

Importing e7s.log

Same issue with a 4 minute fight in the Mist zone.
When playing back the longest e7s fight, many many missing triggers on the leftmost view.  Hallowed shows up, but the first aoe does not, and most others do not.
Same console errors about the timeline not being found.

I'll send you these logs in DM because they're too large to attach here.

UI
Could you add some instructions when you first open it up if nothing is loaded?
Can the arrow menu in the bottom right be open by default when the page loads? It seems like everything you want to do to start is in there.

These two are doable. Do you want the check to be 'nothing in the indexeddb', or 'first time loading'?

I still kind disagree with your time decision. I think t=0 should be the pull. It might be nice to trim negative time to be the first event with a trigger as well, since three minutes of standing around squishes everything else over. What is your goal around showing that "before pull" time so prominently? I feel like maybe I'm just not understanding the use case.

The goal wasn't to show the three minutes before the pull, but the immediate pre-pull opener/positioning/etc. I agree as well that displaying 3 minutes is a bit useless. Maybe it makes sense to by default trim to start of countdown, or 5 seconds before pull if there's no countdown? Things also get weird detecting player/enemy/ally/pet state with missing 03 events if those lines are trimmed out, which is why I left them in originally.

I think the "date" selector column in the bottom UI should be narrower. The width is about three times as long as the date, and the final box gets very crowded at smaller window sizes.

I'll adjust the date column to be fixed-width, since it's always got the same width for content.

UI nice-to-haves:
It's reaally slow (~3 seconds) to click on the time slider. It's also reaaaaaally slow (~6 seconds) to click on a person's name. Can any of this work be deferred? Saying "performance is a version 2 thing" is also ok. It's always easier to do synchronous work.

The further into the fight you're seeking, the slower it is, since it has to play back the encounter from the start to that position. There's two ways to optimize this:

When seeking forward, play from where you were previously instead of the beginning of the encounter. This should be a relatively easy adjustment, but it only addresses if you seek forward.
Pre-cache the popup state at every possible log line timestamp for every player in the encounter and load that state when seeking. This would be really memory intensive and cause the initial encounter load to be really slow (an 11 minute encounter with 8 players would take upwards of 50 seconds to do this).

It'd be nice to have the selected player's name above the HP bars, maybe? As an addition to the green box around the job. I see that there's a mouseover there, but that's not quite visible enough.

The area above the HP bars is where the map will go in V2. I could shift the bars down a bit to put the selected player's name in place.

Is it possible to collapse multiple triggers with the same log line? For example, something like E7S Insatiable Light which hits multiple people, but the log line is the same with the same time and data is the same afterwards. I suppose I could add a suppression on this, but it's just noisy in the trigger view.

It should only show the trigger if it fired for the given player. In the case of Insatiable Light stacks, it's two separate log lines, one for each stack target. Would it make sense to hide the trigger by default if there's no displayed text as well, behind the same checkbox as the didn't actually run hide?

Could the time on the time slider be editable?

I'm not sure what the UX expectation would be for this. Would you enter a custom time and it would seek to that time on blur? Or on enter? If it's an invalid time what should the result be?

Could the last loaded fight be stored, and then reloaded by default on page load?

Yes, this is doable.

HP Display has some errors. Sometimes Max MP is zero and sometimes it's 10k. I think you just need to always set it to 10k. There's also an issue where sometimes your hp values are incorrect. I've seen it say "-0.00004792213/81950" (81950 is also not the max hp for this player). I see that on the e7s log linked below.

I'll look into the logs you DM'd me. Looks like maybe something is off by one field (e.g. it's reading current hp from the heading field, and max hp from the current hp field).
I avoided any sort of hard-coding of values just in case next expac they decide 'oh hey, we want max mp to be 5k instead of 10k'.

None of the regexes appear to have anything listed.

I think this is a problem with my custom clone code. Probably, I need to add a specific case for RegExp classes.

Upon opening the first time, I got a ton of these errors repeatedly (but I couldn't repro):

I think this can happen if you're in-game. I need to modify the RaidEmulatorPopupText class to avoid the PopupText constructor so it doesn't bind to the OnLogEvent handler, otherwise it's going to do weird stuff if you're in-game and log events are firing.

Importing alex_20510_20200429.log
Importing e7s.log

Will check these logs and track down the problems.

Could you add some instructions when you first open it up if nothing is loaded?
Can the arrow menu in the bottom right be open by default when the page loads? It seems like everything you want to do to start is in there.

These two are doable. Do you want the check to be 'nothing in the indexeddb', or 'first time loading'?

I think "nothing in the indexeddb" is better, since that's really the state where somebody will need to know what to do.  Especially since somebody might open it, not load anything, and then need instructions the second time.

I still kind disagree with your time decision. I think t=0 should be the pull. It might be nice to trim negative time to be the first event with a trigger as well, since three minutes of standing around squishes everything else over. What is your goal around showing that "before pull" time so prominently? I feel like maybe I'm just not understanding the use case.

The goal wasn't to show the three minutes before the pull, but the immediate pre-pull opener/positioning/etc. I agree as well that displaying 3 minutes is a bit useless. Maybe it makes sense to by default trim to start of countdown, or 5 seconds before pull if there's no countdown? Things also get weird detecting player/enemy/ally/pet state with missing 03 events if those lines are trimmed out, which is why I left them in originally.

To me there's a difference between storing that information somewhere and displaying that information so prominently.  I would be fine with you doing everything you're already doing internally, but I just don't need to know anything in the UI before t=0.
My other reasons here are: including that time also skews fight lengths (which then will differ even farther from fflogs and ACT encounters).  It also makes "this trigger happens at t=2m30s" much harder to parse when it's got some prepull time on it.  It seems unlikely that anybody wants to know where somebody was standing two minutes before pull even if it's useful for you to have that state internally.

UI nice-to-haves:
It's reaally slow (~3 seconds) to click on the time slider. It's also reaaaaaally slow (~6 seconds) to click on a person's name. Can any of this work be deferred? Saying "performance is a version 2 thing" is also ok. It's always easier to do synchronous work.

The further into the fight you're seeking, the slower it is, since it has to play back the encounter from the start to that position. There's two ways to optimize this:

When seeking forward, play from where you were previously instead of the beginning of the encounter. This should be a relatively easy adjustment, but it only addresses if you seek forward.
Pre-cache the popup state at every possible log line timestamp for every player in the encounter and load that state when seeking. This would be really memory intensive and cause the initial encounter load to be really slow (an 11 minute encounter with 8 players would take upwards of 50 seconds to do this).

It doesn't have to be all or nothing.  You could do something like video compression and lazily add keyframes every 30 seconds or 60 seconds and then seek from there? I think it's also a question about page interactivity when you click.

It'd be nice to have the selected player's name above the HP bars, maybe? As an addition to the green box around the job. I see that there's a mouseover there, but that's not quite visible enough.

The area above the HP bars is where the map will go in V2. I could shift the bars down a bit to put the selected player's name in place.

I don't feel strongly that "above" is the right answer, but "show the selected player's name somewhere" seems useful.

Is it possible to collapse multiple triggers with the same log line? For example, something like E7S Insatiable Light which hits multiple people, but the log line is the same with the same time and data is the same afterwards. I suppose I could add a suppression on this, but it's just noisy in the trigger view.

It should only show the trigger if it fired for the given player. In the case of Insatiable Light stacks, it's two separate log lines, one for each stack target. Would it make sense to hide the trigger by default if there's no displayed text as well, behind the same checkbox as the didn't actually run hide?

Hmm, when debugging, some triggers that don't show text are still worth knowing that they run, just not they ran redundantly 8 times.  That's why I was trying to get at "this is a no-op duplicate" and not "this is a trigger than doesn't show anything".

Could the time on the time slider be editable?

I'm not sure what the UX expectation would be for this. Would you enter a custom time and it would seek to that time on blur? Or on enter? If it's an invalid time what should the result be?

Hrm.  If the recalculation of triggers was asynchronous (and thus it's very fast to just update the position in the time slider), then I would say move the time on every keypress and then do the update for real on blur.  If invalid then use the original time on blur?
I don't know.  Feel free to punt to V2.  I was just thinking about how I would want to use it. :)

@quisquous I've been working through removing the jQuery dependency, and I've got a good method for it that doesn't result in a ton of extra js code. The only snag now is the tooltips. Bootstrap implements its tooltips through jQuery + Popper (see https://getbootstrap.com/docs/4.5/components/tooltips/ and https://getbootstrap.com/docs/4.5/getting-started/javascript/#dependencies).
I'm not sure how to resolve this. Any thoughts?
The two options I can see are:

Leave jQuery in, but only use it for tooltips
Interface with Popper directly or otherwise replicate the Bootstrap tooltip js code

The two options I can see are:

Leave jQuery in, but only use it for tooltips
Interface with Popper directly or otherwise replicate the Bootstrap tooltip js code

I think popper looks pretty straightforward, but if it's a pain, then go with #1.

Edit to add: Modals also rely on jQuery.

There are modals??

There are modals??

The Yes/No dialog to confirm clearing the indexeddb is in a modal, and the instructions on empty indexeddb when you load the page are going to be a modal.
Also probably going to add a loading modal of some kind since it's not obvious when it's doing something that takes a while to process.
I can replicate the modal code outside of jQuery, that's fairly easy. The annoying part is the Popper stuff. I'll poke at it when I get the chance again, maybe Tuesday, and see if I can get it working without jQuery.

Alright, jQuery fully removed. Had to ditch Popper as well, since there was too much intertwined logic and styling between jQuery/Bootstrap/Popper to easily replicate the functionality. Replaced that with a Tooltip class that's pretty simple.

Also, a random followup, I think you'll need to add support for NetRegexes too.
(As a bonus, this would let you drop all of the "figure out what job people are on" code because you can just read it right out of the added combatant line.)

Hey, I just wanted to check in and understand what your plans were here.  It's 10000% fine if "I have no time or brain for this, sorry" is the answer, but I just wanted to check in and see where you were.  Mostly in a logistics sense, the old raid emulator is broken and this new one isn't ready yet, and I'm trying to figure out what the best way forward is, since a couple of folks have asked about it at this point.

This is 100% on my todo list still, and I've got more free time for it now that my static is done raiding for the tier. I'll see about getting the requisite git management stuff done ASAP and get some motion on this this weekend.

Alright, origin/master renamed to main and this has been rebased to account for changes (properly I hope) per #1623. Struggled with git like always to get it to cooperate but finally getting back to this.
Given that old raidemulator is currently broken, what are the must-haves from the first comment to get this merged into trunk to resolve the issue?
Also, I haven't been following the source-level changes to triggers since the conversion to use NetRegexes for everything. Is there anything still using Regexes that I need to do a conversion of network log line to game log line for still, or can I drop that part of the code entirely?

Alright, origin/master renamed to main and this has been rebased to account for changes (properly I hope) per #1623. Struggled with git like always to get it to cooperate but finally getting back to this.

Thanks!  Glad you got it sorted.  I'm happy to try to assist in this sort of thing too if you need it.

Also, I haven't been following the source-level changes to triggers since the conversion to use NetRegexes for everything. Is there anything still using Regexes that I need to do a conversion of network log line to game log line for still, or can I drop that part of the code entirely?

There are still some for HP, and I suspect that users probably want to test their own, and they might still be using Regexes.  I would say since you've already written the conversion, you might as well keep that code? I think it could be a v2 if you wanted it, but I think it's important.

Given that old raidemulator is currently broken, what are the must-haves from the first comment to get this merged into trunk to resolve the issue?

I think my feelings are, if I can drag a Network log in, and I can play it back, and I can see/investigate triggers in English, even if it's janky or seeking is painful (previously seeking didn't exist), then that's good enough to get a v1 done.
done

[x] When importing logs, the encounters displayed in the bottom tab don't always refresh and can require a page reload to display properly
[x] When switching current encounters the selected perspective isn't set correctly
[x] Static class properties aren't supported by eslint's default parser, so need to pull those outside of the class defintions
[x] Remove jQuery dependency
[x] Use Regexes class to reduce duplicate Regexes
[x] Intro modal
[x] Fix regex cloning for trigger display

must have

support NetRegexes
support ZoneId (but keep zoneRegex support)

[ ] Show selected player's name

I think this is important.

[ ] Documentation for new classes
[ ] A lot of linting cleanup needs to happen

These two are good to the extent that it will help me understand the code? It doesn't have to be super extensive, but anything to help me find my way around would be helpful.
v2 / later / not required

[ ] Displayed trigger text when seeking isn't cleared properly

I'm not sure what this means.

[ ] Need to test this in the actual overlay display, all testing so far has been in browser directly
[ ] Languages other than English need tested, both network logs and imported ACT logs
[ ] Automatically trim encounter to pre-pull countdown or beginning of encounter, whichever is earlier
[ ] Performance improvements for seeking
[ ] Make time in encounter bar editable
[ ] Collapse duplicate triggers that all trigger at once

Also, I haven't been following the source-level changes to triggers since the conversion to use NetRegexes for everything. Is there anything still using Regexes that I need to do a conversion of network log line to game log line for still, or can I drop that part of the code entirely?

There are still some for HP, and I suspect that users probably want to test their own, and they might still be using Regexes. I would say since you've already written the conversion, you might as well keep that code? I think it could be a v2 if you wanted it, but I think it's important.

I'm going to have to refactor the code that's storing the logs in local storage regardless, since it's only storing the converted logs right now, so I wanted to know what should be required before I start on that.

[ ] Displayed trigger text when seeking isn't cleared properly

I'm not sure what this means.

When you seek and it displays the alert/info/etc text, it doesn't clear it out properly. So if you seek to 60s into the pull, it'll show the text for the entire first 60 seconds for the next 3 seconds.

@quisquous Right now, when I'm doing the conversion from network log, I have to build a list of abilities so that the ability name can be mapped for HoT/DoT entries for certain edge cases. Should I instead add a new python script to pull the abilities from XIVAPI?
See the calls to addAbility here:
https://github.com/valarnin/cactbot/blob/raidemulator-redesign/ui/raidboss/emulator/data/NetworkLogConverter.js#L81-L107
And where it's actually used here:
https://github.com/valarnin/cactbot/blob/raidemulator-redesign/ui/raidboss/emulator/data/NetworkLogConverter.js#L209-L216
And the list of abilities that I've found need their name shown to match the normal game logs here:
https://github.com/valarnin/cactbot/blob/raidemulator-redesign/ui/raidboss/emulator/data/NetworkLogConverter.js#L467-L478

Also, I haven't been following the source-level changes to triggers since the conversion to use NetRegexes for everything. Is there anything still using Regexes that I need to do a conversion of network log line to game log line for still, or can I drop that part of the code entirely?

There are still some for HP, and I suspect that users probably want to test their own, and they might still be using Regexes. I would say since you've already written the conversion, you might as well keep that code? I think it could be a v2 if you wanted it, but I think it's important.

I'm going to have to refactor the code that's storing the logs in local storage regardless, since it's only storing the converted logs right now, so I wanted to know what should be required before I start on that.

Ah, yeah.  I suspect you're going to need to store the network logs instead of the parsed logs, and then parse them afterwards.

[ ] Displayed trigger text when seeking isn't cleared properly

I'm not sure what this means.

When you seek and it displays the alert/info/etc text, it doesn't clear it out properly. So if you seek to 60s into the pull, it'll show the text for the entire first 60 seconds for the next 3 seconds.

Ah, I see! Making seeking better sounds like a v2, then.

@quisquous Right now, when I'm doing the conversion from network log, I have to build a list of abilities so that the ability name can be mapped for HoT/DoT entries for certain edge cases. Should I instead add a new python script to pull the abilities from XIVAPI?
See the calls to addAbility here:
https://github.com/valarnin/cactbot/blob/raidemulator-redesign/ui/raidboss/emulator/data/NetworkLogConverter.js#L81-L107
And where it's actually used here:
https://github.com/valarnin/cactbot/blob/raidemulator-redesign/ui/raidboss/emulator/data/NetworkLogConverter.js#L209-L216
And the list of abilities that I've found need their name shown to match the normal game logs here:
https://github.com/valarnin/cactbot/blob/raidemulator-redesign/ui/raidboss/emulator/data/NetworkLogConverter.js#L467-L478

Can you help me understand why the HoT/DoT lines are important to the raid emulator? I don't think anything matches on these, and so I kind of expected them to be dropped.

Can you help me understand why the HoT/DoT lines are important to the raid emulator? I don't think anything matches on these, and so I kind of expected them to be dropped.

The main reason is for the combatant state tracking, since they contain the combatant's current/max hp/mp and x/y/z/heading. The only reason I cared about ability name when it's not in the network log for the packet is because it's in the converted format, and even then only for certain abilities. I could just not worry about that piece and ignore the ability name portion, sacrificing that bit of accuracy.

Alright, the only thing still outstanding as far as I know is a linting cleanup pass, to adjust variable and class property/method names. What's the preferred naming scheme, because eslint doesn't seem to be consistently enforcing it? Something like this?
class SomeClass {
  constructor() {
    this.someProperty = '';
    this._someInternalProperty = '';
  }
  SomeFunction(someParameter) {
    let someVar = '';
  }
  _someInternalFunction() {
  }
}

SomeClass.someStaticProperty = '';
SomeClass.someStaticFunction = () => {};

Alright, the only thing still outstanding as far as I know is a linting cleanup pass, to adjust variable and class property/method names. What's the preferred naming scheme, because eslint doesn't seem to be consistently enforcing it? Something like this?

Re: eslint.  Nothing has changed since our discussion in #1379 and #1378.  eslint does not enforce new-cap yet because I haven't gotten around to enabling it.  I'm sorry the code is inconsistent.

class SomeClass {
  constructor() {
    this.someProperty = '';
    this._someInternalProperty = '';
  }
  SomeFunction(someParameter) {
    let someVar = '';
  }
  _someInternalFunction() {
  }
}

SomeClass.someStaticProperty = '';
SomeClass.someStaticFunction = () => {};

Yes, other than SomeFunction as someFunction.  This is probably the most inconsistent cactbot style bit, and so I'm not going to complain about either one as long as you're consistent with surrounding code.  I am aiming for someFunction as the eventual target to land on.

I should be fine to enable new-cap, fix the files for this PR, and then disable new-cap, correct? If so that should be sufficient from the linting side from my perspective.

Yeah, that seems sufficient to me as well.  Thanks!

Alright, linting done. Fixed some stuff that wasn't caught by new-cap as well, via regex searching. Were there any other changes/documentation you wanted for this, or is it ready for merge now?

That's my only concern, though. Let's get this merged.  :tada:
(I think I am surprised a little that new-cap didn't catch things like ID as parameter names, but that can get fixed later.  Maybe there's more eslint settings I need to figure out.)

:confetti_ball:


Isomalloc hangs in CpvInitialize during startup for multicore/smp builds

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

On a multicore-linux64 build, an AMPI program hangs in Charm's startup when using isomalloc. This is reproducible on 1 PE in standalone mode with gdb:
$ gdb --args ./jacobi.iso 2 2 2 +vp8
Starting program: /dcsdata/home/swhite/tmp/charm/multicore-linux64/examples/ampi/Cjacobi3D/jacobi.iso 2 2 2 +vp8 ++quiet
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

^C

Program received signal SIGINT, Interrupt.
__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
135	../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.
(gdb) bt
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1  0x00007ffff7bc6649 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007ffff7bc6470 in __GI___pthread_mutex_lock (mutex=0x7ffff7fe9f50) at ../nptl/pthread_mutex_lock.c:79
#3  0x000000000062eb5a in calloc ()
#4  0x00000000006359ce in ConverseRunPE (everReturn=0) at machine-common-core.c:1217
#5  0x0000000000636a88 in ConverseInit (argc=6, argv=0x7fffffffe9e8, fn=<optimized out>, usched=<optimized out>, initret=0)
    at machine-common-core.c:1196
#6  0x00000000004ca617 in main (argc=<optimized out>, argv=<optimized out>) at main.C:18

The calloc call is made from a CpvInitialize call for cmiArgDebugFlag inside ConverseRunPE.

Original date: 2016-11-23 19:49:33

netlrts-linux-x86_64-smp is broken in the same way.

Original date: 2016-11-23 21:20:39

Updated 12-20-16: the builds affected by this issue are:
netlrts-linux-x86_64-smp
multicore-linux64
netlrts-linux-x86_64-clang
netlrts-linux-x86_64-clang-smp
netlrts-darwin-x86_64
netlrts-darwin-x86_64-smp

This is consistently reproducible by './jacobi.iso 1 1 1 +vp1'.

Original date: 2016-12-20 06:13:47

Aug 7th, 2014 was the last time multicore-linux64 passed an Isomalloc test!
Isomalloc errors have not been reported by autobuild, and this hang in startup was hard to see if you didn't know to look for it in the logs.
I've found the offending commit, a change to CpvInitialize's locking to fix some tsan-detected races: ~~https://charm.cs.illinois.edu/gerrit/#/c/308/~~ https://github.com/UIUC-PPL/charm/commit/248ac4760fd081cfda22f41d95b981d88461ecb6
This change switched CpvInitialize to use CmiMem{Lock,Unlock}, and now there is a hang inside the first call to CpvInitialize in ConverseRunPE.
CpvInitialize calls into Isomalloc's calloc routine, meta_calloc(), for some reason. That shouldn't be Isomalloc'ed right? Isomalloc doesn't even appear to have been initialized when this happens!? Isomalloc is initialized in CmiMemoryInit, which is called from ConverseCommonInit, which is called from ConverseRunPE only after CpvInitialize is called resulting in the hang...

Original date: 2016-12-20 20:39:06

The issue was we were getting into locking issues around memory calls before CmiMemoryInit was called and in Isomalloc initialization: ~~https://charm.cs.illinois.edu/gerrit/#/c/2069/~~ https://github.com/UIUC-PPL/charm/commit/ee03b66d807e7a4bb7a61dda0b348bb91d4bb053

Original date: 2016-12-21 15:30:31

The above patch doesn't fix the problem on Clang, which appears to be an initialization ordering issue: https://charm.cs.illinois.edu/redmine/issues/1331

Original date: 2016-12-21 15:45:55

New issue, updated description on each, please?


Several improvements to the Gene-tree endpoints

In short:

added options to prune the gene-trees (like on the homology side)
added more examples

can I have some basic tests for it as well?
If I understand correctly, this will not affect existing output but allows for two new options, is that right?
we'll declare these for release 84 and add a minor version increment

Tests ... Perhaps in e84 ? That's the reason why this PR and #95 have been pending for a couple of releases. I was hoping to find a way of making a Compara DB but I haven't yet

I take it the test database we have does not cover enough cases?

There is nothing related to gene-trees / homologies in this test-db

I can see that being a problem

It is, I know


Adding endpoint for filter-output functionality and slight amendment …

…to GET filters/{id} response
What
Amended the dataset model that is returned when GET /filters/{id} is accessed.
Added POST filter-outputs/{filter-output-id}/events.
How to review
Ensure the changes make sense.
Who can review
Anyone.

Managed to mess up this PR, will create a new PR for these changes and an additional one I want to make.


Aggregation

It would be really useful to be able to aggregate requests/profiles based on the selected filtering. Perhaps displayed in a graph as a time series. Perhaps these aggregations could be built up and compared or something like that, as it's quite hard to get the overall picture atm.

Any updates on this feature?


In nested popovers with ListView, closing nested popover from ListView's onSelectionChange causes both popovers to close

🐛 Bug Report
In nested popovers with ListView, closing nested popover from ListView onSelectionChange causes both popovers to close
🤔 Expected Behavior
Only the 2nd popover should close
😯 Current Behavior
It appears as though closing the popover from onSelectionChange does not stop the Overlay's onInteractionOutside from firing. But since the popover closed, the next available popover to check is the original (non-closing) popover. This means that both popovers end up closing.
Weirdly enough, if you click the ListVIew Item's checkbox, the behavior does not exhibit. You have to click the label.
💁 Possible Solution
n/a
🔦 Context
While opening popovers from popovers may be advised against. It does (and will) happen. This issue was mitigated by adding a 0-length timeout before the close method to get the close after the onInteractionOutside method.
i.e.
// Broken:
close();
// Mitigated:
setTimeout(() => close());

💻 Code Sample
Code sandbox example
🌍 Your Environment

Software
Version(s)

react-spectrum
3.24.1

Browser
Chrome

Operating System
MacOS

🧢 Your Company/Team
Adobe Analytics (Workspace Analysis)

Could you perhaps not close on selection change? That happens on pointer down. Usually, actions in modals are taken on pointer up. For example, clicking a menu item.
You could attach an onPointerUp to the document after a selection change? Or you could add a close/confirm button.

That feels pretty clunky to keep track of. An action on selection (which is a UX requirement rather than a button) is going to be far more common that doing the selection, keeping track of if one just occurred, and then determining if it should close based on if a selection was made, and then doing the action after that.

I don't disagree, however, I'm fairly sure that what you're running into is actually a browser bug. See this issue for more information https://github.com/adobe/react-spectrum/issues/1513
We haven't determined a way to solve it generically in RSP.
I think the delay of 0 before closing is fine. Otherwise, there are suggestions in my previous comment.

Ah. Yeah that does seem related. I’ll probably stick with the timeout for ease of readability. Thanks for the help!


ValueError: check_hostname requires server_hostname with Roomba password.py

After the device was found, I am asked to press the home button.
Once I press enter on the console, I get this error:
Traceback (most recent call last):
  File "./password.py", line 294, in <module>
    main()
  File "./password.py", line 291, in main
    get_passwd.get_password()
  File "./password.py", line 160, in get_password
    data = self.get_password_from_roomba(addr)
  File "./password.py", line 196, in get_password_from_roomba
    wrappedSocket = context.wrap_socket(sock)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/ssl.py", line 997, in _create
    raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostname

Same here!

What Roomba do you have? For new Roomba’s you have to use a different process, as described in the instructions.
The method you are trying only works on older Roomba’s.

Ok, I have looked into this. There are two possible fixes, maybe one of you can test this out.
in file password.py

change PROTOCOL_TLS_ CLIENT on line 194 to PROTOCOL_TLS_SERVER
change context.wrap_socket(sock) on line 196 to connect.wrap_socket(sock, server_hostname=addr)

If you could try 1) or 2) above (but not both), and let me know which (if any) works, I will update the code. I can’t test it myself, as I only have new Roombas.

I try and :
1 change not 2 : 2023-12-22 19:55:54 ERROR [Roomba.Password] Connection Error (for <IP_ADDRESS>): Cannot create a client socket with a PROTOCOL_TLS_SERVER context (_ssl.c:811)
1 and 2 : 2023-12-22 19:57:29 INFO [Roomba.Password] Roomba (Jet M6) IP address is: <IP_ADDRESS>
Traceback (most recent call last):
File "/mnt/c/WINDOWS/system32/Roomba980-Python/roomba/password.py", line 294, in
main()
File "/mnt/c/WINDOWS/system32/Roomba980-Python/roomba/password.py", line 291, in main
get_passwd.get_password()
File "/mnt/c/WINDOWS/system32/Roomba980-Python/roomba/password.py", line 160, in get_password
data = self.get_password_from_roomba(addr)
File "/mnt/c/WINDOWS/system32/Roomba980-Python/roomba/password.py", line 196, in get_password_from_roomba
wrappedSocket = connect.wrap_socket(sock, server_hostname=addr)
NameError: name 'connect' is not defined. Did you mean: 'context'?
1 not change and 2 : 2023-12-22 20:00:03 ERROR [Roomba.Password] Connection Error (for <IP_ADDRESS>): [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1007)
2023-12-22 20:00:03 ERROR [Roomba.Password] Unable to get password from roomba
2023-12-22 20:00:03 ERROR [Roomba.Password] Error getting password for robot Jet M6 at ip<IP_ADDRESS>, received 0 bytes. Follow the instructions and try again.

Ok, I have looked into this. There are two possible fixes, maybe one of you can test this out.
in file password.py
1. change `PROTOCOL_TLS_ CLIENT` on line 194 to `PROTOCOL_TLS_SERVER`

2. change `context.wrap_socket(sock)` on line 196 to `connect.wrap_socket(sock, server_hostname=addr)`

If you could try 1) or 2) above (but not both), and let me know which (if any) works, I will update the code. I can’t test it myself, as I only have new Roombas.

works for me, but "connect" has to be "context", so:

context.wrap_socket(sock, server_hostname=addr)

note i still had an issue of the script exploding because I have two roombas and one was downstairs on its charger, so I couldn't press the home button :)

You have to the button and after press enter so you have time.

I'm getting the same issue and none of the above solutions are working for me.

Ok, I have looked into this. There are two possible fixes, maybe one of you can test this out.
in file password.py

change PROTOCOL_TLS_ CLIENT on line 194 to PROTOCOL_TLS_SERVER
change context.wrap_socket(sock) on line 196 to connect.wrap_socket(sock, server_hostname=addr)

If you could try 1) or 2) above (but not both), and let me know which (if any) works, I will update the code. I can’t test it myself, as I only have new Roombas.

For 1, I get the Cannot create a client socket with a PROTOCOL_TLS_SERVER context (_ssl.c:809) issue.
For 2, I get Connection Error (for <ip addr>): [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006) when I change connect to context in the solution. With connect as the solution suggests I get a NameError as mentioned by @Idaho947.
I've got the S9+, and as a sanity check I also attempted all the same steps both with the vacuum linked and unlinked to my Google account.
I'd be happy to perform further troubleshooting steps as necessary

@32nmud
The process you are attempting does not work on modern Roombas like the S9+.
For modern Roombas, you have to use the cloud connection method to get the password, as described in the documentation.

Wondering if for non-cloud connections it makes sense to bypass hostname and certificate validity checks altogether?  Heres what I use since these are all local and I trust my local roombas ;-).
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE

Wondering if for non-cloud Roomba connections, it makes sense to bypass hostname and certificate validity checks altogether? Heres what I use since these are all local roombas and I trust them ;-).
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE

This is exactly what worked for me -- I have an iRobot SKU s955020

Wondering if for non-cloud Roomba connections, it makes sense to bypass hostname and certificate validity checks altogether? Heres what I use since these are all local roombas and I trust them ;-).
context = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE

Trying this method with a Roomba 960, I get the following error now:
2024-07-27 14:21:39 ERROR [Roomba.Password] Connection Error (for 192.168.XX.XX): [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:1007)
2024-07-27 14:21:39 ERROR [Roomba.Password] Unable to get password from roomba
2024-07-27 14:21:39 ERROR [Roomba.Password] Error getting password for robot Roomba at ip192.168.XX.XX, received 0 bytes.


fix: http clients detect 4xx as errors by default

Description

Error codes between 400 and 599 are considered as errors by default.
Before this change only codes between 500 and 599 were handled by default.

Issues

Closes: #496

Testing

tests are passing

Checklist

[x] CI passed

I haven't read the code yet, but does it retry on server error and fail immediately on client error?

I haven't read the code yet, but does it retry on server error and fail immediately on client error?

No, we do retry for all error codes.

I haven't read the code yet, but does it retry on server error and fail immediately on client error?

No, we do retry for all error codes.

Well, I tried running JS crawlee against httpbin/status/{4xx, 5xx} with CheerioCrawler, this is what I got:
INFO  CheerioCrawler: Starting the crawler.
WARN  CheerioCrawler: Reclaiming failed request back to the list or queue. 533 - Internal Server Error:
 {"id":"w6oAmtuwtHhtL97","url":"https://httpbin.org/status/533","retryCount":1}
ERROR CheerioCrawler: Request failed and reached maximum retries. Error: Resource https://httpbin.org/status/406 is not available in the format requested by the Accept header. Skipping resource.
    at CheerioCrawler._abortDownloadOfBody (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:894:19)
    at HttpCrawler.postNavigationHooks (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:447:45)
    at CheerioCrawler._executeHooks (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/basic-crawler.ts:1599:23)
    at CheerioCrawler._handleNavigation (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:625:20)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async CheerioCrawler._runRequestHandler (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:509:13)
    at async CheerioCrawler._runRequestHandler (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/cheerio-crawler.ts:235:9)
    at async wrap (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@apify/src/index.ts:77:27) {"id":"S2gfgn5uedS6zfo","url":"https://httpbin.org/status/406","method":"GET","uniqueKey":"https://httpbin.org/status/406"}
WARN  CheerioCrawler: Reclaiming failed request back to the list or queue. 533 - Internal Server Error:
 {"id":"w6oAmtuwtHhtL97","url":"https://httpbin.org/status/533","retryCount":2}
WARN  CheerioCrawler: Reclaiming failed request back to the list or queue. 533 - Internal Server Error:
 {"id":"w6oAmtuwtHhtL97","url":"https://httpbin.org/status/533","retryCount":3}
ERROR CheerioCrawler: Request failed and reached maximum retries. Error: 533 - Internal Server Error:
    at CheerioCrawler._parseResponse (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:753:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async CheerioCrawler._runRequestHandler (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:512:28)
    at async CheerioCrawler._runRequestHandler (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/cheerio-crawler.ts:235:9)
    at async wrap (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@apify/src/index.ts:77:27) {"id":"w6oAmtuwtHhtL97","url":"https://httpbin.org/status/533","method":"GET","uniqueKey":"https://httpbin.org/status/533"}
INFO  CheerioCrawler: All requests from the queue have been processed, the crawler will shut down.
INFO  CheerioCrawler: Final request statistics: {"requestsFinished":0,"requestsFailed":2,"retryHistogram":[1,null,null,1],"requestAvgFailedDurationMillis":442,"requestAvgFinishedDurationMillis":null,"requestsFinishedPerMinute":0,"requestsFailedPerMinute":103,"requestTotalDurationMillis":883,"requestsTotal":2,"crawlerRuntimeMillis":1155}
INFO  CheerioCrawler: Error analysis: {"totalErrors":2,"uniqueErrors":2,"mostCommonErrors":["1x: Resource https://httpbin.org/status/406 is not available in the format requested by the Accept header. Skipping resource. (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:894:19)","1x: 533 - Internal Server Error: (/home/janbuchar/Projekty/Apify/repro-mtggoldfish-js/node_modules/@crawlee/src/internals/http-crawler.ts:753:19)"]}
INFO  CheerioCrawler: Finished! Total 2 requests: 0 succeeded, 2 failed. {"terminal":true}

We should keep the parity here...

we also have some special handling for blocked status codes like 403 when it comes to sessions (and this needs to be configurable)
https://github.com/search?q=repo%3Aapify%2Fcrawlee blocked status codes&type=code

Update:

Do not retry for 4xx errors.
a bug fix in BasicCrawler.

we also have some special handling for blocked status codes like 403 when it comes to sessions (and this needs to be configurable)

AFAIK this is already implemented.


its saying its invalid

A little bit of warning spam at the start is okay, does restarting help at all?

Its not at the start, it never stops spamming that. Restarting does nothing.

All right, what are your settings for WCFace? I know some people have issues with MPEG/YUV depending on their type of web camera

Im using a logitec webcam and was using it on option 8 (640x360 5-30fps yuy2) with everything else default

Try using MPEG

I only have options for yuy2 and mjpeg so id assume you mean mjpeg, tried it and it told me half the frames were corrupt and it was still invalid

Tried with a different but extremely similar webcam and it produced the same results. If it helps, starter app tells me it connects, then disconnects, then connects again

Okay, do you have any other cameras you could possibly use

I only have those two that i have tried.