Beaufort Scale is not displayed in Battery Mode 3

Home Assistant Version?
2021.12.3
Add-On or Self Hosted?
Self managed Container
Weatherflow2MQTT version?
Latest Dev build
What happened?
When Tempest is in Battery Operating mode 3 only Wind speed, Wind Direction, Wind Bearing is displayed.  No avg, gust, or lull is sent from Tempest.  Beaufort scale is not calculated (shown as None).
I have not had a chance to review the code to see but I suspect that the Beaufort scale pulls from Average.
The Tempest documentation only states that wind reading frequency is reduced; this is not entirely true.  I have not got any average (speed or direction), gust or lull readings in over 18 hours.
This is my first experience with mode 3 so this is all new information.  I have posted in WF forum, I probably need to add that the documentation needs to be updated to clarify what is reported.
Just to note that the haptic sensor also does not report any data (this is correctly documented).
It does appear the Wind Speed is updated every 5 minuets.
Also not that the new issues template requires something be typed in by user in each block (even if it is already filled out like the HA version); this took me some time to figure out since there was something displayed in each box.  I would recommend not having defaults pre-filled-in if it still has to be typed by user.
Relevant log output
Not available from current location at this time; can submit when I get home if needed.

Thanks for reporting this Glenn. I fortunately have had the odd day with Sunshine, and managing to keep the Tempest at 0 to 1 battery mode. (One day with 2).

I suspect that the Beaufort scale pulls from Average

That is correct. So the Wind Speed from the Rapid Wind Event seems to update, is that what you see? We could then maybe use that value if battery mode is 3

requires something be typed in by user in each block

Good point on the Issue Template - I will remove the defaults.

The wind speed and bearing that would previously considered rapid are all that is received for wind.  There have been no outputs for (due to no inputs from WF):
Beaufort scale
Precipitation Type
Rain Intensity
Wind Bearing Avg
Wind Direction Avg
Wind Gust
Wind Lull
Wind Speed Avg
Rain Rate and Rain Today and Rain Duration (both today and yesterday) correctly (given no input) display a "0"; Rain Duration Yesterday shows 809mins (which is accurate until data from Tempest stopped)
When I get home I will make sure I capture the logs since I don't know if I will get back down to level 3.
I know I had to make assumptions for the Battery Mode since we didn't have all the data available; but I might work on some modification to take into account of lack of inputs to display Mode 3.  I've seen that battery voltage fluctuates which causes the calculation to sometimes state Level 2 when the Tempest is actually still in 3 (determined by lack of data).  I am at that thousandth of a volt fluctuation from/to 2.355 and 2.356.
Let me know if there is any other data that might be useful at this time.
There might be other delays in humidity and temperature but that is hard to tell if it is reduced or if they are not actually changing much.  I will see if logs can clarify.
Lightning might have issues:
Lightning Count (3 hr) = 0
Lightning Count = 0
Lightning Count (Last Hour) = 0
Lightning Distance = 0
Lightning Energy = 0
Last Lightning Strike = Unknown
The good news is that the error handling seems to be working perfectly.

Log attached for reference if needed:
wf.zip

It looks like the function
else cnv.beaufort(device.wind_average.m),

line 206 in sensor_description.py is what needs to change to:
else cnv.beaufort(device.wind_speed.m),

based off what I can tell from looking at pyweatherflowudp/mixins.py for wind speed

With a battery mode of 0 or 1, this would update the Beaufort Value more often, but I just checked a few sites to see if this should be calculated based on average wind or current wind, and there is no mention of that anywhere, so I guess there is nothing wrong with moving it to wind_speed

Would it be better in Mode 0 or 1 to use GUST and then in 2 and 3 (>1) use RAPID.  Ideally you want the peak wind speed, so GUST makes more sense.

I have posted a new dev build, that uses wind_speed from rapid wind, but falls back to wind_avg if no rapid wind for some reason.
Test it out, and let us know how this goes.

I won't be able to fully test until an unknown date in the future since we also got just enough sun in a day to get me from 3 back to 1 (not quite enough for 0).  I will be able to test for whatever current mode it is thou.

No problem. We will just leave this open for a while.

There might be a firmware change coming that changes the battery modes.  This is in response to my comment about the current Tempest battery mode documentation as not being completely correct.
"I have already forwarded it internally and it is indeed a bit dubious. Thing is there will soon be another update with the power saving modes that will change several things. For the moment they leave it as is and completely re write the new Power Safe Modes when coming life. For now we don’t annonce it yet as it is not fully definitive and some details can still change like many things, last minute finds.
I don’t have yet the ETA for this but hopefully soon."

Hi Glenn,
I will close this now. Please reopen next Winther if it is still a problem.

WeatherFlow update the documentation for Battery Mode and it just clarifies that ALL wind is affected by the reduced operating modes.
The 'info' button next to battery brings up the documentation.  I don't remember seeing it there and it may only show up in "Power Save" modes; I just happen to have drop to 2 an hour ago.     Everything does appear to function still.

I need to gather more data but in Mode 3 there is no:
Beaufort Scale
Wind Bearing Avg
Wind Direction Avg
Wind Gust
Wind Lull
Wind Speed Avg
Zambretti Number
Zambretti Text
No Lightning or rain detection
I will open a new issue but just documenting while I have the info.
Still get:
Wind Direction
Wind Speed
Only been in mode 3 for an hour; so I'm not sure what other calculations are affected yet.


stubs: fix Windows link

There is no icucore.lib in the official ICU distribution for Windows.
Remove the autolink directive for now.

Replace this paragraph with a description of your changes and rationale. Provide links to external references/discussions if appropriate.

Resolves SR-NNNN.

@swift-ci please test and merge

@swift-ci please test macOS platform


error: upgrade fun, simplify error handling

Thought I'd do one last bump of this, and make a few changes to take advantage of
I wrote up the following about the various error handling options.
(The other differnce between using ers.{Wrap,Join,Collect}. and
using %w is that the concatination of the errors with %w happens
in the format of the error itself, with the ers tools, it's a property
of ers.Stack (which underpins all of the ers/erc tooling?), so you
can disassemble a stack-based error and have each individual error be
tractable and usable?)

The basic overview is:

ers.Join (like errors.Join) combines a collection of errors,
however, rather than using a slice, it uses the ers.Stack, which
as a size-tracking linked list, can be used more incrementally and
has more intuitive Wrapping/Unwrapping sementics. Like errors.Join
this function drops nil errors, and returns nil when there are no
errors. Where errors.Join has a string output form that joins
constituent errors with a \n, ers.Join uses :  which is
consistent with the way we think about wrapped errors (and typically
format), it also reduces the amount of escaping that has to happen
in log output.

this ers.Stack is the same type that's been at the heart of the
erc.Collector forever, so things don't really change. While
ers.Stack isn't thread-safe, it's just a size-tracking linked
list, for errors (thereby avoiding the preallocation temptation,)
with helpers (e.g. Push/Add) much like the Collector.
Pros:

minimal overhead
good ergonomics (push/add ignore nil errors).
reasonable semantics, and tools (e.g. ers.AsStack and
ers.Unwind) to introspect error values.
respects Is and As interfaces, while also avoiding the
awkwardness of having an Unwrap method that returns a slice.

Cons:

Stack objects implement error, so if you return an error stack
as an error, it's non-nil even when it's empty. I'm going to add a
Resolve() method before merging this just to reduce confusion.
not in the standard library, (though fully compatible.)

erc.Collector just wraps the ers.Stack object with a mutex
(essentially,) and provides some higher level interfaces. The mutex
is useful for collecting errors from operations in different worker
functions. However, because the the collector checks to see if the
error is non-nil before taking the mutex, any mutex cost/contention
happens outside of the happy path.

Nothing that happens here uses it, but following from this
post the ers
package has an Error type which wraps string and makes it
possible to declare sentinel errors as constants. There are some
other goodies in the ers package: helpers to attach and access
timestamps from errors, the Wrap (eaiser than %w for common cases)
and When (for making errors conditional to avoid really verbose
aggregation forms) an their Whenf/Wrapf helpers that build their
strings lazily. A Strings() helper for converting a slice of
errors into a slice of strings (dropping nil errors), and some
panics-to-errors tooling.

(As always, fun doesn't have any non-stdlib dependencies, and the ers
package is upstream of (nearly) all packages in the fun module, and
the test coverage on this stuff is pretty darn good. While my impulse
is to fix problems or confusion with the API rather than let broken
semantics remain in the name of stability, the dependency and testing
will help avoid bit rot.)

I no longer have write access to this branch, and this is pretty stale, so I think the best course of action is to close it and let you all deal with this on your own timing/priority.


Add "buckets", "keys" and "get" CLI commands

Looks reasonable.
via https://github.com/boltdb/bolt/pull/402

/cc @jpbetz this fixes https://github.com/boltdb/bolt/pull/709

Thanks @heyitsanthony!


homebridge stop running after install Petcare plugin -> acc.pollStatus is not a function

After installing the plugin the Homebridge stop working, receiving this:
29.10.2020, 14:22:25 error: uncaughtException: acc.pollStatus is not a function date=Thu Oct 29 2020 07:22:25 GMT-0600 (Mountain Daylight Time), pid=12282, uid=1000, gid=1000, cwd=/home/hoobs/.hoobs, execPath=/usr/local/bin/node, version=v12.19.0, argv=[/usr/local/bin/node, /usr/local/lib/node_modules/@hoobs/hoobs/bin/hoobs, bridge, -u, /home/hoobs/.hoobs/etc, -p, /home/hoobs/.hoobs/node_modules, -r], rss=90099712, heapTotal=27697152, heapUsed=24316284, external=2322144, arrayBuffers=831242, loadavg=[0.12, 0.07, 0.02], uptime=342028
29.10.2020, 14:22:25 TypeError: acc.pollStatus is not a function
29.10.2020, 14:22:25 at /home/hoobs/.hoobs/node_modules/homebridge-sure-petcare-platform/index.js:67:25
29.10.2020, 14:22:25 at /home/hoobs/.hoobs/node_modules/sure_petcare/index.js:134:56
29.10.2020, 14:22:25 at Array.forEach ()
29.10.2020, 14:22:25 at /home/hoobs/.hoobs/node_modules/sure_petcare/index.js:134:33
29.10.2020, 14:22:25 at SurePetcareApi. (/home/hoobs/.hoobs/node_modules/sure_petcare/index.js:171:13)
29.10.2020, 14:22:25 at Request.self.callback (/home/hoobs/.hoobs/node_modules/request/request.js:185:22)
29.10.2020, 14:22:25 at Request.emit (events.js:314:20)
29.10.2020, 14:22:25 at Request. (/home/hoobs/.hoobs/node_modules/request/request.js:1154:10)
29.10.2020, 14:22:25 at Request.emit (events.js:314:20)
29.10.2020, 14:22:25 at IncomingMessage. (/home/hoobs/.hoobs/node_modules/request/request.js:1076:12)
29.10.2020, 14:22:25 at Object.onceWrapper (events.js:420:28)
29.10.2020, 14:22:25 at IncomingMessage.emit (events.js:326:22)
29.10.2020, 14:22:25 at endReadableNT (_stream_readable.js:1223:12)
29.10.2020, 14:22:25 at processTicksAndRejections (internal/process/task_queues.js:84:21)
29.10.2020, 14:22:25 Got SIGTERM, shutting down Bridge...

I seem to be having the same problem since updating plugins and home bridge to latest versions today.  Can developer fix please?

Hey guys, are you still getting this error? It's been a while so I'm curious if updates to homebridge have resolved this? Otherwise I'll need to investigate it a bit further.

Hi and thanks for reaching out.
Yes, still getting a problem.
I can send you an error log extract if useful.
David

On 13/04/2021, at 10:01 AM, Wylan Swets @.***> wrote:
Hey guys, are you still getting this error? It's been a while so I'm curious if updates to homebridge have resolved this? Otherwise I'll need to investigate it a bit further.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/wylanswets/homebridge-sure-petcare-platform/issues/16#issuecomment-818271262, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASJLHCB6M33IGH4A32VLQFDTINUT7ANCNFSM4TD3KREA.

Sure, whatever you can send me would be helpful!
I’ll see what I can do to resolve the issue.

I get this in the log - every few minutes
[4/14/2021, 10:18:53 AM] [homebridge-sure-petcare-platform] Loaded homebridge-sure-petcare-platform v0.1.7 child bridge successfully
[4/14/2021, 10:18:53 AM] Loaded 4 cached accessories from cachedAccessories.0EDA29422C6A.
Preparing Advertiser for 'homebridge-sure-petcare-platform FA11' using bonjour-hap backend!
Starting to advertise 'homebridge-sure-petcare-platform FA11' using bonjour-hap backend!
[4/14/2021, 10:18:54 AM] Homebridge v1.3.4 (homebridge-sure-petcare-platform) is running on port 46929.
/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/sure_petcare/index.js:171
callback(body);
^
TypeError: acc.pollStatus is not a function
at /usr/lib/node_modules/homebridge-sure-petcare-platform/index.js:67:25
at /usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/sure_petcare/index.js:134:56
at Array.forEach ()
at /usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/sure_petcare/index.js:134:33
at SurePetcareApi. (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/sure_petcare/index.js:171:13)
at Request.self.callback (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/request/request.js:185:22)
at Request.emit (events.js:310:20)
at Request. (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/request/request.js:1154:10)
at Request.emit (events.js:310:20)
at IncomingMessage. (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/request/request.js:1076:12)
[4/14/2021, 10:19:25 AM] [homebridge-sure-petcare-platform] Child bridge process ended
[4/14/2021, 10:19:25 AM] [homebridge-sure-petcare-platform] Process Ended. Code: 1, Signal: null
[4/14/2021, 10:19:32 AM] [homebridge-sure-petcare-platform] Restarting Process...
Initializing HAP-NodeJS v0.9.4...
[4/14/2021, 10:19:32 AM] [homebridge-sure-petcare-platform] Launched child bridge with PID 5339
[4/14/2021, 10:19:33 AM] Registering platform 'homebridge-sure-petcare-platform.SurePetcare'
[4/14/2021, 10:19:33 AM] [homebridge-sure-petcare-platform] Loaded homebridge-sure-petcare-platform v0.1.7 child bridge successfully
[4/14/2021, 10:19:33 AM] Loaded 4 cached accessories from cachedAccessories.0EDA29422C6A.

On 13/04/2021, at 10:57 AM, Wylan Swets @.***> wrote:
Sure, whatever you can send me would be helpful!
I’ll see what I can do to resolve the issue.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/wylanswets/homebridge-sure-petcare-platform/issues/16#issuecomment-818296253, or unsubscribe https://github.com/notifications/unsubscribe-auth/ASJLHCEA3XTYAJIB2KETOVLTIN3GFANCNFSM4TD3KREA.

Same thing here, latest plugin with homebridge v1.2.5
[5/24/2021, 17:22:25] TypeError: acc.pollStatus is not a function
at /usr/lib/node_modules/homebridge-sure-petcare-platform/index.js:67:25
at /usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/sure_petcare/index.js:134:56
at Array.forEach ()
at /usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/sure_petcare/index.js:134:33
at SurePetcareApi. (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/sure_petcare/index.js:171:13)
at Request.self.callback (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/request/request.js:185:22)
at Request.emit (events.js:314:20)
at Request. (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/request/request.js:1154:10)
at Request.emit (events.js:314:20)
at IncomingMessage. (/usr/lib/node_modules/homebridge-sure-petcare-platform/node_modules/request/request.js:1076:12)
[5/24/2021, 17:22:25] Got SIGTERM, shutting down Homebridge...

Same crash also happening with homebridge v1.3.4. Have to uninstall for now

Same here.


Fix CLI help description for db console

Taker: Team LEO
It's more issue of Thor than Lotus.
When performing 'bundle exec lotus db console --help'
Expected db console shows in description, however only db returns. The namespace :db is not taking into consideration

Here seems to be correct

@vinioliveira that is wrong, it should show lotus db console

In deed it's thor issue, see erikhuda/thor#464.
We may append the ancestor command to the description, while they don't fix it.
desc 'db console', 'start DB console'

@Linuus ping

@joneslee85 Sorry. I have been very busy lately with moving to a new apartment, celebrating easter and traveled to London for vacation :) I will take a closer look here soon!

@mymai91 @dondinhit please take on this

Sorry. But if someone else has time, please take it :)

@joneslee85 got you. Team Leo will resolve this issue. thanks Trung


Update README.md

Added EclecticIQ Platform (STIX/TAXII based Threat Intelligence Platform focus on investigations).

It took a while ...
Thank you! 👍


Revert "Move dependabot.yml into correct directory"

Reverts STEllAR-GROUP/hpx#6268
https://github.com/STEllAR-GROUP/hpx/pull/6265
Corrected the pull request and put the dependabot in the right directory.

Can one of the admins verify this patch?


[PIP 154] Max active transaction limitation for transaction coordinator

Status: Discussion
Author: Bo Cong
Pull Request:
Mailing List discussion:
Release: 2.11

Motivation
Currently, the transaction coordinator does not limit the number of active transactions, which may cause the following problems:

A large number of active transactions will put a lot of pressure on memory
The transaction that a single TC can handle is limited, so the active transaction cannot be expanded infinitely
End transaction should wait TP or TB recover success, so a lot end request will pending in TP or TB and TC don't kown the state of the TB or TP, it will wast a lot of resource of the machine. If there have a lot of TB or TP request in pending state, it will cause the OOM

Implementation
Add config
add maxActiveTransactions into broker.conf
# The max active transactions in one transaction coordinator
maxActiveTransactionsPerCoordinator=10000

How to handle the number of active transactions reach the maxActiveTransactions?
If reach the maxActiveTransactions, return the Exception to client. It has a lot of disadvantages:

broker should add a ReachMaxActiveTxnException, if reach the max active txn exception. client need try this exception then do op. every client will handle the ReachMaxActiveTxnException.
client receive this transaction will not stop open txn, because it don't know what time the TC will be recoverd. It will retry now. When the TC can't recover, the client will keep retrying. But this op is not make sense.

Design
When this op request reach the maxActiveTransactions, coordinator don't return any response for this request. ignore this request directly. In this way, broker don't need to add any exception for this config.
Let's we can see, how does this way will affect the client?
If broker don't return the reponse for this request, the op of open txn will timeout. and in coordinator client, it has a semaphore to control the op of txn(open, add produce topic, add ack topic, end txn). In the timeout time, the coordinator client only can open the number of semaphore txns. Any other request will be block. So this design slove this two problems:

don't need to add a exception
client will not infinite retry

Worries
If you are worried that this design will affect the client-side experience, because the open transaction will always time out and other txn op will be blocked. I think your worry is superfluous, At this time, you should consider increasing the performance of the cluster or find the problematic client to repair.
flow chart

Compatibility, Deprecation, and Migration Plan
maxActiveTransactions default = 0, if maxActiveTransactions will not block open txn
Test Plan
reach maxActiveTransactions client open txn will timeout
Rejected Alternatives
If reach the maxActiveTransactions, return the Exception to client. It has a lot of disadvantages:

broker should add a ReachMaxActiveTxnException, if reach the max active txn exception. client need try this exception then do op. every client will handle the ReachMaxActiveTxnException.
client receive this transaction will not stop open txn, because it don't know what time the TC will be recoverd. It will retry now. When the TC can't recover, the client will keep retrying. But this op is not make sense.

https://github.com/apache/pulsar/pull/15157 implement it


Can't see overlay with visualization_msgs::msg::Marker type

I created a MarkerLayer and PointLayer following your example.
Inside overlay function, I am using the same draw painter as below.
(just draw some fix point in the image)
However, I can only see circle from PointLayer but nothing from MarkerLayer.
I didn't receive any log message from rqt_image_overlay either.
  painter.translate(350, 550);

  painter.save();
  QPen pen = painter.pen();
  pen.setCapStyle(Qt::RoundCap);
  pen.setWidth(20);
  painter.setPen(pen);
  painter.drawPoint(0, 0);
  painter.restore();
  painter.translate(-30, -20);
  QString str = "(%1, %2)";
  painter.drawText(0, 0, str.arg(350).arg(550));

The screen shows Marker type is subscribed as well as Point type.
Please help me!

Hi @Keming-Ding,
I believe the point you are drawing (350, 550) is exceeding the height of the image. Could you try something like (350, 250)?


Stripe Api

Add Stripe so when the user start a room he pays a fee

Hey @jiftuq
We appreciate the feedback, but integrating third party services into this application is not on our roadmap. The React app is intended to provide a reference app for developers building out their Programmable Video solutions.
Thank you!


Memory leak after reopening connection

After closing and reopening the connection to devices again. There seems to be a memory leak. The memory used become doubled.

This is actually quite complicated.
The problem is that on reconnect, the mount-point is removed from the old yang, in order to handle upgrades.
That is, if a device is upgraded with new YANG, the new YANG should be installed and bound for the device.
However, the old yang may be used by other devices and also in an intermediate phase during a commit diff evaluation, the old yang is bound to running while the new yang is bound to candidate.
During the time when the old yang is still used it cannot be removed.
It can be removed when no references from any datastore XML cache uses it.
But this is non-trivial.
Maybe it could be solved by clearing caches.
The workaround is to restart the backend.


Is there a way to read multi-line input?

Not sure if this is something achievable at this moment so this could either be an inquiry or a feature reqeust:
I used readline in my project corgi, and I have found that when I paste a multiline input like
docker run -p 2181:2181 -p 9092:9092 \
--env ADVERTISED_HOST="<IP_ADDRESS>" \
--env ADVERTISED_PORT=9092 \
--env NUM_PARTITIONS="2" \
--env TOPICS="topic1,topic2" \
spotify/kafka

only the first line docker run -p 2181:2181 -p 9092:9092 \ was read.
Any idea about how to solve this?

found this https://github.com/chzyer/readline/blob/master/example/readline-multiline/readline-multiline.go, closing this issue


[T4A4][T11-B3] Tan Hong Yu

…mplemented the method in Address,Email,Name and Phone. Added getPrintableString in TextUi class

Accepting this PR without a review because another of your PRs for this tutorial was reviewed in detail.


Change flytekit Pytorch, TFJob and MPI plugins to use new kubeflow config

TL;DR
We have updated the plugin config in flyteidl and flytepropeller. This PR updates flytekit to uses the new configs for kubeflow plugins including: pytorch, tfjob and mpijob.
Type

[ ] Bug Fix
[x] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[ ] Smoke tested
[x] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
This change is backward compatible. If users continue using the old config like
@task(
task_config=TFJob(num_workers=1)
)
def my_task:
      ...

This still works.
However, the new config should look like:
@task(
task_config=TFJob(worker=Worker(replicas=1))
)
def my_task:
      ...

Tracking Issue
https://github.com/flyteorg/flyte/issues/3308

sorry for the extra bit of process, but can you update the requirements.txt file in each of the plugins? This is going to get rid of the plugin test errors in CI. Make sure to use python 3.9.

Updated to use python 3.9. I noticed all other plugins are using python 3.8.

sorry for the extra bit of process, but can you update the requirements.txt file in each of the plugins? This is going to get rid of the plugin test errors in CI. Make sure to use python 3.9.

Updated to use python 3.9. I noticed all other plugins are using python 3.8. build-plugins 3.8 tests will fail in this case

I apologize for flip-flopping on this. I checked the requirements files for the 3 plugins and couldn't see why it wouldn't work for python 3.8, so I took the liberty of regenerating the requirements files. Will merge after tests pass.


Example Github Pages site is served not from the master branch

Do you think we should switch it @le4ker?
In the past we often forgot to update the gh-pages branch.

I just switched it 😄

Be honest, was it because you saw the issue or because you were surprised that the deployed demo didn't update after you pushed? 😄


Make default resolve working with methods returning Async

After merging #20 to dev, default resolver builder will allow not only to access type properties, but also to call its methods. At the moment, weak point here is that it's not able to automatically capture context of returned Async<_> value.
The purpose of this task is to extend default resolve to correctly bind values returned as Async<_>.

I don't think we need it any longer.


Anaconda tensorflow-gpu faulty package?

Using conda install -c anaconda tensorflow-gpu yields the pre-installation message below, showing that cuDNN 7.6.0 will be installed against the TensorFlow GPU compatibility table. pip install does not include cuDNN. Further, I already have cuDNN 7.4.2 installed per official instructions with paths set up.
Either the compatibility table is outdated, or the Anaconda package is faulty - which is it?

UPDATE: proceeded w/ Conda install, it worked - but only after installing keras_applications and keras_preprocessing via pip. Thus, the compatibility table appears outdated.
I remain unsure how Conda's 7.6 install doesn't conflict with my manual 7.4 install, however.

The compatibility table tells us about the configurations which are tested and were able to build TF successfully. However it does not cover all successful build configurations but only a subset of it.
So the tested build configurations table is not outdated.
I will close this issue now since you are able to install TF. Thanks!

@ymodak While I've made an install, I now face a compatibility issue w/ Keras 2.3.1 - latter aside, my question on cuDNN compatibility remains: can cuDNN 7.4.2 installed from source, manually, run with cuDNN 7.6.0 installed by Anaconda (into a conda environment w/ TF2 install)? I can open a separate issue on this if needed.

We do not build anaconda packages ourselves.
Therefore, I am not sure.
Anaconda or the community may be building TF with different cuda/cudnn versions than we are doing, so that table there does not apply to what you download from anaconda.


on_var not called for variables in closures

The on_var callback seems to not be invoked for variables that appear in closures.
Rhai version: 1.18.0
Input
use rhai::{Dynamic, Engine};

fn main() {
    let mut engine = Engine::new();
    let shared_state = 173; // In reality, would be an Rc<RefCell<_>>

    #[allow(deprecated)]
    engine.on_var(move |name, _, _| {
        if name == "state" {
            Ok(Some(Dynamic::from(shared_state)))
        } else {
            Ok(None)
        }
    });

    engine.run("state").unwrap(); // variable found
    engine.run("fn f() { state }; f()").unwrap(); // variable found
    engine.run("|| state").unwrap(); // variable not found
}

Expected: the on_var callback to be invoked in all three cases.
Actual: the on_var callback is not invoked for the closure, resulting in a "variable not found" error.
Comments: This makes on_var ineffective for our use case. Our goal is to expose a single global "runtime" for use everywhere. User written scripts should be able to access methods like runtime.do_thing() anywhere in any script. Here's what we've tried overall:

Putting runtime as a Rc<RefCell<Runtime>> in a Scope. This makes runtime inaccessible inside Rhai fns, though, as documented.
Putting runtime as a Rc<RefCell<Runtime>> inserted via Engine.on_var(). This makes runtime inaccessible inside Rhai closures (this issue).

The final thing we'll try (if this issue isn't fixable) is to bind every method on Runtime as a function in Rhai. But wrap them all in a module, so that they're not all spilled into the global namespace (there may be hundreds of them all told).

That should not be.  I suspect a bug.  Let me try that out.

This is a relatively simple fix.  Do you need this fix urgently?  If so, I can release 1.18.1... otherwise you can pull from this repo until 1.19.0 comes out...

Do you need this fix urgently?

Nope! We got our test case working with a Rhai module and FuncRegistration instead.  We might (or might not) eventually switch to on_var instead, but not at all urgent.
Thanks for the quick response!

Thanks.  The fix has landed here.  You can pull from this repo to try it out.

Confirmed fixed!

Closing this for now.  Feel free to reopen if there are further problems.


Error reading relative path in tsconfig

Hi,
In my Nx repo, I have this simplified config
{
  "typescript": {
    "config": ["tsconfig.base.json", "{apps,libs}/**/tsconfig.json"]
  }
}

At the root of my workspace, I have a tsconfig.base.json and then every app/lib have their own TS configuration file that extends the base TS configuration.
So in /Users/jf/Documents/Projects/my-workspace/apps/my-app/tsconfig.json I have
{
  "extends": "../../tsconfig.base.json",
  ...
}

When I run knip, I get the following error: Error loading /Users/jf/Documents/tsconfig.base.json. knip is trying to read the tsconfig.base.json relative to the cwd, instead of the location of the apps/my-app/tsconfig.json file.

Can't seem to reproduce this. Code seems alright (it resolves from the dir of the tsconfig.json). Also just added this to the Nx fixture (see added commit referencing this issue). I think you can omit the "tsconfig.base.json" from the config, but that would probably not change much.
Can you share the repo or create a minimal reproduction?

Closing this due to inactivity and the fact I couldn't reproduce it.


updated URL reference

corrected URL https://github.com/MicrosoftDocs/SCCMdocs/blob/master/sccm/core/understand/upgrade-update-install.md

@daveRendon
Hi Dave. I am seeing that the link for Upgrade, Update and Install works properly from
the article: https://docs.microsoft.com/en-us/sccm/core/servers/manage/updates
Are you seeing that it is not?
The shorthand notation /sccm/core/understand/upgrade-update-install should work. We shouldn't point to GitHub URLs directly.

@mestew
Hi Megan,
If you go to https://github.com/MicrosoftDocs/SCCMdocs/blob/master/sccm/core/servers/manage/updates.md
and then click on the URL reference "About upgrade, update, and install" you will get a kindly 404:

https://github.com/MicrosoftDocs/SCCMdocs/blob/master/sccm/core/understand/upgrade-update-install
Could you please review? Appreciate your follow up on this, thank you!

@daveRendon
Hi Dave,
The root of the problem you see on GitHub is that a lot of times when we are specifying links in the docs, we drop the .md file extension. This is totally fine for docs.microsoft.com and the links works. This is the end result that we code to.
However, when GitHub auto-creates the blob link, it doesn't like not having the .md dropped. If you look at the raw markdown for the file, you can see sometimes we add the .md and other times we don't. When we do add the .md, the GitHub blob link is fine. https://raw.githubusercontent.com/MicrosoftDocs/SCCMdocs/master/sccm/core/servers/manage/updates.md
We typically don't write the docs for browsing from GitHub. Most of the users on here will just append  .md to the url or if needed or just browse to the file.

Closing this PR based on Meghan's response


Miner is not selecting a channel to watch sometimes

Not all channels that can earn drops are displayed in the list or cannot be selected (it's not about new bugs, it's always been like that.). If it is possible to implement manual input of the channel name - so that the application checks that it has the actual drops required by the user and starts collecting (or no checks, just forced operation with the specified channel) - it would be great.
I saw your comment about what the program is for and completely agree with you. Just as an idea for the future, "just in case".
Theoretically, this feature would be useful for collecting drops. Recently, SMITE added two different drop at the same time - one regular, another with limited skins for watching 5-6 channels. They were mutually exclusive (i.e. you won't get the first drops for watching those very "5-6 channels"). In that case, program duplicated the columns with the checkout. And apparently, if the first check is unsuccessful, then even if the second check is successful - channel cannot be selected for viewing. Thus, the necessary "5-6 channels" failed the first check for regular drops, and it was impossible to start collecting "special" drops from them (or maybe reason was different, but result was the same - channels were not selected)

Hello o/
All of this reads like you're using v15, which isn't stable for over half a year now, due to changes Twitch introduced since then. No manual channel input should be required, you should be able to select an applicable channel for mining, as long as it's online. "Force watching" a channel has no purpose if it isn't going to progress any drops, and if it is going to progress any drop, then the application will already have all information needed to figure out a channel it can watch to progress it.
That's the idea behind the miner. If it ever becomes impossible to figure out which channels can be watched to progress drops, only then I can start thinking about adding such option. Until then, I see no point.

I forgot to specify, version 16.dev, built kinda about May.
Maybe I didn't explain well enough what this functionality is for (I'm using a translator, sorry).
Normally, when mining starts, you have channels displayed as a table - channel, status, game, check, viewers, points.

In the case I gave for the example, SMITE had two drops running at the same time. The program duplicated some columns, as a result it looked like this: channel, status, game, check, game, check...

(I don't remember very well what is listed where, so I may have gotten confused about where what data is listed)
The gist of the example is that there are two drops for SMITE at the same time. The first channel is suitable for farming only the first drops. The second channel is for farming only the second drops. But the second channel is not selected in any way, although it fits the conditions, it has active drops on the desired game, and it is online. If you turn it on through the site - drops will be farmed. So everything is fine. It just doesn't pass some kind of check in the app or something.
Now for the reason I was talking about "manually entering the channel". I noticed that not all channels are showing up in the list, even though they are with drops connected. For example, I'm watching a stream, but decide to run the program, and I see that the streamer I just watched is not in the list (even though it's still online). So far I haven't had any problems with this - you just select another streamer and mine. But in the most unlikely situation, when the desired drops will be streamed by one or two people, which the program does not find / does not display - it will be sad).
Do I understand correctly that all program resources are executed only on the user's PC? I mean, why not make some kind of "I know what I'm doing" button for emergencies?

why not make some kind of "I know what I'm doing" button for emergencies?

Because that takes time, a resource which I'm already struggling with pretty hard. There's no point for me to spend time implementing a feature that isn't needed for the miner to work, I'd rather try and fix the already-existing logic of channel selection instead.

The program duplicated some columns, as a result it looked like this: channel, status, game, check, game, check...

This is impossible, as everything would break if there would be more columns than expected, especially ones with identical names. The existing logic cannot over-generate more columns either. It sounds like you're not really using the latest dev version, but some kind of a fork that's been modified by someone else - in which case, I cannot provide any support for you.
The "2nd channel" not being selected is also unlikely, as it works for everyone else (me included) but you. You seem to be confused about the GUI in some way, the channel has to be ONLINE and applicable to any of the campaigns you can claim a drop for, meaning you need to have your account linked as well.
Either way, without some actual pictures and/or logs from your miner instance, I cannot provide you any more help. Please show me what you actually see and what's happening.

Used a hand-build (without modifications) of your project, following your instruction. Built around May. https://github.com/DevilXD/TwitchDropsMiner/wiki/Setting-up-the-environment,-building-and-running
Does the app write logs by default? Only cache, cookies, and settings are in the folder. I don't have any screenshots from that time, unfortunately, and that old version doesn't work anymore. Today I upgraded to the current dev version, and will check sometimes for similar drops
I could be wrong with how I showed it in the picture, but truly at that point I could choose any streamer channel except couple vtubers with their own drop. For now, mining Rainbow Six - no problem... Let's hope I was wrong \ it's been fixed since the old version. And I'm sorry for the inconvenience - apparently there's no way I can provide proof of the issue.

Yeah, "built around May" sounds pretty old. The #264 issue that broke the miner recently, forced a Client ID change, so the miner is using an entirely different server flow now, which in itself broke a couple of other things, but those should be sorted now. Just give the latest development build a try and if everything works, I guess this can be closed.


CP(#3345) libftdi: disabling docs building to stabilize the build.

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[X] The toolchain has been rebuilt successfully (or no changes were made to it)
[X] The toolchain/worker package manifests are up-to-date
[X] Any updated packages successfully build (or no packages were changed)
[X] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
[X] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[X] All package sources are available
[X] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json)
[X] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[X] All source files have up-to-date hashes in the *.signatures.json files
[X] sudo make go-tidy-all and sudo make go-test-coverage pass
[X] Documentation has been updated to match any changes to the build system
[X] Ready to merge

Summary

CHERRY-PICK of #3345.
Package builds for libftdi are flaky and they are breaking every now and then on building their docs. Since the file the build complain about is auto-generated during the build, I am suspecting some incorrect configuration causing a race condition where sometimes the file is parsed before it's flushed to the disk. Since we weren't installing the generated documentation anyway, only building it, I am disabling it completely now to stabilize the build.
Change Log

Disabled building docs for libftdi.
Removed BR on doxygen.

Does this affect the toolchain?

No.
Test Methodology

Local package build.

Holding off on merging for now.


[WIP] Db correctness tests

I think this PR is ready for review keeping in mind the following changes I plan to make:

Similar in vein to PR 48, I want to incorporate finer grained testing to ensure states are correct after each individual call to the change handler, rather than ensure the state is correct at particular checkpoints as I do in this PR. Again, this will better enable us to ensure that success responses ALWAYS make it into the client’s state.

Incorporate @mastrolinux 's nifty Cypress commands/functions.

Increase the concurrency of some tests (increase it from 5 or 10 to 100). Higher levels of concurrency aren't working consistently right now -- I'm getting ServiceUnavailable's. Planning on investigating this.

Stress test 100k inserts, 50k updates, then 50k deletes.

Here's what the structure of the tests looks like:

Looks good but I have some advices.
Isn't better to use spy instead const changeHandler = function (items) {           changeHandlerCallCount += 1?
It is probably good to use fixtures to test bulk insert with few lines of code. https://docs.cypress.io/api/commands/fixture.html#Syntax
So we can save an entire db in a fixture, then reuse it in the tests to test transactions or bulk insert simulating a more real usecase than inserting arrays.
Everything else looks really nice


[BUG]: Login emails are badly generated resulting in SPAM mark

Describe the bug
Emails generated by asciinema have serious content issues resulting in them being marked as spam.
The issues concerning the email generation are:

MISSING_MID (2.5)
SUBJ_EXCESS_BASE64 (1.5)
FROM_EXCESS_BASE64 (1.5)
CTYPE_MIXED_BOGUS (1)
MIME_BASE64_TEXT_BOGUS (1)
HFILTER_URL_ONLY (0.390789) [0.17763157894737]
MIME_BASE64_TEXT (0.1)

The mail server for asciinema.org has an additional issue that I will report to the admin directly as per the guidelines.
To Reproduce
Steps to reproduce the behavior:

Log into asciinema.org (or your own instance)
See the login email
Open email source
See the X-Spamd-Result header

Expected behavior
These spam detection issues not being present
Versions:
asciinema-server: 20240515
Additional context
These values/problems were detected by rspamd.

[!Note]
From talking with docker-mailserver developers I get that those issues are serious and emails like this are intended to be marked as spam by spam filtering services.
https://github.com/docker-mailserver/docker-mailserver/issues/4007#issuecomment-2120441908

Hey @jiriks74, thanks for reporting.
I've now (with this commit https://github.com/asciinema/asciinema-server/commit/ac895d266db603cc68fd8f6c9f75708325d76410) switched the email client library (the previous one was rather unmaintained), and I believe this should improve things.
You can check it on asciinema.org already. I've inspected the raw email messages and they now include Message-Id, have no unnecessary Base64 encoding.
If you'd like to test this change against your email setup then, until I release a new version, you can build asciinema server container image from the develop branch.

Some small issues are still present but it's significantly better. The small issues are:

MID_RHS_NOT_FQDN (0.5)
HFILTER_URL_ONLY (0.421122) [0.19141914191419]
MIME_HTML_ONLY (0.2)

The first one may be cool to solve but the other two are not that big of a deal (it seems). One is that there's only HTML and not text in the email (fine IMHO) and the other is URL only in body which I don't even know what it wants (but it's only 0.4 points so it's fine).
The MID_RHS_NOT_FQDN has Message-ID RHS is not a fully-qualified domain name shouldn't be that hard to fix (from what I can see about this) and then you'd be under 0 with the points.
There's also the issue with your SMTP server that I emailed you about as it's specific to your (if you're<EMAIL_ADDRESS>server not this project. If you're able to fix the MID_RHS_NOT_FQDN and the issue I emailed you about you'll be under 0 with spam rating so your emails shouldn't ever get greylisted or even moved to spam!

Great fix! When do you plan the next release?

Chiming in here, your fix @ku1ik looks very good!
I concur with @jiriks74: MID_RHS_NOT_FQDN is not too bad (0.4 is not that much), but fixing it is probably a good idea. The rest is pretty harmless, and I wouldn't bother.

Thanks guys. This is super helpful. I'll fix MID_RHS_NOT_FQDN :+1:

The Message-ID is now improved in https://github.com/asciinema/asciinema-server/commit/5c84f04145dd2cebfc673b4decf52e4644a0020a . I think I'll stop here now :sweat_smile:

Great fix! When do you plan the next release?

I haven't planned a new one yet, but I suppose I could make one in a day or two.

LGTM! Looking forward to updating.

New release is out: https://github.com/asciinema/asciinema-server/releases/tag/v20240523


[8.x] Add a default timeout in the HTTP client

Please target 9.x.
This change will break an app I work on because it has API calls that last 3 mins (I did not design it 🙃).

A default timeout is a great idea. I've had queue workers get stuck because HTTP calls timed-out in a weird way (even though supervisor reported they were working fine).

A default timeout is sure a good idea, but shouldn't this be treat as a breaking change?

@themsaid I agree we should probably send this to 9.x / master.


Add the support of the BLMPOP command

This closes #1522.
This PR moves all the blocking-event related code to a upper class BlockedPopCommand, as all the blocking commands would share these utils.
If the BlockedPopCommand design gets accepted, I would try to refactor the other blocking commands, such as BLPOP, BRPOP and BLMOVE to reduce the code redundancy, just as commented by @git-hulk in previous discussion.
Any suggestions are welcomed.

Hi, thank you for your contribution.
Could you consider to rewrite it in our new helper class BlockingCommander?

@PragmaTwice seems we've done the same thing separately... Sure, I would refactor the code. As the design is very similar, it wouldn't take long.

@PragmaTwice refactored to use BlockingCommander.

@PragmaTwice A CI test case failed with Ubuntu 20.04, clang, TLS on. The test case is in the tls_test (no command logic involved?), and I try my best to try to reproduce the problem on my local environment (Ubuntu22.04, clang-16, TLS on), but the error could not be reproduced...
I'm not aware what I should do now, could you please help?

@PragmaTwice A CI test case failed with Ubuntu 20.04, clang, TLS on. The test case is in the tls_test (no command logic involved?), and I try my best to try to reproduce the problem on my local environment (Ubuntu22.04, clang-16, TLS on), but the error could not be reproduced...
I'm not aware what I should do now, could you please help?

It's a flaky test case, can ignore this failure for now. We're still investigating.


[CP Staging] Fix back navigation after delete expense request in search transcation pane RHP

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/44212
PROPOSAL: https://github.com/Expensify/App/issues/44212#issuecomment-2184915005
Tests

Open the search transaction page and view a report.
Press the three dots menu in the header and select "Delete expense."
If there is no reply in the report thread, verify that the right modal is dismissed and the app navigates back to the search transaction page.
If there is a reply, the app will not navigate back to the search transaction page.
Press the report header, then in the report details, click "Delete expense."
Verify that the behavior is the same as in steps 3 and 4.

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

Offline tests

QA Steps

Open the search transaction page and view a report.
Press the three dots menu in the header and select "Delete expense."
If there is no reply in the report thread, verify that the right modal is dismissed and the app navigates back to the search transaction page.
If there is a reply, the app will not navigate back to the search transaction page.
Press the report header, then in the report details, click "Delete expense."
Verify that the behavior is the same as in steps 3 and 4.

[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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[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 verified the translation was requested/reviewed 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.js 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] 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
https://github.com/Expensify/App/assets/114975543/4192362e-63f4-4485-b301-cd2df8f9dd59

Android: mWeb Chrome
https://github.com/Expensify/App/assets/114975543/671092d9-2018-4777-b602-422d5b8b6f2a

iOS: Native
https://github.com/Expensify/App/assets/114975543/2369e27e-05d8-4d3f-9660-171ff84b7079

iOS: mWeb Safari
https://github.com/Expensify/App/assets/114975543/822a0e31-c34d-4cae-aad2-e5d8d0992b5d

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/114975543/b319530f-2fb7-42ed-8279-a414377b77b7

MacOS: Desktop
https://github.com/Expensify/App/assets/114975543/3b92dd6a-1291-49ad-b10c-d98279ae04bf

@luacmartins The current behavior in the central pane report after a user deletes an expense is as follows: if there is a message in the transaction thread, the report won't be removed and will stay in that thread, not navigating to the parent report. If there is no reply, it will navigate to the parent report.
In my PR, the behavior is similar: when there is no reply, the modal will be dismissed to go back to the search page. If there is a reply in the thread, the modal will not be dismissed.
If we want to dismiss the modal regardless of whether there is a reply in the thread or not, I will make a modification.
https://github.com/Expensify/App/assets/114975543/30ac00e6-8bf3-472c-8d3f-6ffccc11aff4

@tsa321 I think that looks good for the purpose of this CP

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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] 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.js 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.
[ ] 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

When a expense report with comments is deleted from the Report Details Page, it should navigate to the expense report with comments. Currently, the Report Details Page remains on the right-hand panel (RHP).
Apart from this everything looks good to me.

: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.

🚀 Cherry-picked to staging by https://github.com/luacmartins in version: 9.0.1-18 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/yuwenmemon in version: 9.0.1-19 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Fix typo I've found while doing chap17

Thanks for opening this!
Seems like CI is failing because of a problem in my Github workflow - I'll look into it in the next day or two so I can get this merged.

@hatoo mind if I rebase this to confirm that it fixes the failing checks?

Rebased by rebase button

Thanks for your contribution!


SQL Editor syntax coloring

Hello!
This is the feature request.
It would be nice to support standard eclipse syntax coloring for sql editor.
When adding theme from Eclipse Color Themes, SQL editor doesn't recognize it correctly.

I would like request a more detailled coloring as well. For me as a tester, it is easier to read statements for Oracle. Toad for Mac also had own coloring for aliases, colums, tables and more (Screenshot attatched)

Eclipse Color themes support was added in 5.1.x. Now DBeaver supports all standard ECT colors.
However I'd recommend to use Darkest Dark extension (is is much more powerful than Eclipse Color Theme). DBeaver supports it as well.


Improve JSDoc such that ng build --prod with angular/cli 6.0.8 succeeds again

Fixes #8421.

Thanks for your comments. I've added some commits to improve the pull request.

Thanks @jkoelewijn.  We're working toward using TypeScript for type checking (see #8345).  I'm hoping that is what the Angular CLI uses too.  Otherwise, I think it will be hard to maintain a type syntax that doesn't break the ng tool.


Increase max. started KWs limit

With Jython v2.7 it's no more necessary to have the internal limit of 42. This could be increased to 100.
See #1961 for more details.

FYI: The new limit is now 98, because python acceptance tests fail when _started_keywords_threshold = 99 (with python's maximum recursion depth exceeded exception) , jython tests still pass.
Might be worth trying whether this limit is the same on other platforms.

I consider 98 too high if our tests fail with 99. There's so much variation with different platforms (OS, Python/Jython/IronPython, versions,  configs, ...) that we need a bigger safety margin.

my two cents worth:
this is probably caused by how the acceptance tests are executed i.e. with the python-test runner which takes it's share of the python's "recursion resources" - This would also explain why jython acceptance tests do not fail.
In a "real-life" scenario, i.e. starting tests with "python -m robot.run",  it fails around 120 started KWs,
Anyway, what's the conclusion? Update the PR or are you able to test it on other platforms and update the limit accordingly? At the moment I have only win8.1 here...

First of all, sorry for not responding sooner. Some comments about this topic below:

I haven't personally seen any cases where the current limit of 42 open keywords would be an issue. Do you have any you could show?

I'm fine increasing the limit if it is safe. Clearly 98 is not safe is 99 is too much.

We some somewhat special way to run tests, but also others have such non-started solutions and could easily encounter this problem. In other setups the limit could be even lower.

I don't have time to investigate this issue nor test it on different operating systems and with different Python implementations and versions.

I'm still against the idea to add a command line option or environment variable to control the limit. That can be reconsidered if you can show valid examples where this is a problem (see 1.) and we cannot safely increase the hard-coded limit.

No probs - this isn't really a burning issue...

see #1961:
"Yes, this was triggered by a recursive KW. In my case that recursive KW is used to analyse a text file that is generated by the SUT. Usually that file is small enough for that limit of 42, but sometimes (depending on the system load) the file is bigger and that 42 is not enough. I'm not expecting the recursion to be deeper than 150 or so."
okay
correct, this should be considered
okay, me neither :-)
okay, my use case was somewhat special. This is not an issue for me anymore (I moved that logic into a Library), and my workaround before the library implementation was to update that hardcoded value in my fork of RF. A bit cumbersome but works also...

Conclusion? Set the limit to something lower? 80?

I'm not sure how good example a recursive user keyword is:

Even if we raise the limit, you can easily exceed it.
In practice such keywords create so big output.xml files that you have other severe problems. It is much better to move the logic to a library like you did.

If we raise the limit, the new limit needs to be tested with all supported operating systems and Python interpreters. IIRC, there are tests for the current limit and updating and running them ought to be enough. Are you interested in it?

I don't have the possibility to run those test on different OSs and/or interpreters. I only have win8 (64-bit) environments at hand...

Assuming you have admin rights, you can install Linux to a virtual machine. OSX ought to be close enough to Linux in this regard so we can ignore it. This kind of change should be tested at least with Python 2, Python 3, Jython, IronPython (only Windows) and PyPy, so there's anyway quite a lot to test. I don't think that's worth the effort, especially when we already know that we cannot raise the limit that much. If you disagree, please reopen the issue or submit a new one.

The limit will be increased in RF 5.0 (#4191).

RF 7.2 changes recursion prevention so that instead of there being a hard limit of started keywords and control structures, execution is stopped if we are close to Python's recursion limit (#5272). On my system this change raised the allowed number of started keywords and control structures to roughly 150. If that's not enough, you can increase Python's recursion limit to allow even deeper recursion.


replaced unit tests with http tests to provide coverage for proxied requests support

As indicated in my last pull request, I've replaced the simple unit tests with more substantial http tests.
Let me know if you have any comment!

thank you @fboyer


Update MSI packaging for new version

https://github.com/PowerShell/PowerShell/blob/master/build.psm1#L2071
We need to consider what combinations of productCode and upgradecode needs to be changed for 6.1
As @bergmeister  noted, ProductCode is automatically changed:

... the productCode is always a new Guid when being called fromStart-PSPackage higher up here.

See the docs about preparing an upgrade: https://msdn.microsoft.com/en-us/library/windows/desktop/aa370837(v=vs.85).aspx

PowerShell/PowerShell-RFC#115 is addressing this


azd up went wrong when choosing existing apic resource

Describe the issue:
Run azd up and select an existing api-center resource, the provision process fails as below:

Repro Steps:

Run git clone https://github.com/Azure/APICenter-Analyzer.git
Run cd APICenter-Analyzer
Run azd up and input the name and resource group of an existing apicenter

Environments:

azd version: 1.9.3 (commit e1624330dcc7dde440ecc1eda06aac40e68aa0a3)
os: windows

Suggestion:
Update the output of APIC_NAME in main.bicep to output APIC_NAME string = createAPIC ? apiCenter.outputs.id : apiCenterName
@justinyoo, @hemarina for notification.

@dotnet-7 Thanks for the finding! Let me double check on my end.

@dotnet-7 I wasn't able to reproduce the error. Would you please double check whether the APIC instance named apicenter exists under the same subscription?

@dotnet-7 Apart from that error, your bicep change request is valid. I'll update it.


Volume

Hi Greg,
Great Work.
How can we add realtime volume updates to this script?
Thanks in advance.

Hey there! Great idea, I'm working on implementing that functionality right now - it's part of an overhaul of the code that gets the price-change data.
Link to the issue (if you want to keep track of progress): https://github.com/gregtuc/StockSocket/issues/19

After decoding Yahoo's websocket traffic, it seems like no real-time volume information is sent by them. The only real-time stock properties that can be received are as shown below:

If you need stock volume information, I recommend polling Yahoo with an HTTP GET request - you will get responses containing a JSON object with tons of information about the stock.
URL (switch TSLA for whichever stock you want): https://query1.finance.yahoo.com/v8/finance/chart/TSLA?region=US&lang=en-US&includePrePost=false&interval=2m&useYfid=true&range=1d&corsDomain=finance.yahoo.com&.tsrc=finance

Sweet work,
For some reason i think the live update to the volume information is only available during market hours.
Will confirm once the market opens but i recall seeing live volume updates.
Cheers

@marikiti-project You're right! Volume info sent during market hours. Pic of info at 10am ET:

changes made and published


Trigger of OnCeremonyPhaseChange in the sidechain

Fix issue #11

OnCeremonyPhaseChange is triggered when the current ceremony phase has changed.
The current ceremony phase storage is updated upon block import. The update upon execution of trusted calls is no more needed.
For now, the state update upon block import is only done for new shards. I haven't changed it, but update the ceremony phase storage, if this has changed for every shards.
Add a command to manually trigger the next ceremenoy phase on the node. This can be only called by SUDO

I don't understand the PR description :

For now, the state update upon block import is only done for new shards. I haven't changed it, but update the ceremony phase storage, if this has changed for every shards.

Can you be clearer what you mean?

If I understand correctly, the state update upon block import is done here : https://github.com/encointer/community-sidechain/blob/254fe8403eb9bed43639ec8bf02178671dc11c6b/core-primitives/stf-executor/src/executor.rs#L233. This means that it is only done for new shards https://github.com/encointer/community-sidechain/blob/254fe8403eb9bed43639ec8bf02178671dc11c6b/core-primitives/stf-executor/src/executor.rs#L216. For the synchronisation of these new shards?
The state update upon block import is not really implemented for now. I just added the requested storage update for this task in order not to affect the performance and wanted to make you aware of this with this description


Change values to maximum Integer and Long sizes

It is a small change, possibly unnecessary, just to ensure that no error occurs.
I appreciate if you could review it.

It is a small change, possibly unnecessary, just to ensure that no error occurs.
I appreciate if you could review it.

I recommend using Integer.MAX_VALUE and Long.MAX_VALUE

It is a small change, possibly unnecessary, just to ensure that no error occurs.
I appreciate if you could review it.

I'm sorry, but setting the maximum possible number is not the best way, as other mods that increase this number will cause many problems.

Thank you very much for trying to help.


Adding serde support?

The crate dependency hashbrown already provides serde support, but why doesn't evmp provide support for serde?

It's just not entirely clear how it'd be provided, since you'd be blocking writes while serializing. There are also some questions around refreshing. I think now that we have MapReadRef, that's at least an obvious thing to implement Serialize for, and it should be decently easy using this guide. Deserialize is trickier. I guess we'd deserialize into a tuple of a read and write handle, though we'd probably need a newtype wrapping that tuple to be allowed to implement the trait.
Happy to take a look at a PR if you have some time!

Thanks for the reply, I just want to save the Map to a file and recover it. I would like to provide an API to destroy Reader and Writer to get the hashbrown object for serialization

I tried to implement this one structure.
{
    reader:evmap::ReadHandle<Vec<u8>,Key>,
    writer:evmap::WriteHandle<Vec<u8>,Key>,
    read_ref:evmap::MapReadRef<'a,Vec<u8>,Key>,
}

I think we should follow the implementation in std and return an object. Then get the Reader and Writer from the object.

Giving a way to destroy the map to take ownership of the underlying map will probably be difficult in practice. Is there a reason why implementing Serialize for MapReadRef wouldn't be sufficient for you? Coupled with an implementation of Deserialize for (WriteHandle, ReadHandle)

But that seems like a lot of work, so why not try building a map object and getting the Reader and Sender from it, so we only need to implement Deserialize once for map?

It shouldn't be a lot of work — especially compared to finding a way to safely get an owned version of the underlying map. Implementing Serialize for MapReadRef should be fairly trivial. Deserialize should also be pretty easy, since you can just deserialize into a hashbrown::HashMap, and then use that to create the (WriteHandle, ReadHandle).
I'm not sure what you mean by a map object?

In other words, we should allow the reader and sender to be retrieved from evmap::MapReadRef instead of evmap::new. This way we can serialize MapReadRef directly.

I'm not sure what you mean by "reader" and "sender"?
You can implement the Serialize trait for MapReadRef pretty easily by just following this guide.

Sorry, I may not have been clear enough. I use Reader for evmap::ReadHandle, Sender for evmap::WriteHandle, and object for evmap::MapReadRef. Sender`, but delayed acquisition

So, you cannot get a WriteHandle from a MapReadRef or from a ReadHandle — that just will never be safe. You can get a ReadHandle from a WriteHandle without too much trouble. You can also trivially get a MapReadRef from a ReadHandle.
I don't know what you mean by "delayed acquisition", nor why an "object" idea is helpful?
Implementing Serialize for MapReadRef means that you can serialize without having to hold the WriteHandle, which is a huge advantage. Deserialize could, I suppose, just generate a WriteHandle, though it seems more natural for it to produce a (ReadHandle, WriteHandle) the same way new does.

Yes, I want to get ReadHandle and MapReadRef from WriteHandle, and only generate WriteHandle when new! WriteHandle,ReadHandle or MapReadRef.

Yes, I want to get readhandle and mapreadref from writehandle. And generate only writehandle when new! However, in order to prevent writehandle from being abused, it should be packaged as "MapObject", and then get writehandle, readhandle or mapreadref from "MapObject".

Next, we implement serde only for MapObject and lock the HashMap during serialize

WriteHandle already dereferences to ReadHandle, so getting a ReadHandle is trivial. You can then clone that to get a new one. And once you have a ReadHandle, you can get a MapReadRef by calling ReadHandle::read.
I don't understand what you mean by "prevent WriteHandle from being abused"? What kind of abuse are you thinking about? And why would wrapping it with a ReadHandle (and a MapReadRef?) make a difference?
I also still do not understand why implementing Serialize just for MapReadRef isn't the optimal choice? MapReadRef is already pinning the write handle. It is true that you're not guaranteed to see the latest writes, but that's an application decision that we shouldn't enforce. If the application wishes the serialization to have the latest state, it should simply call refresh before serializing.
For Deserialize, I'm fine with it just being implemented for WriteHandle too. I don't see the value in a MapObject type?

I've read the documentation carefully and I seem to have found the method. I just need to implement serde to WriteHandle and I'm good to go. Thank you, I will submit this code to you when I finish testing ♥!

Again, we should implement serde::Serialize for MapReadRef, not for WriteHandle.
Deserialize on the other hand should be implemented just for WriteHandle. We could also implement it for (ReadHandle, WriteHandle) for convenience.
Happy to look at what you come up with!

How to convert evmap::WriteHandle to evmap:: readhandle?I'm implementing serde::Serialize  for evmap:: writehandle

[https://docs.rs/evmap/11.0.0-alpha.1/evmap/struct.WriteHandle.html#method.read](Struct evmap::WriteHandle)
I'm confused about this document

You should not implement Serialize for WriteHandle, you should implement it for MapReadRef :)

If you want to save HashMap to enum and implement serde for enum.How can this be handled?I don't know how to store HashMap right now. Should I save WriteHandle, MapReadRef. or build a tuple?

Why is an enum needed? You should just follow this guide to implement serde::Serialize directly for MapReadRef.

Hello,Jonhoo.I had some problems and I couldn't understand why evmap provided evmap::Values
.Is it because evmap is ultimately consistent?That is, we may have to wait for them to execute WriteHandle:: refresh during serialization operations?I look forward to your help

multiset means multiple identical copies, if so.We just need one value!

evmap::Values is there because there may be many (different) values for a given key in evmap, and we use different backing storage depending on how many there are. You'll probably want to implement Serialize and Deserialize for evmap::Values simply using a sequence (which I think is also explained in the same linked guide).


fastlane frameit - wrong image output settings

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
frameit output the wrong format and has either transparency or alpha in it, iTunes Connect denied the upload.
Environment
🚫 fastlane environment 🚫
Stack

Key
Value

OS
10.13.1

Ruby
2.3.3

Bundler?
false

Git
git version 2.15.0

Installation Source
/usr/local/bin/fastlane

Host
Mac OS X 10.13.1 (17B1003)

Ruby Lib Dir
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib

OpenSSL Version
LibreSSL 2.2.7

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode_8.3.3.app/Contents/Developer/

Xcode Version
8.3.3

System Locale

Variable
Value

LANG
en_US.UTF-8
✅

LC_ALL
en_US.UTF-8
✅

LANGUAGE

fastlane files:
`./fastlane/Fastfile`
# Customize this file, documentation can be found here:
# https://docs.fastlane.tools/actions/
# All available actions: https://docs.fastlane.tools/actions
# can also be listed using the `fastlane actions` command

# Change the syntax highlighting to Ruby
# All lines starting with a # are ignored when running `fastlane`

# If you want to automatically update fastlane if a new version is available:
# update_fastlane

# This is the minimum version number required.
# Update this, if you use features of a newer version
fastlane_version "2.69.2"

default_platform :ios

platform :ios do
  before_all do
    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
    cocoapods
    # cocoapods
  end

  desc "Runs all the tests"
  lane :test do
    run_tests
  end

  desc "Submit a new Beta Build to Apple TestFlight"
  desc "This will also make sure the profile is up to date"
  lane :beta do
    # sync_code_signing(type: "appstore") # more information: https://codesigning.guide
    build_app(scheme: "DZIDE")
    upload_to_testflight

    # sh "your_script.sh"
    # You can also use other beta testing services here (run `fastlane actions`)
  end

  desc "Capture screenshots"
    lane :screenshots do
    capture_screenshots
  end

  desc "Deploy a new version to the App Store"
  lane :release do
    # sync_code_signing(type: "appstore")
    capture_screenshots
    build_app # more options available
    upload_to_app_store(force: true)
    # frame_screenshots
  end

  # You can define as many lanes as you want

  after_all do |lane|
    # This block is called, only if the executed lane was successful

    # slack(
    #   message: "Successfully deployed new App Update."
    # )
  end

  error do |lane, exception|
    # slack(
    #   message: exception.message,
    #   success: false
    # )
  end
end

# More information about multiple platforms in fastlane: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
# All available actions: https://docs.fastlane.tools/actions

# fastlane reports which actions are used. No personal data is recorded.
# Learn more at https://docs.fastlane.tools/#metrics

`./fastlane/Appfile`
app_identifier "it.dzide.user-app" # The bundle identifier of your app
apple_id<EMAIL_ADDRESS># Your Apple email address

team_id "Y2CWHTLMGQ" # Developer Portal Team ID

# you can even provide different app identifiers, Apple IDs and team names per lane:
# More information: https://docs.fastlane.tools/advanced/#appfile

fastlane gems

Gem
Version
Update-Status

fastlane
2.70.0
🚫 Update available

Loaded fastlane plugins:
No plugins Loaded
Loaded gems

Gem
Version

did_you_mean
1.0.0

slack-notifier
1.5.1

CFPropertyList
2.3.5

claide
1.0.2

colored2
3.1.2

nanaimo
0.2.3

xcodeproj
1.5.3

rouge
2.0.7

xcpretty
0.2.8

terminal-notifier
1.8.0

unicode-display_width
1.3.0

terminal-table
1.8.0

plist
3.3.0

public_suffix
2.0.5

addressable
2.5.2

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.6.3

babosa
1.0.2

colored
1.2

highline
1.7.8

commander-fastlane
4.4.5

excon
0.59.0

faraday
0.13.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20170404

http-cookie
1.0.3

faraday-cookie_jar
0.0.6

fastimage
2.1.0

gh_inspector
1.0.3

mini_magick
4.5.1

multi_json
1.12.2

multi_xml
0.6.0

rubyzip
1.2.1

security
0.1.3

xcpretty-travis-formatter
1.0.0

dotenv
2.2.1

bundler
1.16.0

faraday_middleware
0.12.2

uber
0.1.0

declarative
0.0.10

declarative-option
0.1.0

representable
3.0.4

retriable
3.1.1

mime-types-data
3.2016.0521

mime-types
3.1

little-plugger
1.1.4

logging
2.2.2

jwt
2.1.0

memoist
0.16.0

os
0.9.6

signet
0.8.1

googleauth
0.6.2

httpclient
2.8.3

google-api-client
0.13.6

json
2.1.0

io-console
0.4.6

libxml-ruby
3.0.0

generated on: 2017-12-19

This has nothing to do with code signing

Could you share some more information, ideally some samples images, so that we can reproduce the issue?

I had some previously made screenshots created with the native xcode simulator and wanted them to be automatically framed by frameit. When I tried to upload them manually, iTunesConnect declared that the Screen Specifications are not right and has transparency in it.
For Example:
5.8 Inch Display output was 1295 × 2590 but has to be 1125 x 2436 for portrait.
5.5 Inch Display output was 1446 × 2950 but has to be 1242 x 2208 for portrait.
(See http://help.apple.com/itunes-connect/developer/#/devd274dd925)
this may have been caused because my initial shots had 1242 × 2208 before framing.
I don't know if this will be fixed or maybe bypassed during the fastlane upload, but it would be definitely great if the user could use a single tool from the fastlane toolbox on its own.

So you give frameit a file of 1125 x 2436 and it outputs a file 1295 × 2590, and input 1242 x 2208 = output 1446 × 2950?

Yes, Right! So the output is not matching the Apple guideline

Yep, afaik the screenshots being framed should be zoomed out / made smaller so the file dimensions stay identical.
What command exactly are you running? Can you share one of these files?

These are some example. I put the init dimensions as a title, check the framed dimensions they are changed.

These are some example. I put the init dimensions as a title, check the framed dimensions they are changed.

terminal command: fastlane frameit (in screenshot directory)

https://docs.fastlane.tools/actions/frameit/#usage

When using frameit without titles on top, the screenshots will have the full resolution, which means they can't be uploaded to the App Store directly. They are supposed to be used for websites, print media and emails. Check out the section below to use the screenshots for the App Store.

So I think this might actually be expected behaviour.
To get App Store screenshots you probably could add a white background with 0 padding and not text? Not sure, but that is what I would try.

even with a Framefile.json this is not working. I got the same dimension output as described above.
Framefile.json:
{   "device_frame_version": "latest",   "default": {     "show_complete_frame": false,     "stack_title": false,     "background": "./background.jpg",     "padding": 0   },   "data": [] }

Ok, but you agree that the docs indicate that without Framefile you are getting what is documented?
Now on to the framefile: Can you test with padding and some text?


Polybase through Azure Data Factory

Please clarify what is meant by "You can do Polybase using Azure Data Factory".  My assumption is that means Azure Data Factory can be used to get data from Blob storage into a Hyperscale database, but that we will not get the CTAS-like Polybase load performance that happens when you use Azure Data Factory to load into Azure SQL Data Warehouse.  In which case, it would be nice to get some metrics on load performance once they are known.

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

ID: 418c8458-948a-4549-fbaa-90a17cd345ee
Version Independent ID: b5635e09-241c-0eea-61cd-bfef388af124
Content: Azure SQL Database Hyperscale FAQ
Content Source: articles/sql-database/sql-database-service-tier-hyperscale-faq.md
Service: sql-database
GitHub Login: @CarlRabeler
Microsoft Alias: carlrab

@ibTnJohn Thank you for your feedback . We will investigate and update further.

@ibTnJohn In looking through this issue, there are a couple of items to be discussed. One of which is the ask to enhance the data with load metrics and, the second is just a point regarding CTAS-like Polybase load performance.
If Polybase is a seamless and transparent runtime, wouldn't it really make any performance difference if Polybase is initiated manually via T-SQL in SSMS versus Azure Data Factory?

To keep things simple, PolyBase does not require you to install additional software to your Hadoop environment. You query external data by using the same T-SQL syntax used to query a database table. The support actions implemented by PolyBase all happen transparently. The query author does not need any knowledge about Hadoop.

If there are differences then these should be called out.

It is a best practice to load Azure Data Warehouse using Polybase, which is supported either through the CTAS T-SQL syntax, ADF using Polybase staging and loading, or SSIS Azure SQL DW Upload task. Using Polybase with any of these drastically improves the performance over traditional bulk insert. My question is: "Does using Polybase in ADF to load data into a Hyperscale database provide ANY performance improvement?"  T-SQL in SSMS to load into Hyperscale is not possible because it doesn't support Polybase queries.  And, yes, when some metrics are available, those would be nice to have, too.

Change phrasing in article re: data factory and polybase
You can do Polybase-like processing by using Azure Data Factory or running a Spark job in Azure Databricks with the Spark connector for SQL to pull data into a HyperScale database, where it can be queried.You can do Polybase-like processing by using Azure Data Factory or running a Spark job in Azure Databricks with the Spark connector for SQL to pull data into a HyperScale database, where it can be queried.

@Mike-Ubezzi-MSFT please close

We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


pkg/bpf, pkg/endpoint/connector: use RLIM_INFINITY constant

Use the RLIM_INFINITY constant from golang.org/x/sys/unix for
Setrlimit(RLIMIT_MEMLOCK, ...) which makes the intended purpose a bit
clearer and also avoids a dependency on the "math" package.
Signed-off-by: Tobias Klauser<EMAIL_ADDRESS>

This change is

test-me-please

Coverage decreased (-0.005%) to 44.767% when pulling 1230ccaf627affd425e34028fb72b84bc4818967 on tklauser:rlimit-infinitiy into 886c2c82e7381cfb3f37b94c9d98caafe657afa1 on cilium:master.


Installing brew from PKG should add itself to PATH

Verification

[X] This issue's title and/or description do not reference a single formula e.g. brew install wget. If they do, open an issue at https://github.com/Homebrew/homebrew-core/issues/new/choose instead.

Provide a detailed description of the proposed feature
The brew homepage seems to encourage using the new .pkg to install homebrew easily, as opposed to the previous script install. This does not add brew to the PATH, but the instructions for doing so are
a) hard to notice (I had to run the installer a second time to even notice the instructions)
b) obscure for non-savvy users (it doesn't provide the exact mechanism for adding to the PATH - resulting in time wasted googling a whole bunch of stuff
If possible, i would recommend the PKG installer determine the default terminal shell, and ask whether to add to the PATH - this is pretty common with a variety of software.
What is the motivation for the feature?
Brew is supposed to make installing complex dependencies easy, for all user levels. While one would wish all command line users understand the intricacies of adding things to their PATH, ii reality, the whole reason many people use Brew is to avoid having to get into the weeds about that sort of thing.
If you want a truly awesome user experience and you're pushing this new PKG installer, I would highly recommend solving "the last mile" while is adding Brew to PATH.
I was quite disappointed after installing the PKG that opening a new terminal and typing "which brew" resulted in an unknown command.
How will the feature be relevant to at least 90% of Homebrew users?
sorry, gonna re-paste this:
Brew is supposed to make installing complex dependencies easy, for all user levels. While one would wish all command line users understand the intricacies of adding things to their PATH, ii reality, the whole reason many people use Brew is to avoid having to get into the weeds about that sort of thing.
If you want a truly awesome user experience and you're pushing this new PKG installer, I would highly recommend solving "the last mile" while is adding Brew to PATH.
I was quite disappointed after installing the PKG that opening a new terminal and typing "which brew" resulted in an unknown command.
What alternatives to the feature have been considered?
The alternative for new users (and veterans like myself that don't upgrade their macs all that often) is to once again research how to add something to your PATH (and then decide whether to use .bashrc, or .zprofile or .bash_profile and going down a deep rathole about which one is better etc.
Suddenly all productivity gains are lost...
The alternative of course is to use the old script install method, but then one wonders why you are pushing this new PKG install approach at all, if it ends up being more complex?

The alternative of course is to use the old script install method

The old script install method displays literally the identical instructions as the installer on how to add to the PATH. Homebrew (except e.g. installing casks) does not modify systemwide files outside its installation prefix and does not modify user files; this is how it and its installer have always worked and how I think they should consider to work, sorry.

The brew homepage seems to encourage using the new .pkg to install homebrew easily

This should be considered an alternate, supported installation model but not something that replaces the installation script. If you have a suggestion for how to reword the homepage to better indicate that: we'll consider it.
Sorry, passing on this for now.