IdentifiedArrayOf not update from parents state

Description
https://github.com/AddaMeSPB/AddaMeIOS/blob/siteRouter/AddameSPM/Sources/TabsView/TabsReducer.swift#L173
I am thinking the reason its not update becz I am using ObjectId(MongoDB_ID like UUID)
my models look like this
var conversations: IdentifiedArrayOf<ConversationOutPut>
public struct ConversationOutPut: Identifiable {
    public var id: ObjectId
    .........
}

public struct MessageItem: Identifiable {

    public var id: ObjectId? = nil
    public var conversationId: ObjectId
    ..........
}

Checklist

[X] If possible, I've reproduced the issue using the main branch of this package.
[X] This issue hasn't been addressed in an existing GitHub issue.

Expected behavior

Actual behavior
state.conversations.conversations[id: messageResponse.conversationId] give me nil value
but when I am use this algorithm
state.conversations.conversations .last(where: { $0.id == messageResponse.conversationId })
I get value
Steps to reproduce
No response
The Composable Architecture version information
0.39.1
Destination operating system
iOS 15
Xcode version information
Version 13.4.1 (13F100)
Swift Compiler version information
swift-driver version: 1.45.2 Apple Swift version 5.6.1 (swiftlang-<IP_ADDRESS>3.66 clang-13<IP_ADDRESS>)
Target: arm64-apple-macosx12.0

@saroar Have you determined if this is a bug in TCA or IdentifiedCollections, and if so can you provide a small reproduction for us to work with? Maybe a failing tests?
It does look like ObjectId should work based off a simple test:

One thing that stands out in your code as odd is that MessageItem's id can be nil. If it's not a bug and more a question of usage, let me know and I'll convert this to a discussion.

thanks for quick reply but I am dont understand why this pc of code getting
state.conversations.conversations[id: messageResponse.conversationId] = nil
and this one I get values
state.conversations.conversations .last(where: { $0.id == messageResponse.conversationId })
is not same are same ?

ok I will write test and let you know as I love to write test with TCA :)

@saroar I can really only speculate without a reproduction to work with. But IdentifiedArray wraps a OrderedDictionary<ID, Identifiable> with the precondition that ID and Identifiable.id are the same value at each entry. It sounds like that precondition may not hold for your state, though.

now I fixed issue it my own issue but my view was not updated 'Conversations last message not update on view' before was working with older version :(

@saroar Were you able to track down the issue? It sounds like you fixed one aspect of it? Did you determine if it's a bug in TCA, Identified Collections, or your application?

@saroar I'm going to close this for now, since we don't have a repro to work with. If you do think there's a bug, please share a repro! Ideally a test case or small project demonstrating the issue. If the bug is with IdentifiedArray, please file it in the Identified Collections project, or if it's a bug in TCA, you can open a new issue here.

hi this is repo https://github.com/AddaMeSPB/AddaMeIOS/blob/siteRouter/AddameSPM/Sources/TabsView/TabsReducer.swift#L173

@saroar Is it possible for you to provide a small reproduction directly in the Identified Collections library (as a failing test in a PR, perhaps)? I'm not sure how to get your entire application running or what the steps are to reproduce the issue, so a minimized reproduction would be super helpful.


Fix typo in the example of nesting bp docs

Add missing closing quote after url_prefix='/child.
Use single quote for consistency.

Oops, forgot to branch off of 2.0.x, will rebasing...

Note that you can rebase onto different branches, might come in handy in the future.
git rebase --onto origin/2.0.x origin/main
git push -f


add stat reporting for dart core and dart tools packages

add stat reporting for dart core and dart tools packages

To the dart bin/report.dart weekly stats reporting, this adds:

--dart-core, to show stats for the dart core (tier 1) packages
--dart-tools, to show stats for the dart tools (tier 2) packages
--month, to show stats on a monthly basis (instead of weekly)

Here's the new CLI:
Run a week-based report on issues opened and closed.

Usage: report weekly [arguments]
-h, --help                 Print this usage information.
    --dart-core            Query the Dart Ecosystem core packages.
    --dart-tools           Query the Dart Ecosystem tools packages.
    --date=<2022-01-26>    Specify the date to pull data from (defaults to the last full week).
    --month                Return stats based on calendar months (instead of weeks).

(this re-creates https://github.com/flutter/flutter-github-scripts.dart/pull/29)

@itsjustkevin - can you re-review this? I think I've successfully signed the commit now.


[Feedback wanted] New Lift & Shift document

We are about to add a large update to our documentation on Lift and Shift, adding new content to cover many topics that were never covered before. We'd appreciate feedback on the proposed new content!
You can take a look at the new Lift & Shift doc while in preview, here: https://github.com/MicrosoftDocs/Virtualization-Documentation/blob/viniap-liftshift/virtualization/windowscontainers/quick-start/lift-shift-to-containers.md
Let us know what you think - feel free to suggest updates directly into the doc!

This has now been published here: https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/lift-shift-to-containers.
Please continue to provide feedback as you see fit.


Add amount of played years+days in profile

Add amount of played years+days in profile, which increases every day, counting from Join day(date).
example:

The red is only an indicator, not to be implemented, lol.

How accurate would you want the time to be? Is this (the table) enough?

perhaps have the largest gap in months? like you joined 22 months ago or 1 year and 10 months ago?

down to days is enough for me, personally but if others want mins or secs I wouldn't be 100% against it, lol.


chore(deps): update dependency @types/node to v18.19.29

This PR contains the following updates:

Package
Type
Update
Change

@types/node (source)
devDependencies
patch
18.19.28 -> 18.19.29

[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

Configuration
📅 Schedule: Branch creation - "before 4am on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update (18.19.29). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


Devicelab linux-2 cannot find device

Rebooted the bot, but device is still not back. This needs a lab visit.
(This bot caused flakes like https://github.com/flutter/flutter/issues/114514)

Logged on and started the adb server:
flutter@flutter-devicelab-linux-2:~$ adb start-server
adb server version (41) doesn't match this client (39); killing...
* daemon started successfully

Device is showing as unauthorized in the devices list:
flutter@flutter-devicelab-linux-2:~$ adb devices
List of devices attached
ZY223CXXGL	unauthorized

Flakiness caused directly by this:
https://github.com/flutter/flutter/issues/114982
https://github.com/flutter/flutter/issues/114984
https://github.com/flutter/flutter/issues/114988

What do you think could cause the issue? Anything from the test side? /cc @zanderso @GaryQian

My understanding is that in the past, this could be caused by anything from the cable being bad to the device nearing the end of its life. If adb tells the tool that the device is gone, then the best it can probably do is retry a few times. It looks like that's already happening, so our options may be limited.

Yeah I am thinking the device may be going end of life since it is happening only on this bot. This morning when I logged onto the bot I ran and adb devices command it showed an attached device even though the bot was still in quarantine. I looked through some of the other tests and they are are able to find the attached device at the start and end of the test even though the test had failed.

This testbed is still in an unhealthy state. Quarantining it.
We may considering deprecate it completely with a new phone (possible issue with its battery).

Tracking in the mentioned issue.


Handle complex expressions for bound non-string tag helper attributes

#129 and aspnet/Mvc#1253
add new CSharpTagHelperAttributeValueVisitor that writes the raw expression
update existing tests to include new line pragmas and updated line mappings
add tests of embedded @(...) and mix that with normal expressions

nits:

cleanup long lines in CSharpTagHelperCodeRenderer
ease debugging of LineMapping values
improve assertion failures about code mapping miss-matches
add GENERATE_BASELINES reminder to test project.json

/cc @pranavkm @NTaylorMullen

Updated - added resources and removed a few unused ones

:watch:

@NTaylorMullen rebased and extensively updated
Third commit mentions responses to CR comments (I'll remove that part before pushing):

do not throw in CSharpTagHelperAttributeValueVisitor; use ParserErrorSink instead
add error if bound non-string attribute value is empty (don't handle)
move #line pragma to surround entire bound attribute value assignment
need non-null ChunkBlock.Association value for this to work
clean up some whitespace special-cases needed for previous approach

:watch:

@NTaylorMullen updated per the actionable comments.  a couple of items remain open above.

:shipit: after talking to pranav and handling the centering bits.


Document supported OS versions

Currently there is no explicit documentation on what versions of OSes are supported. We should create such a documentation and keep it up-to-date.

https://github.com/rust-lang/socket2-rs/pull/124 requires at least Windows 7 SP1 or Windows Server 2008 R2 with SP1.

Since Microsoft dropped support for Window 8 since 2023-01-10, I think so can we.

Maintains consistent compatibility with rust  future-windows-compatibility

Maintains consistent compatibility with rust future-windows-compatibility

Fine as well. We can dropped support for Windows < 10 when we drop support for rustc < 1.76.


Annotation for COCO format for rotated bounding box with theta

Actions before raising this issue

[X] I searched the existing issues and did not find anything similar.
[X] I read/searched the docs

Steps to Reproduce

Uploaded images
Unable to upload annotations in .json format (COCO with theta) for these images

Expected Behavior
Could not upload annotation for the task 449744
Error: Request failed with status code 400. "Failed to import item (None, 'default'): Invalid annotation field 'id' type '<class 'str'>'. Expected <class 'int'>"..
Possible Solution
No response
Context
No response
Environment
No response

Hello, How did you get this annotations file?

Hello, I have created similar to COCO format
output (1).json

Please, be sure your file has correct format. Try to compare the file with another file, exported as COCO from CVAT.

Thanks you @bsekachev for the quick response. I am able to upload the data in the correct format.
I am able to see a shift in the bounding box. Attached 2 images one plotted locally in python and the other from CVAT.
Could you please help me with it ?


[Diagnostics] Correct the insert location of missing return type fix-it.

In ExtraneousReturnFailure, insert the return type fix-it after any effects specifiers like async, throws, rethrows, etc.
Resolves: rdar://79345188

@swift-ci please smoke test


1 feature session level analytics

Description
Primarily focused on providing a way to track analytics at the session level in addition to doing it in aggregate across all sessions (the original sole behavior). I achieved this by adding a session_id kwarg to the tracking functions and having it write things to Firestore at both the aggregate and session_id-level (using the same collection as the counts document that is generated automatically but using the session_id value provided by the end user as the document ID). Note that I use SA2 exclusively with Firestore, so there may be cases with the other storage options I have no considered (but would be happy to correct when they are pointed out!).
Related Issue(s)

Closes #121 partially, but may not fully address (I actually use streamlit-authenticator for the user account control stuff myself and session IDs bridge over to user accounts via other mechanisms outside the scope of SA2).

Changes Made

[x] Simple typo corrected in the testing section of CONTRIBUTING.md
[x] Leverage streamlit session state to track session-level counts
[x] Added content for tracking usage of third-party streamlit-searchbox widget, but unfortunately while it doesn't error out it also fails to register interactions, so left that code commented out as experimental as per other code already in the codebase for main.py
[x] Simplified resetting counts and session_counts via reusable functions
[x] Added session_counts-specific code to the various widget wrappers to avoid recording aggregate stats in the session state
[x] Added utils.py functions for resetting/initializing session counts

Testing

[x] I have manually tested these changes and confirm they work as intended.

Testing Details:
Describe how you tested the changes.
Screenshots (if applicable)
Aggregate counts:

Session-level counts:

Checklist

[x] I have read the CONTRIBUTING guide.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation (README.md, CONTRIBUTING.md, etc.).
[x] My changes generate no new warnings or errors.

Additional Notes
Add any other notes or context about the pull request here.

Thank you for this! I am going through this now
Must have missed the notification somewhere - only seeing this now

@444B I added a Makefile to enable people to run flake8, black, mypy, and isort automatically on their code to make test-passing a little more streamlined (it was something I kept failing to do so hopefully this helps some folks?). I added a little text in CONTRIBUTING.md to reflect this if you like it and want to keep.

Looks all good Please increment the __version__ in /__init__.py to 0.9.0 and then we should be good to go
Thank you for your contribution and I hope you will stay involved in the project!

Done! Thank you for the quick turn, we needed this to get published to PyPi with these changes to keep our main functional, it's been a delight working with you.

Its done ;)
https://pypi.org/project/streamlit-analytics2/0.9.0/

w00t!
--
Dave Rench McCauley
Pronouns: he/him/his
On Sun, Dec 29, 2024 at 11:20 AM 444B @.***> wrote:

Its done ;)
https://pypi.org/project/streamlit-analytics2/0.9.0/
—
Reply to this email directly, view it on GitHub
https://github.com/444B/streamlit-analytics2/pull/124#issuecomment-2564772429,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACZNNORCVQTB4V3NKLYKXZ32IAOODAVCNFSM6AAAAABUJFD6A6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNRUG43TENBSHE
.
You are receiving this because you authored the thread.Message ID:
@.***>

@444B I just realized when I went to poetry add streamlit-analytics2="^0.9.0" that the minimium allowable version of python for SA2 was increased from python 3.10 to python 3.12. Was this intentional? My downstream project is 3.11 so now I have some choices to make...

Aha, I thought this was apparent.
We moved to 3.12 since its now supported by streamlit and we were facing some numpy import issues in development that only got involved by incrementing the python verions.
Ill think of what we might do but this might be counted as a breaking change and require a rollback to the previous python version (with some testing)
Free to chat about this?
If so, you can join the video meeting, click this link: https://meet.google.com/qkt-uhdw-rsq

Ill release a 0.9.1 shortly with a revert to 3.10.16

@emigre459 this should now be fixed by 0.9.1 - released by PR https://github.com/444B/streamlit-analytics2/pull/125
Live - https://pypi.org/project/streamlit-analytics2/0.9.1/


Carla simulation not available in Openpilot UI

Describe the bug
When I run the simulation on PC, Carla "interface" in Openpilot UI is not shown.
So I can't see car or road.

When I press 1 in bridge.py shell, it says "Openpilot available press set to engage.
In launch_openpilot.sh shell seems to be everything ok.
Even if I run in docker container, I get the same issue
Here some screenshot...

OS Version
Ubuntu 20.04
openpilot version or commit
No response
Additional info
Steps to reproduce

Terminal 1: run CARLA (not docker version)
Terminal 2: poetry shell - cd /tools/sim - ./launch_openpilot.sh
Terminal 3: poetry shell - cd tools/sim - ./bridge.py

I ran into the exact same issue. I am on Ubuntu22

same issue, ubuntu 20, followed all directions...doesnt show up on ui

Same. Openpilot seems to run normally, just nothing on the UI. This is running Carla and OpenPilot through the Docker images for me.
I'm guessing it is related to #26169, but that is just a guess.

Same here. Carla is working fine but the bridge in 0.9.0 version has nothing.

Same issue here.

same issue here

Any updates about this?
In my case rn, I can see the future trajectory, but cannot load the images from Carla.

Same. Openpilot seems to run normally, just nothing on the UI. This is running Carla and OpenPilot through the Docker images for me.

same issue, ubuntu 20, followed all directions...doesnt show up on ui

@jbeck9 and @eli-davis, how do you know that openpilot is working?
For me OP seems not to be fully engaged after I press 1.

Passing  --high_quality --dual_camera to bridge.py solved the camera issue for me. The vehicle is still not moving with my interference using WASD .

@ebadi try press 1, then press 2 (twice), then click multiple times at the screen. In my case, I will get the trajectory by doing this.
Also me, after rebuild again. I got like yours too.

@ebadi I also got this too. But, there is no future trajectory.

@ebadi same here.

I tried with the latest Docker Image again on master branch, but the UI  now doesn't  even change to the running mode, it stays at the home page. Is there a way we can rebuild the docker image on our own ?

Check opencv2, mine is missing
ImportError: libnppc.so.11: cannot open shared object file: No such file or directory
@ebadi

didpurwanto Please check this bug report and workaround (reinstalling opencv-python-headless) here #26786

hello i meet the problem "openpilot unavailable waiting for controls to start"
this problem is familiar with your problem
do you know how to fix it ?
thx

Fixed with d5375af2f5c9f74cb88ffa1ab52feb9fef77a43c


Question about the arXiv paper

Hi @yunhuiguo,
sorry, I have one more question about the arXiv paper.
Since we can't finish our paper before your workshop deadline, so we will put it on arXiv as the rule required.
I would like to know is it available to submit the arXiv paper to other conferences? (if the conference accepts an arXiv submission).
We will extend the paper with extra experiments, but most of the content will be the same as the arXiv paper.
Thank you for your help.

Hi @JiaFong, you can submit the paper for the challenge to other conferences :).

Thank you so much :)


[HOLD Deprecating Sequence Numbers] [Feature] Can't delete messages sent while offline

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

Action Performed:

Send message while offline
Attempt to delete

Expected Result:
You can delete the message
Actual Result:
Can't delete the message
Workaround:
unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.2.48-2
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:

https://user-images.githubusercontent.com/43996225/210611361-220fe1db-3df6-416f-a0a5-7d846b942106.mp4
Expensify/Expensify Issue URL:
Issue reported by: @mallenexpensify
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1672781242891829
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0113e4012eea690abe
Upwork Job ID:<PHONE_NUMBER>930844672
Last Price Increase: 2023-01-06

Happy to help out!

Looked into our code for this and I have two ideas for how this could work.
Option 1 (undo the AddComment request):

Delete the reportAction from our local Onyx store.
Skip the call to DeleteComment, since the comment doesn't exist in our back-end yet, as the AddComment call also hasn't happened yet.
Add a new method to the SequentialQueue that finds and deletes the AddComment request that was previously queued for this report action.
Once the user comes back online, no requests are fired, and the chat is left in the exact same state that it started in.

I think this approach could be relatively complicated but could also provide scaffolding for further improvements to our SequentialQueue. There has been discussion before about adding a mechanism to remove unnecessary requests, and this is one of those cases. If you Add/Delete the same information it's the same as not doing anything at all.
Option 2 (let the AddComment/DeleteComment requests run):

Add a new type of pendingAction called something like DELETE_PENDING_ADD
If we see any reportActions with this pendingAction, we simply just hide them from the user.
Once the user comes back online, the AddComment request will fire, and then the DeleteComment request will fire right afterwards, effectively deleting the reportAction.

This approach is definitely much more straightforward but involves adding a new type of pendingAction, which I'm not sure how people will accept. We may also need some more logic to ensure the reportAction stays hidden between when the AddComment and DeleteComment requests finish, otherwise their may be a "flickering" effect where the reportAction appears for a split second after AddComment finishes and DeleteComment finishes.
cc @marcaaron @tgolen since we've worked on SeqQueue stuff together before

In regards to other UI changes, we'd also have to update ReportUtils.canDeleteReportAction from this:
https://github.com/Expensify/App/blob/e732d160f4694bee78d95b907b52f85e8f359caa/src/libs/ReportUtils.js#L142-L148
To this:
function canDeleteReportAction(reportAction) {
    return reportAction.actorEmail === sessionEmail
        && reportAction.reportActionID
        && reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.ADDCOMMENT
        && (reportAction.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD
            || (isOffline && reportAction.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD))
        && reportAction.pendingAction !== CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE;
}

This will allow the delete option to show for reportActions that are pending add while we're offline.

Marked this as Internal since it could potentially involve touching the SequentialQueue

Have a working proof of concept of Option 2 here: https://github.com/Expensify/App/pull/14054
cc @marcaaron @tgolen

Thanks for diving in @jasperhuangg !!

@jasperhuangg I really like the idea of option 1. It seems the most straight forward and simple.

sounds good, I'll iron out the PR for that https://github.com/Expensify/App/pull/14054 and request you for review, thanks! @tgolen

Removing Bug label since this is more of a New Feature request.

I'm thinking we can modify the logic that actually makes the XHR requests to see if we can skip making both AddComment or DeleteComment  requests by checking if the optimistic report action has the deletedPendingAdd flag set to true.
Trying to figure out where to best put this logic since I'm getting dependency cycle linter errors.

To the user there's no difference as the reportAction is hidden from them this entire time.

I think with Option 1 it's possible we might run into issues here where other clients or participants would see this comment briefly appear then disappear once deleted. I'm not sure if that is a problem or not. Can't think of any easy way to solve it.

Option 2

Feels premature to me, but would solve Option 1's main "problem". Cancelling and deduplicating requests have been brought up before and will just reopen a debate about the SequentialQueue design. At the moment, it fundamentally "works" by replaying user actions in the order they are taken while offline. I can imagine reasons why we might want to revisit this system in the future - but not for this issue.

Ahh @marcaaron I actually kinda figured out the main "problem" with Option 1 😅
I added some more logic that seems to work in skipping redundant AddComment and DeleteComment requests.
It works by:

Storing the clientIDs and reportActionIDs of any report actions that were deleted while still pending add.
When flushing the SequentialQueue, we check if the report action for any AddComment/DeleteComment requests matches any of the clientIDs/reportActionIDs that we stored in [1].
If it matches, we skip those requests and remove the clientID/reportActionID from the store.

cc @tgolen

the person that we sent messages to (and later deleted) offline shouldn't receive any updates about these messages

I personally don't think this is a requirement.

Let's just solve "Can't delete messages sent while offline" and then evaluate if we need to solve this other problem.
I'm gonna hold off on commenting on the solution. I think we are making an assumption that modifying the SequentialQueue logic is something we even want to do (so we're kind of skipping a few steps here that we really should not skip). The changes violates some ideas about our current design. I don't think we can avoid a larger proposal or discussion on this.

Got it 👍 was fun playing around with this, hopefully we can do something more about this in the future

I decided to apply the strikethrough effect instead of hiding the report action to better match the behavior we have for offline deletes of report actions that were sent while online:
https://user-images.githubusercontent.com/31285285/211947731-e9f634f3-8d3e-453b-8c41-75d53a6976be.mov

Oh, that's a great idea! I love how that works

Ahh I'm noticing some weirdness (I'm assuming it's related to sequence numbers). If you send multiple messages and then delete the first message that was sent while offline some really weird behavior happens. In my testing I before I only deleted the subsequent messages.
https://user-images.githubusercontent.com/31285285/212135892-202be1c4-d8bb-4273-baed-4106ecf8d4c8.mov

I'm deciding to HOLD this on deprecating sequence numbers, since the lack of consistency with the optimistic report actions being removed is preventing me from seeing if my solution is actually working or not.

Since the logic around optimisticReportActions is going to change soon with deprecating sequence numbers, I'm going to HOLD off on the PR I have open on this for now since it looks like it's going to conflict with code that's being added there.
The issue where we don't always receive the pusher update to remove the optimistic report action is also making it difficult to see if the optimistic report actions are being correctly updated after being deleted offline. (you can see it happening in the above video).
In the meantime I'll work on wrapping up User-Created Policy Rooms.

This issue has not been updated in over 15 days. @jasperhuangg eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

Hey @jasperhuangg can you please take a peek at this GH and tell me if it's the same issue as this? https://github.com/Expensify/App/issues/15571

@jasperhuangg, this Monthly task hasn't been acted upon in 6 weeks; closing.
If you disagree, feel encouraged to reopen it -- but pick your least important issue to close instead.


Dependabot changing order of attributes in poetry.lock

Dependabot seems to be opening PRs which change the ordering of attributes within the lockfile. For example this PR. I know the lockfile isn't usually meant to be read, but it's nice when dependabot PRs are small and easily check-able.
Perhaps it's also possible that the way dependabot creates new lockfiles is consistent, and my original creation differs from that. In that case, is it possible to reformat my lockfile so dependabot creates smaller PRs?

I think this is a duplicate of #5530, so I will close this ticket in favor of #5530 and we can follow up in there.

Sorry for the duplicate, and thanks for looking into it!


ls: fix flaky test test_ls_io_errors

Hopefully fixes: https://github.com/uutils/coreutils/issues/3002
The test wasn't being triggered on my Linux machine, so I changed some things until it did, so hopefully it now works for both unix and mac. We'll have to see if it also fixes the flakiness.

So far, I haven't seen it fail in the CI, so... maybe it worked? 🤷🏻


ANDROID UPDATE TO PIE

Before you report your issue, please consider perusing the https://github.com/jberkel/sms-backup-plus#faq and searching the issues page to see if it has already been reported.
Expected behaviour   regular 30 min backups were happening like clockwork
Actual behaviour  After Android updated my S9+ to the PIE system they have only updated once in 24 hours
Steps to reproduce the behaviour    *****will this app still work with the Pie Update?
advanced messaging is off
Please specify the following:

Android version    updated to PIE yesterday
Phone model / brand    Samsung S9+
SMS Backup+ version installed     most recent one
Messaging app     samasung messages

OK so i disabled the "sleep" option this new update has to help save battery life....working great again.......BUT i put on advanced messaging to send a bigger file....then took it back off and now my SENT texts will not backup....I am hoping this is temporary as sometimes i takes the app a day to start working again. The biggest wish I had was that advanced messaging didnt stop backups......but I LUV THIS APP......


chore: Dependecy updates, such as kube 0.95.0 and Kubernetes 0.31

Description
I was not able to update opentelemetry, and would let it to the experts to figure it out, CC @Techassi, @NickLarsenNZ and @nightkr
I hope the aws-lc-rs crate will not cause any problems with Nix. I bumped zookeeper-operator and make run-dev worked fine.
Definition of Done Checklist

Not all of these items are applicable to all PRs, the author should update this template to only leave the boxes in that are relevant
Please make sure all these things are done and tick the boxes

# Author
- [ ] Changes are OpenShift compatible
- [ ] CRD changes approved
- [ ] Integration tests passed (for non trivial changes)

# Reviewer
- [ ] Code contains useful comments
- [ ] (Integration-)Test cases added
- [ ] Documentation added or updated
- [ ] Changelog updated
- [ ] Cargo.toml only contains references to git tags (not specific commits or branches)

# Acceptance
- [ ] Feature Tracker has been updated
- [ ] Proper release label has been added

I hope the aws-lc-rs crate will not cause any problems with Nix. I bumped zookeeper-operator and make run-dev worked fine.

We could evaluate if we can use ring as a crypt backend instead (supported by rustls).

We could evaluate if we can use ring as a crypt backend instead (supported by rustls).

I sadly know the situation from trino-lb :/ This PR should not change anything (in comparison to main), and the zookeeper test worked, so I'd call it ready to be merged


Add beaver logs

We should use beaver-logger to instrument xcomponent, and allow people to pass in their own beaver back-end url, for example:
let FooComponent = xcomponent.create({
    ...
    logUrl: 'http://foo.com/api/log'
});

Mostly done, but still need to figure out how to separate this out so it's more of a dependency injection, since:
a) it's only a soft dependency
b) other apps might also include beaver-logger and don't want to load it twice.
Right now just mooting window.$logger...


Add CI/CD workflow

Closes #1.
This PR add a new GitHub workflow to package, install, test, and publish to PyPI the sdist package. This time I am experimenting PEP517 and PEP518 support.
Few resources:

https://snarky.ca/what-the-heck-is-pyproject-toml/
https://pip.pypa.io/en/stable/reference/pip/#pep-517-and-518-support

After the upstream fix https://github.com/robotology/gym-ignition/pull/234, the sdist gets compiled successfully, but the test fails when runs in the workflow. Locally instead it works fine.

I managed to reproduce the failure in a local docker image:
[libprotobuf ERROR google/protobuf/descriptor_database.cc:57] File already exists in database: peer_info.proto
[libprotobuf FATAL google/protobuf/descriptor.cc:1164] CHECK failed: generated_database_->Add(encoded_file_descriptor, size):
terminate called after throwing an instance of 'google::protobuf::FatalException'
  what():  CHECK failed: generated_database_->Add(encoded_file_descriptor, size):

Yet another time, problems with protobuf :expressionless: I think that the problem is that the gym-ignition-nightly wheel is built and linked against a version of protobuf installed from sources. Instead, here, since we install Ignition Robotics from the repo, the regular protobuf version is loaded.
I'm almost done with https://github.com/robotology/gym-ignition/issues/230, and in Focal it seems we no longer need to use a custom protobuf version for tensorflow compatibility (just the import order in Python is important). I'll leave this PR pending waiting to update upstream to Focal.

I did some tests but even after packaging gym-ignition-nightly from Focal, the same error occurs. I start suspecting that the problem is not (only) related to the protobut version that should match. When we package the wheel, we link against a statically-compiled version of ign-gazebo. This is due to our temporary need to use a custom version of the simulator while few upstream changes will get merged. I fear that this process embeds in the resulting library also libprotobuf.a.
This is totally ok if no other libraries try to load another version of protobuf. Unfortunately, this is the case of plugin libraries like those provided by this repo. In fact, the error reported above occurs not when scenario is loaded, but when the plugin is loaded during runtime. The OS tries to load libprotobuf.so from the file system, but maybe it collides with already loaded symbols contained by the embedded libprotobuf.a. cc @traversaro
I don't have many ideas, I tried to tweak a bit the dlopen flags from Python but I didn't find any working configuration. At this point I will leave this PR pending (again) waiting that our changes land upstream.

Whoah, the situation feels intricated. Yes, probably waiting for switching everything to Focal make sense. More in general, this show the shortcoming of using a distribution system that does not deal explicitly with binary C/C++ dependencies. In the long term, using something like conda could be beneficial to deal with this problems. However, I am afraid that on Python there is no silver bullet, especially when  dealing with Tensorflow, as for example Tensorflow 2 is still not packaged for conda-forge, see https://github.com/conda-forge/tensorflow-feedstock/issues/70 .

I am still hesitant to switch to systems like conda-forge because it could be problematic each time we need to use a package that is not yet part of it (e.g. https://github.com/ray-project/ray/issues/585). It's interesting and worth keeping an eye on it, but I suspect that it's not as mature as we require (and note we're quite prone to use modern technologies like focal / python3.8 / C++17, ...).


Make CBV corrector compatible with light curves that have missing cadences

Currently the CBV corrector requires input light curves with the same number of data points as the CBV vectors. This is problematic as some of the light curve data is null and might be removed. We should change the CBV corrector so as to remove points from each vector that correspond to missing light curve data.

This is also related to #56 and #46

CBVCorrector is being revised as part of #672!


Exclude Nodes From Kube-Bench based on labels

In this change we are adding a new configuration setting to provide node labels as a
comma-separated list of key=val pairs in the KE configmap. Kube-Bench will not
be run on nodes with these labels. List is empty by default

Please rebase you repo

Please rebase you repo

Done


Import the useDocuments hook from blutack (untested)

Just something I've had lying around for a while and meant to import here.

Okay, so in React you must always use the same number of hooks in every invocation of a component. This makes it difficult to perform certain tasks, like loading a variable number of subdocuments! The useDocuments hook, originally developed by @paulsonnentag, gives you the ability to maintain a map of subdocuments within a component. It doesn't support changing those documents (though it could in principle) because the API was even gnarlier.
Honestly, this whole thing makes me kind of sad but it's a useful tool in the current world.

reopening as new PR


[material-ui][Autocomplete] Keep in sync highlighted index when the option still exists

fix #41386

[x] I have followed (at least) the PR section of the contributing guide.

If the highlighted option still exists, it doesn't mean its index in the filtered list didn't change.
The index being out-of-sync with the visually highlighted item create weird behavior when interacting with the keyboard arrows (jumps)

@CGNonofr Are you trying to solve an existing GitHub issue? If not, could you please create a new issue with a CodeSandbox reproduction?

No, I didn't find any issue related to it
I sure can create an issue if you process needs it.
Regarding the CodeSandbox reproduction, I've already changed a test (the last commit) that highlight the issue, is that enough?

I sure can create an issue if you process needs it.
Regarding the CodeSandbox reproduction, I've already changed a test (the last commit) that highlight the issue, is that enough

A codesandbox reproduction would still help.

I sure can create an issue if you process needs it.
Regarding the CodeSandbox reproduction, I've already changed a test (the last commit) that highlight the issue, is that enough

A codesandbox reproduction would still help.

Crated the issue and linked it in the PR description (https://github.com/mui/material-ui/issues/41386)

for it to work, we also need to add isOptionEqualToValue={(a, b) => a.id === b.id}

Why is it necessary? The prop is optional. What's the rationale behind needing it in this specific case?

for it to work, we also need to add isOptionEqualToValue={(a, b) => a.id === b.id}

Why is it necessary? The prop is optional. Keyboard navigation works in general (no option insertion) without it being required. What's the rationale behind needing it in this specific case?

because all the items are changed, the alternative is to reuse the items: https://codesandbox.io/p/sandbox/mui-autocomplete-bug-forked-mxsvf7?file=%2Fsrc%2FApp.js%3A22%2C68

for it to work, we also need to add isOptionEqualToValue={(a, b) => a.id === b.id}

Why is it necessary? The prop is optional. Keyboard navigation works in general (no option insertion) without it being required. What's the rationale behind needing it in this specific case?

because all the items are changed, the alternative is to reuse the items: https://codesandbox.io/p/sandbox/mui-autocomplete-bug-forked-mxsvf7?file=%2Fsrc%2FApp.js%3A22%2C68

How would developers know they need to use that prop?

You're right, the code is not correct, I will come up with something better
It still feel weird to me that the option comparison rely exclusively on the label without any way to override that behavior (so it's impossible to rename an option without losing it's highlighting)

Also, the above CodeSandbox is inaccessible. Perhaps you need to grant permissions to me.

my bad, it's now shared

It still feel weird to me that the option comparison rely exclusively on the label without any way to override that behavior (so it's impossible to rename an option without losing it's highlighting)

I didn't understand what you mean. You can use getOptionLabel to rename an option label.

@ZeeshanTamboli ok I've rewritten the PR

Thanks for this fix. The logic and the fix seem solid, but the tests are passing on the master HEAD branch which indicate they're not covering the necessary scenario. Maybe add a new test instead of modifying an existing one. Also, need to update the comment.

Rewritten the PR once again!


Added tray token

Description
Adds new "tray-top-to-content-area" token
Related Issue

Closes DNA-1276

Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have signed the Adobe Open Source CLA.
[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Run report for f132fb2f
Total time: 42.9s | Comparison time: 1m 2s | Estimated savings: 19.5s (31.2% faster)

Action
Time
Status
Info

🟩
SetupNodeTool(18.13.0)
3.7s
Passed

🟩
InstallNodeDeps(18.13.0)
34.8s
Passed

🟩
SyncNodeProject(tokens)
0.9ms
Passed

🟪
RunTarget(tokens:build)
19.3ms
Cached

🟩
RunTarget(tokens:generateDiffResult)
4.4s
Passed

🟩
RunTarget(tokens:test)
2.3s
Passed

🟪
RunTarget(tokens:buildManifest)
2.1s
Cached

🟩
RunTarget(tokens:noop)
4.3ms
Passed

Touched files
.changeset/forty-pots-joke.md
.github/workflows/ci.yml
packages/tokens/package.json
packages/tokens/src/layout-component.json


Auto finished when proxy websocket to localhost

Version(s) 2.2.1
To reproduce

start websocket server in localhost:88
create a mvc project, proxy websoket to localhost:88

Expected behavior
The agent functions normally
Actual behavior
The current websocket agent will disconnect immediately upon success to localhost:88
Workarounds
chang the localhost to ip(<IP_ADDRESS>)  is work

I am not able reproduce this.

@damianh
use the project https://github.com/haptear/TestProxyKit reproduce this.

Hi,
Sorry for delayed response.Du e to #230 I won't be investing my time in improvements in this area. I'm going point you towards microsoft/reverse-proxy that will hopefully address your issue.
Cheers,
Damian


Error: raise ValueError(f"Could not parse LLM output: {text}")

Got this error while using langchain with llama-index, not sure why it comes up, but currently around 1/10 queries gives this error.
> Entering new AgentExecutor chain...
Traceback (most recent call last):
  File "/Users/user/crawl/index.py", line 151, in <module>
    index()
  File "/Users/user/crawl/index.py", line 147, in index
    response = agent_chain.run(input=text_input)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/crawl/venv/lib/python3.11/site-packages/langchain/chains/base.py", line 216, in run
    return self(kwargs)[self.output_keys[0]]
           ^^^^^^^^^^^^
  File "/Users/user/crawl/venv/lib/python3.11/site-packages/langchain/chains/base.py", line 116, in __call__
    raise e
  File "/Users/user/crawl/venv/lib/python3.11/site-packages/langchain/chains/base.py", line 113, in __call__
    outputs = self._call(inputs)
              ^^^^^^^^^^^^^^^^^^
  File "/Users/user/crawl/venv/lib/python3.11/site-packages/langchain/agents/agent.py", line 792, in _call
    next_step_output = self._take_next_step(
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/crawl/venv/lib/python3.11/site-packages/langchain/agents/agent.py", line 672, in _take_next_step
    output = self.agent.plan(intermediate_steps, **inputs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/crawl/venv/lib/python3.11/site-packages/langchain/agents/agent.py", line 385, in plan
    return self.output_parser.parse(full_output)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/user/crawl/venv/lib/python3.11/site-packages/langchain/agents/conversational/output_parser.py", line 19, in parse
    raise ValueError(f"Could not parse LLM output: `{text}`")
ValueError: Could not parse LLM output: `Sure! query_configs is a list of dictionaries that define the parameters for each query in llama-index. Each dictionary contains the following keys: "name", "query_mode", and "query_kwargs". The "name" key is a string that identifies the query, the "query_mode" key is a string that specifies the type of query, and the "query_kwargs" key is a dictionary that contains additional parameters for the query.

For example, you can define a query that uses the k-nearest neighbors algorithm with a k value of 5 and cosine similarity metric, or a query that uses the BM25 algorithm with k1=1.2 and b=0.75. These queries can be used to retrieve relevant documents from the index based on a given query.`

Please provide the code you used to produce this error. Thanks


Add support for priority classes

Is your feature request related to a problem? Please describe.
Context : in our production cluster, some workloads such as neo4j database are more critical than others so we need that reflected in terms of priority classes for pods. We need to ensure those workloads have very high priority so our cluster is functional. Unfortunately the Neo4J helm charts do not expose priorityClassName attribute, which is not blocking but forces us to find workarounds.
Describe the solution you'd like
Something like https://github.com/neo4j-contrib/neo4j-helm/pull/250 and https://github.com/neo4j/helm-charts/pull/1
Official documentation: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
Describe alternatives you've considered
Using kustomize to post-render Neo4j helm chart.
Additional context
Related issue : https://github.com/neo4j-contrib/neo4j-helm/issues/227
Related PRs :

https://github.com/neo4j/helm-charts/pull/2
https://github.com/neo4j/helm-charts/pull/1
https://github.com/neo4j-contrib/neo4j-helm/pull/250
Official documentation: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/

@MorganGeek
Support for priority classes released in 4.4.9
https://github.com/neo4j/helm-charts/releases/tag/4.4.9


New templates: de.NBI / University Freiburg / MPI Freiburg

It would be nice to have templates to make the affiliations clearer when giving our biannual workshops for example.

@TorHou any idea here? We could discuss this a little bit during our workshop in Cambridge.

any idea for that? Is it really? Are the logos on the first page not enough?

@TorHou I will close this issue.
If anyone thinks we should find another solution, we can still reopen it later


Too many peer connections seen in chrome://webrtc-internals

In a call with 10 participants there were around 100 peer connections seen in chrome://webrtc-internals
I think this is because, on participant side for every producer a new receiverTransport is being created which creates a new peer connection, so if there are 10 participants in a call and all are producing then each participant will have 10 peer connections 1 for sending(senderTransport) and 9 for receiving(receiverTransport), hence total of 100 peer connections in a call of 10 participants, which created lots of processing burden on client side.
This is same as peer-to-peer approach.
To make it a full SFU we can create one sender transport and one receiver transport per participant and use that one receiver transport to consume multiple times to get media from all participants, then this should resolve the issue.
What do you say?

I have not looked at the webrtc-internals but its a good point to do so.
My understanding is that each participant should have a total of 10 transport connections (1 producer, 9 consumers). In this case there is less burden on each participant in that only 1 upstream and 9 downstreams.
When you mention 1 receiver transport, do you mean to pump all producers into one transport?

Yes 1 producer, 9 consumer per participant but 9 consumers should be attached to one single receiverTransport, that way there will be one up peer connection with server for uploading streams and 1 down peer connection with server to download streams.
Each participant should create only 1 receiver transport or may be 2 depending upon the use case. If he created 1 receiver transport per producer then this will be same as peer-to-peer approach.
If there are 100 participants in call then there will be around 100 peer connections per participants on client side, client side will barely bear that much load.

I think I know what your mean in theory but I dont know how you would go about it. This is the process from producer (pcTransport, psTransport) to consumer (ccTransport, csTransport):
producer:

getVideoTrack() -> track
calls pcTransport.produce(track) -> raises on-connect and on-produce events
on-connect sends dtlsParams to Server which calls psTransport.connect({ dtlsParams })
on-produce sends kind, rtpParams, appData to Server which calls psTransport.produce( { kind, ... }) -> producer.id (pId)

Consumer:

sends request to Server to create csTransport -> returns Params: consumer.id (cId), iceParams, iceCandidates, dtlsParams
sends rtpCapabilities, pId, cId to Server and asks csTransport to consumer
Server returns pId, kind, rtpParams, cId
calls ccTransport.consume({ cId, pId, kind, rtpParams }) -> raises on-connect event
on-connect sends dtlsParams to Server which calls csTransport.connect({ dtlsParams })
call video track from consumer and add it to a video elements srcObject property

... and stream starts flowing.
Now imagine for each producer, you need to do the steps under the Consumer making sure you ref the cId.
I dont really know how mediasoup internally handles the added tracks to the only one stream. If you manage to do that, then you have to figure out (when you add audio tracks) which audio track belongs to which video track.

In a call with 10 participants there were around 100 peer connections seen in chrome://webrtc-internals
I think this is because, on participant side for every producer a new receiverTransport is being created which creates a new peer connection, so if there are 10 participants in a call and all are producing then each participant will have 10 peer connections 1 for sending(senderTransport) and 9 for receiving(receiverTransport), hence total of 100 peer connections in a call of 10 participants, which created lots of processing burden on client side.
This is same as peer-to-peer approach.
To make it a full SFU we can create one sender transport and one receiver transport per participant and use that one receiver transport to consume multiple times to get media from all participants, then this should resolve the issue.
What do you say?

I still haven't looked at webrtc-internals yet but I still don't get it yet. Is it that if I was a participant connected to mediasoup in a room with 9 other participants, I will see 100 connections on my side? I really have to check this. I know that as a participant from my end I should have 10 connections (1 up and 9 down)
However, I know for sure in a mesh topology from my end I will 9 up and 9 down - where 9 up will bring my computer to a halt.

In a call with 10 participants there were around 100 peer connections seen in chrome://webrtc-internals
I think this is because, on participant side for every producer a new receiverTransport is being created which creates a new peer connection, so if there are 10 participants in a call and all are producing then each participant will have 10 peer connections 1 for sending(senderTransport) and 9 for receiving(receiverTransport), hence total of 100 peer connections in a call of 10 participants, which created lots of processing burden on client side.
This is same as peer-to-peer approach.
To make it a full SFU we can create one sender transport and one receiver transport per participant and use that one receiver transport to consume multiple times to get media from all participants, then this should resolve the issue.
What do you say?

I still haven't looked at webrtc-internals yet but I still don't get it yet. Is it that if I was a participant connected to mediasoup in a room with 9 other participants, I will see 100 connections on my side? I really have to check this. I know that as a participant from my end I should have 10 connections (1 up and 9 down)
However, I know for sure in a mesh topology from my end I will 9 up and 9 down - where 9 up will bring my computer to a halt.

In a call with 10 participants you will see 10 peer connections on your side 1 up and 9 down. But on server there will be 100 peer connections.

I think I know what your mean in theory but I dont know how you would go about it. This is the process from producer (pcTransport, psTransport) to consumer (ccTransport, csTransport):
producer:

getVideoTrack() -> track
calls pcTransport.produce(track) -> raises on-connect and on-produce events
on-connect sends dtlsParams to Server which calls psTransport.connect({ dtlsParams })
on-produce sends kind, rtpParams, appData to Server which calls psTransport.produce( { kind, ... }) -> producer.id (pId)

Consumer:

sends request to Server to create csTransport -> returns Params: consumer.id (cId), iceParams, iceCandidates, dtlsParams
sends rtpCapabilities, pId, cId to Server and asks csTransport to consumer
Server returns pId, kind, rtpParams, cId
calls ccTransport.consume({ cId, pId, kind, rtpParams }) -> raises on-connect event
on-connect sends dtlsParams to Server which calls csTransport.connect({ dtlsParams })
call video track from consumer and add it to a video elements srcObject property

... and stream starts flowing. Now imagine for each producer, you need to do the steps under the Consumer making sure you ref the cId. I dont really know how mediasoup internally handles the added tracks to the only one stream. If you manage to do that, then you have to figure out (when you add audio tracks) which audio track belongs to which video track.

I have actually manage to have only 2 peer connections 1 for up and 1 for down, and i consume all streams from that 1 down peer connection.
I create only one receiverTransport and then consume on it multiple times as per the number of producers:
ccTransport.consume({ cId, pId, kind, rtpParams });

In a call with 10 participants there were around 100 peer connections seen in chrome://webrtc-internals
I think this is because, on participant side for every producer a new receiverTransport is being created which creates a new peer connection, so if there are 10 participants in a call and all are producing then each participant will have 10 peer connections 1 for sending(senderTransport) and 9 for receiving(receiverTransport), hence total of 100 peer connections in a call of 10 participants, which created lots of processing burden on client side.
This is same as peer-to-peer approach.
To make it a full SFU we can create one sender transport and one receiver transport per participant and use that one receiver transport to consume multiple times to get media from all participants, then this should resolve the issue.
What do you say?

I still haven't looked at webrtc-internals yet but I still don't get it yet. Is it that if I was a participant connected to mediasoup in a room with 9 other participants, I will see 100 connections on my side? I really have to check this. I know that as a participant from my end I should have 10 connections (1 up and 9 down)
However, I know for sure in a mesh topology from my end I will 9 up and 9 down - where 9 up will bring my computer to a halt.

In a call with 10 participants you will see 10 peer connections on your side 1 up and 9 down. But on server there will be 100 peer connections.

now i get it.

I think I know what your mean in theory but I dont know how you would go about it. This is the process from producer (pcTransport, psTransport) to consumer (ccTransport, csTransport):
producer:

getVideoTrack() -> track
calls pcTransport.produce(track) -> raises on-connect and on-produce events
on-connect sends dtlsParams to Server which calls psTransport.connect({ dtlsParams })
on-produce sends kind, rtpParams, appData to Server which calls psTransport.produce( { kind, ... }) -> producer.id (pId)

Consumer:

sends request to Server to create csTransport -> returns Params: consumer.id (cId), iceParams, iceCandidates, dtlsParams
sends rtpCapabilities, pId, cId to Server and asks csTransport to consumer
Server returns pId, kind, rtpParams, cId
calls ccTransport.consume({ cId, pId, kind, rtpParams }) -> raises on-connect event
on-connect sends dtlsParams to Server which calls csTransport.connect({ dtlsParams })
call video track from consumer and add it to a video elements srcObject property

... and stream starts flowing. Now imagine for each producer, you need to do the steps under the Consumer making sure you ref the cId. I dont really know how mediasoup internally handles the added tracks to the only one stream. If you manage to do that, then you have to figure out (when you add audio tracks) which audio track belongs to which video track.

I have actually manage to have only 2 peer connections 1 for up and 1 for down, and i consume all streams from that 1 down peer connection.
I create only one receiverTransport and then consume it multiple times as per the number of producers: ccTransport.consume({ cId, pId, kind, rtpParams });

That's interesting, I'd love to see you implementation.

I have noticed another thing, when I connect 3-4 other participants on localhost from another machine on the same network then video starts to lag. What can be the reason for this?
My network is ok and I have restricted bitrate to 500kb for each stream so it is not choking my network, something else is happening.

I think I know what your mean in theory but I dont know how you would go about it. This is the process from producer (pcTransport, psTransport) to consumer (ccTransport, csTransport):
producer:

getVideoTrack() -> track
calls pcTransport.produce(track) -> raises on-connect and on-produce events
on-connect sends dtlsParams to Server which calls psTransport.connect({ dtlsParams })
on-produce sends kind, rtpParams, appData to Server which calls psTransport.produce( { kind, ... }) -> producer.id (pId)

Consumer:

sends request to Server to create csTransport -> returns Params: consumer.id (cId), iceParams, iceCandidates, dtlsParams
sends rtpCapabilities, pId, cId to Server and asks csTransport to consumer
Server returns pId, kind, rtpParams, cId
calls ccTransport.consume({ cId, pId, kind, rtpParams }) -> raises on-connect event
on-connect sends dtlsParams to Server which calls csTransport.connect({ dtlsParams })
call video track from consumer and add it to a video elements srcObject property

... and stream starts flowing. Now imagine for each producer, you need to do the steps under the Consumer making sure you ref the cId. I dont really know how mediasoup internally handles the added tracks to the only one stream. If you manage to do that, then you have to figure out (when you add audio tracks) which audio track belongs to which video track.

I have actually manage to have only 2 peer connections 1 for up and 1 for down, and i consume all streams from that 1 down peer connection.
I create only one receiverTransport and then consume it multiple times as per the number of producers: ccTransport.consume({ cId, pId, kind, rtpParams });

That's interesting, I'd love to see you implementation.

Here it is:
I dont do much, to save me time I have added a check on top of signalNewConsumerTransport method, if there is a consumer transport then use that one otherwise create it so it creates basically one time.

great, I see you ensuring you create consumer transport only once.

I have noticed another thing, when I connect 3-4 other participants on localhost from another machine on the same network then video starts to lag. What can be the reason for this?
My network is ok and I have restricted bitrate to 500kb for each stream so it is not choking my network, something else is happening.
Everything is ok if I try to join 10 times from same machine on localhost, problem comes when I join from another machine on same network

What can be the reason for this?

I have noticed another thing, when I connect 3-4 other participants on localhost from another machine on the same network then video starts to lag. What can be the reason for this?
My network is ok and I have restricted bitrate to 500kb for each stream so it is not choking my network, something else is happening.
Everything is ok if I try to join 10 times from same machine on localhost, problem comes when I join from another machine on same network

What can be the reason for this?

Let me try to picture your setup: you have all the following on the same network ...

machine running express server with mediasoup
machine A
machine B

when you connect 10 participants all from machine A, everything works ok
however, when you connect extra 3-4 participants from machine B, video starts to lag.
is the above correct or is it that mdeiasoup is running in machine A?
you got me confused when you mentioned 'localhost' on both machine A & B

'machine A' is my local machine, mediasoup is setup there and then there is another machine 'machine B', when I connect from machine A 10 times then all is well I think because it is on same network and uses host candidates for connection but when I connection 1 time from machine A and 4 times from machine B, the remote videos start lagging some get stuck.
It shouldn't be happening, I have been checking different things for past 2 days.

Also I uploaded this demo on windows based aws server, installed everything there but remote video is not working for participants, just a black box. I have checked in webrtc-internals and found that candidates are not working, peer connection doesn't get connected. I think it may be because of some listenIp, ports related issues.
ListenIp: server public address
rtcMinPort: 2000
rtcMaxPort: 2999
I have not opened these ports myself from server. Can you guide me if it is needed to open these ports if yes there from where I can do this?

Also I uploaded this demo on windows based aws server, installed everything there but remote video is not working for participants, just a black box. I have checked in webrtc-internals and found that candidates are not working, server is sending just host candidates and not srflx, prflx, relay candidates, peer connection doesn't get connected. I think it may be because of some listenIp, ports related issues.
ListenIp: server public address announcedIp: null rtcMinPort: 2000 rtcMaxPort: 2999
I have not opened these ports myself from server. Can you guide me if it is needed to open these ports if yes there from where I can do this?

With regards to video lagging, it's a bit difficult for me to tell, especially that you may have pumped all tracks into one consumer. If you may, pls share your code so that I can run it at me end and test. we can connect on LinkedIn, either I look you up or you look me up Name: AMIR ESHAQ.
With regards to ports, yes, you need to open those ports. Pls have a look at the doc under Running mediasoup in hosts with private IP (AWS, Google Cloud, Azure) ...
https://mediasoup.org/faq/#running-mediasoup-in-hosts-with-private-ip
and also this thread ...
https://mediasoup.discourse.group/t/difficulty-with-listen-ips-web-connection/1549/2

Thanks, I have attached my code here, kindly check. May be my machine A, on which mediasoup is running on localhost, has some network issue, everything works smooth if machine A is connected to LAN, not video quality issue but if I connect to wifi via tp-link then issue start even with 4 participants
mediasoap-sfu-example.zip
.

ok, I will try it out today and let you know

If you are making multiple connections from the same machine then for sure you will notice not just video lagging but also your OS lagging - because you now have multiple clients each one trying to process the video to stream to the server.

Yes I was thinking about this plus network will be choking as well, to counter that I tested official mediasoup demo3 with different machines, we were around 10 people some were on network 1 and others were on network 2 but the call quality was not good.
May be official demo server is of not that much capacity and may be their network is not that good so I will deploy it now to my server and test it there if all is well.
 How was the quality at your end?

ok, I will try it out today and let you know

Have you checked it?

Sorry, I have been super busy the last few days. I hope to check it tomorrow.

Ok no problem, thanks.

After digging into it for 3 days I have come to a conclusion which is:
Things work smoothly if there is 1 receiver transport per stream(your original approach) but doesn't work if there is 1 receiver transport per client(mine approach). I have opened a thread on mediasoup discourse here:
https://mediasoup.discourse.group/t/1-receiver-transport-per-client-or-1-receiver-transport-per-stream/4019

ok, I will try it out today and let you know

Have you checked it?

I tried it today; it seemed ok for the first few minutes, then started lagging slowly until all video elements went blank. At first I thought. well seems to work fine - connected 5 tabs on the mac machine running the server, connected another 4-5 from my windows machine, connected iPad, and 2 iPhones.

Yes this has been a headache for me for a whole week, but now I have come out of it as I mentioned here:

After digging into it for 3 days I have come to a conclusion which is:
Things work smoothly if there is 1 receiver transport per stream(your original approach) but doesn't work well, video lags, if there is 1 receiver transport per client(mine approach). I have opened a thread on mediasoup discourse here: https://mediasoup.discourse.group/t/1-receiver-transport-per-client-or-1-receiver-transport-per-stream/4019

Thank you so much for your time, it has helped me a lot :)

All the best bro!

Hi, @zaidiqbalsoftech I've seen your below comment,

The solution is to use 1 receiver transport per stream or 1 receiver transport for 2-5 streams may be e.g I use 1 receiver transport per remote person in call, 1 remote person’s camera stream and screen stream both are consumed on that 1 receiver transport. This gives best results.

Can you please share a part of that code?

Hi, @zaidiqbalsoftech I've seen your below comment,

The solution is to use 1 receiver transport per stream or 1 receiver transport for 2-5 streams may be e.g I use 1 receiver transport per remote person in call, 1 remote person’s camera stream and screen stream both are consumed on that 1 receiver transport. This gives best results.

Can you please share a part of that code?

Ishan, Zaid has shared his code above on this thread https://github.com/jamalag/mediasoup3/issues/1#issuecomment-1063721348

Hi, he has used it with a different method (1 receiver transport for all the streams). I wanted to know how he achieved 1 receiver transport for 2-5 streams (1 transport per client). Anyways, I've achieved it. Thank you!

Hi, he has used it with a different method (1 receiver transport for all the streams). I wanted to know how he achieved 1 receiver transport for 2-5 streams (1 transport per client). Anyways, I've achieved it. Thank you!

do you mean you achieved to combine multiple streams into one  consumer transport? if this is what you meant pls do a lot of tests as I am pretty sure there will be a performance degradation on the receiver client.

Hi @jamalag, please check out his comment: https://mediasoup.discourse.group/t/1-receiver-transport-per-client-or-1-receiver-transport-per-stream/4019/10
Yes, I managed to combine audio and video streams into 1 consumer transport (per client).
So, for example, in your current implementation, you have 1 consumer transport per media stream. If the user is sharing both audio and video, you have 2 consumers transports. I managed to get that into 1. In my case, there will be a screen sharing stream also, so ideally there should be only 1 consumer transport per client.
Hoverer, I have not tested it yet. As per Zaidiq's comment, this approach is useful for him. @zaidiqbalsoftech Have you tested this approach?

This is how I'm doing it, do you see any issues with this code? @jamalag @zaidiqbalsoftech

Hi @jamalag, please check out his comment: https://mediasoup.discourse.group/t/1-receiver-transport-per-client-or-1-receiver-transport-per-stream/4019/10
Yes, I managed to combine audio and video streams into 1 consumer transport (per client).
So, for example, in your current implementation, you have 1 consumer transport per media stream. If the user is sharing both audio and video, you have 2 consumers transports. I managed to get that into 1. In my case, there will be a screen sharing stream also, so ideally there should be only 1 consumer transport per client.
Hoverer, I have not tested it yet. As per Zaidiq's comment, this approach is useful for him. @zaidiqbalsoftech Have you tested this approach?

I think this way of limiting multiple streams from a single peer is better than combining many streams from many other peers. I quite agree with CosmosisT's comment where if you managed individual connections, then scaling is easier managed since you will be able to distribute them to other mediasoup servers. If you have a room with participant exceeding the max on a CPU Core, then you have no choice but to pipe your connection to another server.
CosmosisT's comment: https://mediasoup.discourse.group/t/1-receiver-transport-per-client-or-1-receiver-transport-per-stream/4019/2?u=jamalag

HI Ishan, Ziad,
Would you like to connect on LinkedIn, may be we could may be video chat once in a while to discuss? let me know. I can be found on LinkedIn under name 'Amir Eshaq'.

@jamalag For sure, this approach is better than just one consumer transport for all the streams. As Zaid has already implemented this, I'd like to know his test results.
@jamalag Let's connect. I'm not active on LinkedIn, you can find me on Skype: ishanshah501

@ishan501 I have tested '1 consumer transport per client' approach, and it works really well no issues at all. In my application I have 2 streams on one consumer transport, first one is camera video stream and second one is share screen stream, if any. We have been testing it in our application so far so good. In my view this is safe to implement you can go ahead with that.
You have max 3 streams per consumer transport which are audio, video , share screen. This is ok.
If you see any video lag related issue with 3 streams per consumer then you can surely move share screen to a new consumer transport but there will be no need of it as my test results suggest that it is safe to go with this approach.

@ishan501 did you noticed the same issue which I noticed with 'all streams on one consumer transport' approach. If yes at how many participants video lag issue appeared on your side?

Hi, @zaidiqbalsoftech. So, we have 3 cases,

One consumer transport for all the streams (most of the Mediasoup demos have this implemented)
One consumer transport per stream (as per this repo implementation)
One consumer transport per client (as per your implementation)

I have not tested the 1st case myself, but as you are facing issues, I don't know why most of the demos have this implemented. Someone from the discourse thread is suggesting this way!
In the second case, I doubt if the system can/should handle all these nodes/connections for each stream. I successfully tested this approach with 25 participants. Started facing issues with 30.
For the third case, I'll have at most 4 streams per client: webcam, mic, screen video, and screen audio. Do you think I should use this approach instead? If yes, can you see my code attached above?
I haven't found any official documentation on which is the correct way. It's all about R&D.

Also make sure to open UDP ports when you deploy it to server if not call will work on TCP which can cause video lag again on shared network. Have spend plenty of my days on it :D

Do you mean the ports from RTC_MIN_PORT and RTC_MAX_PORT?

above mentioned approach 1) definitely causes issues.
2), 3) are both ok.

In the second case, I doubt if the system can/should handle all these nodes/connections for each stream. I successfully tested this approach with 25 participants. Started facing issues with 30.

For this, there will not be an issues, the actual thing which consumes CPU is not the number of connections itself but the number of streams going up and down. So using '1 transport per stream' or '1 transport per client' should be same w.r.t CPU usage.

For the third case, I'll have at most 4 streams per client: webcam, mic, screen video, and screen audio. Do you think I should use this approach instead? If yes, can you see my code attached above?

Yes I will go for this approach, have been using my self, have tested it for 2 stream but shouldn't cause issue for 3-4 streams as well. Why I go for this is that it is easier to manage the connection per client than per stream. If you leaves I know I need to close one connection something like that.

Do you mean the ports from RTC_MIN_PORT and RTC_MAX_PORT?

Yes these ports should be open on server for public, call over UDP works really well than over TCP. So make sure you have these UDP ports open to public on your server.

HI Ishan, Ziad, Would you like to connect on LinkedIn, may be we could may be video chat once in a while to discuss? let me know. I can be found on LinkedIn under name 'Amir Eshaq'.

@jamalag you and I are connected on linkedin.

that's correct Zaid - I realized we just connected and not chat before. thanks

Thank you so much for the details @zaidiqbalsoftech
I've edited my answer.

My pleasure.


depandancy on lodash package

hello
you should mention in read-me to install "lodash" package using this command
npm install lodash
if not installed the following error will appear
/home/mahdi/apps/app1/node_modules/sails-arangodb/lib/processor.js:8
  this.schema = _.cloneDeep(schema);
                  ^
TypeError: _.cloneDeep is not a function

Looking into it

I just merged convert-to-4.0.1 to master.
Could you test again?
Also, note that the NPM package is out of date. I am currently trying to be added to the list of sails-arangodb NPM package owners so I can update it.
Thanks

I closed this PR since I had no feedback.
Let me know if the problem persist but I am pretty sure it has been fixed by 0.2.1+

I had the same issue


Faster & Simplify close-out-of-view-modals

LINKED ISSUES:

TEST URLS:

SCREENSHOT

We can listen for menu:activated (CutomEvent) instead of click.

This is great! But the check+error must be there because it prevents the feature silently breaking the interface: https://github.com/sindresorhus/refined-github/issues/2701

I haven’t tested this yet, but are you sure that this event is fired on every modal? Examples:

user dropdown in site header
filter dropdowns in conversation lists
“add reaction” dropdown
“add label” selector in conversations
contextual menu when selecting lines of code (I don’t remember if this is a modal)
etc

but are you sure that this event is fired on every modal?

On every menu with exact details > details-menu selector
A simplified version of how menu:* events fires (source assets/behaviors-bootstrap-975f1040.js).
async function onDetailsToggle({ currentTarget }) {
  const hasOpenAttribute = currentTarget.hasAttribute("open");

  dispatchEvent(
    currentTarget,
    hasOpenAttribute ? "menu:activate" : "menu:deactivate"
  );
  await Promise.resolve();
  dispatchEvent(
    currentTarget,
    hasOpenAttribute ? "menu:activated" : "menu:deactivated"
  );
}

observe("details > details-menu", {
  subscribe(detailsMenu) {
    const details = findElement(detailsMenu, "details");
    const unsubscribeFn = listen(details, "toggle", onDetailsToggle);

    return unsubscribeFn;
  },
});

function listen(
  target,
  eventName,
  cb,
  options = {
    capture: !1,
  }
) {
  target.addEventListener(eventName, cb, options);

  return () => {
    target.removeEventListener(eventName, cb, options);
  };
}

function findElement(t, e, n) {
  const i = n || HTMLElement,
    r = t.closest(e);
  if (r instanceof i) return r;
  throw new QueryError(`Element not found: <${i.name}> ${e}`);
}

function dispatchEvent(target, eventName, detail) {
  target.dispatchEvent(
    new CustomEvent(eventName, { bubbles: !0, cancelable: !0, detail })
  );
}

Thanks @artusm! 🥇


Resolves #1041

Change Replace and Remove parameters to match Add description as they have the same behaviour
https://github.com/MicrosoftDocs/windows-powershell-docs/issues/1041

@nenonix @JohanFreelancer9 Copy editing is needed for this PR. Thanks.

@dariomws306 @get-itips @tseward
Peer review needed for this PR. Thanks.

I am good with this.

Ok

The technical aspects are fine, however a comma is inappropriate in each of the sentences changed:

comma-separated list of values**,** and more than

Thanks for the feedback. I am not a grammar expert so whatever you guys agree on I will adjust the article.

The use of the comma in these sentences is in accordance with the Microsoft Style Guide. To quote:
"To join independent clauses with a conjunction, such as and, or, but, or so.
Example
Select Options, and then select Enable fast saves."
I would suggest leaving them in, but I am ok with it if you want them removed.

If the style guide says it should be there, then do so.

@AndreaBarr This PR is ready to be merged. Thanks.


Fixed issue with clusterless configuration

After recent dash refactor, we lost ability to run with --disable-cluster-overview option. Added extra checks to  prevent the Panic error and verified that fixed the issue.
Signed-off-by: Milan Klanjsek<EMAIL_ADDRESS>Which issue(s) this PR fixes

Fixes #2058

Excellent point, Sam - totally missed that. Added Noop kubeConfig option to both WithoutClusterOverview and WithOpenCensus helpers.  Decided to keep nil checks since they are valid checks.


Not recovering from timeout

By default, MySQL times out a connection that has been idle for more than 8 hours. Presently, vapor/mysql isn't recovering from this timeout and opening a new connection with the server, thusly causing an error to be thrown on the next query.

@BrettRToomey Check out the connection-pool branch. It maintains a pool of connections and automatically recovers from timeouts. We were waiting to pull it into master after v1.0, so it's probably a good time to revisit this.
If someone wants to do more testing, that would be great. FWIW I have 2 live servers that have been running on the connection-pool branch without a hiccup for about 3 weeks.

Fixed in MySQL Driver 1.0.1 https://github.com/vapor/mysql-driver/releases/tag/1.0.1


[Bug]: README  document wrong password explaination

ODC version
4.2.2
OB version
any
What happened?
README password explain is about ODC_ADMIN_INITIAL_PASSWORD, but not other user
What did you expect to happen?

1.optimize sample command in README document wrapped  by single quote
2.init password support more special character
How can we reproduce it (as minimally and precisely as possible)?
use odc 4.2.2
Anything else we need to know?
No response
Cloud
No response

'init password support more special character' should be a separated feature, and we already have plan, let's remove from current issue


Support for React 0.14

Update peerDependecy of react to 0.13 for findDOMNode
Removed object.assign dependency by using ES7 object spread operator
IE8 support now requires external polyfill for addEventListener
& removeEventListener. Because using external polyfills is better
than using React's internal library code (Breaking change)

Using this release with 0.14 causes errors because findDOMNode is shifted to react-dom package. So, to support both 0.14 and 0.13 I chose to go with the error.

@akiran Can you release this as 0.8.0 ??

Wow awesome thanks @vramana

@tarkanlar You have to live with an error message though.

@akiran Can you add me npm collaborators?? So that, I can manage the releases.

@vramana Still may people will be using 0.12. We have to support at least two previous versions.

@akiran They can stick to the version 0.7.0. Or Alternatively we can update the semver major . So, that their apps continue work fine even if they try to update the dependency. Since semver major can have breaking changes. But many would be pushing 0.14.0-rc in thier production systems. It is not a good idea to hold them back either.

@vramana I get this error Error when i try to install with this version.
with lates version of react
    "react-addons-create-fragment": "^0.14.0-rc1",
    "react-dom": "^0.14.0-rc1" ```

 Invariant Violation: Objects are not valid as a React child (found object with keys {type, key, ref, _owner, _context, _store}). If you meant to render a collection of children, use an array instead or wrap the object using React.addons.createFragment(object). Check the render method of `Track`.

@tarkanlar It is might be due an error due to multiple copies of React. Just check your build tooling once.
Or use npm@3.

I've tried with npm @3.3.3 as well i am getting the same error
My package.json is
{
  "private": true,
  "engines": {
    "node": ">= 0.10",
    "npm": ">= 2.1"
  },
  "dependencies": {
    "babel": "^5.8.23",
    "babel-core": "^5.8.24",
    "basket.js": "^0.5.2",
    "classnames": "^2.1.3",
    "eventemitter3": "^1.1.1",
    "express": "^4.13.3",
    "fastclick": "^1.0.6",
    "fbjs": "^0.2.1",
    "file-loader": "^0.8.4",
    "flux": "^2.1.1",
    "front-matter": "^1.0.0",
    "git-push": "^0.1.1",
    "ionicons": "^2.0.1",
    "jade": "^1.11.0",
    "lodash": "^3.10.1",
    "memory-cache": "^0.1.4",
    "newforms": "^0.12.1",
    "normalize.css": "^3.0.3",
    "radium": "^0.14.1",
    "react": "^0.14.0-rc1",
    "react-addons-create-fragment": "^0.14.0-rc1",
    "react-dom": "^0.14.0-rc1",
    "react-paginate": "^0.2.0",
    "react-routing": "^0.0.4",
    "react-slick": "vramana/react-slick#react-0.14",
    "replace": "^0.3.0",
    "source-map-support": "^0.3.2",
    "superagent": "^1.4.0"
  },
  "devDependencies": {
    "autoprefixer-core": "^5.2.1",
    "babel-eslint": "^4.0.5",
    "babel-loader": "^5.3.2",
    "browser-sync": "^2.8.2",
    "css-loader": "^0.15.6",
    "csscomb": "^3.1.8",
    "cssnext": "^1.8.3",
    "del": "^2.0.2",
    "eslint": "^1.1.0",
    "eslint-loader": "^1.0.0",
    "eslint-plugin-react": "^3.2.2",
    "gaze": "^0.5.1",
    "glob": "^5.0.14",
    "jest-cli": "^0.5.5",
    "mkdirp": "^0.5.1",
    "ncp": "^2.0.0",
    "postcss": "^4.1.16",
    "postcss-loader": "^0.5.1",
    "postcss-nested": "^0.3.2",
    "psi": "^1.0.6",
    "react-hot-loader": "^1.2.8",
    "run-sequence": "^1.1.2",
    "style-loader": "^0.12.3",
    "url-loader": "^0.5.6",
    "webpack": "^1.11.0",
    "webpack-dev-middleware": "^1.2.0",
    "webpack-hot-middleware": "^2.1.0"
  },
  "jest": {
    "rootDir": "./src",
    "scriptPreprocessor": "../preprocessor.js",
    "unmockedModulePathPatterns": [
      "react"
    ]
  },
  "scripts": {
    "lint": "eslint src tools",
    "csslint": "csscomb src/components --lint --verbose",
    "csscomb": "csscomb src/components --verbose",
    "test": "eslint src && jest",
    "clean": "babel-node --eval \"require('./tools/clean')().catch(err => console.log(err.stack))\"",
    "copy": "babel-node --eval \"require('./tools/copy')().catch(err => console.log(err.stack))\"",
    "bundle": "babel-node --eval \"require('./tools/bundle')().catch(err => console.log(err.stack))\"",
    "build": "babel-node --eval \"require('./tools/build')().catch(err => console.log(err.stack))\"",
    "serve": "babel-node --eval \"require('./tools/serve')().catch(err => console.log(err.stack))\"",
    "start": "babel-node --eval \"require('./tools/start')().catch(err => console.log(err.stack))\""
  }
}

@tarkanlar Can you clone my repo and run npm start after npm i and tell me if you get any errors??

Yep it works, when i clone your repo.
So it is my fault, I will try to fix my repo.

Ran into same Invariant Violation issue- think you just need to rebuild /dist files.

@akiran any update on this, the current version is not working with 0.14-rc1, due to the issue with using EventListener from React internals (which was removed).

@tarkanlar, @hannesj   Can you check<EMAIL_ADDRESS>It is working with<EMAIL_ADDRESS>There are some deprecation warnings which I will fix in next release

@akiran 0.8.0 yeah there are warnings  but working fine for me.


CASA install: use subprocess instead of pip.main

Coverage remained the same at 77.891% when pulling f894b5d7c27f31e4cd969f1e88b66af916a2effc on casa-install-minor into f65c335c0a542a7838d66702a6119fb9e52371fb on master.

Closing: we'll test w/casa6 instad


Android have the blank in the bottom

[yes ] I have reviewed the documentation
[yse ] I have searched existing issues
[yes ] I am using the latest React Native version

I use the react-native init xxx , create a new Project , I run it at android(vivo X21UD A),I find  a lot white area at the bottom .
npm -v : 5.5.1
android phone -v : P
react-native  -v : "0.55.4"
react  -v : "16.3.1"
compileSdkVersion -v : 23
buildToolsVersion -v : 23.0.1
targetSdkVersion -v :  22

I creat new App via react-native init MyApp , and then I run it at Android , I find the bottom have white space ,  My' Android phone is vivo X21UD A , the android version is 8.1.0, do you understand me?  Screenshots of this project is like this

@react-native-bot Other's APP is like this

@react-native-bot I made a new Project via react-native init MyApp , I find this question in Android


tls1.3 connection failure with compressed ec certificate

when the server has a compressed ec certificate a tls1.3 connection is attempted
and fails.
But a tls1_2 connection succeeds if either client or server uses -tls1_2 option.
$ cat server.pem
-----BEGIN CERTIFICATE-----
MIICMDCCAdWgAwIBAgIJALnu1NlVpZ6zMAoGCCqGSM49BAMCMGQxCzAJBgNVBAYT
AlVLMRYwFAYDVQQKDA1PcGVuU1NMIEdyb3VwMSIwIAYDVQQLDBlGT1IgVEVTVElO
RyBQVVJQT1NFUyBPTkxZMRkwFwYDVQQDDBBUZXN0IFNlcnZlciBDZXJ0MB4XDTE4
MDMyNTA4MzYwMFoXDTE4MDQyNDA4MzYwMFowZDELMAkGA1UEBhMCVUsxFjAUBgNV
BAoMDU9wZW5TU0wgR3JvdXAxIjAgBgNVBAsMGUZPUiBURVNUSU5HIFBVUlBPU0VT
IE9OTFkxGTAXBgNVBAMMEFRlc3QgU2VydmVyIENlcnQwOTATBgcqhkjOPQIBBggq
hkjOPQMBBwMiAAKd7A0beVWCRhV3g5hlHgWCylGB5X3FBFWv9G1jP9Z2i6OBjzCB
jDAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIF4DAsBglghkgBhvhCAQ0EHxYd
T3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFIK8zwAAE9H3
OSWaJ+ev0u8gG26sMB8GA1UdIwQYMBaAFDbDbIjnlf6wvezOPj2GqyGBh9raMAoG
CCqGSM49BAMCA0kAMEYCIQDFDvPzuhzBzdMYP5L2DdFAF7IgPcdbOtlvfMck3Gvn
EgIhALd5+UsT4qnWAMrD/mKkWkDFueY4oQ4MKVYi+VhdAQ7X
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MFcCAQEEIBGmFPUv/Odd8pNbyTWgbz+UkKE82AkF5D9TMJaYKkVMoAoGCCqGSM49
AwEHoSQDIgACnewNG3lVgkYVd4OYZR4FgspRgeV9xQRVr/RtYz/Wdos=
-----END EC PRIVATE KEY-----

$ ./openssl s_server
Using default temp DH parameters
ACCEPT
ERROR
139631341270848:error:14201076:SSL routines:tls_choose_sigalg:no suitable signature algorithm:ssl/t1_lib.c:2472:
shutting down SSL
CONNECTION CLOSED
ACCEPT

$ ./openssl s_client -connect localhost:4433
CONNECTED(00000003)
140368025020224:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:ssl/record/rec_layer_s3.c:1570:SSL alert number 40
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 311 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time:<PHONE_NUMBER>
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---

My guess is that this is due to the lack of support in TLSv1.3 spec for the ec_point_formats extension. This was removed from the spec in favour of always using simple uncompressed points:
   -  Elliptic curve algorithms are now in the base spec and new
      signature algorithms, such as ed25519 and ed448, are included.
      TLS 1.3 removed point format negotiation in favor of a single
      point format for each curve.

Probably we should tolerate this as a server.

Yes, or at least fall back to tls1.2 which has no problem whatsoever with this certificate....

@bernd-edlinger This should not necessitate a fallback to TLS 1.2.  Any certificate that works TLS 1.2 must work with TLS 1.3.  Even if (unlikely) we have to violate some overly restrictive text in the TLS 1.3 specification.  Where TLS 1.3 encroaches on PKIX, TLS 1.3 is wrong.

@bernd-edlinger I forgot to say, thanks for finding this, good catch!


Support Athena

Support to Athena
https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html
https://docs.aws.amazon.com/athena/latest/ug/athena-bi-tools-jdbc-odbc.html

Athena support would be great!
PRs welcome.

I'm looking to do the same. Currently using pyodbc to connect to Athena, but PyAthena may work.

See issue #113 for actively supporting additional database types.


Provide functionality for Recaptcha v3

Google now has the Recaptcha v3 (still in beta) but working. I've looked at the code here but not sure the best or your preferred way to integrate their v3 requirements. If possible, it'd be cool. Thanks!

+1
Also the readme should be updated to reflect that this library only works for v2 please

+1.
Because if you try used sitekey from v3 you get error. You must created keys only versions 2.

I created a PR for the documentation.
https://github.com/appleboy/react-recaptcha/pull/271


Ignore PV pedigree when PVC/PV already exist

We added code in 18.07 to assure and verify that the PVC Trident creates during installation binds to the PV that we provision.
A user ran into a scenario where this fails, and I believe that's happening because we're also performing the check if the PVC and PV already exist and the installer didn't originally create the PV it's bound to:
~/trident-installer-18.07.0 # ./tridentctl uninstall
INFO Deleted Trident deployment.
INFO Deleted cluster role binding.
INFO Deleted cluster role.
INFO Deleted service account.
INFO Removed security context constraint user.     scc=anyuid user=trident
INFO The uninstaller did not delete the Trident's namespace, PVC, and PV in case they are going to be reused. Please use the --all option if you need the PVC and PV deleted.
INFO Trident uninstallation succeeded.
eh2la0t@host001 on Wed Aug 29 at 14:45:33 ~/trident-installer-18.07.0 # ./tridentctl install
FATA Install failed; PVC trident is Bound, but not to PV trident; please specify a different PV and/or PVC.  Resolve the issue; use 'tridentctl uninstall' to clean up; and try again.

oc get pvc
NAME             STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
trident          Bound     pvc-0f416e35-a0af-11e8-a41a-fa163edb74b3   4Gi        RWO            standard          13d
###
oc get pv pvc-0f416e35-a0af-11e8-a41a-fa163edb74b3
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM             STORAGECLASS   REASON    AGE
pvc-0f416e35-a0af-11e8-a41a-fa163edb74b3   4Gi        RWO            Delete           Bound     trident/trident   standard                 13d

We should disable this check if a PV was already bound to our PVC before the installation ran.
You can work around the issue today by specifying the PV name during installation. In this case: tridentctl install --pv pvc-0f416e35-a0af-11e8-a41a-fa163edb74b3

Non-issue with CRDs (as implemented in 19.07). Closing this issue.


Autoskill stops working every second or third iteration.

After completing the node once or twice the script will stop using autoskill and go with facecards.
This is the current string i'm using:
"i6,#,ge5,#,i1aj14"
First battle is Arash clear. (It would be nice to have an option to have Arash facecards given less priority than any other).
2nd Battle:
Merlin comes in and uses 1st skill.
Saber Liz uses 2nd skill
Saber Liz uses NP
3rd Battle:
Merlin uses 3rd skill on first servant (Tiddy Monk)
Tiddy Monk uses 1st skill
Mystic code 1st skill on Tiddy Monk (Cant remember how to write the name)
Tiddy Monk uses NP.
Sharing my Merlin SUPPORT since all of them in my support list look like that:

My device is a Lenovo TAB10 Plus: https://www.amazon.es/gp/product/B0735BCTCL/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

I'm using the AnkuLua version provided on the download link 8.6.1.
The party is Tiddy Monk > Saber Liz > Arash > Merlin
I'm using it on the last farming node (Super Dimension) of Saber Wars.
Screen: 1920x1200 pixel
FGO_EN
Downloaded the script yesterday.

Possibly related to #315, #306 and #272, though I've never encountered this issue myself or been able to replicate it.

In my case it feels as if auto skill was disabled, now i've seen it happening in the first run.

Skill_Command = "i6,0,0,#,ge5,0,#,i1aj14,0,0"

Why all the 0s?

Skill_Command = "i6,0,0,#,ge5,0,#,i1aj14,0,0"

Why all the 0s?

So the script uses facecards next turn in case the NP leaves something alive, if the battle goes into the next stage the script ignores them, also my issue happens both with and without them.

This also happens to me every now and then, though I encountered a new problem that it starts to open up servant details and mess up the script in the 3rd wave after completing nodes 1-2 time(s)

@Claey Is it possible that you rotated your screen in the middle of the script and you have a notch? If so, that explains the wrong click positions, because the script doesn't recalculate the game area on screen rotation. So it thinks the black notch bar is still in the same position as before.
I don't know if we can solve that problem, it's a hard one that hasn't been solved by anyone in any Ankulua project yet, I think.

about my original issue, i think that what happens is that it doesnt press the "i" position that would be Arash self charge and the everything else goes wrong because he doesnt die.
I think it may be solved adding a bit of a delay in case it is lagging because i saw it trying to tap the position for Arash's Np right afterwards.
{
Name = "PARTY IX - Flaming Mountain", -- Party IX -> Raikou, Eresh, Arash/Waver
Skill_Command = "i6,0,0,#,efhi5,0,0,#,k1g1abc4,0,0",
Support_SelectionMode = "preferred",
Support_PreferredServants = "waver4.png, waver3.png, waver2.png, waver1.png",
Support_PreferredCEs = "the_classic_three_great_heroes.png, divine_princess_of_the_storm.png",
},
{
Name = "PARTY VII - Tianzhu", -- Party VII -> Raikou, Kintoki, Arash/Waver
Skill_Command = "i6,0,0,#,icde5,0,0,#,k1g1hab4,0,0",
Support_SelectionMode = "preferred",
Support_PreferredServants = "waver4.png, waver3.png, waver2.png, waver1.png",
Support_PreferredCEs = "true_samadhi_fire.png, go_west.png",
},
{
Name = "PARTY VI - Tathagata", -- Party VI -> Salter, Drake, Arash/Waver
Skill_Command = "i6,0,0,#,cfhi5,0,0,#,k1g1abd4,0,0",
Support_SelectionMode = "preferred",
Support_PreferredServants = "waver4.png, waver3.png, waver2.png, waver1.png",
Support_PreferredCEs = "divine_princess_of_the_storm.png",
},
{
Name = "PARTY V - NARAKA", -- Party V -> Raikou, Mecha-Eli, Arash/Waver
Skill_Command = "id6,0,0,#,fhi5,0,0,#,k1g1abc4,0,0",
Support_SelectionMode = "preferred",
Support_PreferredServants = "waver4.png, waver3.png, waver2.png, waver1.png",
Support_PreferredCEs = "ox_demon_king.png, go_west.png",

@Cerz0 I would recommend trying different wait values until it works on your device. For most users the script works in its current form.

where can i change that?

https://github.com/29988122/Fate-Grand-Order_Lua/blob/master/modules/battle.lua
wait(x) means wait for x seconds before continuing. I can't tell you which waits need to be modified exactly, but try this one first https://github.com/29988122/Fate-Grand-Order_Lua/blob/master/modules/battle.lua#L89

ok, i'll set it to 5, i assume it is seconds, and keep an eye on it, the issue doesnt happen as much since i updated the script on 12/04.
Also i got a question, is there a way to force a Brave chain with the NP if one is available?

Also i got a question, is there a way to force a Brave chain with the NP if one is available?

No, brave chaining has been a long wanted feature, but it's currently on halt. https://github.com/29988122/Fate-Grand-Order_Lua/issues/321

is there any way to get around AnkuLua cooldowns? i dont mind the cooldown nut the way it increases while i dont press OK just kills me.

is there any way to get around AnkuLua cooldowns? i dont mind the cooldown but the way it increases while i dont press OK just kills me.

I can't help you as I don't know the way. Sorry.

I reported that to the author btw. You can still find the post, but it's no more relevant. For research purposes I'd say?

Developing and dealing with All android versions/phone variants is no small feat. I'd say it's not like purchasing a cheat, more like supporting an automation framework (selenium for android? lol).
There will be no FGOLUA without hundreds of hours by the authors of Ankulua.
Although I got my free copy during early times of AnkuLua, I'd say if I were to purchase another lifetime copy, I'll definitely do that without any hesitation.
You can still try reverse engineering tho.

i think changing the delay to 5 may have solved the issue.
i'm considering buying AnkuLua.
How can i contribute the support CE images for the newest event?

@Cerz0 it's best if you add them to the image_support folder on a branch in your fork and then create a pull request to merge your changes into this repository

@Cerz0 After asking 29988122 for permission, I can offer you a free alternative for FGOlua, https://github.com/MathewSachin/Fate-Grand-Automata/.
We still have an open issue for making the wait times configurable, but maybe it works out of the box for you. A new release will come soon, which will fix some timing problems for master skills.