[feature request] : Improve Responsiveness of Restaurant Cards and Search Box, and Buttons

Description:
Our current restaurant cards, search box, and buttons in the body of the application may not display optimally on various screen sizes and devices. We would like to enhance the responsiveness of these elements to provide a seamless user experience across different platforms.
Issue Details:

The restaurant cards should adapt and look good on both desktop and mobile devices.
The search box, favorite button, and rating button should also be made responsive to ensure easy usage on various screen sizes.
Ensure that the layout, images, and content adjust appropriately based on screen size.
Test and address any issues related to alignment, spacing, and readability on smaller screens..

Additional Information:
If you have any design suggestions or specific changes in mind to improve the responsiveness of these cards, please feel free to share them.

can u assign me this issue ?  i am participating in hacktoberfest 2023

@mhamzanadeem Great, Have you had experience working on responsive features in React before? I'm interested in discussing your approach to achieve this.

Hey @Anandsg , Can you assign this issue to me.

@rjangid9080 sure, Have you had any experience / developed such features in react before?

@mhamzanadeem Great, Have you had experience working on responsive features in React before? I'm interested in discussing your approach to achieve this.

Hello @Anandsg,
Thank you for considering my input. I have experience in developing React websites, and you can find more details about my work on my LinkedIn profile: (https://chat.openai.com/c/www.linkedin.com/in/hamza-nadeem2000).
Regarding your request for an approach, I would suggest making tailored adjustments in the Tailwind CSS of your codebase. If you're interested in a more detailed explanation of my approach, I'd be happy to provide it.
Looking forward to potentially collaborating on this project.

@mhamzanadeem Great, Have you had experience working on responsive features in React before? I'm interested in discussing your approach to achieve this.

Hello @Anandsg,
Thank you for considering my input. I have experience in developing React websites, and you can find more details about my work on my LinkedIn profile: (https://chat.openai.com/c/www.linkedin.com/in/hamza-nadeem2000).
Regarding your request for an approach, I would suggest making tailored adjustments in the Tailwind CSS of your codebase. If you're interested in a more detailed explanation of my approach, I'd be happy to provide it.
Looking forward to potentially collaborating on this project.

Okay, assigning the issue to you. Make sure install CORS extension for the chrome to run this app in your local machine. Thank you.

Hi @Anandsg ,
Thank you for considering.  Let me introduce myself, I am frontend engineer and having experience to develop websites with React JS, Tailwind CSS , Next JS.  You can check my LinkedIn  profile for more - https://www.linkedin.com/in/rohit-jangid-250893189 .
Looking forward to potentially collaborating on this project.

@rjangid9080 Thanks brother, since other developer already assigned to this feature, could you please pick other issues or you can raise issue if you found anything to improve the user experience of the app.

@Anandsg  can u guide me which CORS chrome extension do You use for your app?

the 3rd one control allow origin
https://chrome.google.com/webstore/detail/allow-cors-access-control/lhobafahddgcelffkeicbaginigeejlf

@Anandsg  I have installed CORS app ,  and toggle it on and  i have test the CORS options but still your app is not running on my local machine . Can u help me out

@Anandsg I have installed CORS app , and toggle it on and i have test the CORS options but still your app is not running on my local machine . Can u help me out

oh, not sure other developer are able to run this app. can you fork the latest version of the app and try ? i see unexpected token error in the app.js file have u tried to modify anything, please check and circle back

@Anandsg Can I create an issue for an alternative way to open the application without installing CORS?

@Anandsg can u help me what mistake i am doing ?

These are the options of CORS

hey bro have you forked updated repo ?

can you join here if you don't mine difficult to guide through this channel
Google meet link :
https://meet.google.com/eua-ivnf-haw

@Anandsg why had you unassigned me

sorry it was by mistaken you can continue i will reassign

@Anandsg  Can u tell me , Now it looks better  or not ?

@Anandsg Can u tell me , Now it looks better or not ? i know it needs improvement

it cools ok can we include only one restaurant card when it's small devices also search box and other button needs to be aligned, please refer the screenshot attached for you reference

If possible I want to contribute too!

@Anandsg  Does it looks better or not ?
any suggestions ?

@mhamzanadeem yeah looks good bro, can we make restaurant card little small, also focus on buttons please!!

@mhamzanadeem yeah looks good bro, can we make restaurant card little small, also focus on buttons please!!

ok , i will work on it

@rjangid9080  Results looks amazing brother, and no comments about result in small devices please have a look at my response

Considering the aesthetics, would it be advisable to change the color of the rating and favorite buttons to an orange ? This adjustment would harmonize the buttons with the search button, creating a unified visual theme.

response: I've actually already attempted to change the colour of the ratings to orange, but trust me, it didn't look great. I have a different idea in mind: we could implement a feature where ratings < 4 appear in gray, while ratings 4 and above are displayed in green. This green colour makes more sense to when we have this feature (I'll open an issue for it, but it's not needed now).
As for the search button, we could consider making some adjustments to its border, but having it entirely orange seems a bit too overwhelming. Feel free to change the color if you believe it would look better, or we can revisit it later

Could you kindly advise on increasing the size of the rating box (the element highlighted in green on each restaurant card)? This enhancement aims to draw more attention to this crucial piece of information.

response: yes do it.

Additionally, I am contemplating adjusting the text size of the "span" elements within each restaurant card. This modification is intended to improve readability and ensure that all information is presented clearly.

response: yes do it.

I've got a minor suggestion regarding the search box, rating button, and favourites on BIG screens. Instead of shifting them all the way to the left, how about positioning them slightly to the left and above the restaurant cards? I believe it would enhance the overall look. I've even marked the proposed placement in the image below for reference.

ok , i will do

@Anandsg  work has completed !  Take a moment to review the recent modifications I have made to the project. If my work need improvement ; give me suggestions

This looks good @mhamzanadeem , can i get screenshot of menu list in mobile view?

This looks good @mhamzanadeem , can i get screenshot of menu list in mobile view?

@Anandsg

@mhamzanadeem this looks good, what about Menu list items? is that coded for responsive ?

@mhamzanadeem this looks good, what about Menu list items? is that coded for responsive ?

@Anandsg  i didnt understand ! .  how do you open this menu List  ?

@mhamzanadeem this looks good, what about Menu list items? is that coded for responsive ?

@Anandsg  can you provide some suggestions for responsiveness of menu List

@mhamzanadeem I recommend adding responsiveness to the menu list items. Since you've already made much contributions to the app, I'd like to give other developers a chance. If no one is available, I'll create an issue for the menu list responsiveness and assign it to you, considering your familiarity with the code. To prevent conflicts, it's best to make a pull request for now. I'll review it, and if any further changes are needed, I'll let you know.

@mhamzanadeem I recommend adding responsiveness to the menu list items. Since you've already made much contributions to the app, I'd like to give other developers a chance. If no one is available, I'll create an issue for the menu list responsiveness and assign it to you, considering your familiarity with the code. To prevent conflicts, it's best to make a pull request for now. I'll review it, and if any further changes are needed, I'll let you know.

ok
I will make Pull request .
You can raise another issue of menu List . I will do contribution  in that issue

@mhamzanadeem before contributing to Menu list i have few suggestion regarding your PR let me review it once

@mhamzanadeem before contributing to Menu list i have few suggestion regarding your PR let me review it once

ok . review it first


v1.11 backports 2022-02-23

#18725 -- watchers: Support hostPort for init containers (@pchaigno)
#18788 -- iptables,option,node: Consistent condition for ipset usage (@pchaigno)
#18766 -- clustermesh: Modify shared-service annotation after creation (@sayboras)
#18827 -- pkg/datapath/linux: Fix asymmetric IPsec logic on delete (@christarazi)
excluded #18857 -- test: Flush CT tables after L7 proxy tests in K8sServices (@brb)
#18731 -- ipsec: Add/Fix packet tracing for overlay mode (@YutaroHayakawa)
#18859 -- test: Wait until host EP is ready (=regenerated) (@brb)
#18893 -- docs: Remove trailing step in AWS helm install (@joestringer)

Once this PR is merged, you can update the PR labels via:
$ for pr in 18725 18788 18766 18827 18731 18859 18893; do contrib/backporting/set-labels.py $pr done 1.11; done

or with
$ make add-label branch=v1.11 issues=18725,18788,18766,18827,18731,18859,18893

/test-backport-1.11

/test-backport-1.11

Runtime 404'ed, will restart
GKE failed due to a transient error in fetching the istio artifacts, will restar https://jenkins.cilium.io/job/Cilium-PR-K8s-GKE/7713
test-1.16-netnext looks like #18318 https://jenkins.cilium.io/job/Cilium-PR-K8s-1.23-kernel-4.9/125
1.23-kernel-4.9 also looks like #18318 and a failure in the upgrade test, for which we need to backport #18985 https://jenkins.cilium.io/job/Cilium-PR-K8s-1.23-kernel-4.9/125/

/test-runtime

/ci-aks-1.11

/test-gke

/test-runtime

Runtime is failing with 17:51:21      runtime: Mar 07 17:51:20 runtime cilium-agent[24064]: level=fatal msg="Envoy: Binary \"cilium-envoy\" cannot be executed" error="exit status 1" subsys=envoy-manager - we've observed similar problems on the v1.10 branch.

All failures are known issues or flakes on v1.11

Runtime image needs to be updated before it can pass https://github.com/cilium/cilium/issues/18919
Upgrade tests will be fixed by https://github.com/cilium/cilium/pull/19066
-https://github.com/cilium/cilium/issues/18318 is a known flake and seems unrelated to the PR

Given that the other pipelines passed, I'll merge this.


Moved EventCategory definition from review-database

Close #15

Moved EventCategory definition from review-database
Removed HttpThreat category

I notice you've implemented From<u8> for EventCategory. While this might be useful in some contexts, I'm not sure why it's necessary in the protocol crate. Could you explain how you expect this to be used by clients of REview?

I've tested review-database and review-web with the modified review-protocol and found review-web code use the TryFrom for u8 type.
https://github.com/aicers/review-web/blob/de634210cd2e49689515fa59301df381d7ddbacc/src/graphql/event.rs#L802
        let mut categories = Vec::with_capacity(categories_input.len());
        for category in categories_input {
            categories.push(EventCategory::try_from(*category).map_err(|e| anyhow!(e))?);
        }
        Some(categories)

I implemented the trait instead of the use the num_traits::FromPrimitive or num_derive::FromPrimitive.

Thank you for providing the context about the usage in review-web. After considering this, I have a few thoughts:

The TryFrom<u8> implementation, while useful for review-web, doesn't seem necessary for the protocol-level operations that review-protocol is intended to support. Our goal with review-protocol is to keep it minimal and focused on the essential definitions needed for the QUIC protocol between REview components.

Since this conversion is specific to review-web's needs, it would be more appropriate to implement it within the review-web crate itself. This allows us to maintain a cleaner separation of concerns between our crates.

Looking at the broader picture, it might be worth reconsidering why review-web is using numeric representations for the EventCategory in its GraphQL API. Using enum directly in the GraphQL schema could provide a more type-safe and self-documenting API, while also decoupling REview's GraphQL API from the specifics of its QUIC protocol.

Given these points, I suggest the following:

Remove the From<u8> implementation from the review-protocol crate.
If review-web needs this conversion, implement it locally within that crate.
(Optional) Consider refactoring review-web to use its own enum EventCategory directly in its GraphQL schema, rather than numeric values, and then defining TryFrom<EventCategory> for review-database's EventCategory.

What are your thoughts on this approach? It would help us keep review-protocol focused while still meeting the needs of our other components.

I removed the From<u8> implementation. I think too it's better to use enum EventCategory directly in review-web.


Handle the formations metric properly

Problem
We sometimes encounter programs with 0 or 1 formations where we can't reduce the number of formations (the formations metric).
Example:
non-normalized:
{
  ⟦
    org ↦ ⟦
      eolang ↦ ⟦
        compares-two-bools ↦ ⟦
          φ ↦ Φ.org.eolang.true.eq(
            α0 ↦ Φ.org.eolang.true
          )
        ⟧,
        ...
     ⟧
  ⟧
}

normalized:
{
  ⟦
    org ↦ ⟦
       eolang ↦ ⟦
         compares-two-bools ↦ ⟦
           Δ ⤍ 01-
         ⟧,
         ...
       ⟧
    ⟧
  ⟧
}

The requirement for the formations metric in the contract

The number of object formations decreases by 10% or more, compared to the test (not optimized) φ-expression.

Options
@yegor256, @fizruk, there are the following options to deal with tests with 0 or 1 formations:

We exclude such tests and don't calculate any metrics for them.
We include such tests and adjust the formations metric definition for such tests.
We include such tests and

Calculate metrics and improvements for such tests separately from tests with strictly more than 1 formation
Explicitly explain why we do so

Question
Which option should we choose?

@deemp the option 3 is the best. You calculate the metric as usual, but in the final result/summary take into account only the tests where the initial number of formations was >5 (for example)


disabling columns and re-enabling them in different orders gives interesting effects

notice the 'marker' colomn is nolonger the first

reproduce:
disable all optional columns in this order:

line
time
pid
process

now enable:

line

result:


Feature Request: Share links using songlink.io

Hi,
I know it's more pressing squash bugs but I thought this might be a good feature to add. There's a site called songlink.io that lets you share a link to another service like Spotify, Apple Music, etc. I was wondering if it was possible to integrate it or a similar service into GPMDP? There's a similar app for Android that works well as an example:
https://play.google.com/store/apps/details?id=com.sockpuppetapps.link&hl=en
Thanks,

Merging into https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/issues/2216


Scroll to top when switching settings tabs

Currently the app does not scroll to top when switching between settings tabs. This is mildly uncomfortable. Let's make it scroll to top when switching to another tab 🤝

Can you please add a gif if possible ?

To replicate:

Open settings menu
Scroll to the bottom of the settings (until you see "check for new version")
Click on 1st tab "Search settings"
Notice that "Filter & sorting options" is showing (and the scroll-bar is mid-way through the page) instead of the top ("Search & filter settings")

Please let me know if you'd like a better description 🤝

https://github.com/whyboris/Video-Hub-App/pull/700
Please take a look at this pr. :)

@whyboris Is this issue still open?

@whyboris I am facing issues in starting this project locally

Locally I downgraded the TS version to 5.1.6, but the error still remains.

Sorry missed this message somehow 😓
Please use npm install --legacy-peer-deps when installing dependencies (see Readme)
Please let me know if this doesn't fix the problem 🤝


refactor(DEVELOPERS): fix broken links - fix issue #659

Signed-off-by: Parikshit Hooda<EMAIL_ADDRESS>Issue #659
proper-ed links in the DEVELOPERS.md .
Changes

removed escape character() at multiple places.

Flags

Related Issues

Issue #659
Pull Request #661

Coverage remained the same at 99.584% when pulling 57ceb6727ea06bdc83dda6f931bac272a1a6a759 on perry-contribs:master into 47bc8797e3ba4ceecf198a5b14b7ff862c3feaae on accordproject:master.

This PR is now empty. I've cleaned it up as a new PR here: #672


Bad URL for UMD Boilerplate Code in github.js

The URL for the UMD Boilderplate Code in github.js is incorrect. The URL should be: https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js

Hi @ckehoe.
Thank you for opening this issue. I've actually deleted that comment since it doesn't add any real value. If we keep it we might need to update it in the future if the repository changes home, which seems an unnecessary effort.


Fix CRD validation code generation

What this PR does / why we need it:
This fixes the issue where generating the CRD validation code fails if code comments for API types contain backticks (`).
Any backticks in the schema description fields are now replaced with single quotes so that they don't break the code syntax when wrapped in string literals / raw strings.
Which issue(s) this PR fixes:
See #7844
Special notes for your reviewer:
Release note:

Fixed a bug that caused `make generate` to fail when API code comments contain backticks. (#7844, @janeczku)

/retest

Hi @vasiliy-ul Is there anything i can do to help moving this forward, ie. what additional steps are required?

Hi @janeczku . One more approval is needed to move this forward.
Ping @xpivarc , @jean-edouard , @vladikr , @dhiller : could someone please take a look here?

/lgtm
/approve

/cherrypick release-0.56

/cherrypick release-0.50


Armor and Penalty modifiers no longer working

While adding Armor to the items to prepare for a Modern AGE game, I noticed that the Armor values and penalties are no longer populating on the character sheets. I checked that the modifiers were set and turned on and that the armor was active. This is effecting both Modern AGE and Fantasy AGE. I have checked the functionality using Edge and Chrome. I'm not seeing any errors in the console.

Some additional testing and it appears that none of the modifiers are being applied to the character sheets. I tried using items and powers with health, armor, and ability modifiers.

Thanks for pointing that out! Version 2.0.5 already released to fix this bug.


what about the cookies?

So this is not a problem as such since python already supports cookies so well via it's own http module. Still I'm curious about their absence since headers are pretty well documented. Within the file context.py in the python fdk, I ran a text search for the word cookie. Nada. Cookies are sent via http headers, so getting them is as simple as
from http.cookies import SimpleCookie
cookies=SimpleCookie(ctx.Headers().get("fn-http-h-cookie"))
(or something like that)
but how come it's not ctx.Cookies() or something? I would have thought they're a pretty common use case for a http api. that's how session information is generally stored after all. Was this a conscious design decision because not everyone uses them? Was it just forgotten or put on the back burner?
not complaining, like I said easy fix. Just curious.

Hi. Thanks for reporting this.
FYI, there are two type instances of the context: InvokeContext that represents a generic type of a function's invocation (could be triggered through http or mq or whatever), and HTTPGateway that represents the particular invocation via HTTP (only this type represents HTTP request).
FYI, context API is common through all FDKs we support officially, so, if there's a need to add Cookie method on the context, please open an issue against Fn repo.

@denismakogon I'll do just that. I'll also close the issue here because having the same issue open in two places is just confusing for anyone trying to fix the problem.


CAMEL-11335: Add Actuator endpoint for exposing Camel routes

See https://issues.apache.org/jira/browse/CAMEL-11335

Awesome work 👍, I would only consider extending from AbstractEndpoint for the implementation of isEnabled that takes environment into account.

You may also want to display the state of the route, whether its started / stopped etc

Thanks for your feedback @zregvart @davsclaus.
Good point about the AbstractEndpoint, I will update this in a bit.
I have also planned to get more route details into the Actuator endpoint, just wanted to get your general feedback first in order to get this rolling, and extend with more details later.

I have extended from AbstractEndpoint as suggested, and would go forward and merge into master, if that is OK with you. I will follow up with commits that included more route details with another PR.

+1 for me. Great work.

@gzurowski a good idea after merging to master branch is to rebase on top so the git tree is a straight line and your code changes is applied on latest code.
eg run
git pull --rebase


XamlGeneration - exclude 'not_wasm' from WASM

GitHub Issue (If applicable): #784

PR Type
What kind of change does this PR introduce?

Bugfix

What is the current behavior?

not_wasm prefix in XAML wasn't taken into account.
What is the new behavior?

Now taken into account.
PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tested code with current supported SDKs
[ ] Docs have been added/updated which fit documentation template. (for bug fixes / features)
[ ] Unit Tests and/or UI Tests for the changes have been added (for bug fixes / features) (if applicable)
[ ] Contains NO breaking changes
[x] Updated the Release Notes
[x] Associated with an issue (GitHub or internal)

Other information

Internal Issue (If applicable):

/azp run

/azp run

We should rely on a namespace instead of just the prefix. The Uno approach is not XML compliant.

We should rely on a namespace instead of just the prefix. The Uno approach is not XML compliant.

Yeah the way we do this could be revisited at some point. The 'target', 'not_target' syntax is also a bit limited now that we have 5 different targets (UWP/Android/iOS/WASM/MacOS).

Yes, now that UWP supports conditional xaml we should be adding support for that instead.


Implement methods on Rect2 and Aabb

The docs are based on the Godot documentation for these types, and the code is based on the C++ that implements them.
Only documented methods are implemented here. This is especially notable for the Aabb type, which has many methods in C++ which are not documented for GDScript.
I also took some liberties with a few method names and types. For instance, Rect2::grow_margin takes an enum argument, and Aabb::get_endpoint returns Option<Vector3>. These are different from the GDScript counterparts. Aabb::get_area was renamed to Aabb::get_volume, etc.
Finally, I haven't added any tests for Aabb because I did that file last and got bored/lazy before writing any tests (this is what happens when you are not adamant about TDD). The Rect2 tests did help find plenty of minor bugs, so it is worthwhile to test Aabb.
Closes #864

🎉 I added tests for the new Aabb methods. Didn't find any bugs this time. I was a bit surprised to see the ridiculous translation of intersects_segment() actually worked.
I think this leaves get_support() as the only untested method. According to the code, it should return the vertex closest to the given direction vector (with some precision loss) and get_endpoint() which is also trivial.

It seems I'm going to need a better understanding of how much you are willing to diverge from the Godot interface and implementation. I am aware of some preexisting inconsistencies between godot-rust and GDScript, but I don't know any of the history behind those decisions.
For instance, all of the warnings about inverted rectangles are emergent from the implementation, which is more or less a straight port of the C++. If you don't mind a compatibility hazard, we could always make improvements to either support inverted rectangles, or as you suggest not support them at all with an assertion and panic. I think I need to understand what exactly that balance between compatibility and "doing things better" is to have a meaningful conversation. My default is to point at the C++ to justify this code. That includes the documentation, code structure (De-Morgan was brought up), all of the duplication, etc.
So yeah, if you can let me know in general terms how much you are willing to break convention or compatibility, I'm all for making improvements above and beyond what Godot offers.

All of the items you provided answer many implied questions, so thank you for that. The get_...axis... methods are certainly within at least one of those questions. Broadly, I just wanted to know how much pressure there is to follow GDScript closely.
Some specifics and my opinion on what to do about them:

get_longest_axis, get_longest_axis_index, et al. These can return a tuple, for more readable code a struct. Bikeshed on naming, but something like this:

pub struct AxisQueryResult {
    axis: Axis,
    size: Vector3,
}

The normal vector can be computed with size.normalize() if needed. We could also switch size to magnitude: f32 and implement methods on AxisQueryResult to compute the size and normal vectors if that makes more sense. In any case, returning a composite type of some sort means we can remove the 3x dupes for getting the longest and shortest axis on Aabb.

Returning default values is definitely surprising. Both Aabb::intersection and Rect2::clip return very different default values in the failure case. Option<T> would be better. Also I noted that the names of these methods are curious; they both do the same thing (shape intersection). Renaming Rect2::clip to Rect2::intersection seems like the right call in this case.

I have found myself leaning on GDScript docs quite often while learning to use various classes. I think that existing tutorials are a major contributing force for this habit. Every time I consider breaking from the GDScript status quo, it makes me wonder how I would personally transfer knowledge from GDScript into godot-rust. The best I've come up with so far is the note in Aabb::get_volume; the math and semantics nerd in me disagrees that a cuboid has an "area", but it does have volume! Noting that this method is equivalent to GDScript's AABB.get_area() was my solution to this particular problem. I would love to hear other suggestions.

I can only speculate how often inverted shapes are actually used (and expected) in the wild. I was honestly surprised by the warning in the GDScript docs. Interestingly, if inverted shapes are disallowed, the abs method becomes even more important to avoid panics. It raises the question if we want to always call abs internally so that inverted shapes cannot be created in the first place? There is some overhead to that, so it's also perfectly reasonable to make the caller use abs when they need it.

I need to go over the CI failure(s), but the only issue might be the MSRV hazard using IntoIterator for array that was stabilized in 1.53.0.

Anyway, I think I have a better understanding what you're looking for. Even if my confusion is as broad as my questions.

Thanks for your elaborate answer!

get_longest_axis, get_longest_axis_index, et al. These can return a tuple, or for more readable code a struct. Bikeshed on naming, but something like this:
pub struct AxisQueryResult {
    pub axis: Axis,
    pub size: Vector3,
}

I think since this is only used really used in one place (with 6 variants), an extra type may not pay off.
What about returning a tuple?
let (vector, axis) = aabb.get_longest_axis();
let (vector, axis) = aabb.get_shortest_axis();

It's also easily possible to use (vector, _) if there is no interest in the axis.
I agree about normalize().

Returning default values is definitely surprising. Both Aabb::intersection and Rect2::clip return very different default values in the failure case. Option<T> would be better. Also I noted that the names of these methods are curious; they both do the same thing (shape intersection). Renaming Rect2::clip to Rect2::intersection seems like the right call in this case.

Good catch, and I agree with your conclusion. Godot 4 seems to have renamed it to intersection() as well (impl, doc).

I have found myself leaning on GDScript docs quite often while learning to use various classes. I think that existing tutorials are a major contributing force for this habit. Every time I consider breaking from the GDScript status quo, it makes me wonder how I would personally transfer knowledge from GDScript into godot-rust. The best I've come up with so far is the note in Aabb::get_volume; the math and semantics nerd in me disagrees that a cuboid has an "area", but it does have volume! Noting that this method is equivalent to GDScript's AABB.get_area() was my solution to this particular problem. I would love to hear other suggestions.

Fully agree -- and guess what, in Godot 4 it's also called get_volume() 😀

I can only speculate how often inverted shapes are actually used (and expected) in the wild. I was honestly surprised by the warning in the GDScript docs. Interestingly, if inverted shapes are disallowed, the abs method becomes even more important to avoid panics. It raises the question if we want to always call abs internally so that inverted shapes cannot be created in the first place? There is some overhead to that, so it's also perfectly reasonable to make the caller use abs when they need it.

This invariant is impossible to enforce with public fields. I think negative/inverted rectangles/AABBs are probably OK for certain use cases. The usage of certain methods on negative shapes however indicates usually a bug in my opinion -- if someone shows a valid use case in the future, we can allow it again. But I doubt that supporting negative shapes in this way was a conscious design choice on Godot's part.

I need to go over the CI failure(s), but the only issue might be the MSRV hazard using IntoIterator for array that was stabilized in 1.53.0.

Yes, it's a bit annoying, I already "fixed" this issue before. I might actually increase the MSRV (and maybe the Rust edition), otherwise we're stuck with this workaround for entire 0.10 -- incrementing MSRV is a breaking change. So don't change that part yet.

There are still a few suggestions open 🙂

Yeah! I'm looking forward to getting back to this, soon. I just picked up a consulting gig last week and trying to wrap it up in the next few days. I agree with most (maybe all?) of the feedback you've provided so far, and I appreciate it.

In full disclosure, I'm just being lazy now. 😅 I'll try to find the motivation to pick it up again soon.

@parasyte Are you still interested in this? If you think you won't continue this PR, please let me know, I can gladly take over 🙂 but I'd like to clean up old PRs to avoid unnecessary code rot.

@Bromeon You can take over on this. I have been focused on things that are very different.

bors r+

bors r+

bors r+

Thanks @parasyte for all the work! 👍

And thank you @Bromeon for taking it across the finish line!


Nodeos process crashes, but the logs are not recorded, how do you locate, thank you (version mainnet-1.1.4), similar cases have occurred twice, other versions have occurred before,and restart must be --hard-replay-blockchain

lytomars [trxs: 3, lib: 11804768, conf: 0, latency: 278659 ms]
2018-08-18T18:02:58.550 thread-0 producer_plugin.cpp:330 on_incoming_block ] Received block 0a20cfb34b377cbb... #11805096 @ 2018-08-18T17:58:19.500 signed by eosflytomars [trxs: 0, lib: 11804768, conf: 0, latency: 279054 ms]
2018-08-18T18:03:02.465 thread-0 producer_plugin.cpp:330 on_incoming_block ] Received block 9f01c1ef1b9a1762... #11805097 @ 2018-08-18T17:58:20.000 signed by eosflytomars [trxs: 3, lib: 11804768, conf: 0, latency: 282468 ms]
2018-08-18T18:03:15.446 thread-0 producer_plugin.cpp:330 on_incoming_block ] Received block a131b78274c7843d... #11805098 @ 2018-08-18T17:58:20.500 signed by eosflytomars [trxs: 16, lib: 11804768, conf: 0, latency: 294950 ms]
2018-08-18T18:03:15.454 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:03:24.565 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:03:51.673 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:03:59.151 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:04:24.559 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:05:30.268 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:05:30.271 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:06:10.646 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:06:10.651 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:06:27.953 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:06:41.574 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:06:45.750 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:07:14.859 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:07:16.570 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:07:45.461 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:07:46.670 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:08:18.355 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:08:25.344 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:08:49.869 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:09:17.170 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:09:22.343 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:09:38.567 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:09:53.764 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:10:37.672 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:10:37.676 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:10:40.461 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:11:11.270 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:11:43.644 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:11:43.648 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:12:21.159 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:12:21.164 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:12:28.750 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:13:02.971 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:13:12.653 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:16:14.984 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:21:57.179 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:21:57.244 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:26:34.284 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:26:34.344 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T18:30:45.677 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T18:30:45.762 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T19:11:49.843 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T19:11:49.971 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T20:31:40.657 thread-0 http_plugin.cpp:475 handle_exception ] FC Exception encountered while processing wallet.list_keys
2018-08-18T20:31:41.942 thread-0 http_plugin.cpp:476 handle_exception ] Exception Details: 7 bad_cast_exception: Bad Cast
Invalid cast from object_type to Array
{"type":"object_type"}
thread-0 variant.cpp:535 get_array
2018-08-18T20:31:44.454 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T20:31:48.358 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T20:33:39.447 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T20:33:40.153 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T20:34:25.962 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T20:34:26.950 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T20:39:09.646 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T20:39:14.354 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T21:06:02.947 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T21:06:09.451 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T21:39:52.845 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T21:39:56.953 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
2018-08-18T21:48:22.552 thread-0 net_plugin.cpp:1949 operator() ] Unable to resolve p2p.eos42.io:9876: Host not found (authoritative)
2018-08-18T21:48:28.549 thread-0 net_plugin.cpp:1935 connect ] host: p2p.eos42.io port: 9876
jgiszczak commented 11 hours ago
Logs are written to disk only if you direct them to disk. If you wish to both log to file and see the log on the console, use tee e.g.
TIMESTAMP=/bin/date +"%F-%H-%M-%S"; nodeos 2> tee nodeos-$TIMESTAMP-stderr.log
Include whatever nodeos command line arguments are required for your environment, such as data and config directory arguments, after the string "nodeos" but before the string "2>" in the command line.
It's recommended that you upgrade to 1.2.1. The block producers have begun migrating.
@jgiszczak jgiszczak closed this 11 hours ago
TIMESTAMP=/bin/date +"%F-%H-%M-%S"; nodeos 2> tee nodeos-$TIMESTAMP-stderr.log
Is the above command wrong?
you mean
nodeos 2>  nodeos-$TIMESTAMP-stderr.log or nodeos | tee nodeos-$TIMESTAMP-stderr.log
nodeos --verbose-http-errors>>~/eos/nodeos.log 2>&1 &
I have redirected all logs to disk when I started the program,I mean, there's no record of a crash even redirect

TIMESTAMP=/bin/date +"%F-%H-%M-%S"; nodeos 2> tee nodeos-$TIMESTAMP-stderr.log
Is the above command wrong?
you mean
nodeos 2>  nodeos-$TIMESTAMP-stderr.log or nodeos | tee nodeos-$TIMESTAMP-stderr.log
nodeos --verbose-http-errors>>~/eos/nodeos.log 2>&1 &
I have redirected all logs to disk when I started the program,I mean, there's no record of a crash even redirect

Possibly it was wrong, yes.  I didn't test it.
The stderr logs are all the logs there are.  If no error was reported in them, then there was no error reported.
I saw in your earlier issue that you had the bnet_plugin initialized.  Try running your node without it initialized.
Also, put your error report in the description of the issue, instead of trying to fit it all into the title.  It's unreadable in the title.

Well, this kind of crash without logs, I would like to ask you if you have a good way to locate it, restart after the crash and need to replay data, particularly troublesome.Breakdown is occasional, not inevitable, not easy to reproduce,thanks

Would you provide your machine config as well?

the endpoint upon which to listen for incoming connections (eosio::bnet_plugin)
bnet-endpoint = <IP_ADDRESS>:4321
this peer will request only irreversible blocks from other nodes (eosio::bnet_plugin)
bnet-follow-irreversible = 0
the number of threads to use to process network messages (eosio::bnet_plugin)
bnet-threads =
remote endpoint of other node to connect to; Use multiple bnet-connect options as needed to compose a network (eosio::bnet_plugin)
bnet-connect =
this peer will request no pending transactions from other nodes (eosio::bnet_plugin)
bnet-no-trx = false
The string used to format peers when logging messages about them.  Variables are escaped with ${}.
Available Variables:
_name  	self-reported name

_id    	self-reported ID (Public Key)

_ip    	remote IP address of peer

_port  	remote port number of peer

_lip   	local IP address connected to peer

_lport 	local port number connected to peer

(eosio::bnet_plugin)
bnet-peer-log-format = ["${_name}" ${_ip}:${_port}]
the location of the blocks directory (absolute path or relative to application data dir) (eosio::chain_plugin)
blocks-dir = "blocks"
Pairs of [BLOCK_NUM,BLOCK_ID] that should be enforced as checkpoints. (eosio::chain_plugin)
checkpoint =
Override default WASM runtime (eosio::chain_plugin)
wasm-runtime =
Override default maximum ABI serialization time allowed in ms (eosio::chain_plugin)
abi-serializer-max-time-ms = 15000
Maximum size (in MiB) of the chain state database (eosio::chain_plugin)
chain-state-db-size-mb = 40960
Safely shut down node when free space remaining in the chain state database drops below this size (in MiB). (eosio::chain_plugin)
chain-state-db-guard-size-mb = 128
Maximum size (in MiB) of the reversible blocks database (eosio::chain_plugin)
reversible-blocks-db-size-mb = 340
Safely shut down node when free space remaining in the reverseible blocks database drops below this size (in MiB). (eosio::chain_plugin)
reversible-blocks-db-guard-size-mb = 2
print contract's output to console (eosio::chain_plugin)
contracts-console = false
Account added to actor whitelist (may specify multiple times) (eosio::chain_plugin)
actor-whitelist =
Account added to actor blacklist (may specify multiple times) (eosio::chain_plugin)
actor-blacklist =
Contract account added to contract whitelist (may specify multiple times) (eosio::chain_plugin)
contract-whitelist =
Contract account added to contract blacklist (may specify multiple times) (eosio::chain_plugin)
contract-blacklist =
Action (in the form code::action) added to action blacklist (may specify multiple times) (eosio::chain_plugin)
action-blacklist =
Public key added to blacklist of keys that should not be included in authorities (may specify multiple times) (eosio::chain_plugin)
key-blacklist =
Database read mode ("speculative" or "head").
In "speculative" mode database contains changes done up to the head block plus changes made by transactions not yet included to the blockchain.
In "head" mode database contains changes done up to the current head block.
(eosio::chain_plugin)
read-mode = speculative
Track actions which match receiver:action:actor. Actor may be blank to include all. Receiver and Action may not be blank. (eosio::history_plugin)
filter-on = *
PEM encoded trusted root certificate (or path to file containing one) used to validate any TLS connections made.  (may specify multiple times)
(eosio::http_client_plugin)
https-client-root-cert =
true: validate that the peer certificates are valid and trusted, false: ignore cert errors (eosio::http_client_plugin)
https-client-validate-peers = 1
The local IP and port to listen for incoming http connections; set blank to disable. (eosio::http_plugin)
http-server-address = <IP_ADDRESS>:8888
The local IP and port to listen for incoming https connections; leave blank to disable. (eosio::http_plugin)
https-server-address =
Filename with the certificate chain to present on https connections. PEM format. Required for https. (eosio::http_plugin)
https-certificate-chain-file =
Filename with https private key in PEM format. Required for https (eosio::http_plugin)
https-private-key-file =
Specify the Access-Control-Allow-Origin to be returned on each request. (eosio::http_plugin)
access-control-allow-origin = *
Specify the Access-Control-Allow-Headers to be returned on each request. (eosio::http_plugin)
access-control-allow-headers = *
Specify the Access-Control-Max-Age to be returned on each request. (eosio::http_plugin)
access-control-max-age =
Specify if Access-Control-Allow-Credentials: true should be returned on each request. (eosio::http_plugin)
access-control-allow-credentials = true
The maximum body size in bytes allowed for incoming RPC requests (eosio::http_plugin)
max-body-size = 1048576
Append the error log to HTTP responses (eosio::http_plugin)
verbose-http-errors = true
If set to false, then any incoming "Host" header is considered valid (eosio::http_plugin)
http-validate-host = false
Additionaly acceptable values for the "Host" header of incoming HTTP requests, can be specified multiple times.  Includes http/s_server_address by default. (eosio::http_plugin)
http-alias =
The maximum number of pending login requests (eosio::login_plugin)
max-login-requests = 1000000
The maximum timeout for pending login requests (in seconds) (eosio::login_plugin)
max-login-timeout = 60
The target queue size between nodeos and MongoDB plugin thread. (eosio::mongo_db_plugin)
mongodb-queue-size = 256
Required with --replay-blockchain, --hard-replay-blockchain, or --delete-all-blocks to wipe mongo db.This option required to prevent accidental wipe of mongo db. (eosio::mongo_db_plugin)
mongodb-wipe = false
If specified then only abi data pushed to mongodb until specified block is reached. (eosio::mongo_db_plugin)
mongodb-block-start = 0
MongoDB URI connection string, see: https://docs.mongodb.com/master/reference/connection-string/. If not specified then plugin is disabled. Default database 'EOS' is used if not specified in URI. Example: mongodb://<IP_ADDRESS>:27017/EOS (eosio::mongo_db_plugin)
mongodb-uri =
The actual host:port used to listen for incoming p2p connections. (eosio::net_plugin)
p2p-listen-endpoint = <IP_ADDRESS>:9876
An externally accessible host:port for identifying this node. Defaults to p2p-listen-endpoint. (eosio::net_plugin)
p2p-server-address =
The public endpoint of a peer node to connect to. Use multiple p2p-peer-address options as needed to compose a network. (eosio::net_plugin)
p2p-peer-address =
Maximum number of client nodes from any single IP address (eosio::net_plugin)
p2p-max-nodes-per-host = 1
The name supplied to identify this node amongst the peers. (eosio::net_plugin)
agent-name = "EOS Test Agent"
Can be 'any' or 'producers' or 'specified' or 'none'. If 'specified', peer-key must be specified at least once. If only 'producers', peer-key is not required. 'producers' and 'specified' may be combined. (eosio::net_plugin)
allowed-connection = any
Optional public key of peer allowed to connect.  May be used multiple times. (eosio::net_plugin)
peer-key =
Tuple of [PublicKey, WIF private key] (may specify multiple times) (eosio::net_plugin)
peer-private-key =
Maximum number of clients from which connections are accepted, use 0 for no limit (eosio::net_plugin)
max-clients = 25
number of seconds to wait before cleaning up dead connections (eosio::net_plugin)
connection-cleanup-period = 30
True to require exact match of peer network version. (eosio::net_plugin)
network-version-match = 0
number of blocks to retrieve in a chunk from any individual peer during synchronization (eosio::net_plugin)
sync-fetch-span = 100
maximum sizes of transaction or block messages that are sent without first sending a notice (eosio::net_plugin)
max-implicit-request = 1500
Enable expirimental socket read watermark optimization (eosio::net_plugin)
use-socket-read-watermark = 0
The string used to format peers when logging messages about them.  Variables are escaped with ${}.
Available Variables:
_name  	self-reported name

_id    	self-reported ID (64 hex characters)

_sid   	first 8 characters of _peer.id

_ip    	remote IP address of peer

_port  	remote port number of peer

_lip   	local IP address connected to peer

_lport 	local port number connected to peer

(eosio::net_plugin)
peer-log-format = ["${_name}" ${_ip}:${_port}]
Enable block production, even if the chain is stale. (eosio::producer_plugin)
enable-stale-production = false
Start this node in a state where production is paused (eosio::producer_plugin)
pause-on-startup = false
Limits the maximum time (in milliseconds) that is allowed a pushed transaction's code to execute before being considered invalid (eosio::producer_plugin)
max-transaction-time = 30
Limits the maximum age (in seconds) of the DPOS Irreversible Block for a chain this node will produce blocks on (use negative value to indicate unlimited) (eosio::producer_plugin)
max-irreversible-block-age = -1
ID of producer controlled by this node (e.g. inita; may specify multiple times) (eosio::producer_plugin)
producer-name =
(DEPRECATED - Use signature-provider instead) Tuple of [public key, WIF private key] (may specify multiple times) (eosio::producer_plugin)
private-key =
Key=Value pairs in the form =
Where:
    	is a string form of a vaild EOSIO public key

 	is a string in the form :

 	is KEY, or KEOSD

KEY:      	is a string form of a valid EOSIO private key which maps to the provided public key

KEOSD:    	is the URL where keosd is available and the approptiate wallet(s) are unlocked (eosio::producer_plugin)
signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3
Limits the maximum time (in milliseconds) that is allowd for sending blocks to a keosd provider for signing (eosio::producer_plugin)
keosd-provider-timeout = 5
account that can not access to extended CPU/NET virtual resources (eosio::producer_plugin)
greylist-account =
offset of non last block producing time in micro second. Negative number results in blocks to go out sooner, and positive number results in blocks to go out later (eosio::producer_plugin)
produce-time-offset-us = 0
offset of last block producing time in micro second. Negative number results in blocks to go out sooner, and positive number results in blocks to go out later (eosio::producer_plugin)
last-block-time-offset-us = 0
ratio between incoming transations and deferred transactions when both are exhausted (eosio::producer_plugin)
incoming-defer-ratio = 1
Lag in number of blocks from the head block when selecting the reference block for transactions (-1 means Last Irreversible Block) (eosio::txn_test_gen_plugin)
txn-reference-block-lag = 0
The path of the wallet files (absolute path or relative to application data dir) (eosio::wallet_plugin)
wallet-dir = "."
http-alias = <IP_ADDRESS>:8888
http-alias = <IP_ADDRESS>:8888
http-alias = <IP_ADDRESS>:8082
http-alias = <IP_ADDRESS>:8082
Timeout for unlocked wallet in seconds (default 900 (15 minutes)). Wallets will automatically lock after specified number of seconds of inactivity. Activity is defined as any wallet command e.g. list-wallets. (eosio::wallet_plugin)
unlock-timeout = 900
Override default URL of http://localhost:12345 for connecting to yubihsm-connector (eosio::wallet_plugin)
yubihsm-url =
Enables YubiHSM support using given Authkey (eosio::wallet_plugin)
yubihsm-authkey =
Plugin(s) to enable, may be specified multiple times
plugin =
plugin = eosio::chain_api_plugin
plugin = eosio::wallet_api_plugin
plugin = eosio::history_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::http_plugin
plugin = eosio::history_plugin
p2p-peer-address = <IP_ADDRESS>:9876 //A host of a local area network
p2p-peer-address =  node1.starteos.io:9876
p2p-peer-address =p2p.eos42.io:9876
p2p-peer-address =peering.mainnet.eoscanada.com:9876
p2p-peer-address =node1.eosnewyork.io:6987
#p2p-peer-address =<IP_ADDRESS>:9876
#p2p-peer-address =<IP_ADDRESS>:9876
p2p-peer-address =peer1.mainnet.helloeos.com.cn:80

Please try the latest version. Please ask in eosio.stackexchange.com if you have further questions.


Fixed a potential 'run-away promise' bluebird warning

Hi,
I'm using bluebird promise implementation in a project instead of the nodejs native one, and bluebird has a feature where it tries to detect run-away promises (a promise created but not returned inside of another promise then-handler): http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-was-not-returned-from-it
This PR fixes potential false-positive detection of such promises. Then-handler should return null in cases where it's ok to create and not return a promise inside the then-handler.

Coverage increased (+0.01%) to 82.453% when pulling 90cbe3202c506d8950bbf8bff46cce58e7b155e7 on bleshik:bluebird-warning-fix into 953f301b81d47cd02d85149d847846ea18cedf91 on thiagobustamante:master.


[BUG] When adding an event handler to the action, the modal popup position is incorrect.

Description
When adding an event handler to the action, the modal popup position is incorrect.
Steps to reproduce

Go to 'App editor page'
Close the left panel：

Add an Action
Add an event handler to the action:

Click the event handler to edit it:

See error.

Expect: this modal expands above the event handler so that the popup content is fully visible.
Version
self-host
ILLA Builder Version
latest
Browser
No response
Operating System

[ ] macOS
[ ] Windows
[ ] Linux

Additional Information
No response

@wenzhuo2022 I would like to wok on these issue.

@wenzhuo2022 i would like to work on this issue as my first contribution to this repository, can you please assign it to me?

@anish-patro
Hello,this issue is processing


12-word Recovery Phrase (Parent Ticket)

Is your feature request related to a problem? Please describe.
Currently the only way users can recover their account is through Key Guardians (need to have 3 guardians requested and accept the role) and the Private Key (difficult to write down, keep track of and remember)
Users have been asking for the 12-word Recovery Phrase that makes it easy to recover their account if lost.
Describe the solution you'd like
The 12-word Recovery Phrase flow will augment the already existing flows for users to recover their account. i.e wherever the user can enter in their Private Key, they will also have the option to recover using their 12-words.

Import Account button change (#1162)
Change Import Account Flow (#1163)
12-word Recovery Phrase Screen (#1165)
Save 12-word Recovery Phrase from Profile -> Security (#1166)

Multiple Accounts (Switch to another Account -> 12-word Recovery Phrase)

Figma Link: https://www.figma.com/file/ngSzFRqlUjK4zD91ozJIaA/?node-id=11640%3A6769

@JGDoh  rady for QA

@gguijarro-c-chwy Test Cases 1, 2, 5 are passing. Test Cases 3, 4 are failing ☝🤓 And any other test cases you can think of?

@gguijarro-c-chwy I updated the test cases ☝🤓 with the new phrase format we agreed on (word word word ...).

All ✅ now! 🙌


Here is the code I tried:
const kmUser = {
  userId: this.me.accountNumber,
  displayName: this.me.contact.firstName,
  email: this.me.contact.email,
  contactNumber: this.me.contact.mobile
};
const conversationObject = {
  appId: 'fdbf99df07eb6b0618aae16a23311ea1',
  kmUser: JSON.stringify(kmUser)
};
try {
  await KommunicateCapacitorPlugin.buildConversation(conversationObject);
} catch (err) {
  console.error(err);
}

Please update to latest version, if you have not already.
Are you able to run on Android or iOS?

I did a new fresh install and now it works! Sorry for the inconvenience.


add gcc recipe with patch for gcc12.3.0 on GH

gcc 12.3.0 had an ICE in aarch64 SVE:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111478
It failed to compile q-e-sirius and py-scipy for example.
Add gcc to local repository together with a patch obtained from
https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=9d033155254ac6df5f47ab32896dbf336f991589

Can this patch be upstreamed (to spack) instead?
What will happen when the gcc package is updated upstream? For how long would you keep this package definition here to replace the one from upstream?

Can this patch be upstreamed (to spack) instead?

I'll submit the PR to spack directly and see what happens. I'm not sure how it is handled correctly. I think at some point a new gcc 12.3.1 will be released including this patch.

What will happen when the gcc package is updated upstream? For how long would > you keep this package definition here to replace the one from upstream?

For sure the patch/package should be removed from stackinator once a gcc release is available which includes this patch.

@msimberg I've opened a PR in spack: https://github.com/spack/spack/pull/43093
Let's drop this PR if they merged it.

Closing this PR. The patch for gcc12/13 have been merged in spack@develop.


Convert custom file formats

use some parallel call, or during the subprocess call to convert metrics files which arent dvc compatible to DVC compatible ones.

Is this something ZnTrack should or could provide or the Users do themselves?


array deep bug

Hello
Thank you for this package .
i found a bug in v1.3.0 with array dot notation
when
{
                "a[0]": "...",
                "a[1]": "...",
                "a[2]": "...",
                "a[3].b[0].c[0]": "...",
                "a[3].b[0].c[1]": "..."
}

i hope
{
    "a": [
        "...",
        "...",
        "...",
        {
            "b": [
                {
                    "c": [
                        "...",
                        "..."
                    ]
                }
            ]
        }
    ]
}

but dot-object return
{
    "a": [
        "...",
        "...",
        "...",
        {
            "b": { <== not an array !
                "0": {
                    "c": [
                        "...",
                        "..."
                    ]
                }
            }
        }
    ]
}

Thanks for your help
AMi44

Another (same) issue
if
{
    "b.0.c.1": "...",
    "b.0.c.2": "..."
}

dot-object return
{
    "b": {
        "0": {
            "c": [
                null,
                "...",
                "..."
            ]
        }
    }
}

hope
{
    "b" : [ {
         "c" : [
                "...",
                "..."
         ]
    }]
}

Ami44

Thanks for reporting this, the first issue is now fixed and included in a new patch release. v1.3.1
The second issue is only partly fixed, if index 0 is not set it will be undefined (or null when converted to JSON), this is expected behavior to me.
Which means the second issue will now result in:
{
    "b" : [ {
         "c" : [
               null,
                "...",
                "..."
         ]
    }]
}

About second issues : you right !
Thank you @rhalff


Django 1.9 support

Works with (at least) 1.9b1. django.utils.importlib was deprecated in 1.7:
https://docs.djangoproject.com/en/1.8/releases/1.7/#deprecated-features-1-7

+1; without this, django-recaptcha cannot be tested against Django 1.9...

:+1:

https://github.com/lamby/django-setuptest/zipball/django-1.9-support#egg=django-setuptest in requirements.txt if you can't wait :)

Thanks :-)

This was merged in 41401c3aaead403aa0fa71fe8abf11600e3f8697, and can be closed

Ack,  closing


Newlines fix, add support multiline labels

Currently first newline is ignored and 2nd and more breaks background both for content and label (with or without spaces between)
[Pic1 Example from #21  few text old/current version]

This commit adds the argument "newline_mode"
with options:
1) 'old' (default) - As is now: ignores first consequential \n, breaks background on second. Nothing changed.
[Pic2 Lots of text old/current version]

2) 'flex' - Writes all newlines. Background fixed for both label and content. Each annotation is grouped in box having same label on the side (as side effect of display inline-flex preserved)
[Pic3 Few text flex option]

[Pic4 Lots of text flex option]

3) 'multiline' - writes all newlines with proper background for content. Lines are preserved (by display inline instead of inline-flex).
[Pic5 Few text multiline option]

[Pic6 Lots of text multiline option]

Default behavior is the old one thus it backward-compatible.
It resolves #21 and gives newline handling in unified and predictable fashion.

This would be a great fix for the component. (Just leaving a comment to show the importance of the fix for the community :) ).


Calling pd.to_datetime on cftime variable

It would be nice to be able to convert cftime variables to pandas datetime to utilize the functionality there.
I understand this is an upstream issue as pandas probably isn't aware of cftime. However, i'm curious if a method could be added to cftime such as .to_dataframe().
I've found pd.to_datetime(np.datetime64(date_cf)) is the best way to do this currently.
import xarray as xr
import numpy as np
import pandas as pd

date_str = '2020-01-01'
date_np = np.datetime64(date_str)
>>> date_np
numpy.datetime64('2020-01-01')
date_pd = pd.to_datetime(date_np)
>>> date_pd
Timestamp('2020-01-01 00:00:00')

date_cf = xr.cftime_range(start=date_str, periods=1)[0]
pd.to_datetime(date_cf)
>>> pd.to_datetime(date_cf)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ray/local/bin/anaconda3/envs/a/lib/python3.8/site-packages/pandas/core/tools/datetimes.py", line 830, in to_datetime
    result = convert_listlike(np.array([arg]), format)[0]
  File "/home/ray/local/bin/anaconda3/envs/a/lib/python3.8/site-packages/pandas/core/tools/datetimes.py", line 459, in _convert_listlike_datetimes
    result, tz_parsed = objects_to_datetime64ns(
  File "/home/ray/local/bin/anaconda3/envs/a/lib/python3.8/site-packages/pandas/core/arrays/datetimes.py", line 2044, in objects_to_datetime64ns
    result, tz_parsed = tslib.array_to_datetime(
  File "pandas/_libs/tslib.pyx", line 352, in pandas._libs.tslib.array_to_datetime
  File "pandas/_libs/tslib.pyx", line 579, in pandas._libs.tslib.array_to_datetime
  File "pandas/_libs/tslib.pyx", line 718, in pandas._libs.tslib.array_to_datetime_object
  File "pandas/_libs/tslib.pyx", line 552, in pandas._libs.tslib.array_to_datetime
TypeError: <class 'cftime._cftime.DatetimeGregorian'> is not convertible to datetime

We do not have anything in xarray that works for cftime scalars currently, but we do have a to_datetimeindex method on CFTimeIndex:
In [1]: import xarray as xr

In [2]: times = xr.cftime_range("2000", periods=2)

In [3]: times.to_datetimeindex()
Out[3]: DatetimeIndex(['2000-01-01', '2000-01-02'], dtype='datetime64[ns]', freq=None)

Which functionality are you looking for in xarray that pandas Timestamp objects provide, but cftime objects do not?

Which functionality are you looking for in xarray that pandas Timestamp objects provide, but cftime objects do not?

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.tz_localize.html
For a bit more reference. I'm working with HyCOM data and want to keep track of 'local time'.
ds = xr.open_dataset('https://tds.hycom.org/thredds/dodsC/GLBy0.08/latest', decode_times=False)
reference_date = ds.time.attrs['units'][12:25]
ds['time'] = xr.cftime_range(start=reference_date, periods=len(ds.time), freq='3H')

I see, yeah, timezones with cftime are tricky.  Why are you using cftime_range to populate the time variable though in this case?  Why not pandas.date_range?
The problematic variable in this dataset is "tau".  If we drop that variable the dates are automatically decoded to pandas-compatible times (perhaps that's not an option for you though):
In [1]: import xarray as xr

In [2]: xr.open_dataset('https://tds.hycom.org/thredds/dodsC/GLBy0.08/latest', drop_variables=["tau"])
Out[2]:
<xarray.Dataset>
Dimensions:            (depth: 40, lat: 4251, lon: 4500, time: 101)
Coordinates:
  * lat                (lat) float64 -80.0 -79.96 -79.92 ... 89.92 89.96 90.0
  * lon                (lon) float64 0.0 0.07996 0.16 0.24 ... 359.8 359.8 359.9
  * depth              (depth) float64 0.0 2.0 4.0 6.0 ... 3e+03 4e+03 5e+03
  * time               (time) datetime64[ns] 2020-11-16T12:00:00 ... 2020-11-29
    time_run           (time) datetime64[ns] ...

Attributes:
    classification_level:      UNCLASSIFIED
    distribution_statement:    Approved for public release. Distribution unli...
    downgrade_date:            not applicable
    classification_authority:  not applicable
    institution:               Fleet Numerical Meteorology and Oceanography C...
    source:                    HYCOM archive file
    history:                   archv2ncdf2d ;\nFMRC Best Dataset
    comment:                   p-grid
    field_type:                instantaneous
    Conventions:               CF-1.4, NAVO_netcdf_v1.1
    _CoordSysBuilder:          ucar.nc2.dataset.conv.CF1Convention
    cdm_data_type:             GRID
    featureType:               GRID
    location:                  Proto fmrc:GLBy0.08_930_FMRC

Why not pandas.date_range

Good point. Given the "normal" spacing of the data that makes sense.

The problematic variable in this dataset is "tau"

Ah thanks for the digging into this for me.


Usable-milestone

What is missing for getting Lime into a state where we can start coding Lime using Lime? Let's define a milestone for this and open up issue numbers for every issue we see as remaining. Issue suggestions are welcome

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/11351650-usable-milestone?utm_campaign=plugin&utm_content=tracker%2F282001&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F282001&utm_medium=issues&utm_source=github).

You should assign issues to a milestone that you created here. Not sure if you knew. (example1, example2)

Ok, I've added a few issues to the v0.1 milestone. Let's keep adding to it and filing new issues for everything missing

Is this usable state for qml frontend? IIRC as we discussed earlier(in one of issues) we should start separating frontends repo from the backend repo.

As long as we can get travis to fail the backend if the frontends fail after a change to the backend, I agree with splitting them out.

If the frontend fails but the backend didn't on a backend-change IMO that's indication of needing a better test in the backend to capture that failure.
This might indeed be a good time to split them out as v0.1 of the QML frontend isn't v0.1 of the termbox frontend.

As long as we can get travis to fail the backend if the frontends fail after a change to the backend, I agree with splitting them out.

Or did you mean something like renaming a function in the backend? Obviously that would still have the backend pass but would definitely break the frontends. Perhaps we instead keep the backend master-branch as the stable "release" branch and do further development in a separate branch? That would avoid breaking frontends and having to maintain all frontends by a single person doing a single change in the backend. Or is there a better way of doing this?

There are some tools for dependency management like godep, gopkg.in also we can create a vendor directory in frontend repos sth like docker does here.

I'm also worried about the frontends relying on partial functionality or bugs in the backend and us not noticing when the backend is changed, and having to work out why the frontend fails at some later date. Fixing the dependencies might be a good answer, since at least upgrading would be something triggered by a developer.

I kind of hate all the solutions suggested, as it all just seems like a lot of work for something that might just not even be that a big of a deal :)
Maybe we just trigger travis to rebuild all frontends on backend commits so that we're made conscious of any side effects this can have? Is it possible to trigger a project to rebuild from another project?

Is it possible to trigger a project to rebuild from another project?

It's possible via the "travis" command-line tool, but it doesn't seem to be installed by default in the travis ci environment. travis restart -r limetext/lime, might have to before also. IIRC there's some way to configure tokens and other sensitive information so that they are not shown in clear text in the travis logs, but I don't have time to research this right now.

Yup, it is possible: http://docs.travis-ci.com/user/environment-variables/#Secure-Variables

Oh, there's also https://github.com/pote/gpm and https://github.com/pote/gvp

We'll also need to come up with some way of dealing with the packages folder being outside of the repo (or in a different place).

I've suggested a structure for splitting the project out into in #546.

Go 1.5 adds support for experimental vendoring, so we can "freeze" libs of other repositories using git submodules ("go get" will indeed checkout submodules when vendoring is enabled).


Modify ScssLint pre-commit hook to gracefully handle case when no files are linted

Once a fix for https://github.com/brigade/scss-lint/issues/411 lands on the scss-lint project, the ScssLint hook will need to be updated to gracefully handle the case where no files are matched, since the message parser doesn't know how to deal with this case.
We should also change the implementation to :fail if the result was not successful before calling extract_messages, rather than :pass if it was successful (otherwise the hook will crash since extract_messages doesn't know how to parse the output returned by scss-lint in a non-successful run).

Implemented in 4f21177d608bf25e0225dbe785150b1628a0a3d0.


Web - New line marker on Task does not disappear when sending or receiving a message

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:

Go to any chat that have a task shared to it or create a Task on the chat.
Mark us unread the Task
Send a message on the chat / or recieve a message on the chat

Expected Result:
New line marker should disappear when receiving a message or sending a message
Actual Result:
New line marker does not disappear when receiving a message or sending a message
Workaround:
Unknown
Platforms:

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

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

Version Number: v1.3.56-18
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/1713fc81-801a-4ab4-addd-21e20e2f3a53
https://github.com/Expensify/App/assets/115492554/da3c0fc0-bce8-4574-adaf-eb66fd20d869
Expensify/Expensify Issue URL:
Issue reported by: @daveSeife
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692752785781209
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

@dukenv0307 Thank you so much for looking into this. Were you by any chance able to find what caused this regression to happen?

Ah, yes. That looks to be it. I haven't been familiar with this code in a long time. I am concerned that the solution that you propose could have other potential side-effects that we don't know about.
What is your gauge on how risky of a change it is to do lastReadTime <= lastVisibleActionCreated and that it could lead to more regressions?
I'm also considering that we should revert that refactoring PR as it seemed tied to several regressions.

I think we should revert the PR

Yeah, I mostly agree with you. It sounds like there have been a couple of follow-up PRs to fix other blockers from it that would also need to be reverted, so we are evaluating now what kind of a mess we are in and how best to get out of it.

All right, we have decided to revert the original PR for now. It turned out there were no other post-fixes that needed reverting.

According to @MonilBhavsar, this is expected behavior, not a 🐛
Closing this out.


Providers not bootstrapped in the Lumen Framework

Thank you for your addition!
What do you think? Could we also test a simple lumen app?
like https://github.com/nunomaduro/larastan/blob/master/tests/laravel-test.sh

https://github.com/nunomaduro/larastan/pull/242


blobs: switch from hyper to reqwest

This change is motivated by improved status error handling.
Before this change even error codes would be treated as success and the
body would contain the HTML formatted error message passed through to
the caller.
Instead of reimplementing proper error handling here we can make use of
the reqwest library which already does it.

Closes #63
Progress on #44

@steveeJ does this close #63 or is it a prerequisite for that? I didn't see the HTTP status check here.

does this close #63 or is it a prerequisite for that? I didn't see the HTTP status check here.

TL;DR: It does now, thanks for pointing this out :smile:
I thought it already did because I was able to trigger an error when I cross tested the changes from cincinnati, but I must've made a mistake at one point.


Replay show game time

Solves issue 3159 (Hope I got it right, extremely hungry, gonna get somethign ..)
Added 2 new icons:

game-duration
world(real)-duration

both now showing in:

card_replay
replay_detail

game-duration is being shown in card-replay.
@Sheikah45
Any thoughts and prayers?

@Sheikah45  updated tests. Current implementation shows bot real-time and game-time, therefore not much of modification.
Slightly increased size of card, as there was issue that new values(with icons) were only partially visible, though there are still occur situation that second  may be cut out.(Check local replay) I'm not sure how to address this, or even if there should be done anythign against that as it is not really significant - for clear data the user shall open the card itself ...


ModuleNotFoundError: No module named 'openai.types.beta.threads.message_content'

I get ModuleNotFoundError: No module named 'openai.types.beta.threads.message_content'
Presumably, you are using an older version of openai package. Which is the right version number?
Cool project!

This already has resolved, plz check again the recent release

I close this issue, if you face with similar case, plz let me know


engine: revamp how we compute RuntimeStatus

Hello @landism, @maiamcc,
Please review the following commits I made in branch nicks/ch5970/status:
7a152be27e17620fbcc81b74eff45d5848af3ce3 (2020-04-03 14:39:42 -0400)
engine: revamp how we compute RuntimeStatus
In the old way, we would convert a Pod Status struct into a human-readable
reason string. Then we would try to convert the reason string into a
model.RuntimeStatus (one of OK, Pending, Error).
This was fragile and confusing, because the reason string had conflicting
needs. When we made the human-readable bit more descriptive (e.g., including
init container info), we'd break the RuntimeStatus conversion.
In the new way, we compute both RuntimeStatus and the reason string directly
from the PodStatus struct.
Fixes https://github.com/windmilleng/tilt/issues/3177
Code review reminders, by giving a LGTM you attest that:

Commits are adequately tested
Code is easy to understand and conforms to style guides
Incomplete code is marked with TODOs
Code is suitably instrumented with logging and metrics

this is the right branch name!


Beautify plots with multiple series and long labels

Because we have the series name in the legend, we don't need to repeat it on the x axis
        plot.xaxis.major_tick_line_color = None
        plot.xaxis.major_label_text_color = None
        plot.xaxis.group_label_orientation = "vertical"

First 2 improvements are done, the last one moved to #255


Does this work with digital goods express checkout?

i.e. https://developer.paypal.com/docs/classic/express-checkout/digital-goods/IntroducingExpressCheckoutDG/

Well, if the REST API (https://developer.paypal.com/webapps/developer/docs/api/) supports it then maybe. I'm not sure.


[SPARK-25135][SQL] FileFormatWriter should respect the schema of Hive

What changes were proposed in this pull request?
This pr fix FileFormatWriter's dataSchema  should respect the schema of Hive. Otherwise there will be two issues.

Throwing an exception(This can be reproduce by added test case):

java.util.NoSuchElementException: None.get
	at scala.None$.get(Option.scala:347)
	at scala.None$.get(Option.scala:345)
	at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$3$$anonfun$4.apply(FileFormatWriter.scala:87)
	at org.apache.spark.sql.execution.datasources.FileFormatWriter$$anonfun$3$$anonfun$4.apply(FileFormatWriter.scala:87)

The schema of the Hive table is not the same as the schema of the parquet file.

How was this patch tested?

Unit tests for FileFormatWriter should respect the schema of Hive.
Manual tests for didn't break UI issues fixed by SPARK-22834:

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/2704/
Test PASSed.

Merged build finished. Test PASSed.

Test build #95483 has started for PR 22287 at commit b54953a.

Test build #95483 has finished for PR 22287 at commit b54953a.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/95483/
Test FAILed.


[WIP] Add storage interactions in the bottom-drawer

Using the front-end-tracker to get storage interactions, then interface that to the HUD's bottom-drawer.
Here a couple of things to have a look at before integrating to the HUD:

[ ] Do not freeze the HUD when the storage is flooded (for example in juiceshop, where a constant stream of getItem is happening)
[ ] Make the UI more consistent with the history tab
[ ] (optional) Add missing features: modal for details of an entry, filtering and regex.
[ ] Opt-in / opt-out per site

@Pamplemousse have you got any sites you recommend testing with?
I tried https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webstorage_local but nothing appeared when I ran the example :/

https://jsfiddle.net/Benjol/HMEVd/ failed too :/

This pull request introduces 1 alert when merging d747ecddcc15ee1c504a7c722920290f129c32fc into 1fdbb47854b79eff672bc6494527fd772689d6a6 - view on LGTM.com
new alerts:

1 for Syntax error

Comment posted by LGTM.com

@psiinon In both examples, the storage tab in the bottom-drawer is working, as long as the code interacting with the Storage API is run in the domain on which the HUD is effectively run.

On https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_webstorage_local
The demo code seems to be written in an iframe.
This defeats the front-end-tracker as the Storage interface's functions inside the iframe cannot be instrumented, so the "reporting code" is not injected.
If, from the console, you try localStorage.removeItem('lastname'), then the event would show up in the bottom-drawer.
On https://jsfiddle.net/Benjol/HMEVd/
Investigating with the developer console, it appears that the localStorage concerned by the example is fiddle.jshell.net, and not jsfiddle.net.
Reading the source of the page, again, the example is run inside an iframe, and indeed, it sources a document hosted on another domain.
To see the tab work: try resizing the grid in the page, and watch for the grid_1-split-sizes value to be written in the localStorage, and correctly reported in the bottom-drawer.

Just as a mention (not to be tackled)
As the front-end-tracker has been designed, it cannot report code execution that has not been instrumented, and it does that when injected on top of a page.
Covering the cases of instrumenting code in an iframe would need some serious thinking, and surely some new design...

Hey @Pamplemousse I must be doing something wrong. I'm still not seeing anything in storage:

Do i need to do something to install the front-end-tracker as well?

Ah, sorry I did not take the time to give you an update on this...
Having seen the amazing and gigantic work that @jaywon has started in PR #459, I thought it would be smarter for me to wait for a cleaner and refactored structure to build my feature upon rather than hacking it into the current UI.
This is still in a corner of my mind!


fix(curriculum): typos in building a Dice Game Step 13

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #55772

This Pr fixes the typos in building a Dice Game Step 13
Affected page
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures-v8/review-algorithmic-thinking-by-building-a-dice-game/step-13

@AbdulMuqsit112 Thanks for the PR.
There is an instance of span that needs to be fixed. It's on line 34.

@huyenltnguyen  Thanks for highlighting i have updated it.

@jdwilkin4 Thank you! I'm excited to contribute more in the future. 😊


Update main.css

Buffer so chat box doesn't block the canvas when minimized

Seems tricky to get it work nicely. I kinda don't want to sacrifice the bottom 40 px
Possible to move it to the left bar? that seems safer there?
Or we can add it to the top login bar? as that one is kinda fixed?

I guess we could collapse it down to a corner with just the chat icon, that may be the easiest option


fix: Updated TezosTransactionParameters to match Tezos p2p API

Following the definition in tezos docs:
https://tezos.gitlab.io/shell/p2p_api.html#alpha-entrypoint-determined-from-data-8-bit-tag

Covered in https://github.com/airgap-it/beacon-sdk/pull/813


Reolink E1 Pro two way audio ?

I recently bought an Imou Rex 3D (imou rangers new model), but unlike his sister Imou ranger pro, it seems not to be compatible with 2 way audio. So I'm gonna return it, and I was wondering which cam would be compatible with 2 way audio, I've seen the Reolink E1 Pro  but how to know if it's compatible with 2 way audio ?
Thanks

The only Reolink model, that support open two way proto is Doorbell. For other models you should follow this issue https://github.com/AlexxIT/go2rtc/issues/755

The only Reolink model, that support open two way proto, is Doorbell. For other models you should follow this issue #755

That's not true, many of Reolink's products including the E1 [outdoor] Pro are listed as being ONVIF Profile T conformant: https://www.onvif.org/conformant-products/
If they support 2 way audio at all and have Profile T compliance, then according to ONVIF they must support an ONVIF standard for 2 way audio as well.  That's straight from ONVIF's Profile T specifications

I don't know, how ONVIF site confirm their test info.
But real users confirm only one Reolink model - Doorbell.

I don't know, how ONVIF site confirm their test info.
But real users confirm only one Reolink model - Doorbell.

ONVIF has a very clear explanation as to how they add compliance.  The link is provided on the web page linked above: https://www.onvif.org/profiles/conformance/
Their conformance for Profile T page (linked from the above link in this comment here) further confirms the above point: https://www.onvif.org/profiles/profile-t/
There's also a discussion I had with someone at ONVIF directly which I could dig up if needed.

I have additional Reolink cameras which have Profile T support and I am willing to help test if this is an issue with go2rtc or with Reolink's actual compliance.  (One is a Reolink Doorbell camera which currently does work with 2 way audio, and two are Profile T compliant yet I cannot get 2 way audio working through go2rtc directly - as you describe.)
If it is the latter and either Reolink or ONVIF are lying about actual compliance, ONVIF can be reached out to and listed compliance can be removed until firmware updates provide true Profile T compliance.  Perhaps that would provide sufficient motivation for Reolink to make things happen if it is indeed their problem.
If it is the former, I would again be willing to offer any help I can to resolving this point of issue.  I hope that is is clear to you that either Reolink AND ONVIF are wrong about their claims, or go2rtc is deficient.  I'm just hoping to find a solution, not place any blame anywhere.  I'm happy to help where I can if it can benefit anyone at all.

Two way audio via rtsp back channel is not required, only optional, as part of the Onvif Profile T

Two way audio via rtsp back channel is not required, only optional, as part of the Onvif Profile T

As clearly stated in the sources I have provided directly from ONVIF, it IS required if the device has Profile T compliance AND provides ANY implementation of two way audio.  It is possible for a device to be Profile T compliant without any two way audio being implemented, but it is not compliant if it has a proprietary implementation exclusively.

Okay, then you should enable trace logs for the rtsp module and see what the camera replies with when go2rtc connects

Okay, I have logs from the Reolink doorbell camera and a Reolink camera which has 2 way audio support and is listed as Profile T.    What part in particular should I pay attention to?  I see where the Doorbell responds with some of the backchannel information, but the negotiation looks quite similar.  The only log setting I changed was for RTSP - should I consider changing anything else?

This is backchannel
m=audio 0 RTP/AVP 8
a=control:track3
a=rtpmap:8 PCMA/8000
a=sendonly

go2rtc 324215.docx
I've reached out to Reolink and have been in communication with them over the past week.  They've been very helpful and receptive overall.  They have responded with this above documentation from their engineering team regarding their testing.  They have come to the conclusion that their public facing firmware does not support Profile T, however some of their internal beta firmware does.  When testing go2rtc's 2 way audio internally with their beta software, they were unable to get go2rtc's 2 way audio to work.  Their process is attached in the above docx (which they sent to me) for reference.
They have asked if they have made any improper steps in their process relating to go2rtc, and if so to let them know.  Should I inform them of anything in particular?  They are configuring their cameras in a different way than I am used to, and I noticed that their interface is also a bit different.  Is this different configuration setup valid for what they are attempting, and is their interface reflective of an old version of go2rtc?  Does it matter if they set up https for their testing - What I mean is, will the backchannel track3 still be activated even if the browser isn't able to record microphone data over http?  What would be the best response for them?
It really seems like Reolink is receptive to fixing this, and I would greatly appreciate any accurate information I can provide for the benefit of everyone's usage of these cameras.  Thanks.

Probably Reolink developers don't know that web browsers don't give access to microphone for HTTP sites.
go2rtc will not request two way audio when it is not needed.

@PaulBiod I updated my Reolink E1 Pro with the v<IP_ADDRESS>49_2401092478 (the release note mentions Support two-way audio under ONVIF connection.) and it's working using the Play Audio with that string: ffmpeg:https://file-examples.com/storage/fe7b7e0dc465e22bc9e6da8/2017/11/file_example_MP3_5MG.mp3#audio=pcmu#input=file
I was not able to test using Chrome because of the security issue with HTTPS, but I might do it in the next few days (would make no sense that two way work using Play audio but not with the microphone, but who knows).

It's easy to test chrome via:

https://stackoverflow.com/questions/52759992/how-to-access-camera-and-microphone-in-chrome-without-https
ngrok

That's great news!  My discussions with Reolink were postponed during Chinese New Year celebrations, but afterwards their support distanced themselves a bit.  They said they would get around to it in official releases coming soon, and I guess this is part of that!  I'd love to know when it'll hit their other cameras as well.
I hope this continues with their other cameras and I don't have to increase any pressure on them regarding their current non-compliance.  I'll update if I have anything else noteworthy later.

@AlexxIT  @PaulBiod
I updated the firwmare on my CX410 today, and go2rtc gives me working 2 way audio on my device!
No idea if that extends to other Reolinks or not yet.  I reached out to support within the past month or so, and they had told me that there was no ETA on a release or anything of that sort.  Yet, here we are. It's firmware version is: CX410_3429_2404181313 if that helps anyone out.
That is extremely exciting news for me!  Hopefully this is the beginning of better support on the rest of Reolink's products as well!  Hopefully this is as exciting for others as it is for me.  I've long since thought the industry was lagging way behind on this one.

Would anyone mind testing this out on any additional Reolink products they have?  I'll give my other device a try in a few hours time and I'll update on my end if it is fruitful.


hello this script still works ?

hello this script still works ?

@cryonicx write me on telegram

give me ur telegram bro

@cryonicx


chore: Release 0.16.0

:robot: I have created a release beep boop
root: 0.16.0
0.16.0 (2023-07-06)
⚠ BREAKING CHANGES

acvm: replace PartialWitnessGeneratorStatus with ACVMStatus (#410)
acir: revert changes to SchnorrVerify opcode (#409)
acvm: Replace PartialWitnessGenerator trait with BlackBoxFunctionSolver (#378)
acvm: Encapsulate internal state of ACVM within a struct (#384)
remove unused OpcodeResolutionError::IncorrectNumFunctionArguments variant (#397)
acir: Remove Oracle opcode (#368)
acir: Use fixed length data structures in black box function inputs/outputs where possible. (#386)
acir: Implement Add trait for Witness & make output of Mul on Expression optional (#393)

Features

acir: Implement Add trait for Witness & make output of Mul on Expression optional (#393) (5bcdfc6)
acir: Remove Oracle opcode (#368) (63354df)
acir: Use fixed length data structures in black box function inputs/outputs where possible. (#386) (b139d4d)
acvm: Derive Copy for Language (#406) (69a6c22)
acvm: Encapsulate internal state of ACVM within a struct (#384) (84d4867)
acvm: Replace PartialWitnessGenerator trait with BlackBoxFunctionSolver (#378) (73fbc95)
acvm: replace PartialWitnessGeneratorStatus with ACVMStatus (#410) (fc3240d)
brillig: implemented first blackbox functions (#401) (62d40f7)

Bug Fixes

acir: revert changes to SchnorrVerify opcode (#409) (f1c7940)

Miscellaneous Chores

remove unused OpcodeResolutionError::IncorrectNumFunctionArguments variant (#397) (d1368d0)

acir: 0.16.0
0.16.0 (2023-07-06)
⚠ BREAKING CHANGES

acir: revert changes to SchnorrVerify opcode (#409)
acir: Remove Oracle opcode (#368)
acir: Use fixed length data structures in black box function inputs/outputs where possible. (#386)
acir: Implement Add trait for Witness & make output of Mul on Expression optional (#393)

Features

acir: Implement Add trait for Witness & make output of Mul on Expression optional (#393) (5bcdfc6)
acir: Remove Oracle opcode (#368) (63354df)
acir: Use fixed length data structures in black box function inputs/outputs where possible. (#386) (b139d4d)

Bug Fixes

acir: revert changes to SchnorrVerify opcode (#409) (f1c7940)

Dependencies

The following workspace dependencies were updated

dependencies

brillig_vm bumped from 0.15.1 to 0.16.0

acir_field: 0.16.0
0.16.0 (2023-07-06)
Miscellaneous Chores

acir_field: Synchronize acvm versions

acvm: 0.16.0
0.16.0 (2023-07-06)
⚠ BREAKING CHANGES

acvm: replace PartialWitnessGeneratorStatus with ACVMStatus (#410)
acir: revert changes to SchnorrVerify opcode (#409)
acvm: Replace PartialWitnessGenerator trait with BlackBoxFunctionSolver (#378)
acvm: Encapsulate internal state of ACVM within a struct (#384)
remove unused OpcodeResolutionError::IncorrectNumFunctionArguments variant (#397)
acir: Remove Oracle opcode (#368)
acir: Use fixed length data structures in black box function inputs/outputs where possible. (#386)

Features

acir: Remove Oracle opcode (#368) (63354df)
acir: Use fixed length data structures in black box function inputs/outputs where possible. (#386) (b139d4d)
acvm: Derive Copy for Language (#406) (69a6c22)
acvm: Encapsulate internal state of ACVM within a struct (#384) (84d4867)
acvm: Replace PartialWitnessGenerator trait with BlackBoxFunctionSolver (#378) (73fbc95)
acvm: replace PartialWitnessGeneratorStatus with ACVMStatus (#410) (fc3240d)
brillig: implemented first blackbox functions (#401) (62d40f7)

Bug Fixes

acir: revert changes to SchnorrVerify opcode (#409) (f1c7940)

Miscellaneous Chores

remove unused OpcodeResolutionError::IncorrectNumFunctionArguments variant (#397) (d1368d0)

acvm_stdlib: 0.16.0
0.16.0 (2023-07-06)
Miscellaneous Chores

acvm_stdlib: Synchronize acvm versions

brillig_vm: 0.16.0
0.16.0 (2023-07-06)
Features

brillig: implemented first blackbox functions (#401) (62d40f7)

This PR was generated with Release Please. See documentation.

https://github.com/noir-lang/noir/pull/1863 is passing CI now so I'm going to make this release.

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/root-v0.16.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acir-v0.16.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acir_field-v0.16.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acvm-v0.16.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/brillig_vm-v0.16.0 :sunflower:

:robot: Release is at https://github.com/noir-lang/acvm/releases/tag/acvm_stdlib-v0.16.0 :sunflower: