Introduce SubscanV2 API

This PR introduces a SubscanV2 API Wrapper as a configurable option. In a future version of Subscrape, this should become the default version.
What's new?

You can now configure the API which shall be used for scraping by setting the _api param in the configuration within a chain.
SubscrapeDB is rewritten to store hydrated extrinsics and events in a dedicated Sqlite file. Previous storage are being redefined as indexes (or summary elements)
A new operation events-list is added
the 'transfers' operation was fixed
The improved paging mechanism of SubscanV2 is used
events and extrinsics scraping: name can now be set to None to scrape all calls from the module.

This changes the output format of the results. Any code that uses the new scraper might break.
Configuring the new SubscanV2 scraper
config = {
        "kusama":{
            "_scraper": "SubscanV2",
            "extrinsics":{
                "crowdloan": ["create"]
            },
            "extrinsics-list":[
                "14238250-2"
            ],
            "events":{
                "crowdloan": ["created"]
            }
            "events-list":[
                "14238250-39"
            ],
            "transfers": [
                "Dp27W3mGpkT7BG9SxNsTtWoKcvJSwzF4BU8tadYirkn6Kwx"
            ]
        },
    }

For now, SubscanV1 is still the default version and is used automatically if _api is not given. Though at some point in the future, the default my change to SubscanV2 and at some point support for SubscanV1 might be discontinued.
What changed
SubscanWrapper was refactored to be SubscanBase, from which SubscanV1 and SubscanV2 now inherit. Most logic is in SubscanBase for now. The specific classes only overwrite params atm but in the future I suspect specific method implementations will follow (paging changes in V2)
A bit of the logic from ParachainScraper had to move into SubscanBase, namely the fetch functions that parameterized the call. I wanted to avoid code duplication or ugly forks in code.

[x] Updated Documentation + sample config
[x] Updated Tests

I was going to merge, but it looks like you need to merge main first.


chore: disable goconst linter

We recently discussed this and agreed that not everything should be a constant - notably this linter seems to have changed in v1.55 so it finds a few more strings it thinks should be constants

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (c1ea22e) 78.09% compared to head (81e205d) 78.14%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #662      +/-   ##
==========================================
+ Coverage   78.09%   78.14%   +0.05%
==========================================
  Files          81       81
  Lines        5866     5866
==========================================
+ Hits         4581     4584       +3
+ Misses       1084     1082       -2
+ Partials      201      200       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Support Lync & SFB Servers

Please update to show what on-premise Servers are supported for interoperability. For instance- what capability is supported if a customer have Lync 2010, Lync 2013, or SFB 2015.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 49921e8a-55ac-f547-d4e2-d329f5089c2e
Version Independent ID: 91c3433a-3684-95cd-3426-4a5877b33106
Content: Migration and interoperability guidance for organizations using Teams together with Skype for Business
Content Source: Teams/migration-interop-guidance-for-teams-with-skype.md
Service: msteams
GitHub Login: @arachmanGitHub
Microsoft Alias: MyAdvisor

Thank you @d1bjo0 for the feedback. Interop is mainly driven from Skype for Business Online, so on-prem version has no bearings with the capabilities supported for Teams interop. We'll update the article to include the supported on-prem server versions for interoperability with Teams for clarity.

@arachmanGitHub - thanks!


Arabic language support

Type of change

[ ] Bugfix
[x] Feature
[ ] Refactoring
[ ] Documentation content changes

Description
Adding Arabic language support

@mincheol-shin could you please check this PR?

Thank you so much for your contribution!

You are welcome. Will you be publishing a new version in pub.dev soon ?

We added the function and proceeded with the 3.7.1 update.
Thank you.


Cannot register extension

Hello,
Debian installation, forwarded UDP ports:
5062 -> 5060
5063 -> 5160
tried pjsip and chan_sip
from tcpdump I can see its coming inside trying to register, no response from inside container :-(
extension created with name: 1111 and some password for testing purpose only
registering from Zoiper, its trying to register (registering) and while no response it timeouts into 408
asterisk logs are empty, even in exec and looking inside asterisk -vvvvr its blank except reload
Any suggestions where to look? Totaly lost while there is no tcpflow/dump inside container
Thanks

First try to make sure the ports are listening though other means.
netstat -tunap inside the container will also help to ensure they are listening.
Asterisk should be providing logs or console output, so that is a bit bizarre.
I can push a new build with both tcpdump and tcpflow for you.

New build tiredofit/freepbx:15-4.0.2 or 15-latest being built on Docker Hub now with sngrep, sipsak, tcpdump, and tcpflow utilities embedded.

udp        0      0 <IP_ADDRESS>:5060            <IP_ADDRESS>:*                           -
udp        0      0 <IP_ADDRESS>:5160            <IP_ADDRESS>:*                           -
thanks for super fast response
pulled new version, new tcpdump is unable to do ip proto \udp
just listening to port 5160 -> nothing while trying to register
sngrep -> totaly empty
Is there any required setting which I miss?
ports also allowed on iptables, forwarded from 5063 to 5160 on GW FW
yml ports
ports:
- "<IP_ADDRESS>:80:80"
- "<IP_ADDRESS>:443:443"
- "<IP_ADDRESS>:5060:5060"
- "<IP_ADDRESS>:5160:5160"
- "<IP_ADDRESS>:18000-18100:18000-18100/udp"
tcpdump on host machine
tcpdump -i ens18 -v -n 'ip proto \udp and port 5160'
tcpdump: listening on ens18, link-type EN10MB (Ethernet), capture size 262144 bytes
23:26:09.035973 IP (tos 0x0, ttl 54, id 22138, offset 0, flags [none], proto UDP (17), length 620)
<IP_ADDRESS>.65015 > <IP_ADDRESS>.5160: UDP, length 592
23:26:12.956051 IP (tos 0x0, ttl 54, id 22266, offset 0, flags [none], proto UDP (17), length 620)
<IP_ADDRESS>.65015 > <IP_ADDRESS>.5160: UDP, length 592
23:26:17.038121 IP (tos 0x0, ttl 54, id 22524, offset 0, flags [none], proto UDP (17), length 620)
<IP_ADDRESS>.65015 > <IP_ADDRESS>.5160: UDP, length 592
But nothing shows up inside container, weird

I think you have it all the right way - Someone posted the other day we should be calling 5060 and 5160 with the /udp ie (5060:5060/udp) however I personally haven't had to on my own install.
Do the ports show as even listening inside the container with a netstat -tunap ?

Typical Debian 10, install was fine unless the port bind have to be done with <IP_ADDRESS> to force assign it to IPv4
and GW in front for security reasons, ports forwarded from diff ones because they are already used for old Asterisk solution.

OK, so no funky OS combos which have shown issues in the past.. Lets see here...
I don't see a problem with using different ports both inside and outside the container, you would just need to change the configuration inside of freepbx to support that change in the Sip/PJSIP settings. Hopefully tomorrow I can get some time to fire up a Buster VM and try to replicate this. This shouldn't be happening.

Do you have some updates on this issue?
Need to move on and start using SIP trunk.

I have the same issue. Changed chan_sip to TCP, no I can telnet the port 5160 from the outside. But still asterisk logs are empty and SIP client throws Request Timeout.

Its weird that netstat inside of the container points the SIP ports to "dash", no Asterisk mentioned.

Maybe I got it
docker-compose.yml
Specifing of SIP ports 5060 and 5160.
Without specifing it means TCP AND UDP, right?
On FW I let provider allow 5060+5160 TCP (only), not UDP.
Can this be an issue?
But as I can see from netstat the TCP 5060 & 5160 is not listed. I can see only udp 5060 & 5160.
How to fix that?

I made a change last week on request from someone to be specifying 5060:5060/udp and 5160:5160/udp - I have never had to do that on my own systems. Try switching it to 5060:5060 and 5160:5160.
Also, can you try switching images and use tiredofit/freepbx:develop - This is a rollback to Asterisk 16 temporarily.

5060:5060 and 5160:5160

I had it like this. It was default. I just specified <IP_ADDRESS> to work with IPv4.
But as I mentioned above maybe the problem is with binding TCP/UDP to Asterisk. Coz TCP is not visible in netstat (5060&5160).
I will try to open TCP/UDP 5060,5160 on FW and retest it.

The Docker Image upload failed, trying again.

OK, please try tiredofit/freepbx:develop if at all possible and see if this changes anything. This is a rollback to Asteirak 16.

Still I cant see tcp 5060 & 5160 inside the container.
Request Timeout 408 persists
tcpdump inside container listening for 5160 -> nothing
tcpdump on base system it listen about REGISTER from Public IP with destination of Server internal IP - any here maybe is the problem.
internal IP is <IP_ADDRESS>
but
docker container IP is <IP_ADDRESS>
compose ports:

"<IP_ADDRESS>:5160:5160/udp"
or
"<IP_ADDRESS>:5160:5160/tcp"
or
"5160:5160"

Didnt help at all
Another test: telnet from host to container
HOST
telnet <IP_ADDRESS> 5160
Trying <IP_ADDRESS>...
telnet: Unable to connect to remote host: Connection refused
CONTAINER
tcpdump -i any 'port 5160'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
10:21:39.981396 IP <IP_ADDRESS>.47402 > 63cc805a345a.5160: Flags [S], seq<PHONE_NUMBER>, win 64240, options [mss 1460,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
10:21:39.981467 IP 63cc805a345a.5160 > <IP_ADDRESS>.47402: Flags [R.], seq 0, ack<PHONE_NUMBER>, win 0, length 0
Also test for UDP
HOST
nc -z -v <IP_ADDRESS> 5160
<IP_ADDRESS>: inverse host lookup failed: Unknown host
(UNKNOWN) [<IP_ADDRESS>] 5160 (?) : Connection refused
CONTAINER
tcpdump
10:31:39.758996 IP <IP_ADDRESS>.47454 > 63cc805a345a.5160: Flags [S], seq 523469471, win 64240, options [mss 1460,sackOK,TS val<PHONE_NUMBER> ecr 0,nop,wscale 7], length 0
10:31:39.759064 IP 63cc805a345a.5160 > <IP_ADDRESS>.47454: Flags [R.], seq 0, ack 523469472, win 0, length 0
In wireshark its just red
What I totaly miss here?  Im lost :-(

UPDATE
Chaning port bind to "5060:5060/udp" without <IP_ADDRESS> fixed problem with registration.
Im able to register. Nice
So registered calling into ANY inbound route pointing into IVR with some recording.
It picks up the call but no RTP received.

Also Asterisk shows this:

Connected to Asterisk 16.9.0 currently running on d479133f15f3 (pid = 1686)
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
0x7f920406e3a0 -- Strict RTP learning after remote address set to: <IP_ADDRESS>:60200
-- Executing [1234@from-internal:1] ResetCDR("SIP/1111-00000017", "") in new stack
-- Executing [1234@from-internal:2] NoCDR("SIP/1111-00000017", "") in new stack
-- Executing [1234@from-internal:3] Progress("SIP/1111-00000017", "") in new stack
-- Executing [1234@from-internal:4] Wait("SIP/1111-00000017", "1") in new stack
-- Executing [1234@from-internal:5] Playback("SIP/1111-00000017", "silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer") in new stack
-- <SIP/1111-00000017> Playing 'silence/1.ulaw' (language 'cs')
-- <SIP/1111-00000017> Playing 'cannot-complete-as-dialed.ulaw' (language 'cs')
-- <SIP/1111-00000017> Playing 'check-number-dial-again.ulaw' (language 'cs')
-- Executing [1234@from-internal:6] Wait("SIP/1111-00000017", "1") in new stack
-- Executing [1234@from-internal:7] Congestion("SIP/1111-00000017", "20") in new stack
[2020-04-07 09:23:27] WARNING[16915][C-00000017]: channel.c:4963 ast_prod: Prodding channel 'SIP/1111-00000017' failed
== Spawn extension (from-internal, 1234, 7) exited non-zero on 'SIP/1111-00000017'
-- Executing [h@from-internal:1] Macro("SIP/1111-00000017", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/1111-00000017", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/1111-00000017", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] NoOp("SIP/1111-00000017", " montior file= ") in new stack
-- Executing [s@macro-hangupcall:5] GotoIf("SIP/1111-00000017", "1?skipagi") in new stack
-- Goto (macro-hangupcall,s,7)
-- Executing [s@macro-hangupcall:7] Hangup("SIP/1111-00000017", "") in new stack
== Spawn extension (macro-hangupcall, s, 7) exited non-zero on 'SIP/1111-00000017' in macro 'hangupcall'
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/1111-00000017'

Why is it trying to point on internal <IP_ADDRESS>:60200?
Its ZOIPER device internal IP (smartphone).
Tested also over public IP (LTE), no luck.
Changing directmedia didnt help.
Any idea?
SIP General
Public IP specified
RTP Range 18000-18100 sepcified
Local networks:
<IP_ADDRESS>/16
<IP_ADDRESS>/16
Im close to throw a towel and install it normal way without docker coz it doesnt seems to be able to run stable in production.
Pure asterisk is much better.

It definitely works but not for the faint of heart, I'm running successfully at a handful of very large (300+ extension) sites as are others, but there are definite quirks depending on host OS and FreePBX constantly changing things around.
Regarding RTP - Sounds like perhaps the same issue is happening with your networking as was your SIP Ports. Make sure they are exposed and active. Set a STUN server if possible. Your Local Networks looks just fine although I would just make it <IP_ADDRESS>/16.

Another way to avoid all the NAT nonsense is just run it with network: host  however that sort of defeats the whole purpose of the image so that you can run it behind reverse proxies and host other services on it.

network_mode: host isnt possible, backup container cannot start with links option while this mode is set.
I already tried to switch to PJSIP. Same situation.
What I totally dont understand is this:
RTP Allocating from port range 18000 -> 18100
And while in call:
0x7fc9d404d710 -- Strict RTP learning after remote address set to: <IP_ADDRESS>:41532
Why? Its not set and suppose to be here that port. Where is the definition of using these ports?
FW allows 18000-18100 its set in compose and even in RTP ports in GUI, and present in asterisk RTP conf.
From where is coming this 41532?
I really would like to use this dockerized solution but its very painful.


Nested submenus prevent previous submenu link to be opened

In python I noticed a strange behavior with clickable links (which was all right with BitBar).
Suppose the following piece of python code (working as expected):
#!/usr/bin/env PYTHONIOENCODING=UTF-8 /usr/bin/python3

print("bug test")
print('---')
print("google.com | href='https://google.com/'")

It simply adds a bug test in your menu bar and the drop down menu simply shows a google.com which you can click on and gets you to https://google.com/ on the default browser of your machine. Everything works as expected.
Now, suppose the following code (not working as expected):
#!/usr/bin/env PYTHONIOENCODING=UTF-8 /usr/bin/python3

print("bug test")
print('---')
print("google.com | href='https://google.com/'")
print("--yahoo.com | href='https://yahoo.com/'")

It simply adds a bug test in your menu bar and the drop down menu simply shows a google.com with a yahoo.com submenu (expected and working). In theory both menu and submenu should be clickable (expected). The first one goes to https://google.com/ (expected, not working) the second one goes to https://yahoo.com/ (expected, working).
The actual behavior is that only the second-level menu is clickable (https://yahoo.com/) not the first one (https://google.com/). Both should be clickable.
I've also tried with a third submenu (redirecting to https://bing.com/) and the second submenu (https://yahoo.com/) becomes unclickable. Quick conclusion, it appears that only the latest submenu in a chain of submenus can be clicked on.
Hope my problem description makes sense. Let me know if I should rephrase anything.
macOS 10.15.7
xbar 2.0.27-beta17
Python v3.8.2

Hey @ggrelet thanks for the great question. If I understood you correctly, I think the behaviour you're describing is what I would expect to happen.
Given the following xbar code:
top1
top2
top3 >
--child1 >
----grandchild1
----grandchild2
--child2

When you make a submenu, you are turning the parent menu item from a Text type, to a Submenu type. Menu items that expand into submenus don't usually have an action of their own. Can you find any examples of this in macOS? Can you explain a use case for the experience you're trying to deliver, and whether there's a workaround.

Here is the description of a BitBar plugin of my own which highlights the new behavior that does not work anymore with xbar (no backward compatibility)
top1 >
--child *
top2 >
--child *
top3 >
--child *

and so on...

Tops are Reddit posts from r/soccer with a filter on video content only. They have an href tag which redirects to the link of the video content (mostly hosted on streaming services).
Children always have the same text but also have an href tag which redirects to the actual reddit post (for comment reading 🤓).
Here is a gif of my BitBar plugin I'm describing, you should see what I mean (since you are from London I'm posting a Liverpool goal 😉):

Menu items that expand into submenus don't usually have an action of their own.

The behavior you are describing here is incompatible with what I want, which used to work with BitBar. Maybe the behavior is intended, as you are suggesting. But I pushed this 'investigation' a little further. Consider this new python code:
#!/usr/bin/env PYTHONIOENCODING=UTF-8 /usr/bin/python3

print("bug test")
print('---')
print("google.com | href='https://google.com/' color='#FF5700'")
print("--yahoo.com | href='https://yahoo.com/' color='#FF5700'")
print("----bing.com | href='https://bing.com/' color='#FF5700'")

It's the same as from my original post except that now I added orange color to the text to track down which of the menus/submenus have color. Only the last children have the color added:

I think only the leaves of the tree gets to have enriched text with |. I think this should be considered a bug.

I can't comment on the clicking of menus, but the styling of submenus should indeed be a thing. Thanks for raising this!

@ggrelet If we can enable actions on submenu items I have nothing against it. @leaanthony Do you think it's possible?

Must be 😃

I'd like to +1 this. If it was unexpected behavior in BitBar it would be nice to clarify and support it in xbar. It's very useful to have actions on submenus.

Thank you. Yeah—we’re sold. We’re gonna try and sort it out.

@matryer It looks like this was fixed in the latest release. Thank you.


Add to Package Control

It would be great if you added this package to Package Control for Sublime. This would make installing and upgrading it a breeze. Instructions on how to do this are at http://wbond.net/sublime_packages/package_control/package_developers
Thanks for all of your hard work!

Pull request sent.
wbond/package_control_channel#145

Awesome, thanks!


add callback interface for upsert component

added list of critical interface that we need to inject to pinot core/server to ensure we can add proper logic for upsert-enabled pinotserver and tables and making sure existing pinot tables perform the same as before. Pinot upsert related logics will be implemented in separate package and injected to runtime environment via config. This diff also provided a no-op implementation to ensure that existing pinot ingestion workflow stay the same
design doc for pinot upsert feature: google doc (our corp privacy policy disallow blanket sharing so please send a view/comment request to me and I usually accept it as soon as I see it)
this change focus on the changes in pinot core/server
List of interfaces added:
TableDataManagerCallback/DataManagerCallback/IndexSegmentCallback
for use in the associated table/datamanger/indexsegment.
list of default interface added:
DefaultDataManagerCallbackImpl/DefaultIndexSegmentCallback/DefaultTableDataManagerCallbackImpl
for use in offline/non-upsert tables

@kishoreg @mcvsubbu @Jackie-Jiang appreciated if you guys can take a look at the diff this week when you have time

Hey James, the last we discussed, I thought the only callback needed was after the realtime row was indexed.
Can you add to your design doc the following information

At what points do you need callbacks from Pinot
What does the callback do?

For example:
Callbacks Needed:

onRowIndexed(): This callback needs to happen each time a row ingested from a realtime stream-partition is successfully indexed. upon receiving this callback, the pinot-upsert pushes an event into Kafka (see xxx of design doc). Arguments to this callback should be:
a.  Offset of the row
b. Table name
c. Segment name
d. : whatever...
onSegmentLoad(): This callback needs to happen each time an offline segment is loaded successfully. ... etc.

I know this is probably spread across your design doc, but to have it concisely in one place will help us review.
thanks a lot, and sorry for the delay in review. I had a hard deadline of May 31 on an internal project that I have been working on.

thanks for reviewing, I have added a session here. Also all the current callback are contained in this package. If you have time to apply the patch to our local pinot repo it will be more straight forward and the method itself is also documnted

@jamesyfshao I looked over your design doc, thanks for adding the section on interfaces you need. I also looked at the repo you mentioned.
It is not clear why we need all these interfaces. If you can add some clarifications in the design doc, that will help me better. We can then discuss online what the interface should be.
@kishoreg if you have additional comments

@jamesyfshao I looked over your design doc, thanks for adding the section on interfaces you need. I also looked at the repo you mentioned.
It is not clear why we need all these interfaces. If you can add some clarifications in the design doc, that will help me better. We can then discuss online what the interface should be.
@kishoreg if you have additional comments

@mcvsubbu I totally got why you feel that way as it is hard to lay out the all the exact details in without the code context. It could be confusing when we leave out the upsert-enabled callback implementation which shows why we need them. But please understand that we leave out some of exact interface details in the design doc as we are trying to make the design doc to be flexible - code could changes/evolve over time but the design doc should capture the high-level design ideals and data flows that will be consistent over the evolution of this feature, especially considered these interface is still being involved over the next few PRs.
Do you think it might be helpful if I put more comments and example in the codes (mainly the interface method) to show why those new callbacks are added and their purpose instead in the design doc? This way we can update the documentation as we evolve our interface while keeping our design doc less noisy?

@jamesyfshao is there anything pending here. Let's get this in.

@jamesyfshao is there anything pending here. Let's get this in.

waiting for @mcvsubbu to give the diff another pass to see if my update has addressed the concerns

@mcvsubbu pinging you again to see if you have time this week to see if the changes looks good or not

@jamesyfshao can we take the discussion to the design doc? I had asked a few questions there, but they are not resolved yet. Please see my comments on the "New Interface" section.
https://docs.google.com/document/d/1SFFir7ByxCff-aVYxQeTHpNhPXeP5q7P4g_6O2iNGgU/edit

@jamesyfshao can we take the discussion to the design doc? I had asked a few questions there, but they are not resolved yet. Please see my comments on the "New Interface" section.
https://docs.google.com/document/d/1SFFir7ByxCff-aVYxQeTHpNhPXeP5q7P4g_6O2iNGgU/edit

Hi @mcvsubbu sorry for the late replies, a bit busy last week. I have addressed your comment in the design docs again. Please feel free to see if those comments need further clarification.
Sorry I didn't address them sooner mostly because I am trying to address the clarification issues in the code documentation instead of design docs. I have been spending a bit more efforts on making sure the method interface naming are clear and comments in the code are accurate because I feel it is always easier for future Pinot maintainer to understand the actual logic of codes by reading how it interacts with other components and comments in the codes vs finding a particular section that links in some external design docs. I also feel this feature is very new and expected to continue evolving within the foreseeable future. This means that designs of actual logics will continue to changes and comments in codes is most likely to be more up-to-date compared to a static design doc. These are my reasoning for trying to put more emphasis on the comments instead of listing all API interfaces in a design doc.

Upsert was redesigned, so this PR no longer applies


https://trakt.tv/oauth/applications/new    "Save app" button click. never completes.

https://trakt.tv/oauth/applications/new
i click "Save app" .  loading indicator stays forever. never completes.
i can not create new api app.

This should work now, sorry about that!


ERROR Pod version 1.3.1

homepage now is a mandatory attribute in cocopods
[!] The `RNIap` pod failed to validate due to 1 error:
    - ERROR | attributes: Missing required attribute `homepage`.

@alfonsodev
Thank you!


Lightning problem in case of a new map in the latest build 0.9.10

I'm using Carla 0.9.10, Unreal Engine 4.23.3 on Ubuntu 18.04.
On the previous build 0.9.9 I don't have this issue, when I import a map (which was created by roadrunner), in the Unreal Editor there is proper lightning, but when I hit the play button (or create a package), there is complete darkness.

And I have this error:

I tried to change the weather in Carla, add more lights to the map, removed the default one and add new one, none of them helped. I've imported these maps in previous Carla versions (0.9.8-0.9.9) and worked perfectly.
Does anyone knows the solution for this problem?
Thanks in advance!

Hi @mercurylaci, in the 0.9.10 release we had changed the lighting in the scene. We merged all the lighting assets inside a Blueprint.
To solve the issue you just need to delete the Light Source (Directional Light), ExponentialHeightFog, Skylight, and SkySphere from your scene and drag BP_Sky into it.

Thank you! It's working now.

Hi! @Madecu ,I do as you recommand.
The scene shows up when I am high. As I getting lower to approach the road, it get darker so that I can't view it.
Do you know how to solve it? Thanks in advance!

Hi @mercurylaci, in the 0.9.10 release we had changed the lighting in the scene. We merged all the lighting assets inside a Blueprint.
To solve the issue you just need to delete the Light Source (Directional Light), ExponentialHeightFog, Skylight, and SkySphere from your scene and drag BP_Sky into it.

Hello, I have a small question that is which folder should the BP_sky dragged into? @Madecu  @mercurylaci

Hello Friends. After deleting the Light Source (Directional Light), ExponentialHeightFog, Skylight, and SkySphere from the scene and drag BP_Sky into the scene. I clicked Play, and run the scrip "manual_control.py" in  the folder "carla/PythonAPI/examples", a mistake occurrd that is :
WARNING: cannot parse georeference: ''. Using default values.
No recommended values for 'speed' attribute
There are no spawn points available in your map/town.
Please add some Vehicle Spawn Point to your UE4 scene.

I'd like to know if it is useful to add some spawn points in my scene to solve my problem, as I have added some spawn points in the scene, but the questions still remains.
Does anyone knows the solution for this problem?
Thanks in advance!
@Madecu @mercurylaci

@seuwcs
This warning means your xodr file is missing georeference header.
Also, your map does not have spawpoints. You can use "opendrive export preview tool" in roadrunner to check your export and look for any warnings. And you should use the "slip road tool" in the roadrunner to connect the intersections. Once you connect the roads properly the waypoint will be generated automatically.


Extend module.for-each invoke task

What does this PR do?

Add the following arguments to the module.for-each invoke task:

--ignore-errors: keep running commands if one fails
--use-targets-path: run commands in each of the module's targets
--use-lint-targets-path: run commands in each of the module's lint targets
--skip-condition: only run the command if this module's condition returns True

Motivation

Make it easier to run some commands in modules.
In particular here I wanted to run a command fixing some lints in each module, so it needs to run in the "lint targets", and the command fails if it find some lints, so I needed to ignore errors.
Additional Notes

Changes are backward compatible.
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Tested each argument manually.

/merge


Support for shorthand RequestMapping Annotations

Hi,
first of all a big thank you for this fantastic library! =)
For my projects I am using spring boot which introduced some new shorthand request mapping annotations with version 1.4:
@PostMapping / @GetMapping / @PutMapping / @DeleteMapping
The signature of these annotations more or less is the same as in the @RequestMapping annotation
I have noticed that the RAML generator does not pick up on these annotations (thus no documentation is generated for methods annotated with one of those annotations)
Are you guys planning to support the newer request mapping annotations as well?
Best regards

https://github.com/phoenixnap/springmvc-raml-plugin/issues/103


Added support for Range with numbers in C#

JSON Schema supports Range for numeric types.
This PR handles the range validation, properly adding a JSON converter that checks whether the (de)serialized value is in range.
Since quicktype does not seem to understand the exclusiveMinimum and exclusiveMaximum flags, they are assumed as false with this change.

@Fylax Thanks for this awesome PR! You're the first contributor to have discovered transformers.
Would you mind fixing these lint errors?
ERROR: /app/src/quicktype-core/Transformers.ts:984:1 - Consecutive blank lines are forbidden
  | ERROR: /app/src/quicktype-core/language/CSharp.ts:85:16 - This type is not allowed in the condition because it could be undefined. Only booleans are allowed.
  | ERROR: /app/src/quicktype-core/language/CSharp.ts:973:17 - Forbidden 'var' keyword, use 'let' or 'const' instead
  | ERROR: /app/src/quicktype-core/language/CSharp.ts:973:46 - == should be ===

@schani I fixed the lint errors and aligned the fork with the master.
Nevertheless, I am failing to understand why the CI diff task is failing.

@Fylax We have existing tests with those range attributes, which so far haven't done anything in C#, but not they do, so the generated code differs.  Thanks again!


Constant crashing in PowerShell v7 + VSCode Remote Containers + FileSystemWatcher?

Environment data

MacOS Catalina 10.15.3
VSCode 1.42.0
VSCode-PowerShell extension 2020.1.0
Remote-Containers extension 0.101.0
PowerShell v7 RC2

Steps to reproduce

Run a new container docker run --interactive --tty --detach microsoft/powershell:preview
Use VSCode to attach to the container, using the Remote-Containers: Attach to Running Container ... command
Wait for Installing Dev Container ... to finish, in the new VSCode window
Create a PowerShell script file ie. tasks.ps1 (code below)
Go back to the VSCode Explorer view, and create a new file in /root

tasks.ps1
$Watcher = [System.IO.FileSystemWatcher]::new($PSScriptRoot)
$Watcher.WaitForChanged([System.IO.WatcherChangeTypes]::All)

Expected behavior
Container runs without crashing
Actual behavior
PowerShell process / container regularly crashes, at irregular times, with the following log messages.
Docker Logs: Example 1
PowerShell 7.0.0-rc.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

PS />
PS /> ^[[27;1R^[[27;1R^[[1;7R^[[1;7R^[[1;7R^[[27;1R^[[27;1R^[[27;7R^[[27;7R^[[28;1R^[[28;1R^[[62;7R^[[62;7R^[[27;1R^[[27;1R^[[1;7R^[[1;7R^[[1;7R^[[27;1R^[[27;1R^[[27;7R^[[27;7R^[[28;1R^[[28;1R^[[1;92R^[[1;92R
Oops, something went wrong.  Please report this bug with the details below.
Report on GitHub: https://github.com/PowerShell/PSReadLine/issues/new
### Environment.PowerShell.UnmanagedPSEntry.Start(System.String, System.String[], Int32)
PSReadLine: 2.0.0-rc2Shell.ManagedPSEntry.Main(System.String[])
PowerShell: 7.0.0-rc.2ngeException: The value must be greater than or equal to zero and less than the console's buffer size in that dimension.  All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

PS />
PS /> erShell_pr����������������t.AutomaSystem.Mshell/7-��V�-�����@���@@�V��ti�V����0pi0pi��V��ti��XLe`�9
Oops, something went wrong.  Please report this bug with the details below.91R^[[1;92R^[[1;93R^[[1;94R^[[1;94R^[[1;94R^[[1;95R^[[1;96R^[[1;97R^[[1;97R^[[1;97R^[[1;98R^[[1;99R^[[1;100R^[[1;100R^[[1;100R^[[1;101R^[[1;102R^[[1;103R^[[1;103R^Report on GitHub: https://github.com/PowerShell/PSReadLine/issues/new
### Environment
PSReadLine: 2.0.0-rc2
PowerShell: 7.0.0-rc.2
OS: Linux 4.19.76-linuxkit #1 SMP Thu Oct 17 19:31:58 UTC 2019
Last 1 Keys
 P

### Exception
System.DivideByZeroException: Attempted to divide by zero.
   at Microsoft.PowerShell.PSConsoleReadLine.PhysicalLineCount(Int32 columns, Boolean isFirstLogicalLine, Int32& lenLastPhysicalLine)
   at Microsoft.PowerShell.PSConsoleReadLine.ReallyRender(RenderData renderData, String defaultColor)
   at Microsoft.PowerShell.PSConsoleReadLine.ForceRender()
   at Microsoft.PowerShell.PSConsoleReadLine.Render()
   at Microsoft.PowerShell.PSConsoleReadLine.Insert(Char c)
   at Microsoft.PowerShell.PSConsoleReadLine.SelfInsert(Nullable`1 key, Object arg)
   at Microsoft.PowerShell.PSConsoleReadLine.ProcessOneKey(PSKeyInfo key, Dictionary`2 dispatchTable, Boolean ignoreIfNoAction, Object arg)
^[[35;1R^[[35;1R^[[35;7R^[[35;7R   at Microsoft.PowerShell.PSConsoleReadLine.InputLoop()
   at Microsoft.PowerShell.PSConsoleReadLine.ReadLine(Runspace runspace, EngineIntrinsics engineIntrinsics, CancellationToken cancellationToken)

                                62;17R^C

@pcgeek86 Can you repo without PSReadline?

@iSazonov How are you proposing I do that? Uninstall the PSReadline module after the container starts up? I'm only using the container in its default state, not installing any additional modules. If PSReadline is loaded, then it's not something I'm doing intentionally.

Can you do Remove-Module PSReadline? We need to understand a root of the issue.

@iSazonov I've encountered the same issue, and changed my Dockerfile to do
RUN /usr/bin/pwsh -Command 'Set-Content $PROFILE.AllUsersAllHosts "Remove-Module PSReadLine"'

After that, the original issue is still there, the container crashes when run by VSCode, but the stack trace is different:
PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

=PS /workspace> fProcess terminated. The value must be greater than or equal to zero and less than the console's buffer size in that dimension. (Parameter 'top')
Actual value was -1.
   at System.Environment.FailFast(System.String, System.Exception)
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(System.String, System.String[], Int32)
   at Microsoft.PowerShell.ManagedPSEntry.Main(System.String[])
System.ArgumentOutOfRangeException: The value must be greater than or equal to zero and less than the console's buffer size in that dimension. (Parameter 'top')
Actual value was -1.
   at System.Console.SetCursorPosition(Int32 left, Int32 top)
   at System.Console.set_CursorLeft(Int32 value)
   at Microsoft.PowerShell.ConsoleHostUserInterface.ReadLineFromConsole(Boolean endOnTab, String initialContent, Boolean calledFromPipeline, String& restOfLine, ReadLineResult& result) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHostUserInterface.cs:line 1811
   at Microsoft.PowerShell.ConsoleHostUserInterface.ReadLine(Boolean endOnTab, String initialContent, ReadLineResult& result, Boolean calledFromPipeline, Boolean transcribeResult) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHostUserInterface.cs:line 1446
   at Microsoft.PowerShell.ConsoleHostUserInterface.ReadLineWithTabCompletion(Executor exec) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHostUserInterface.cs:line 1919
   at Microsoft.PowerShell.ConsoleHost.InputLoop.Run(Boolean inputLoopIsNested) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs:line 2472
   at Microsoft.PowerShell.ConsoleHost.InputLoop.RunNewInputLoop(ConsoleHost parent, Boolean isNested) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs:line 2322
   at Microsoft.PowerShell.ConsoleHost.EnterNestedPrompt() in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs:line 1019
   at Microsoft.PowerShell.ConsoleHost.DoRunspaceLoop(String initialCommand, Boolean skipProfiles, Collection`1 initialCommandArgs, Boolean staMode, String configurationName) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs:line 1489
   at Microsoft.PowerShell.ConsoleHost.Run(CommandLineParameterParser cpp, Boolean isPrestartWarned) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs:line 1456
   at Microsoft.PowerShell.ConsoleHost.Start(String bannerText, String helpText, String[] args) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs:line 260
   at Microsoft.PowerShell.ConsoleShell.Start(InitialSessionState initialSessionState, String bannerText, String helpText, String[] args) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleShell.cs:line 47
   at Microsoft.PowerShell.ConsoleShell.Start(String bannerText, String helpText, String[] args) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleShell.cs:line 24
   at Microsoft.PowerShell.UnmanagedPSEntry.Start(String consoleFilePath, String[] args, Int32 argc) in /PowerShell/src/Microsoft.PowerShell.ConsoleHost/host/msh/ManagedEntrance.cs:line 77

@resnikb Thanks for your confirmation!
@rjmholt @TylerLeonhardt Could you please look the issue with VS Code?

It looks like the problem is with PowerShell (well .NET...) trying to query the Cursor position... It's getting -1 from the terminal.
@tyriar and @daxian-dbw would probably be the experts in this space.

System.DivideByZeroException: Attempted to divide by zero.

This looks extremely similar to https://github.com/PowerShell/PSReadLine/issues/670.
However, the repro is very different from what was reported there.
@pcgeek86 @resnikb Do you see the same crash when just run docker exec to start pwsh (either directly or from bash) after creating the container? I want to see whether the VSCode part is just red herring of the real problem.

@daxian-dbw No, I can run interactive shell without issues, with or without PSReadLine:

docker run works
docker exec works
interactive PowerShell terminal in VS Code works

Here is the minimial docker-compose.yml that reproduces the issue:
version: "3.4"
services:
  repro:
    image: mcr.microsoft.com/powershell:7.0.0-alpine-3.10
    volumes:
      - .:/workspace:cached
    working_dir: /workspace
    tty: true

In VSCode, you can use this file as the container definition, open the folder in container, and after several seconds (up to a minute) the container will crash.

Got the same issue, didn't succeed in running any PS7 Linux image container till now.
Anyone got it to work?

Assign the issue to myself for investigation for now.

@JohnnyVicious I got it to work for VS Code by overriding the command in docker-compose.yml to be:
command: /bin/sh -c "while sleep 1000; do :; done"

Exception looks similar to https://github.com/PowerShell/vscode-powershell/issues/702?

@Tyriar that was because the previous implementation of the readline in the PowerShell extension didn't support wrapping of commands to the next line. You'd type a really long command, and it would crash.
That's fixed now as the PowerShell extension relies on PSReadLine. However, that exception was because the value was too large (i.e. 3000 for Console.Top)... but in that case above, Console.Top returns -1 which is odd

My investigation shows that the DivideByZeroException exception is caused by having the container detached.
When running docker run -itd to start the powershell container, since the container is detached, System.Console.BufferWidth and System.Console.BufferHeight are both 0, meaning the console windows doesn't exist, and it's actually a broken state. That leads to the DivideByZeroException.
For the "Remote - Container" extension in VSCode, now the extension automatically adds a docker-compose.yml file to override the default CMD of a container image. The overriding command is just a loop, to prevents the container from shutting down.
    # Overrides default command so things don't shut down after the process ends.
    command: /bin/sh -c "while sleep 1000; do :; done"

So I think you don't need to do anything extra, and it will just work. If the overriding command is not automatically added, then try adding it by yourself.


Navigation

Main target is to enable Arrow navigation between controls. A small fix is also introduced in the last patch.
I can hotkeys documentation to reflect these changes if we're OK.

It is a really good idea. I like this feature in other GUI libraries. But I have a concern about the current patch. Please, see inline

@VladimirMarkelov fixed. Tested with controls processing KeyUp and KeyDown.
Thanks for the review.


Use the SPDX Identifier for the package license

This is not a requirement of any system, it just makes it easier for certain tools (like hex_licenses) to find the exact license.

Thanks for the PR! Due to a mistake on my end (I was looking at this not logged in, didn't see the merge button, and thought it was just an issue, not a PR), so I ended up commiting your fix as part of some other changes I was making today. Sorry about that, I do appreciate the contribution!

Hey no worries :)


The addon isn't working

how i said above, the addon isn't working and have and error in asset_panel.gd line 12:
res://addons/globalize-plugins/plugin.gd:149 - Invalid get index 'asset_id_pressed' (on base: 'PopupPanel (asset_panel.gd)').

Thanks. I messed up the .gitignore so some files were never committed. Github should be updated now, but it'll take a few days for the asset store version


I select one day, but the date i get is previous day

China Beijing +08:00

Sorry, this lib is not supported anymore. Pull requests are welcome, though :)


[RESOLVED] unsupported option '-fopenmp' on Mac OS X

Is Mac OS X supported?
I'm on 10.12 Sierra and get the "unsupported option '-fopenmp'" error after "make -j"

Actually, It is not tested on OSX now. Will fix soon

Maybe it'll work with Clang updated, I'll try.

hi, @Yorko , we currently doesn't have clear plan to support for OSX(but it should have). openMP is needed by lightGBM for building, please refer to https://clang-omp.github.io/ for the instuctions

I'll close this issue first, please feel free to reopen if the problem still there after installing OpenMP properly.

On mac os sierra, installing OpenMPI with with homebrew and following instructions still resulted in same error. Installing using C++11 mode and with C++ MPI bindings (these were flags for the homebrew recipe) did not fix the error.

hi @sooheon , i'm not quite sure that you are typo openMP - > openMPI which doesn't needed by lightGBM. i'm not quite sure that apple clang has openMP supported on sierra.

Compiling LightGBM with gcc-6 on OSX works:
brew install cmake gcc
cmake -DCMAKE_CXX_COMPILER=g++-6 CMakeLists.txt
make

Thank you I was indeed confusing OpenMPI and OpenMP

@bartleusink , thanks for your sharing

@bartleusink Thank you!
For me it finally worked.
If anybody's interested: I had to additionaly link brew to gcc
sudo chown -R $USER /usr/local/
brew link --overwrite gcc

@Yorko Hi. I tried doing the brew link --overwrite gcc and got this error
Error: No such keg: /usr/local/Cellar/gcc
do you know why?

Same problem as BeatricGR! Any ideas?

@BeatriceGR @ktorimaru
Use following command to install gcc in osx:
brew install cmake
brew install gcc --without-multilib

By the way, non-Apple LLVM works just fine, as well. Just use brew install llvm (that'll get 5.0, with OpenMP), and set up the environment for the compiler in /usr/local/opt/llvm.
In Sierra, with Apple Clang based on 3.9, and High Sierra, with Apple Clang based on 4.0, the OpenMP library is disabled. (even though the -fopenmp-targets option slipped through!)

Hi !
I'm trying to install gcc --without-multilib too, but the option seems to have disappeared from brew. The command given by @guolinke does'n work any more.
BTW, im on High Sierra, 10.13.1.
Any luck that you guys have a solution ?
Thanks,
Clovel

@Clovel  I can't install with option of "--without-multilib" too. But it's funny that, when I switch " gcc -fopenmp ... " into " gcc-7 -fopenmp ..." it works!
@piotrek1543   Thank you!

@Clovel
I can't install with option of "--without-multilib" either.
But it's funny that, after I changed " gcc -fopenmp ...... " to " gcc-7 -fopenmp ......", it doesn't return clang error and works!
@piotrek1543 Thank you!

Please have a look at :
https://stackoverflow.com/a/50313990/3465857

Can anyone solve my issue:
clang: error: unsupported option '-fopenmp'
I am totally new to terminal and want to use openmp but I am getting above error; I copied and run all the above commands (as mentioned above) but the problem persists. Currently, I am using high Sierra 10.13.6.

@itzzmeanmol , we're testing compiler with Clang.
would you give a shot of the latest instruction doc

I solved this problem by change c&c++ compiler.
Step 1: install gcc-5 (or higher version), command line:
brew install gcc@5
Step 2: switch c&c++ compiler:
follow this

brew install gcc --without-multilib

It generated this error:
Error: invalid option: --without-multilib

try with only -openmp...

So in cmakelist we should set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -openmp -std=c++17")?

@Yassunaga it works but why does specifying the version helps lol

@yinhaosen because calling Gcc defaults to clang on macOS. You need to call GNU gcc

Hi,
I have the same problem:
clang: error: unsupported option '-fopenmp'
If I do
brew install gcc:
gcc 9.2.0 is already installed, it's just not linked
gcc-9 -o omp_hello -fopenmp omp_hello.c
-bash: gcc-9: command not found
so
brew link gcc
but
Linking /usr/local/Cellar/gcc/9.2.0...
Error: Could not symlink bin/gfortran
Target /usr/local/bin/gfortran
already exists. You may want to remove it:
  rm '/usr/local/bin/gfortran'

To force the link and overwrite all conflicting files:
  brew link --overwrite gcc

To list all files that would be deleted:
  brew link --overwrite --dry-run gcc

But I need to use Fortran as well! Could you help me??
Kind regards,
Nico

After trying to run with gcc-9 I'm getting the following message:
"std::ios_base::Init::Init()", referenced from:       __static_initialization_and_destruction_0(int, int) in cczeen3H.o   "std::ios_base::Init::~Init()", referenced from:       __static_initialization_and_destruction_0(int, int) in cczeen3H.o   "std::cout", referenced from:       _main in cczeen3H.o   "std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:       _main in cczeen3H.o ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status
What can I do to try and run with the -fopenmp?

Try compiling your .c file using gcc-6
gcc-6 hello.c -o hello -fopenmp
The above command worked for me in my OSX-10.15.2(Catalina) machine after binging with this problem for days


Editable Row - Cancel Edit on All Rows?

If you have multiple rows in edit mode, is there anyway to cancel edit mode on all of them at once? If not, is there anything in $scope that would allow access to each form name for each row?

If you assign the same id to the cancel buttons for the row, you can do something like this:
$timeout(function() {
          angular.element(document.querySelectorAll("#cancel")).trigger('click');
      }, 50);

That works awesome! Why the timeout?

It's just something I copied from something similar I was doing.  Try it with out the timeout and see if it works.
Please close this issue if your issue is resolved.

Ok cool. Yeah if you remove the timeout you get a digest error. Thanks for your help!


Copy text selection from PDF adds extra line breaks where they don't belong

Link to PDF file (or attach file here):
http://research.microsoft.com/en-us/um/people/hiballan/pubs/ccs08-staledns.pdf
Configuration:

Web browser and its version: Chrome 54.0.2840.98 (64-bit) and Firefox 49.0.2
Operating system and its version: Mac OSX Sierra
PDF.js version: 1.6.210
Is an extension: no

Steps to reproduce the problem:

Open the referenced PDF
2.Try copying text from the article (I've just tried on the first page)
Paste somewhere else, and spaces are missing between most words.

What is the expected behavior? (add screenshot)
Copy the text from the pdf with spaces between words: EG first line in paper should copy as
This paper considers DoS attacks on DNS wherein attackers flood
What went wrong? (add screenshot)
This is what is copied
This
paper
consider
s DoS
attac
ks
on
DNS
wher
ein
attac
kers flood
Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension): Reproduced this using the github hosted version.
I have a pull request to fix this problem in the works.

Changing the absolutely positioned div's to span's would help text selection.

Just chiming in that this is not an issue with Chrome PDF viewer but is within Firefox. Proving difficult for at least a few users over here!

Pull request #7834 is a first attempt to resolve this, however it was never completely finished. It can be used as a baseline for a follow-up patch.

Would love to see this fixed. It's really impacting our users: https://getpolarized.io/ whom edit a lot of scientific PDFs

Facing same issue. Mozilla shows extra newlines while chrome removes even the one which are visible. Any solution please?


Fog culling too aggressively

Sandcastle - click Anchorage Area
This can be fixed by disabling fog: viewer.scene.fog.enabled = false;

@IanLilleyT you might have some more thoughts about fog culling here, I know this has come up in your work

You can't make the fog very dense if you also want to zoom out. It culls every tile except the one closest to the camera.

var viewer = new Cesium.Viewer("cesiumContainer", {
  shouldAnimate: true,
  terrainProvider: Cesium.createWorldTerrain(),
});
var scene = viewer.scene;
scene.globe.depthTestAgainstTerrain = true;
scene.camera.setView({
  destination: new Cesium.Cartesian3(
<PHONE_NUMBER>65404,
    5647834.481964232,
    2985563.7039122293
  ),
  orientation: {
    heading: 4.731089976107251,
    pitch: -0.32003481981370063,
  },
});
scene.fog.density = 0.005;


Errors when upgrading completion and generate endpoints to new engine

see comment: https://github.com/hatgit/forex-gpt/commit/1adfa1195dc8766f8a9eb53391aecb005c3ae7b2#commitcomment-117933300

the bpt-* models need to use openai.ChatCompletion.create method, instead of openai.Completion.create
completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"}
  ]
)

print(completion.choices[0].message)

https://platform.openai.com/docs/api-reference/chat/create

@pb30 now it is all clear why they weren't working, thank you!

Resolved with commit: https://github.com/hatgit/forex-gpt/commit/6bd9fa60b9e5afc9b0ed41646fba92b6d59c3ff0


IPython 4.0 support not on Hackage

When I follow the instructions and attempt to
ihaskell install

I get
Detected IPython, but could not parse version number.
ihaskell:
Ran commands:
which ipython
/usr/local/bin/ipython --version
which /usr/local/bin/ipython

Exception: ExitFailure 1

which makes no sense since the instructions say (or seem to me to say) that anything my current version of IPython (4.0.0 as reported by /usr/local/bin/ipython --version) is supported.
How can I proceed?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/25906551-ipython-4-0-support-not-on-hackage?utm_campaign=plugin&utm_content=tracker%2F332399&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F332399&utm_medium=issues&utm_source=github).

From #553, it looks like (say it isn't so) the current version of IPython is not supported! I'm not sure what to do (the documentation didn't mention this).
Will there be an update released soon? I'm not a developer and am not installing from source but will be using version available through Cabal.

We're still working out issues with jupyter 4.0. It may work if you install from github master. (I say may because it works for me but not everyone...)
(Where does it say ipython 4.0 is supported? Trying to make that happen ASAP but not yet officially true... )
What commit did you install?

IPython 4 was released only a few days ago :) so still trying to get stuff fixed for it. One man show here where the man was on vacation last week :)
Either install from source on github, install ipython 3 instead of 4 (recommended), or wait a few days (also recommended).
Installing an older version of ipytgon should be fairly easy, so I would go that route

I installed through Cabal.
The docs say to "Install IPython 3.0 or above" and then give instructions to execute
pip install ipython[all]

which installs 4.0.0.
Backing out to a different version or installing from source is not something I'm prepared to do, so I may have to wait. Any idea how long that will be?

I expect it will be a few days (a week at most). It is a high priority.
FYI using IPython 3.0 is fairly easy and I'm happy to help you downgrade for the time being if you would like. The three commands you need to run are
pip uninstall ipython
pip uninstall jupyter_core
pip install ipython[notebook]==3.0

(if you are on Mac you will need to put sudo in front of it)
After that you can verify that you are using IPython 3 by running ipython --version and getting 3.0.0, and running jupyter --version and getting a "command not found" error

Thanks! I think I'll wait (or maybe I'll give that a try if I get impatient). I look forward to the update.
I assume I'll know an update has been pushed when this closes. How long after that for it to appear as the Cabal version?
And: If I do back out to 3.0, what do I need to do to get back to the current IPython, just pip install ipython[notebook]?

I'll close this once a new version has been uploaded to Hackage.
If you back down to 3.0, and then want to get back to 4.0, just run
pip install ipython[notebook] --upgrade

(FYI by downgrading to 3.0 you will lose almost nothing. The user interface and experience and feature list between the two versions is incredibly similar. Unless you are a heavy user of IPython you would not be able to tell the difference at all, I think.)

Cool, thanks!

3.0 seems to work! I look forward to the update!

BTW FWIW, I had established a path to ihaskell by putting
~/Library/Haskell/bin

in /privat/etc/paths, which worked at the prompt but caused ihaskell install to fail with
Exception: ihaskell not on $PATH and not referenced relative to directory.

Replacing ~ with /Users/Rax solved the problem.
I'm not sure if that's an IHaskell issue or just a general property of paths in the OS.

BTW, on Mac OS X: the script macos-install.sh includes the command
    pip install -U 'ipython[all]'

Therefore, even if somebody had ipython 4, and backs out to ipython 3, running macos-install.sh will re-upgrade them to version 4, and the build will fail.

@duetosymmetry: Does that have any implications for the instructions @gibiansky gave? Can you elaborate? (Remember, I'm just using the basic "consumer" install, not dev builds.)

@orome there is no problem doing ihaskell install by hand.

Support should now be on Hackage. Let me know if there are more problems. They may still exist – it works for me but definitely needs more testing.

@gibiansky I've gone back to 4.0 as instructed above (pip install ipython[notebook] --upgrade followed by ihaskell install) and things seem to work well. The only differences I see are that on launching or creating a new notebook I get
Unimplemented message: CommOpen {header = MessageHeader {identifiers = ["88E40EE20B544E6E9C7CA12D7FF0A8F2"], parentHeader = Nothing, metadata = fromList [], messageId = UUID {uuidToString = "8FD3CBF8845145B8A09DF415A9DA83BD"}, sessionId = UUID {uuidToString = "88E40EE20B544E6E9C7CA12D7FF0A8F2"}, username = "username", msgType = CommOpenMessage}, commTargetName = "ipython.widget", commUuid = UUID {uuidToString = "5A9C56D29BA4451A9AF7B28CCF8346DA"}, commData = Object (fromList [("widget_class",String "ipywidgets.CommInfo")])}

and the warning
404 GET /static/components/codemirror/mode/ihaskell/ihaskell.js (::1) 8.25ms referer=http://localhost:8888/notebooks/Haskell/NotebookName.ipynb

not necessarily in that order.

@gibiansky And there's a big problem with formatting (not present in the previous version): #560.

The messages are expected. I don't know why IPython 4.0 sends them, though. I have a guess as to the cause of the formatting issues, will look into it. Thanks for filing issues.

Thanks.
(BTW, how do I display the IHaskell version being used by Jupyter? Is there a way to do that from within a notebook?)


[Bug]: No Matches Found:

What happened?
I am attempting to use the yt command for applying a pattern to a YouTube video.
I enter the following command with an example URL here:
yt --transcript https://www.youtube.com/watch?v=zBP2deuPQTg | fabric --model claude-3-5-sonnet-20240620 -sp extract_wisdom
I receive the following error in the terminal:
zsh: no matches found: https://www.youtube.com/watch?v=zBP2deuPQTg
The URL for the video is valid and contains a transcript.
I am working locally on a Mac with the latest version of Fabric.
Version check

[X] Yes I was.

Relevant log output
No response
Relevant screenshots (optional)
No response

It is not about fabric, but your shell, zsh.
"no matches found: ... " means zsh tries to match characters like *,?,....
I need to use quotation marks around the "url", because URL may have ? inside
try this:
fabric -y "https://www.youtube.com/watch?v=zBP2deuPQTg" --model claude-3-5-sonnet-20240620 -sp extract_wisdom


Mods >Stages Folder

What feature do you want to get added on the base engine?
I don't like how disorganized and messy things can get by just dropping the images into the mods images folder.
Adding a Stage Folder and another Folder with the stages assets inside, would be a nice update.
A stages folder in mods to make things more organized. A kin to Leather Engine
Leather Engine Example 1

Leather Engine Example 2

How Psych Engine Handle

To elaborate further i am stating that i would like to see a stages folder or have a directory that reads a "stages" folder in images to make it more organized.
as we know from a previous screenshot the normal way to add stages in psych engine is fine and convenient and works. however, my complaint is that it would be good to see the stages assets be read within a stages folder without hard coding if its possible, if not then thats fine but ye
.
What happens Normally when adding stage assets (without stages folder)
l
What happens when i add my own stages folder

To test your sight, and reliability, please select the option of what should NOT be requested.
A good idea

Or just make Stages folder in images, it's not that hard
You also failed the test

Or just make Stages folder in images, it's not that hard You also failed the test

what test?

To be fair adding a stage folder in images does not work when loading stages in the chart editor for the newest psych engine

I have a separate folder in /images for stages and never had any issues so idk what you're doing

I have a way better idea
How about having a stages folder, and to separate stages, you separate them by folders
(ignore nevada files, i was just testing something)

And inside of the folder of your stage, there could be images (where you store images duh), stage lua and json files, and pack.json

Now why would we need pack.json?
pack.json could contain stage name, and file names (names of files to read in order to implement lua and json code)

I have a way better idea How about having a stages folder, and to separate stages, you separate them by folders (ignore nevada files, i was just testing something)  And inside of the folder of your stage, there could be images (where you store images duh), stage lua and json files, and pack.json  Now why would we need pack.json? pack.json could contain stage name, and file names (names of files to read in order to implement lua and json code)

this is an interesting solution did you get it to work cause i didnt

i didn't make it work this is just a concept

dude just do makeLuaSprite('tag', 'folderInModsImages/imageInFolder' its that easy

ik but still it's a cool little concept i made

it didn't work for me

because I didn't make it work it's just a little idea I had for actual devs to make it

that's what I've been thinking about it for like 2 month idk


The cross to close product wrong alignment

What
The cross should be right aligned

I can look into this @M123-dev!!


Address feedback from Tor UX team

@lindanlee gave some very useful feedback on the web UI that I am going to summarize here.
web UI feedback

[ ] Put the text in a box so that the lines would be even. The uneven lines are disorienting.

[ ] Improvements to the Quiz prompt view

Comments:
I think that for a quiz like this, it would be better to not use T/F. It’s easier to read and easier to see what is being tested if there are text in the choices. I.e.:
When my measurements are published, they contain:
a) only anonymized information
b) potentially identifiable information

[x] Repetitive text when the answer is correct

[x] Repetitive text when the answer is wrong

[x] Shorten text in the Setup Sharing section

[ ] Ordering of the Setup Sharing options

[ ] The setup your tests section is inconsistent with the dashboard page

[ ] Get rid of information icon in the Setup your tests section

[ ] Better use of space below setup your tests section to indicate that a test is scheduled

[x] Fix bug in showing results for measurement (there should not be a tick when the row is red)

[ ] Do not use the work deck in the run tests page

Comments:
I don’t think that you need to use the word “deck” here, it’s a technical term that people have not seen before OONI; just saying “tor tests” seems fine to me.
If you only have one test, I don’t think that there should be two buttons. Running it is the same as running the whole deck, and it’s confusing because it’s not a deck. I say that you just put a blue button that says “run this test” for test decks with single tests.

[ ] Make the run button on the side

Comments:
I suggest that you make the run button a button to the side, similar to how it is in your mobile interface. That would make the interface more streamlined.

[ ] Make the view box red

Comment:
If this isn't done why isn't this at the top of the table.
I think just putting the icons would be sufficient especially since the test decks are labelled at the top. This text clutters the table in a bad way.
Comment:
Why are some test results shown in a new window
Comment:
What is the log page for.
I don’t think we discussed this in the design. We should talk about what this page is for and what you plan to do with it.
Here is the PDF with the comments:
ooni-web-UI-lindas-feedback.pdf
Mobile browser

[ ] It’s especially critical to reduce this text for mobile interfaces.

[ ] The Setup Sharing options are too crowded

[ ] The text in the Setup Sharing section is too big

[ ] The circle markers are too close to the action button

[ ] Improve presentation of test icons

[ ] Buttons are vertically arranged rather than all in the same row in the Dashboard

[ ] Table for the last 4 tests is too crowded

[ ] Footer should be in smaller font to appear all in one row

[ ] In the Measurements page the filter icons should be all on the same row

Here is the pdf with comments:
ooni-web-ui-mobile-browser.pdf

I am going to answer some of the comments above:

Put the text in a box so that the lines would be even. The uneven lines are disorienting.

The text is actually already wrapped inside of a responsive column. I can potentially make it a bit thinner, but that would still lead to it appearing "uneven". I think the issue here is that each paragraph is fairly short so it doesn't reach the right point to wrap around enough to make it appear inside the box.
I think putting them inside a smaller "box" would make the text too long in the following views, so I am not sure this would be the best way.

I think that for a quiz like this, it would be better to not use T/F. It’s easier to read and easier to see what is being tested if there are text in the choices. I.e.:
When my measurements are published, they contain:
a) only anonymized information
b) potentially identifiable information

One of the reasons of changing the Quiz to be T/F as opposed to multiple choice was that this way it was going to be easier to answer it. This was discussed already in the UX review, I personally think this is a good choice, but you should probably ask @ebdet2002  what he thinks of this and if you both agree on this point then I can change it.

Ordering of the Setup Sharing options

The reason why the options are ordered in this way is that they are ordered based on what are the settings that a user is most likely interested in changing (or the ones we want to encourage them to change).
The number one thing that users are likely to change is how the upload results, that is why it's first, followed by if they should include their network name. All the other settings we actually don't really want them to change them and so they are placed last.

The setup your tests section is inconsistent with the dashboard page

This was also discussed quite a bit when doing the mockups. The rational behind this is that there is a difference between what is the first start and what is the UI when it's initialized. Since the two UIs cannot possibly be the same (the onboard cannot have the ability to run tests because ooniprobe is not yet configured at this point) we decided to pose more enphasis on the action that is most likely to be done by users here (toggle a test).
I think that in the end this works well and is not too disorienting since there is an iconography based queue that links what is in the onboard to what they see in the run tests page (the clock icon).

Get rid of information icon in the Setup your tests section

Since the deck description can potentially be fairly long I think on hover balloon is not adequate. Moreover having it viewed when you click on it I think makes it more confusing as we don't usually show modals expect when you click on a button. This would be inconsistent with, for example, filtering based on clicking on the icon in the past measurements page.

Make the view box red

I am against doing this as I think it makes the UI more visually noisy. Buttons that perform the same type of action should always be of the same color. I am OK with changing the color of a button only if that button performs an action of a different class. I would expect a red button to do something dangerous.

Why are some test results shown in a new window

Some a shown in another page because they are multiple entry tests and what you are seeing is not actually the result, but just the listing of the results within that set of measurements.

The text is actually already wrapped inside of a responsive column. I can potentially make it a bit thinner, but that would still lead to it appearing "uneven". I think the issue here is that each paragraph is fairly short so it doesn't reach the right point to wrap around enough to make it appear inside the box.
I think putting them inside a smaller "box" would make the text too long in the following views, so I am not sure this would be the best way.

Oh, I didn't know that it was already in a responsive column. I don't have a specific preference on the size of the column, and I agree that we can't make it appear too long. But I do think that we should, in some way, find a way to make the text wrap uniformly. Not starting a new line for new sentences would be one step. I noticed that there was one line on the first page (on my screenshots) that only had one word, but there was more text on the next line.

One of the reasons of changing the Quiz to be T/F as opposed to multiple choice was that this way it was going to be easier to answer it. This was discussed already in the UX review, I personally think this is a good choice, but you should probably ask @ebdet2002 what he thinks of this and if you both agree on this point then I can change it.

You are right, it is easier to answer it. Mine would more more difficult to answer, but would require the user to pay more attention to their answers. Think of the copy as a cue for your buttons in the interface--I'm trying to do the same with the quiz answers. Some people just click answers without reading the question, and the T/F would not inform them as well, but my scheme would at least make them acknowledge what they are answering.
That being said, I respect your decision and am honestly fine with either. It is pretty good as is right now, and I may be micro-optimizing.

The reason why the options are ordered in this way is that they are ordered based on what are the settings that a user is most likely interested in changing (or the ones we want to encourage them to change).

This does make sense to me now--but this was not clearly communicated in any way to me. And as a new user, I don't think I would necessarily know that the first was the common thing to change. But then again, I haven't used OONI enough to say. I am now for this ordering.

This was also discussed quite a bit when doing the mockups. The rational behind this is that there is a difference between what is the first start and what is the UI when it's initialized. Since the two UIs cannot possibly be the same (the onboard cannot have the ability to run tests because ooniprobe is not yet configured at this point) we decided to pose more enphasis on the action that is most likely to be done by users here (toggle a test).
I think that in the end this works well and is not too disorienting since there is an iconography based queue that links what is in the onboard to what they see in the run tests page (the clock icon).

I see. It should be different to signal that they are doing different thing. Isabela and I thought it would not be immediately obvious as to what the toggle does and why they should toggle it, but we can't say for sure without asking the users.

Since the deck description can potentially be fairly long I think on hover balloon is not adequate. Moreover having it viewed when you click on it I think makes it more confusing as we don't usually show modals expect when you click on a button. This would be inconsistent with, for example, filtering based on clicking on the icon in the past measurements page.

Ah, I see. I would be for shortening the descriptions enough for them to fit into a balloon, and having a "read more" link to really thorough documentation.

I am against doing this as I think it makes the UI more visually noisy. Buttons that perform the same type of action should always be of the same color. I am OK with changing the color of a button only if that button performs an action of a different class. I would expect a red button to do something dangerous.

You're right. Red button does seem bad. But still, the colors look a little weird to me. Maybe we shouldn't make the whole row red? and have a column for detected anomalies/not and keep those red/green? I think that would look better.

Some a shown in another page because they are multiple entry tests and what you are seeing is not actually the result, but just the listing of the results within that set of measurements.

Oh, I see. I think that this is confusing, though, and would ask that you consider consistent site behaviors, even if the results are not homogenous (and use text/styling to differentiate different tests).

Oh, I didn't know that it was already in a responsive column. I don't have a specific preference on the size of the column, and I agree that we can't make it appear too long. But I do think that we should, in some way, find a way to make the text wrap uniformly. Not starting a new line for new sentences would be one step. I noticed that there was one line on the first page (on my screenshots) that only had one word, but there was more text on the next line.

We discussed this a bit with @ebdet2002 and came to the conclusion that the problem was that each sentence was placed inside of a new paragraph. Putting it all inside of the same paragraph makes it look a lot neater. We will go for this solution.

Ah, I see. I would be for shortening the descriptions enough for them to fit into a balloon, and having a "read more" link to really thorough documentation.

I am going to take note of this as a possible future improvements, but am not going to implement this for the moment as it would require reworking how we manage deck specific documentation and possibly adding support for in-app contextual documentation (I don't like the idea of redirecting users to our website to consume crucial ooniprobe related documentation)

You're right. Red button does seem bad. But still, the colors look a little weird to me. Maybe we shouldn't make the whole row red? and have a column for detected anomalies/not and keep those red/green? I think that would look better.

Yes, though this keying is used also consistently across desktop and mobile clients. I think we are going for the moment keep it as is and defer potential improvements to the results page to future work.

Oh, I see. I think that this is confusing, though, and would ask that you consider consistent site behaviors, even if the results are not homogenous (and use text/styling to differentiate different tests).

Yes you are right, I think in general all the test result viewing pages can do with quite a bit of improvements. I am going to again take note of this and defer this improvements to future releases.

I am going to take note of this as a possible future improvements, but am not going to implement this for the moment as it would require reworking how we manage deck specific documentation and possibly adding support for in-app contextual documentation (I don't like the idea of redirecting users to our website to consume crucial ooniprobe related documentation)

Got it.

Yes, though this keying is used also consistently across desktop and mobile clients. I think we are going for the moment keep it as is and defer potential improvements to the results page to future work.

Also reasonable.

Yes you are right, I think in general all the test result viewing pages can do with quite a bit of improvements. I am going to again take note of this and defer this improvements to future releases.

Again, I am fine with this, as long as this information isn't lost. Done is better than perfect!

I believe I have addressed all the addressable issues highlighted in your comments.
Please take a look at http://<IP_ADDRESS>:3000/ in case I missed something.
I did my best to improve responsiveness on mobile devices to the extent that it was possible to do so. That said mobile is not the main target platform so I think we should fix only things that are in the area of "ZOMG that is so broken" and not so much in the area of "it would look better if ...".

Thanks! I think you got all of the comments that we agreed upon to fix. Sweet!

I did my best to improve responsiveness on mobile devices to the extent that it was possible to do so. That said mobile is not the main target platform so I think we should fix only things that are in the area of "ZOMG that is so broken" and not so much in the area of "it would look better if ...".

I agree that this was the right course of action to do. But if we have some extra time in the future, we can throw some effort into this. It looks okayish for now and that's cool with me!

I am currently building a docker container with inside it the latest version of ooniprobe for you to try out.

@lindanlee @ebdet2002 A real ooniprobe with the new web UI lives here: http://<IP_ADDRESS>/client/#/

Great cooperation everybody! I wanted to chime in earlier but it seems you handled it yourself pretty well! :)

Closing this as implemented.


timeout while waiting for state to become 'available'

What happened?
While upgrading Aurora cluster to the newer version (major), pulumi crashes after an hour even that the cluster was available after ~10 mins.
Steps to reproduce
For me, it was just upgrading Aurora cluster (2 nodes: 1 reader, 1 writer) from engine version 13.6 to 14.4.
Expected Behavior
Aurora cluster upgraded without the issues.
Actual Behavior
After ~1 hour, pulumi crashes with the following error:
  aws:rds:Cluster (db-***)
    error: 1 error occurred:
	* updating urn:pulumi:uat::***::aws:rds/cluster:Cluster::db-***: 1 error occurred:
	* error waiting for RDS Cluster (db-***) to be available: timeout while waiting for state to become 'available' (last state: 'upgrading', timeout: 1h0m0s)

Even that the cluster is available and running in ~10 mins.
Output of pulumi about
pulumi v3.42.0
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Hi @sebastianfeduniak - thank you for reporting. Can you help us out with a little more detail?

Which version of the pulumi-aws provider are you using?
Does the behavior persist on a subsequent run of pulumi up? Specifically, you are seeing behavior where the cluster upgrades just fine on AWS, yet Pulumi times out on you - correct?
Can you supply us with the code you're using?

I suspect that this is at least somewhat related to upstream behavior

The issue looks stale by now. Since we don't have a good repro, I'll go ahead and close it. Please open a new issue with all appropriate details if the problem persists.


Having "row" control in jQuery Formbuilder

Hi,
I want to have control grouping ability in jQuery formbuilder something like "row" control in formeo. How can I use "row" in jquery formbuilder? Is it possible to move it there? because it is like architectures are different.

Thanks for your quick response. :(


doc: fix documentation url in README

Original link refers to gatling.io/docs/current/ and redirecting to docs.gatling.io/current/ (it is 404 now). Actual docs location is docs.gatling.io

I've fixed the 404 but updated the link can't hurt. Cherry picked, thanks!


Fix some code quality and bug-risk issues

Use literal syntax instead of function calls to create the data structure
Remove unnecessary comprehension
Remove assert statement from non-test files

Find the other issues found here - https://deepsource.io/gh/pnijhara/pydantic/issues/?category=recommended
This PR also adds .deepsource.toml configuration file to run DeepSource analysis on the repo with. Upon enabling DeepSource, the analysis will run on every PR and commit to detect 560+ types of issues in the changes — including bug risks, anti-patterns, security vulnerabilities, etc.
To enable DeepSource analysis after merging this PR, please follow these steps:

Signup on DeepSource with your GitHub account and grant access to this repo.
Activate analysis on this repo here.

You can also look at the docs for more details. Do let me know if I can be of any help!

please fill in the PR template and add a change description.
Is this a bot? If not, why did you think you didn't need to follow the template provided for pull requests?

Apologies for that!
Doing it right away.

no updates.

@samuelcolvin please reopen this PR. Sorry for the inactivity, I was busy with my exams. Can work on this now.
Want to open an issue regarding discussion for integrating deespsource at pydantic.

no reply, I'll re-open once these things are fixed.


Update webpack.dev.conf.js

Fixes "extract-text-webpack-plugin - loader is used without the corresponding plugin" when you run npm run dev

I haven't come across this error, how did this happen for you?
It's by design that css is not extracted in dev mode, and in dev mode, the extract loader should also not be applied.

I am not entirely sure what causes the problem, but when in dev environment, running npm run dev used to give me "extract-text-webpack-plugin - loader is used without the corresponding plugin", also this fixed the same problem to a group of friends.

Well then we schools investigate why that happens - simply adding this plugin even though we don't want to use it in dev mode is not an appropriate solution.
Would you be so kind to open an issue for th8s problem so we can track it? Thanks.

Of course, will do it as soon as possible 👍


Indicate to user that wifi will disconnect before scanning

When the user clicks the 'Scan' button in the wifi config page the wifi radio must disconnect from the network (if connected) before performing the scan.  The radio does not reconnect to the network after the scan.
At a minimum WaveForms Live should alert the user that the hardware will disconnect from the network.   We could also try to reconnect if the user leaves the modal without establishing a new connection.

Added tooltip to the 'Scan' button that says the device must disconnect from the network before scanning.
commit: f434bf8930be9af9e1b16d722b19bdea90c5bcbc


Silence TS warning for global window

As seen in
https://github.com/storybookjs/addon-google-analytics/blob/19246352db81e1cf9817e4db6c27b6eb5f437c2f/src/register.ts#L1-L8
(I haven't tested and this may not work!)

Thanks @kaelig!


Hide approve button if transactions are pending

Explanation of Change

Fixed Issues

$ https://github.com/Expensify/App/issues/53101
PROPOSAL: https://github.com/Expensify/App/issues/53101#issuecomment-2499418874
Tests

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."

Navigate to the Search page.
Search for an expense associated with an Expensify Card transaction that is still in a pending state.
Observe the expense row in the search results and there are no approve button

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

I don't know how to mock data on this platform

Android: mWeb Chrome

I don't know how to mock data on this platform

iOS: Native

I don't know how to mock data on this platform

iOS: mWeb Safari

I don't know how to mock data on this platform

MacOS: Chrome / Safari

MacOS: Desktop

https://github.com/user-attachments/assets/7ce87341-14a2-4ef6-8118-a4ce7482833f

I don't know how to mock data on this platform

You should be able to mock the data by adding the relevant Onyx.merge calls on the search page or add the data in the Search.ts action, e.g. under finallyData so it gets merged after the API request completes.

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

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

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.ts or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] For any bug fix or new feature in this PR, I verified that sufficient unit tests are included to prevent regressions in this flow.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@cretadn22 You have conflicts, and also please add the rest of the screenshots (see here on mocking data).

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


create spec file

[x] Separate the logic of creating spec file from run
[x] add this as a cli functionality, this can be useful for developers and for automatic actions
[x] remove the necessity of generate_spec.sh files in the apps directories

example usage, from the root dir of an apps repository:
protocaas make-app-spec-file --app-dir ./kilosort2_5/

the main.py file of the app:
import os
import protocaas.sdk as pr

try:
    import h5py
    import remfile
    import pynwb
    ...
except ImportError:
    # Do not raise import error if we are only generating the spec
    if os.environ.get('PROTOCAAS_GENERATE_SPEC', None) != '1':
        raise

app = pr.App(
    'kilosort2_5',
    help="Kilosort 2.5 spike sorting",
    app_image="magland/pc-kilosort2_5",
    app_executable="/app/main"
)
...

@luiztauffer I merged this and then I pushed a new commit that makes the naming consistent throughout: app_container and app_executable


Enable OAR team to set up and manage API access and limits AND grant access to staging.

@obrienad , @jwalgran , I believe we already have access to what we need for managing API requests. This would only be for granting staging access. Would this still be 3 pts in that case? If so, I think we will punt this to later.

This ticket was created in a rush at the end of our last estimation session and meant to cover:

This ticket was focused on documenting processes (that are currently scattered across admin / dashboard) and unify it with more UI.
Desire to have people's access persist when we refresh staging (identifying API partners in production)

So the three fits for that.