feat(python, rust): add AWS_S3_LIMIT_CONCURRENCY setting for S3ObjectStoreFactory

Description
This PR adds a configuration to control concurrent access to the underlying object store for S3. This could be generalized for all providers if desired.
It also includes a visibility change to the S3LogStoreFactory to align it with all other provider implementations.
Related Issue(s)

closes #2457
resolves #2353

Documentation
https://docs.rs/object_store/latest/object_store/limit/struct.LimitStore.html

If this should be turned into a generalized solution, let me know how you would want me to implement this as there would be multiple ways to do this :)

If this should be turned into a generalized solution, let me know how you would want me to implement this as there would be multiple ways to do this :)

Generalized for what? Isn't this just an issue for AWS?

This is not necessarily just an AWS issue, I checked and Azure also uses HTTP1 for Blob storage so parallel requests would also open a bunch of file handles in that case, which, if the executor has a smaller ulimit, would have the same outcome.

@zZKato in that case, indeed a generic one that works on all providers is preferred

I am currently testing this out in our production code base, once i can verify this works well, I would need some suggestions on where to implement this. We could make a general StorageConfig in the storage module but then it would mean a hierarchical application of the config and every provider would need to implement this behavior. Another option would be to provide a new interface to the ObjectStoreFactory that could handle this case like parse_url_opts_with_limit, the downside there would be that it would coexist with the already existing storage_options map. Open for any suggestions or preferences.

@zZKato maybe you make a function that takes a generic T which is the inner object store, and put in deltalake storage, and then every factory calls that at the end

Can confirm it works, had to actually go all the way down to a concurrency limit of 50 to access 11 delta tables but it didn't seem to affect run time that much! I will over the next couple of days refactor this PR for a generic solution.

@ion-elgreco let me know if you like this approach. I stuck to the already existing pattern of the url_prefix_handler

@zZKato thanks for putting the effort in here.  I am quite curious to some day learn more about how many tables are being queried at once those Lambdas :smile:
The generalized approach as written makes sense to me, however we have really struggled with an abundance of storage configuration parameters and documenting all the flags.
Can you share some reasoning on what the challenge might be to implementing a custom S3ObjectStoreFactory style implementation which wraps the object store in your application, and then overriding the built in file scheme handler with your custom one (see register_handlers()
I can imagine this would be tricky if your Lambdas are all Python-based, but it's not clear from the issue linked whether or not that is the case.

@rtyler this lambda is just building a report out of 11 different aggregated metrics which are stored in individual tables so not that 🌶.
I totally understand that that is an issue, just while writing this PR, it was difficult to try to understand all the layers of options and thinking about how to best implement it. I think that perhaps the interface needs some refactoring. My understanding is that the factories are just a way to simplify the handling of object stores and provide additional error handling when missing configs.
Maybe removing the factories for object stores as a concept and instead working directly with the underlying ObjectStore trait might remove some of that complexity. Something like making a single register_handler function that takes the underlying oject store as a parameter and the delta implementation with the convenience functions would just be internal detail on how to compose the specific ObjectStore impl (basically decoupling those from eachother, somewhat of a dependecy inversion (?)). This would allow rust consumers to compose their own ObjectStore impl.
I am in the process of writing a library to simplify the creation of these kinds of ETL pipelines with AWS lambda + datafusion + deltalake and am running into the same issue of creating a bunch of helpers to simplify the registration of object stores mainly around path handling. You could argue that this is an issue with the object_store API itself.
We're using rust lambdas so no concerns there, however I think that this implementation being part of delta-rs makes sense as this issue can be quite easy to come accross. Deltalake specifically has the potential to open a large amount HTTP/1 connections depending on the query and the size of the delta table. The suggested solution is to just increase the ulimit which isn't always an option (like for aws lambda) and imo not the best approach to deal with this.
We've been running this branch in production for a couple of days and it seems to not have decreased performance at all suprisingly and in fact there have been some nice side effects like the significant reduction of the number of backpressures in the underlying S3 client (e.g. "Encountered transport error backing off for 0.1 seconds, retry 1 of 10: error sending request for url (<s3 url>): connection closed before message completed"). These kinds of logs basically never appear anymore.
I could imagine that, counterintuitively, this could in some cases potentially even increase performance due to not opening as many HTTP/1 connections, causing less system overhead but thats just a hunch and would need further investigation.
Either way is fine for me and I can just adjust the way we handle this :) and thanks for doing the stuff you all do, I really love the delta-rs (and deltalake) project.

@zZKato thanks for putting the effort in here. I am quite curious to some day learn more about how many tables are being queried at once those Lambdas 😄
The generalized approach as written makes sense to me, however we have really struggled with an abundance of storage configuration parameters and documenting all the flags.
Can you share some reasoning on what the challenge might be to implementing a custom S3ObjectStoreFactory style implementation which wraps the object store in your application, and then overriding the built in file scheme handler with your custom one (see register_handlers()
I can imagine this would be tricky if your Lambdas are all Python-based, but it's not clear from the issue linked whether or not that is the case.

I think this will be valuable for python users as well, most of the users are on that side as well.
@zZKato can you update the docs pages to include this


Ad Events

Ad Events are currently missing in SDK
https://gameanalytics.com/docs/s/article/Ad-Events-Implementation

@kristijandraca I will get ad events added to the SDK

Ok there should be a new version out now (v2.3.0) with the ad events added. The documentation page on how to use ad events has also been updated here: https://gameanalytics.com/docs/s/article/Godot-SDK-Event-Tracking

Thank you!

Of course let me know if you have issues with the newly added ad event


Unable to run?

I'm currently trying to start the software on my computer.
After running npm install, and then trying to run npm start with the following results.

<EMAIL_ADDRESS>start C:\Users\Tristan Farkas\AvatarDeployment\lisk-avatar
NODE_ENV=production micro -p 8080

'NODE_ENV' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: NODE_ENV=production micro -p 8080
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\Tristan Farkas\AppData\Roaming\npm-cache_logs\2018-05-06T07_08_27_105Z-debug.log

Just remove NODE_ENV=production in package.json on line 7.
https://github.com/tobiaslins/lisk-avatar/blob/master/package.json#L7


Teachgather-logs command to collect information about permissions around inspec_runner

I sat in on a customer call where the user was unable to upload a compliance profile. They got the following error message in the logs:
Aug 03 21:07:48 btrwxlvams001 hab[1256]: compliance-service.default(O): time="2020-08-03T15:07:48-06:00" level=error msg="Create CheckProfile error: Check InSpec check failed for /hab/svc/compliance-service/var/tmp/inspec-upload021421582.tar.gz with message: exit status 1\n2020/08/03 14:07:48 inspec_runner unable to set gid 99: operation not permitted\n"

Investigating what permissions had changed on which files/directories involved flipping between two installations (a working one and a non-working one), misheard/misstated requests to change the permission on X to Y, and people typing in the wrong window. It would be helpful if gather-logs collected

permissions/ownership of the inspec_runner
permissions/ownership of .../compliance-service/var/tmp
permissions/ownership of .../compliance-service/var/tmp/.inspec

previous examples of when we ran into the inspec runner issue:
https://chefio.slack.com/archives/C6JED4R8W/p1590518232083300?thread_ts=1590518232.083300
https://chefio.slack.com/archives/C6JED4R8W/p1591111334176800?thread_ts=1590518232.083300
https://chefio.slack.com/archives/CARK1CBNX/p1549411412479600?thread_ts=1549385997.467900
https://chefio.slack.com/archives/CARK1CBNX/p1549385654465000


Update readme information about configuration tracking at iOS14

Added information how to add request tracking code to AppDelegate.swift
Added comment about delay for showing ATT pop-up for iOS 15 (right now App Store rejects apps, because pop-up isn't showing)

Hey @istemit ,
Thank you for your hint about this implementation. I'm struggling for days to have my app approved by Apple and I'm pretty confident that with this approach it will finally be accepted. 🤞
Combining with info that I got from other sources (https://stackoverflow.com/a/69510678/414635) I ended up creating the call inside an applicationDidBecomeActive method override, as follows:
.
.
.
import AppTrackingTransparency

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {

  .
  .
  .

  override func applicationDidBecomeActive(_ app: UIApplication) {

    if #available(iOS 14.5, *) {
        // If your app showing pop-up with request for push notifications, you need to set delay for 1 second before showing ATT pop-up
        DispatchQueue.main.asyncAfter(deadline: .now() + 1, execute: {
            ATTrackingManager.requestTrackingAuthorization { _ in }
        })
    }

  }
}

Now the window is being showed everytime I install the app, right after I open it. Before that, only by using the recommended app_tracking_transparency package instructions,  it was very inconsistent.


Task 15, in 05_Bayesian_inference.ipynb

in the "Derive the maximum aposteriori estimate (MAP) for parameter p, using a beta prior" .
it should be "Derive the maximum aposteriori estimate (MAP) for parameter theta, using a beta prior"
it is theta not p .

please make a pull request

done


[RFC] Don't expose L2 implementation details through the L2 API

We need to clean up our dependencies before OpenThread is merged
because when OpenThread is in the DAG it is really important that
components are coupled as loosely as posssible.
Tight coupling in a build system leads to an unnecessary amount of
rebuilding, which is fine for a small stack like ieee802154, but a problem
for a big one like OpenThread.
This is an RFC for a possible method to remove unnecessary
dependencies. It's success can be seen when you do this test:

make
touch ~/zephyr/include/net/ieee802154.h

Now that ieee802154.h is dirty, any source file that is including it must be rebuilt.

make

Build output extract when this incremental build is done:

[  8%] Building C object CMakeFiles/app.dir/src/echo-server.c.obj
[  8%] Building C object CMakeFiles/app.dir/src/udp.c.obj
Scanning dependencies of target zephyr
[ 11%] Built target arch__x86__soc__ia32
[ 11%] Building C object zephyr/subsys/net/lib/app/CMakeFiles/subsys__net__lib__app.dir/init.c.obj
[ 11%] Building C object zephyr/subsys/net/lib/app/CMakeFiles/subsys__net__lib__app.dir/net_app.c.obj
[ 12%] Building C object zephyr/subsys/net/lib/app/CMakeFiles/subsys__net__lib__app.dir/server.c.obj
[ 12%] Building C object zephyr/subsys/net/lib/app/CMakeFiles/subsys__net__lib__app.dir/ieee802154_settings.c.obj
[ 32%] Built target kernel
[ 33%] Linking C static library libapp.a
[ 40%] Built target app
[ 41%] Linking C static library libsubsys__net__lib__app.a
[ 42%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/net_context.c.obj
[ 42%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/net_core.c.obj
[ 43%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/net_if.c.obj
[ 43%] Built target subsys__net__lib__app
[ 44%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/utils.c.obj
[ 45%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/6lo.c.obj
[ 45%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/net_pkt.c.obj
[ 46%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/icmpv6.c.obj
[ 47%] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/ieee802154/ieee802154_uart_pipe.c.obj
[ 48%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/nbr.c.obj
[ 51%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/connection.c.obj
[ 51%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/net_shell.c.obj
[ 52%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/udp.c.obj
[ 52%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/ipv6.c.obj
[ 53%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/route.c.obj
[ 53%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/dummy.c.obj
[ 54%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154.c.obj
[ 56%] Linking C static library libzephyr.a
[ 56%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_frame.c.obj
[ 57%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_fragment.c.obj
[ 57%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_mgmt.c.obj
[ 58%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_radio_csma_ca.c.obj
[ 59%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_shell.c.obj
[ 82%] Built target zephyr

That is quite a few files, intuitively, you would not think that it
was necessary for echo-server to be rebuilt, but it is because the
ieee80215.h header file is leaking through the net_l2.h interface into
application source files.
Doing the same test after this patch yields much better results:
[ 16%] Built target app
[ 17%] Built target arch__x86__soc__ia32
Scanning dependencies of target subsys__net__ip
[ 17%] Built target linker_pass2_script
Scanning dependencies of target zephyr
[ 17%] Building C object zephyr/subsys/net/lib/app/CMakeFiles/subsys__net__lib__app.dir/ieee802154_settings.c.obj
[ 18%] Linking C static library libsubsys__net__lib__app.a
[ 38%] Built target kernel
[ 41%] Built target subsys__net__lib__app
[ 43%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_frame.c.obj
[ 43%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154.c.obj
[ 43%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_mgmt.c.obj
[ 45%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_shell.c.obj
[ 45%] Building C object zephyr/subsys/net/ip/CMakeFiles/subsys__net__ip.dir/l2/ieee802154/ieee802154_radio_csma_ca.c.obj
[ 45%] Linking C static library libsubsys__net__ip.a
[ 46%] Building C object zephyr/CMakeFiles/zephyr.dir/drivers/ieee802154/ieee802154_uart_pipe.c.obj
[ 60%] Built target subsys__net__ip
[ 83%] Built target zephyr

Note that now, only files that look like they need to know somehting
about ieee80215.h are rebuilt.
If this direction is considered viable I can update the other
L2_CTX_TYPE defines to be consistent. Now that it is proven that it is
possible to solve this problem, perhaps someone has a much better
solution also ...
I know that it seems a trivial thing, but I would prefer to solve this
now, than to solve this as a part of the OpenThread merge, as that
patch is difficult enough to review as is ...
Signed-off-by: Sebastian Bøe<EMAIL_ADDRESS>

This relates to https://github.com/zephyrproject-rtos/zephyr/issues/5286

The change essentially tries to split net_l2.h in two header files. One that has symbols needed by those that are above the L2 interface, and one that has symbols needed by those that are below the interface.
This has the desired change of loosening the coupling in the build system.

ok I updated the PR #5300
does it fix your issue for OT?
(you'r right, we may have to move other *_CTX_TYPE to more relevant header)

Going to test, but yes, looks like that will do it! Great! :D


Aut0 authentication

User should be able to see content only after authentication through https://auth0.com
Use Google as an account provider for authentication

Done

Done


Updated the meshkit error for schedule_handler.go

Signed-off-by: Shreyas220<EMAIL_ADDRESS>Description
Updated the meshkit error for schedule_handler.go file
This PR fixes #3304
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@sayantan1413 Please review

Codecov Report

Merging #3384 (80883b0) into master (05cda78) will decrease coverage by 0.78%.
The diff coverage is 0.28%.

@@            Coverage Diff            @@
##           master   #3384      +/-   ##
=========================================
- Coverage    7.02%   6.24%   -0.79%
=========================================
  Files          23      35      +12
  Lines        1409    2754    +1345
=========================================
+ Hits           99     172      +73
- Misses       1303    2560    +1257
- Partials        7      22      +15

Flag
Coverage Δ

integrationtests
?

unittests
6.24% <0.28%> (-0.79%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/config/config.go
1.11% <0.00%> (-1.12%)
:arrow_down:

mesheryctl/internal/cli/root/perf/perf.go
50.00% <ø> (ø)

mesheryctl/internal/cli/root/system/check.go
1.94% <0.00%> (ø)

mesheryctl/internal/cli/root/system/restart.go
2.50% <0.00%> (-0.54%)
:arrow_down:

mesheryctl/internal/cli/root/system/start.go
1.50% <0.00%> (-0.04%)
:arrow_down:

mesheryctl/internal/cli/root/system/status.go
0.00% <0.00%> (ø)

mesheryctl/internal/cli/root/system/stop.go
1.08% <0.00%> (-0.07%)
:arrow_down:

mesheryctl/pkg/utils/auth.go
0.00% <0.00%> (ø)

mesheryctl/pkg/utils/error.go
0.00% <0.00%> (ø)

mesheryctl/pkg/utils/formatter.go
0.00% <0.00%> (ø)

... and 17 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8cc5e53...80883b0. Read the comment docs.

Hey @Shreyas220 I think it would be good if we log the error before the https.Error .


Update storage command module to new multiapi SDK

This checklist is used to make sure that common guidelines for a pull request are followed.
General Guidelines

[ ] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

Command Guidelines

[ ] Each command and parameter has a meaningful description.
[ ] Each new command has a test.

(see Authoring Command Modules)

View a preview at https://prompt.ws/r/Azure/azure-cli/4977
This is an experimental preview for @microsoft.com users.
(It may take a minute or two for your instance to be ready)
Email feedback to 'azfeedback' with subject 'Prompt Feedback'.


Microphone: added labels to Effects/Filters select

Fixed #243

Looks good, merging. Thanks @sarvaje!


Disabled buttons should not just look disabled

Currently passing disabled to <.button link_type="live_redirect" disabled> makes the button look disabled but it can still be clicked and the action (redirect in this case) still happens.

Weird - does is have the disabled attribute for you?:

I didn't try a basic button, but one with a link_type does not. Just the custom class.

This <.button label="Press me" phx-click="click_event" disabled /> renders:
<button class="pc-button--primary pc-button--md pc-button--disabled pc-button" disabled phx-click="click_event">Press me</button>.
And this <.button link_type="live_redirect" label="Press me" to="/" phx-click="click_event" disabled /> renders:
Press me
I think the phx-click might need to be removed as well so nothing happens if the buttons are clicked. Might also be good to render a <button> instead of an  for disabled.

Ah I see... good catch

Fixed - https://github.com/petalframework/petal_components/releases/tag/v1.0.3


[Enhancement] Improve Skillet Flip Animation

The current skillet flip animation is a bit robotic. Ideally, we give the pan some movement.
My main todo is to actually practice flipping with a real pan, so I can see how the animation should pan out, then I can develop the changes.

@MerchantPug may i ask how do you flip the skillet?


Need someone to deploy owasp securetea gui / dashboard into herokuapp

Hi @mishal23 @abhisharma404
If possible in the end we should deploy owasp securetea dashboard into herokuapp
Like owasp juice shop
https://juice-shop.herokuapp.com
Best

This dashboard should be a demo. As we could not deploy a dashboard for everyone.

The dashboard is now deployed here: https://secure-tea.herokuapp.com/dashboard
A sample endpoint is deployed here for a demo: https://securetea-endpoint.herokuapp.com/
You can also start the endpoint app locally using sudo python monitor.py, and find your IP Address and enter on the /config route to get the statistics on dashboard.

@mishal23 Good  :+1:

Sure, also there were small changes made to make the deployment proper.
Shall I send a PR with those changes too? @rejahrehim

Shall I send a PR with those changes too? @rejahrehim
Is that changes specific to Heroku Deployment?
If yes, keep it in a separate branch. If not, send PR.

Okay. Thank you.


Error while rebalancing volumes

I am running a volume.balance -force command from a weed shell session after adding a new volume server to the cluster.
It works for a while, moving a number of volumes on the newly added node, then fails with the following error:
[...]
volume 3839 processed<PHONE_NUMBER>0 bytes
volume 3839 processed<PHONE_NUMBER>0 bytes
2023/06/30 22:45:41 tailing volume 3839 from <IP_ADDRESS>:9222 to <IP_ADDRESS>:9222
error: tail volume 3839 from <IP_ADDRESS>:9222 to <IP_ADDRESS>:9222: rpc error: code = Unkno
wn desc = streamFollow: fail to locate by appendAtNs<PHONE_NUMBER>000000000: read entry 5
88298 offset {{} {234 99 151 213}}: ReadNeedleHeader /swh/seaweedfs/volume/3839.dat [3
1459163816,31459163832): EOF

I can can then restart the rebalancing without issue until it fails again.
I didn't check with latest version for now since I did not see anything that looked related in the changelogs, but I may upgrade to 3.53 if needed.
System Setup

weed version: version 30GB 3.51 4310e1fac4e59a4391159e6c349f45a8e1cd0601 linux amd64
command line: /usr/local/bin/weed {master,volume,filer} -options=/etc/seaweedfs/{master,volume,filer}.conf
OS: Ubuntu 22.04.2 LTS
weed shell cluster.ps

> cluster.ps
* filers 1
  * <IP_ADDRESS>:8888 (30GB 3.51 4310e1fac4e59a4391159e6c349f45a8e1cd0601)
    signature: -1726094756
* filer <IP_ADDRESS>:8888 metadata sync time
* volume servers 5
  * data center: eneabo -
    * rack: swh
      * <IP_ADDRESS>:9222 (30GB 3.51 4310e1fac4e59a4391159e6c349f45a8e1cd0601)
      * <IP_ADDRESS>:9222 (30GB 3.51 4310e1fac4e59a4391159e6c349f45a8e1cd0601)
      * <IP_ADDRESS>:9222 (30GB 3.51 4310e1fac4e59a4391159e6c349f45a8e1cd0601)
      * <IP_ADDRESS>:9222 (30GB 3.51 4310e1fac4e59a4391159e6c349f45a8e1cd0601)
      * <IP_ADDRESS>:9222 (30GB 3.51 4310e1fac4e59a4391159e6c349f45a8e1cd0601)

volume.conf:
# seaweedfs volume options
logdir=/swh/seaweedfs/log/volume
dataCenter=eneabo -
rack=swh
dir=/swh/seaweedfs/volume
port=9222
ip.bind=<IP_ADDRESS>
max=0
volumePreallocate
publicUrl=xx.xx.xx.xx:9222
index=leveldbMedium
ip=<IP_ADDRESS>
mserver=<IP_ADDRESS>:9333,<IP_ADDRESS>:9333,<IP_ADDRESS>:9333

master.conf:
# seaweedfs master conf
logdir=/swh/seaweedfs/log/master
volumePreallocate
port=9333
mdir=/swh/seaweedfs/data
metrics.address=xx.xx.xx.xx:9091
ip=<IP_ADDRESS>
peers=<IP_ADDRESS>:9333,<IP_ADDRESS>:9333,<IP_ADDRESS>:9333

does it always fail on this 3839.dat?

does it always fail on this 3839.dat?

nope, it's a different volume each time, but I cannot say if it "loops" on a small set of volumes or not (my tmux history does not go far enough, I only have the last 4 failures which are 4 different volumes).
How can I check if it's a matter of these volumes being somewhat corrupted or something similar?


support reprompt in play directive

first off - this project is amazing and has saved me oodles of time!
Now - I'm working on a podcast skill and after completing an audio stream, I'd like to prompt the user to say next/prev/take another action.
According to the Alexa docs, this is possible by setting shouldEndSession to false, and including a reprompt.
Further noted here: https://developer.amazon.com/blogs/post/Tx1DSINBM8LUNHY/New-Alexa-Skills-Kit-ASK-Feature-Audio-Streaming-in-Alexa-Skills

Using the AudioPlayer.Play Directive sends Alexa a command to stream the audio file identified by the specified audioItem. Use the playBehavior parameter to determine whether the stream begins playing immediately, or is added to the queue.

When sending a Play directive, you normally set the shouldEndSession flag in the response object to true to end the session. If you set this flag to false, Alexa sends the stream to the device for playback, then immediately pauses the stream to listen for the user’s response. Here is an example of a full response object sent from a LaunchRequest or IntentRequest:

{
  "version": "1.0",
  "sessionAttributes": {},
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "Playing the requested song."
    },

    "card": {
      "type": "Simple",
      "title": "Play Audio",
      "content": "Playing the requested song."
    },

    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": null
      }
    },

    "directives": [
      {
        "type": "AudioPlayer.Play",
        "playBehavior": "ENQUEUE",
        "audioItem": {
          "stream": {
            "token": "this-is-the-audio-token",
            "url": "https://my-audio-hosting-site.com/audio/sample-song.mp3",
            "offsetInMilliseconds": 0
          }
        }
      }
    ],
    "shouldEndSession": true
  }
}

Looking at the code, it seems like the play directive hardcodes  self._response['shouldEndSession'] = True. So, can we make this variable and enabling a reprompt?
    def play(self, stream_url, offset=0):
        """Sends a Play Directive to begin playback and replace current and enqueued streams."""

        self._response['shouldEndSession'] = True
        directive = self._play_directive('REPLACE_ALL')
        directive['audioItem'] = self._audio_item(stream_url=stream_url, offset=offset)
        self._response['directives'].append(directive)
        return self

perhaps we could add optional reprompt parameters ("type", "text") with an if/else statement that determines if it gets added & whether shouldEndSession is True/False? Just spitballing here!!

Yes - if you can PR/test it I'll merge

@johnwheeler please let me know how you feel about this PR - I'm not sure the behavior it enables is actually that useful.


Import documents a withdrawn status into Content Publisher

Trello: https://trello.com/c/8U7JPIHT
What's changed and why?
Update WhitehallImporter to support documents that have a status of withdrawn.
The public explanation and the internal reason why the document was withdrawn have also been imported.
As Content Publisher supports undoing a withdrawal of content which involves using the published status to determine what to revert the content to (published or published_but_needs_2i_review), the published status details for the document have also been imported.
Results from testing on integration
Link to Whitehall export data
Imported document in Content Publisher
#<Document id: 623, content_id: "2817f9a0-7c4a-4b48-a272-3c28251e79fe", locale: "en", document_type_id: "news_story", created_at: "2017-03-13 17:39:03", updated_at: "2019-10-29 10:28:38", created_by_id: 86, first_published_at: nil, imported_from: "whitehall">

#<Edition id: 886, number: 1, last_edited_at: "2019-11-11 12:55:48", created_at: "2017-03-13 17:39:03", updated_at: "2019-11-11 12:55:48", document_id: 623, created_by_id: 86, current: true, live: false, last_edited_by_id: 126, status_id: 2677, revision_id: 5332, revision_synced: true, access_limit_id: nil>

#<Revision id: 5332, created_by_id: nil, created_at: "2017-03-13 17:39:03", document_id: 623, lead_image_revision_id: nil, content_revision_id: 2970, metadata_revision_id: 1458, tags_revision_id: 819, preceded_by_id: nil, number: 1, imported: true>

Status.where(revision_at_creation_id: 5332)
=> #<ActiveRecord::Relation [#<Status id: 2677, state: "withdrawn", revision_at_creation_id: 5332, edition_id: 886, created_by_id: 126, created_at: "2019-10-29 10:28:38", updated_at: "2019-11-11 12:55:48", details_type: "Withdrawal", details_id: 3>, #<Status id: 2676, state: "published", revision_at_creation_id: 5332, edition_id: 886, created_by_id: 86, created_at: "2017-03-14 08:41:56", updated_at: "2019-11-11 12:55:48", details_type: nil, details_id: nil>]>

#<Withdrawal id: 3, public_explanation: "The [Dundee to London flight route was extended fo...", created_at: "2019-11-11 12:55:48", published_status_id: 2676, withdrawn_at: "2019-10-29 10:28:38">

Thanks Pete, haven't had chance for a few review but looks like most bits are covered. One thing I notice isn't is that we still have AbortImportErrors without a message.
Is there a way we can adjust the class to error without a message? I feel a bit like a broken record pointing it out so might be worth making it a pre-requisite of the class.

Thanks @kevindew, have added a message to the raises that were missing them and adding an extension to the AbortImportErrors class as per your request! 😄

@leenagupte @1pretz1 I added a couple of quick commits to this to clean up some areas that still seemed somewhat confused to me. Let me know if you're happy with them and then I think this is ready to merge.

@kevindew I had one comment in the last commit, but the new state history methods look good.


trim leading and trailing CR LF during paste into composer

@jayeshmangwani / @roryabraham
Details
Trimming leading and trailing CR LF characters from pasted content of composer text, so that it does not hamper the flow of paste event triggering and handling in Newdot composer.
Fixed Issues
$ https://github.com/Expensify/App/issues/39971
PROPOSAL: https://github.com/Expensify/App/issues/39971#issuecomment-2053860349
Tests

Make sure composer field is empty
Copy below mentioned text(s) into clipboard
Paste it in composer and check if "Send" button is enabled and clickable

Text(s) tested:

[ ] Single line without trailing CR LF

This is a single line text.

[ ] Single line with trailing CR LF

This is single line text but with newline at the end of line.

[ ] Single line with leading CR LF

This is single line text but with newline at the start of line.

[ ] Single line with leading and trailing CR LF

This is single line text but with newline at the start and end of line.

[ ] Text with newline character in text content

Text with newline character \n in text content.\n

[ ] Multi line without trailing CR LF

During communication with Expensify, you will come across a variety of acronyms used by our team. While acronyms can be
 useful, they cease to be the moment they are not known to the receiver. As such, we wanted to create a list here of our most
commonly used acronyms and what they're referring to. Lastly, please never hesitate to ask in Slack or the GH issue if there are
any that are not understood/known!

[ ] Multi line with trailing CR LF

During communication with Expensify, you will come across a variety of acronyms used by our team. While acronyms can be
useful, they cease to be the moment they are not known to the receiver. As such, we wanted to create a list here of our most
commonly used acronyms and what they're referring to. Lastly, please never hesitate to ask in Slack or the GH issue if there are
any that are not understood/known!

[ ] Numbered text

    1. Proposing steps to take for a regression test to ensure the bug doesn't occur again (For information on how to successfully complete this, head [here](https://github.com/Expensify/App/blob/main/contributingGuides/REGRESSION_TEST_BEST_PRACTICES.md)).
    2. Identifying and noting the offending PR that caused the bug (if any).
    3. Commenting on the offending PR to note the bug it caused and why (if applicable).
    4. Starting a conversation on if any additional steps should be taken to prevent further bugs similar to the one fixed from occurring again.
    5.

[ ] Code comment

    ```
    [commit]
        gpgsign = true
    [user]
        email = <Your GH account email>
        name = <Your Name>
        signingkey = <your_signing_key>
    [gpg]
        program = gpg
    ```

[ ] Bulleted text

- If you have made a change to your pull request and are ready for another review, leave a comment that says "Updated" on the pull request  itself.
- Please keep the conversation in GitHub, and do not ping individual reviewers in Slack or Upwork to get their attention.
- Pull Request reviews can sometimes take a few days. If your pull request has not been addressed after four days, please let us know via the #expensify-open-source Slack channel.

[ ] Html text

<input onpaste={(event:ClipboardEvent<HTMLInputElement>) => pasteMock(event)} />

[ ] Multi-line html text

            New Expensify

[ ] Copy paste an image

[ ] Verify that no errors appear in the JS console

Offline tests
Same as above.
QA Steps
Same as above.
Any pasted text (copy to clipboard and paste it into the composer) containing leading or trailing newline Carriage Return (CR) and Line Feed (LF) characters must enable "Send" button of composer.

[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/76063588/3cee172b-64b7-413e-9aa5-d12592a9fcb9

Android: mWeb Chrome
https://github.com/Expensify/App/assets/76063588/56af88f7-b7a6-4c24-abbd-d212c8e9edf0

iOS: Native
https://github.com/Expensify/App/assets/76063588/6efe0332-cc87-44da-a487-3c3664033d50

iOS: mWeb Safari
https://github.com/Expensify/App/assets/76063588/bf331096-81b1-465e-8157-1f62644b31ae

MacOS: Chrome / Safari
https://github.com/Expensify/App/assets/76063588/b4214604-48f5-42e3-8387-396de246c2f5

MacOS: Desktop
https://github.com/Expensify/App/assets/76063588/c6b0834f-047a-4df2-b277-998fffb77e7e

Hey @kpadmanabhan , Are you able to run the app on all the platforms? Please fill in all the missing checkboxes from the description that can be finished. And please write the unit test for the useHtmlPaste function.

@jayeshmangwani  Even though my change is not OS dependent, I understand that I must test it in all env. I was using windows till now. Just got hold of a mac. Setting up env in that. Whom can I contact for a Mapbox key?

@kpadmanabhan For the key, I have responded in Slack. If you need any help in setting it up, please hit me up.

Hey @kpadmanabhan, is there any update for us? If you are stuck anywhere, you can comment here or on #expensify-open-source.

@kpadmanabhan bump for the update

Seems like this PR is abandoned

Yes @roryabraham , it looks like the contributor is not active

@roryabraham  / @jayeshmangwani : apologies for this. I was quite unwell for past couple of weeks. Sorry for no updates. Resuming work today. Fixes should be addressed by today e.o.d.

Testing on iOS (native and web), macOS (chrome web and desktop app) complete. Results attached to PR.
Facing challenges with Android testing on Pixel simulator. Though script brings up android simulator, it executes and then stops the emulator by itself before launching the app with no visible error messages in console.
Where can I find detailed logging on whats going wrong with the launch of simulator and starting the app?

I find I often have to delete the emulator and create new ones. Or if you have access to a physical Android device I find that to be much more reliable than emulators.

Now getting below error.
@roryabraham / @jayeshmangwani  Any thioughts?
Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
CMake Deprecation Warning at CMakeLists.txt:42 (cmake_policy):
  The OLD behavior for policy CMP0026 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.

CMake Warning at /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Darwin-Initialize.cmake:303 (message):
  Ignoring CMAKE_OSX_SYSROOT value:

   /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk

  because the directory does not exist.
Call Stack (most recent call first):
  /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake:21 (include)
  CMakeLists.txt:64 (project)

CMake Error at /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message):
  The C compiler

    "/Library/Developer/CommandLineTools/usr/bin/cc"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /Users/archanavenkat/krishnan/App/node_modules/react-native/ReactAndroid/hermes-engine/build/hermes/CMakeFiles/CMakeTmp

    Run Build Command(s):/usr/bin/make -f Makefile cmTC_91bc9/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make  -f CMakeFiles/cmTC_91bc9.dir/build.make CMakeFiles/cmTC_91bc9.dir/build
    Building C object CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o
    /Library/Developer/CommandLineTools/usr/bin/cc   -arch arm64 -mmacosx-version-min=11.3 -MD -MT CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o -MF CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o.d -o CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o -c /Users/archanavenkat/krishnan/App/node_modules/react-native/ReactAndroid/hermes-engine/build/hermes/CMakeFiles/CMakeTmp/testCCompiler.c
    Linking C executable cmTC_91bc9
    /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/bin/cmake -E cmake_link_script CMakeFiles/cmTC_91bc9.dir/link.txt --verbose=1
    /Library/Developer/CommandLineTools/usr/bin/cc  -arch arm64 -mmacosx-version-min=11.3 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o -o cmTC_91bc9
    ld: library 'System' not found
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[1]: *** [cmTC_91bc9] Error 1
    make: *** [cmTC_91bc9/fast] Error 2

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:64 (project)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native:packages:react-native:ReactAndroid:hermes-engine:configureBuildForHermes'.
> Process 'command '/Users/archanavenkat/Library/Android/sdk//cmake/3.22.1/bin/cmake'' finished with non-zero exit value 1

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 7m 4s
error Failed to install the app. Command failed with exit code 1: ./gradlew app:installDevelopmentDebug -PreactNativeDevServerPort=8081
Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
CMake Deprecation Warning at CMakeLists.txt:42 (cmake_policy): The OLD behavior for policy CMP0026 will be removed from a future version of CMake. The cmake-policies(7) manual explains that the OLD behaviors of all policies are deprecated and that a policy should be set to OLD only under specific short-term circumstances. Projects should be ported to the NEW behavior and not rely on setting a policy to OLD. CMake Warning at /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Darwin-Initialize.cmake:303 (message): Ignoring CMAKE_OSX_SYSROOT value: /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk because the directory does not exist.
Call Stack (most recent call first): /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake:21 (include) CMakeLists.txt:64 (project) CMake Error at /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake:69 (message): The C compiler "/Library/Developer/CommandLineTools/usr/bin/cc" is not able to compile a simple test program. It fails with the following output: Change Dir: /Users/archanavenkat/krishnan/App/node_modules/react-native/ReactAndroid/hermes-engine/build/hermes/CMakeFiles/CMakeTmp Run Build Command(s):/usr/bin/make -f Makefile cmTC_91bc9/fast && /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_91bc9.dir/build.make CMakeFiles/cmTC_91bc9.dir/build Building C object CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o /Library/Developer/CommandLineTools/usr/bin/cc -arch arm64 -mmacosx-version-min=11.3 -MD -MT CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o -MF CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o.d -o CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o -c /Users/archanavenkat/krishnan/App/node_modules/react-native/ReactAndroid/hermes-engine/build/hermes/CMakeFiles/CMakeTmp/testCCompiler.c Linking C executable cmTC_91bc9 /Users/archanavenkat/Library/Android/sdk/cmake/3.22.1/bin/cmake -E cmake_link_script CMakeFiles/cmTC_91bc9.dir/link.txt --verbose=1 /Library/Developer/CommandLineTools/usr/bin/cc -arch arm64 -mmacosx-version-min=11.3 -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/cmTC_91bc9.dir/testCCompiler.c.o -o cmTC_91bc9 ld: library 'System' not found clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [cmTC_91bc9] Error 1 make: *** [cmTC_91bc9/fast] Error 2 CMake will not be able to correctly generate this project.
Call Stack (most recent call first): CMakeLists.txt:64 (project) FAILURE: Build failed with an exception. * What went wrong:
Execution failed for task ':react-native:packages:react-native:ReactAndroid:hermes-engine:configureBuildForHermes'.
> Process 'command '/Users/archanavenkat/Library/Android/sdk//cmake/3.22.1/bin/cmake'' finished with non-zero exit value 1 * Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org. BUILD FAILED in 7m 4s.
info Run CLI with --verbose flag for more details.

@kpadmanabhan I haven't gotten the above issue, but I got an issue on Android that was solved by removing the android/app/.cxx folder and then re-run

@kpadmanabhan Any luck with running on Android ?
If you still facing the issue, then I would suggest leave the Android And Android mWeb testing for me, I will take care of it, You can focus on remaining part of the PR,  And then you can fix your Android environment later.

@jayeshmangwani : thanks for your quick support to investigate the setup. I have fixed the setup and am able to run in Android as well. Updated results of all in the template. Kindly review.

@kpadmanabhan You need to sign the all commits, and lint code is failing here FIX that, remove the commit from a user name Archana Venkataraman

@jayeshmangwani : can you pls re-review this PR?

@kpadmanabhan Can we please add the unit test for useHtmlPaste ?

Locally, lint is failing for me for some reason. Does lint pass for you?

Locally, lint is failing for me for some reason. Does lint pass for you?

yes. lint is passing for me locally. did you pull latest?
(base) XXX@XX-MacBook-Air App % npm run lint

><EMAIL_ADDRESS>lint
> eslint . --max-warnings=0 --cache --cache-location=node_modules/.cache/eslint

(base) XXX@XX-MacBook-Air App %

yes. lint is passing for me locally. did you pull latest?

Yes, it tested in the latest pull; maybe it's only for me

@jayeshmangwani : added unit tests in StringUtils as this is a regex check. Pls re-review.

Thanks @kpadmanabhan for adding the unit tests; I was testing this PR and one scenario I missed before, and I want to confirm before we merge the PR.
Right now, in the main branch in composer, when we copy the multi newline and paste it between the large message, then new lines don't lose the originally copied newlines; and now, after adding the above changes in this PR, when we copy the muli new lines text between the large message then leading and trailing newlines got removed, below I am adding two videos for the visual effect of the changes between main and this PR
cc: @roryabraham

Main branch
https://github.com/Expensify/App/assets/35371050/53495222-934d-4509-b987-77bd3ece91b8

Existing PR
https://github.com/Expensify/App/assets/35371050/6b3f5b55-9bbb-4ae7-81ea-5da2fbe85482

Thanks @kpadmanabhan for adding the unit tests; I was testing this PR and one scenario I missed before, and I want to confirm before we merge the PR.
Right now, in the main branch in composer, when we copy the multi newline and paste it between the large message, then new lines don't lose the originally copied newlines; and now, after adding the above changes in this PR, when we copy the muli new lines text between the large message then leading and trailing newlines got removed, below I am adding two videos for the visual effect of the changes between main and this PR cc: @roryabraham
Main branch
new-lines-main.mov
Existing PR
new-lines-after-this-PR.mov

@jayeshmangwani : thanks for this test.
the reason for this behaiour is that in the hooks when we paste a text, we only have access to the pasted text and not the text already present in the composer. if the trailing newlines are not removed, then the event does not get propagated to composer, resulting in send button not getting enabled.

ONYX update in ComposerWithSuggestions.tsx is not fired through onChangeText event and hence draft report is not saved to ONYX.
This is because isCommentEmpty returns TRUE.

if the trailing newlines are not removed, then the event does not get propagated to composer, resulting in send button not getting enabled.

There must be something wrong with the existing code event that should be fired

if the trailing newlines are not removed, then the event does not get propagated to composer, resulting in send button not getting enabled.

There must be something wrong with the existing code event that should be fired

the reason being that start and end of selection range from the node are detected as 0 due to the presence of trailing newline and hence propagation of event does not happen to composer handlePaste().

The last bug reported by @jayeshmangwani does look like a regression that we have to address before we can merge this PR.

the reason for this behaiour is that in the hooks when we paste a text, we only have access to the pasted text and not the text already present in the composer

Can we pass the text already present in the composer as a param to the hook?

@kpadmanabhan @roryabraham Let's close/HOLD this PR. This proposal was selected for another issue, and that proposal will solve our original issue.

Right now, in the main branch in composer, when we copy the multi newline and paste it between the large message, then new lines don't lose the originally copied newlines; and now, after adding the above changes in this PR, when we copy the muli new lines text between the large message then leading and trailing newlines got removed, below I am adding two videos for the visual effect of the changes between main and this PR cc: @roryabraham

@jayeshmangwani / @roryabraham : i have fixed the issue you reported by checking for existing hooks
however, if there is a newline at the end in the composer, I see errors in console and am fixing that. I think as https://github.com/Expensify/App/issues/42216#issuecomment-2115186516 has not created a PR until now, it is better to go with this current PR.

I think as https://github.com/Expensify/App/issues/42216#issuecomment-2115186516 has not created a PR until now, it is better to go with this current PR.

Technically, we should go with existing PR as this is already in motion, but our changes of replacing the new lines (CR LF) are causing a regression, and the solution on the other issue looks good and does not cause any known regression, so I do think we should go with the other proposal

@jayeshmangwani / @roryabraham : kindly suggest whether I should continue with this PR or put it on hold until other PR is deployed. In which case what will happen to the effort and time spent on this PR?

@jayeshmangwani / @roryabraham : kindly suggest whether I should continue with this PR or put it on hold until other PR is deployed. In which case what will happen to the effort and time spent on this PR?

@jayeshmangwani / @roryabraham : how should I continue with this? kindly recommend.

kindly suggest whether I should continue with this PR or put it on hold until other PR is deployed

@kpadmanabhan HOLD this PR please, our original proposed changes will cause the regression and other PR is close to getting merged

In which case what will happen to the effort and time spent on this PR?

I will raise this internally and will post here once I get the update
cc: @roryabraham

@kpadmanabhan It looks like the issue has been fixed now. I am no longer able to reproduce it. Can you please verify?

@kpadmanabhan It looks like the issue has been fixed now. I am no longer able to reproduce it. Can you please verify?

@jayeshmangwani :
https://github.com/Expensify/App/pull/42892#issuecomment-2227120479

@kpadmanabhan Please close this PR

@kpadmanabhan Please close this PR

This issue is not reproducible in main HEAD anymore. Closing this PR.


Post only the success message after posting

As a logged in user, I would like to get a clear confirmation message that my post was successful
Current scenario:
I get a message to create my profile after my post is successful. Even when my profile is created and I am logged in.
Expected behaviour:
Display only post successful message. Please ensure that this works for both organization and individual profiles.

@Gtstride I think @Joeu  is working on this based on a few conversations that we had yesterday.
Have you started on this one yet? or @Joeu did you not start this one yet? If not, then I guess it would be fine that Godstime has taken the issue.

Yes, i have, once i make a PR, this should be fixed.

@ppagarawal @idjevm
See #636 for updated requirements.

@jyclam please make the size of view post a little smaller or enlarge the size of success by 3-4 pt. You should be good to go then.

@ppagarawal done!


Linux support

I would love to add a linux support is there's anything I should look for or a guideline to contribute ?

I am working on getting this to compile under linux
so far, you have to edit premake5.lua and change lowercase glfw to uppercase

just got it to compile on linux .. switched to cmake tho cuz I'm more familiar with it .. check my fork if u want a version that works in linux

I tried your fork but there seem to be a problem with the vendor file being created at the project root instead of root/Walnut where the cmake script expect them. Also the recurse submodule clone glfw as GLFW instead of lowercase.
What imgui version did you use ? The one cloned by recurse-submodules don't have only has premake as build system.

nevermind I was just using the submodules from the master branch and not from the .gitmodules of the linux branch.
I still had a problem with the glm dependency url being invalid. setting it back to g-truc/glm seems to work.
With this I was able to compile but not launching it. I got [vulkan] Error: VkResult = -9 Aborted (core dumped)

please see https://github.com/TheCherno/Walnut/pull/22


Tutorial

I think the tutorial will get auto-installed for new users, but should we provide a way for existing users to clone it from git, on our Sync page?

Tutorials get auto-installed for all users now, unless the user already has a folder/file named tutorial.

However, there's no way to get rid of it at the moment. That is, if the folder is deleted, it will be replaced the next time. I think that may be annoying for some. Will be putting a change to prevent it from coming back if deleted.

Thanks. It's ok if it is there permanently for now.

OK... let's leave it as it is for now.


Generate certs for multi-cluster allocation

This includes a bash script to generate and retrieve certs for multi-cluster allocation, as well as a handy invocation script for the
allocator example, with the appropriate paths to the stored certs as well.

@pooneh-m - WDYT?

@pooneh-m gentle bump on the above comments :wave: :smile:


Improve Game Setup Menu

The current temporary game setup menu could do with some improvement (replace with ugui?).
Matchmaking buttons can be dropped from the online config - we've decided to drop that functionality for now.
During today's contributor catchup, it was suggested that asset/table/etc. selection should probably use left/right buttons to seek through available options as a scalable alternative to showing every available item in a list.

That's a really useful image, thanks.

https://forums.doublefine.com/topic/17182-concept-art/?do=findComment&comment=403659 link to image

I assume that's an image, and not a screen cap of some ugui elements?

Yaeh, it's something I slapped together quickly in Inkscape a few days back

So, how do we want to choose between network play vs local play  and local one player vs local 2 player in the menu?

I have started exposing the functionality of the LoadAssets script so it can be tied to the UGUI. Currently several methods exist:
int GetVariantCount() // returns the number of variants available
int GetTableCount() // returns the number of tables available
string GetVariantName(int variantIndex) // takes the index of a variant and returns its name
string GetTableName(int tableIndex) // takes the index of a table and returns its name
void LoadScene(int variantIndex, int tableIndex) // takes the index of a variant and table and loads a table
bool HasFinishedLoading() // returns true when the table has finished loading

When dealing with networking the following methods are relevant inside NetworkSetup which will need added to ScriptHolder:
void BeginHosting(int port) // takes the port and begins hosting using it
bool ConnectToServer(string IP, int remotePort) // takes an IP address as a string and a port and returns whether it successfully connected
bool LoadTableOnClient() // attempts to load the table the server has chosen on the client, continue to call this until it returns true otherwise the client's table will not load!

I have also added a few more vital functions to the LoadAssets script which will need called from parts of the menu:
void SetSinglePlayer(bool singlePlayer) // Determines whether or not the second paddle is an AI, takes a bool true or false
void BeginPlaying() // Must be called TO BEGIN THE GAME! Loads the paddles in and sets them up to be players or AI

This should now set up everything. LoadAssets contains an array of player prefabs which will need updated from the inspector with all of the variations. These will need to have their names hardcoded in to the dictionary called paddleNames in LoadAssets too!

It appears that HasFinishedLoading() never returns true.
I get these two errors
There is no scene with name "Table_Clean" in  UnityEngine.Debug:LogError(Object) AssetBundles.AssetBundleLoadLevelSimulationOperation:.ctor(String, String, Boolean) (at Assets/AssetBundleManager/AssetBundleLoadOperation.cs:43) AssetBundles.AssetBundleManager:LoadLevelAsync(String, String, Boolean) (at Assets/AssetBundleManager/AssetBundleManager.cs:490) <InitializeLevelAsync>c__Iterator2:MoveNext() (at Assets/scripts/LoadAssets.cs:183) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) <BeginExample>c__Iterator0:MoveNext() (at Assets/scripts/LoadAssets.cs:159) UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
NullReferenceException: Object reference not set to an instance of an object LoadAssets+<InitializeLevelAsync>c__Iterator2.MoveNext () (at Assets/scripts/LoadAssets.cs:190) UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

OK, this stuff was merged with #110. It still needs some work/refinement (#113 and some cosmetic changes to match the styling of the main menu?). Going to close this issue now.


Complement management requests

Issue is applicable to TAC applications(EATL,OL,ALT,OKM). instead of creating separate issues in all the relevant repositories , first created it in EATL.
EATL has the following 3 operation-clients(and corresponding FCs) of RO,

/v1/notify-approvals --> PromptForBequeathingDataCausesRObeingRequestedToNotifyApprovalsOfNewApplicationsToNewRelease
/v1/notify-withdrawn-approvals --> PromptForBequeathingDataCausesRObeingRequestedToNotifyWithdrawnApprovalsToNewRelease
/v1/end-subscription --> PromptForBequeathingDataCausesRObeingRequestedToStopNotificationsToOldRelease

This 3 forwarding-constructs which are mapped to the operation-clients dont have a MANAGEMENT fc-port.
This means , there is no subscription operation available to add this operation-clients to a CONFIGfile.
Proposals :
Proposal#1 :
One proposal to solve this problem shall be adding individual subscription operations for creating operation-clients and fc-ports for this operations.
Proposal#2 :
In the server side , we can introduce a small logic to avoid losing such operation-clients ,
While receiving “update-client” , (the below flow chart only concentrates on the operation-client part)

(for a reference : Similar problem like https://github.com/openBackhaul/OperationKeyManagement/issues/141. )

Referencing the following statement:

Issue is applicable to TAC applications(EATL,OL,ALT,OKM). instead of creating separate issues in all the relevant repositories , first created it in EATL.

The following OperationClients are not associated with an FC:

RO:
TypeApprovalRegister:://v1/redirect-info-about-approval-status-changes
TAR:
RegistryOffice://v1/inquire-application-type-approvals
RegistryOffice://v1/notify-deregistrations
RegistryOffice://v1/end-subscription
EaTL + OL + AA + ALT:
RegistryOffice:://v1/notify-approvals
RegistryOffice:://v1/notify-withdrawn-approvals
RegistryOffice://v1/end-subscription
OKM:
RegistryOffice:://v1/notify-approvals
RegistryOffice:://v1/notify-withdrawn-approvals
ApplicationLayerTopology:://v1/notify-link-updates
RegistryOffice://v1/end-subscription
ApplicationLayerTopology:://v1/end-subscription
ApplicationLayerTopology:://v1/list-end-points-of-link
ApplicationLayerTopology:://v1/list-link-uuids

Proposal#3 in short:

If some application can't reach a consumed service, it contacts RO for updating HttpClient and TcpClient
After updating HttpClient and TcpClient, it contacts the updated application for updating OperationClients
Existing OperationServices at RO and AP could be re-used after small extensions.

Proposal#3 in detail:

Some application (A) (not restricted to the case described in the beginning) sporadically consumes another application’s (B) OperationServer
Suddenly, (A) cannot reach (B) and/or the sporadically consumed OperationServer anymore
Instantaneously (A) gets into panic and calls RO for help: RO://v1/list-applications
(here we have a little change: /v1/list-applications needs to be completed either by a list of preceding combinations of application name and release number or (maybe better) by some invariant identifier of applications like e.g. its original name “RegistryOffice”)
(A) searches the list of applications for the application name and release number of (B)

If successful, (A) continuous to use the existing Clients, but with updated TCP/IP addresses (end of story)

If not successful, (A) searches the list of applications for the invariant identifier of (B)

If not successful, (A) feels very much disappointed and decides not to contact RO for an updated list of applications (even if again unsuccessfully attempted to call (B)) for at least 10 minutes

If (A) would find the invariant identifier of (B) in the list, it would check its HttpClients (remember: created by /v1/regard-application) for same application name and release number.

If successful, (A) would use the existing HttpClient and potentially update the TCP/IP address in the TcpClient
If not successful, (A) would create HttpClient and TcpClient from the info from /v1/list-applications

In the next, step (A) calls B://v1/inform-about-application
(here we would have another little change: /v1/inform-about-application would be complemented by a list of OperationServers. Every OperationServer would need to be identified by a list of preceding operation names or (maybe better) by some invariant identifier like e.g. its original name “NotifyApprovals”)

If not successful, (A) does not contact (B) for an updated list of applications (even if again unsuccessfully attempted to call the OperationServer) for at least 10 minutes

If (A) would find the invariant identifier of the OperationServer in the list, it would update or create its OperationClient and end of story


feat: Add an option to ignore logs about heartbeat message

Related Issue

resolve #110
Also related with https://github.com/jopemachine/raft-rs/pull/2

This PR also should be applied to work properly.

Changes
Config

Added a new field omit_heartbeat_log on the Config.

Default value is false.

RaftNodeCore

Check the messageType and the field value to decide whether to log the message.

Examples

Changed memstore-static-members and dynamic-members.

Added a command line parameter so that we can set the option. Now, we can omit the heartbeat message's log like this: ./misc/bootstrap-static-cluster.tmux.sh 4 --omit-heartbeat-log

etc

Added a line on .gitignore for IntelliJ.

Thank you for your contribution!
Just a heads-up: Using one of these keywords will automatically close the original issue when this pull request is merged.

Thanks!

This option can also be added to the Python binding side.
https://github.com/lablup/raftify/blob/main/binding/python/src/bindings/raft_rs/config.rs#L53-L96

@jopemachine  I missed this part. I'll make another PR. Thanks!


[SPARK-37817][SQL][Minor] Remove unreachable code in complexTypeExtractors.scala

What changes were proposed in this pull request?

The constructor of GetArrayItem and GetMapValue with two input elements are not actually used. Usually, we implement such construction method so that it can be used in FunctionRegistry
def this(child: Expression, ordinal: Expression) = this(child, ordinal, SQLConf.get.ansiEnabled)

Since the expression GetArrayItem and GetMapValue are not used as functions in FunctionRegistry, we can remove these constructors.
Why are the changes needed?

Code clean up
Does this PR introduce any user-facing change?

No
How was this patch tested?

Existing UT

Merging to master


#1: creating molecule environment

[X] initialize role with Molecule and Vagrant
[X] configure prerequisites and make sure tests done succussefully
[X] move developed tasks from test playbook to that role

Pull created by Mishavint at 2022-11-18T08:23:48Z

This PR is included in version 1.0.0 :tada:
Comment created by github-actions[bot] at 2023-05-02T21:29:44Z

@bissquit,
I have several questions

Should i implement some simple CI?
Should i enable branch protection for main branch? So It will require PR approval
Comment created by Mishavint at 2022-11-18T08:29:12Z

bissquit, I have several questions

Should i implement some simple CI?
Should i enable branch protection for main branch? So It will require PR approval

No
It's mostly for public repositories. So the answer is - not now
Comment created by bissquit at 2022-11-22T12:35:01Z

Assignee is {'login': 'Mishavint'}


Wrong disk info on windows

Here is what I tried:

for(const disk of disks){
... console.log(disk)
... console.log(disk.filesystem)
... }
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'C:'
}
Local Fixed Disk
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'D:'
}
Local Fixed Disk
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'E:'
}
Local Fixed Disk
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'F:'
}
Local Fixed Disk
Drive {
_filesystem: 'CD-ROM Disc',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'G:'
}
CD-ROM Disc
undefined

I am using
Windows7
node 13.14
with the latest version of node-disk-info.
This is the code I tried:
for(const disk of disks){
    console.log(disk)
    console.log(disk.filesystem)
}

And the output was:
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'C:'
}
Local Fixed Disk
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'D:'
}
Local Fixed Disk
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'E:'
}
Local Fixed Disk
Drive {
_filesystem: 'Local Fixed Disk',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'F:'
}
Local Fixed Disk
Drive {
_filesystem: 'CD-ROM Disc',
_blocks: 0,
_used: 0,
_available: 0,
_capacity: '0%',
_mounted: 'G:'
}
CD-ROM Disc
undefined

could you please use this command in a console (CMD in windows):
wmic logicaldisk get Caption,FreeSpace,Size,VolumeSerialNumber,Description /format:list
and paste the result here (if it is readable)
Indeed some data seems weird I think I need to check it again (also some changes are already in PR but still not accepted)


Updated EKS-D dev releases for all versions

HOLD UNTIL DEV RELEASES OUT
/hold
Description of changes:

Get the newest base image

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

We're going to prod instead


Added unit test for multiple nics

See outdated diff for my comment regarding ipaddresses.
Can you make sure you address/acknowledge comments before pushing new commits so that they don't get lost in the shuffle?

I hadn't seen the comment sorry. I will do that in the future.

LGTM

LGTM


[Question] I feel like this is a bit unnecessary

In NTTS/ntts.py, Line 19 to 32.
def get_package_path():
    if hasattr(site, 'getsitepackages'):
        packages = site.getsitepackages()
        if len(packages) > 1:
            return packages[1]
        if len(packages) > 0:
            return packages[0]
    if sys.platform.startswith("linux"):
        return f"/home/{getpass.getuser()}/anaconda3/envs/torch/lib/python{sys.version_info.major}.{sys.version_info.minor}/site-packages"
    elif sys.platform == "win32" or sys.platform == "cygwin" or sys.platform == "msys":
        return f"C:/Users/{os.getlogin()}/anaconda3/envs/torch/Lib/site-packages"
    elif sys.platform == "darwin":
        return f"/Users/{getpass.getuser()}/anaconda3/envs/torch/lib/python{sys.version_info.major}.{sys.version_info.minor}/site-packages"
    return f"/usr/local/lib/python{sys.version_info.major}.{sys.version_info.minor}/site-packages"

Why do you need to include platform judgements after the site.getsitepackages()? Does it operated differently in different platforms? Or didn't provide such a function in some environments?

The function get_package_path in your script is designed to return the path to the site-packages directory, where third-party packages are installed. The function first attempts to use site.getsitepackages() to find these directories. However, there are a couple of reasons why the platform-specific checks and paths are included after this initial attempt:

Platform-Specific Differences:

The function site.getsitepackages() behaves differently across various operating systems. For example, the default paths for site-packages might differ between Linux, Windows, and macOS.
Different platforms might have different conventions for where Python environments are created and managed. For instance, on Windows, you might see paths like C:/Users/{username}/anaconda3/envs/torch/Lib/site-packages, while on Linux, it might be more like /home/{username}/anaconda3/envs/torch/lib/python{version}/site-packages.

Anaconda Environments:

The code specifically checks for Anaconda environment paths, which are not necessarily handled correctly or consistently by site.getsitepackages(). Anaconda environments have their own structure and locations that might not be captured correctly by the default site package utility.

Fallback Mechanism:

In cases where site.getsitepackages() does not return a valid or expected path (e.g., it might return empty or unexpected values), the platform-specific paths provide a fallback mechanism.

Environment-Specific Scenarios:

There might be environments where site.getsitepackages() is not available or does not provide the correct information. This is common in custom installations or minimalist Python environments.

Here’s a breakdown of how the function addresses different scenarios:

First Attempt: Try to use site.getsitepackages(). If this successfully returns one or more paths, use the first or second one as needed.
Second Attempt: If the platform is Linux, construct a path that follows typical Linux conventions for Anaconda environments.
Third Attempt: For Windows, construct a path based on typical Windows conventions for Anaconda environments.
Fourth Attempt: For macOS, construct a path based on typical macOS conventions for Anaconda environments.
Final Fallback: If none of the above work, return a general path that should work for a standard local Python installation.

This approach ensures robustness and flexibility, allowing the function to correctly identify the site-packages directory across various environments and configurations.

The function get_package_path in your script is designed to return the path to the site-packages directory, where third-party packages are installed. The function first attempts to use site.getsitepackages() to find these directories. However, there are a couple of reasons why the platform-specific checks and paths are included after this initial attempt:

Platform-Specific Differences:

The function site.getsitepackages() behaves differently across various operating systems. For example, the default paths for site-packages might differ between Linux, Windows, and macOS.
Different platforms might have different conventions for where Python environments are created and managed. For instance, on Windows, you might see paths like C:/Users/{username}/anaconda3/envs/torch/Lib/site-packages, while on Linux, it might be more like /home/{username}/anaconda3/envs/torch/lib/python{version}/site-packages.

Anaconda Environments:

The code specifically checks for Anaconda environment paths, which are not necessarily handled correctly or consistently by site.getsitepackages(). Anaconda environments have their own structure and locations that might not be captured correctly by the default site package utility.

Fallback Mechanism:

In cases where site.getsitepackages() does not return a valid or expected path (e.g., it might return empty or unexpected values), the platform-specific paths provide a fallback mechanism.

Environment-Specific Scenarios:

There might be environments where site.getsitepackages() is not available or does not provide the correct information. This is common in custom installations or minimalist Python environments.

Here’s a breakdown of how the function addresses different scenarios:

First Attempt: Try to use site.getsitepackages(). If this successfully returns one or more paths, use the first or second one as needed.
Second Attempt: If the platform is Linux, construct a path that follows typical Linux conventions for Anaconda environments.
Third Attempt: For Windows, construct a path based on typical Windows conventions for Anaconda environments.
Fourth Attempt: For macOS, construct a path based on typical macOS conventions for Anaconda environments.
Final Fallback: If none of the above work, return a general path that should work for a standard local Python installation.

This approach ensures robustness and flexibility, allowing the function to correctly identify the site-packages directory across various environments and configurations.

Thank you, it was my wrong I didn't read the string contents seriously.

Don't take this project too seriously, it's a satirical project to mock a company's embarrassing presentation at a press conference.

I think it is a good project to be an example of Change Traceback Output. 然后其实我是装外宾的（笑


[chore] runs native classes codemod for apps/transform

A continuation of #2227 that runs the native classes codemod against app/transforms
Please include a description of your change & check your PR against this list, thanks!

[x] There's a clear use-case for this code change
[x] Commit message has a short title & references relevant issues
[x] The build will pass (run ember test from the repo root - will be core/client if working from the submodule in Ghost).

More info can be found by clicking the "guidelines for contributing" link above.

Codecov Report

Merging #2242 (c3f0f8a) into main (eeaf546) will decrease coverage by 0.07%.
The diff coverage is n/a.

:exclamation: Current head c3f0f8a differs from pull request most recent head fbd8a6d. Consider uploading reports for the commit fbd8a6d to get more accurate results

@@            Coverage Diff             @@
##             main    #2242      +/-   ##
==========================================
- Coverage   37.50%   37.42%   -0.08%
==========================================
  Files         552      552
  Lines       21998    21998
  Branches     3939     3939
==========================================
- Hits         8250     8233      -17
- Misses      13748    13765      +17

Impacted Files
Coverage Δ

app/transforms/facebook-url-user.js
90.00% <ø> (ø)

app/transforms/json-string.js
100.00% <ø> (ø)

app/transforms/member-product.js
90.90% <ø> (ø)

app/transforms/member-subscription.js
81.81% <ø> (ø)

app/transforms/moment-date.js
0.00% <ø> (ø)

app/transforms/moment-utc.js
80.00% <ø> (ø)

app/transforms/navigation-settings.js
94.11% <ø> (ø)

app/transforms/product-benefits.js
0.00% <ø> (ø)

app/transforms/raw.js
100.00% <ø> (ø)

app/transforms/slack-settings.js
94.44% <ø> (ø)

... and 3 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eeaf546...fbd8a6d. Read the comment docs.

https://github.com/TryGhost/Ghost/issues/14101


[FR]: Remove deleted files/renamed?

Is your feature request related to a problem? Please describe.
The data.json become more and more big when in a big vault, as file are moved, renamed. The settings doesn't autoclean so it can lead to surprising icon/error when recreating file.
Describe the solution you'd like
A listener to renamed/deleted/moved file, to remove old path.
Describe alternatives you've considered
A node script that autoclean the data.
Additional context
My js script: (feat french & english :'D)
//import data.json file from .obsidian/plugins/obsidian-icon-folder/data.json
const data = require("../../.obsidian/plugins/obsidian-icon-folder/data.json");
//get all files in the folder from root
const fs = require("fs");
const path = require("path");

//create a list of all file path in the folder from root (recursive)

const scriptDir = path.dirname(__filename);
const parentDir = path.join(scriptDir, "..", ".."); // Le ".." signifie le répertoire parent

// Fonction récursive pour obtenir la liste des fichiers
function getFilesRecursively(dir) {
	const files = fs.readdirSync(dir);
	let fileList = [];

	files.forEach((file) => {
		const filePath = path.join(dir, file);
		const stats = fs.statSync(filePath);

		if (stats.isDirectory() && !filePath.match(/\.(obsidian|trash|smart-connections)/g)) {
			// Si le chemin est un répertoire, appelez la fonction récursivement
			fileList = fileList.concat(getFilesRecursively(filePath));
			//also ajouter le dossier
			fileList.push(filePath);
		} //if file is not a directory remove extension and add to list
		else if (stats.isFile()) {
			fileList.push(filePath.replace(/\.[^\/.]+$/g, ""));
		}
		//remove root path
		fileList = fileList.map((file) => file.replace(path.normalize(`${parentDir}/`), ""));
	});

	return [...new Set(fileList)];
}

// Utilisez la fonction pour obtenir la liste des fichiers
let fileList = getFilesRecursively(parentDir);
fileList = fileList.map((file) => path.normalize(file));
console.log(fileList);

/*** ---- JSON OBJECT ------- */
/** form of
 * {
 *  "path/toFile": "iconName",
 *  "path/toFile2": {
 *      "iconName": iconName,
        "inheritanceIcon": "FasCode"
 *   },
 * }
 */

function removeNonExistPath(data, fileList) {
	const newData = {};
	const settings = data.settings;
	delete data.settings;
	newData.settings = settings;
	for (const [key, value] of Object.entries(data)) {
		if (fileList.includes(path.normalize(key))) {
			newData[key] = value;
		}
	}
	return newData;
}

const newData = removeNonExistPath(data, fileList);
console.log(newData);
/*** ---- JSON OBJECT ------- */
fs.writeFileSync(
	path.join(scriptDir, "..", "..", ".obsidian", "plugins", "obsidian-icon-folder", "data.json"),
	JSON.stringify(newData, null, 2)
);

Could you elaborate on this a little more? I am not sure if I can reproduce this locally because for me, moved, renamed, or deleted files/folders are updated accordingly in the json data.

I recorded a video with deleting a file for example of my issue:
https://github.com/FlorianWoelki/obsidian-iconize/assets/30244939/8e634406-c06c-4154-9346-0db7e4a8ff51

Hmm. I am not able to reproduce this. Would it be possible to debug this yourself locally? Normally, this function should be called.

Not related, but got this in the logs when loading/reloading the plugin:

Fixed by using ? :
export const getExtraPath = (iconPackName: string): string | undefined => {
  const path = Object.values(iconPacks).find((iconPack) => iconPack.name === iconPackName)?.path;
  return path?.length === 0 ? undefined : path;
};

See #262 for more information & cleanUp function


add shuffle_bytes to unsigned integer vectors

Closes #46 .

 I was looking for this for like 5 minutes thinking it would be part of MMX...

Oh and _mm256_shuffle_epi8?

_mm256_shuffle_epi8 operates on two 128-bit halves of a 256-bit vector independently.. many AVX intrinsics do this, I really dislike that.

It's counter-intuitive and doesn't seem very useful. Oh well

@TheIronBorn let me know if you want to send a PR fixing u8x8.


Improve latest courses on homepage

Description

We need to add a link, to the appropriate course route and improve layout and add additional fields like createdAt date with DatePipe

Package: course

@danieljancar Was meinst du mit dem Link? Wenn man darauf klickt oder wie genau? Könntest du es bitte ein bisschen spezifischer machen?

@valeriaxxx, as we see, the routerLink to the appropraite course is already implemented. So what is missing?

Additional field for createdAt like we have it on courses-overview.component, probably below the description.

I did, issue closed. 🚀


Request change sequence of @view-change and @choose-date

Im using 2 calendar, 1 mini to navigate date, 2nd is resource calendar to display all resource view using split. When choose specific mini calendar date, it will refresh resource calendar.
There is 1 issue I couldn't overcome  at mini calendar, which is when I navigate through different month/year, I dont to trigger @choose-date event. I try to use @view-change hope can exclude date change during view=year or month.
Unfortunately when i navigate through different month and year, the choose-date event fire before @view-change.
IMHO, changing year/month may not mean to trigger change date. Is it possible  to improve as  anyone of below?

@choose-date submit additional property of current calendar view status, so I can pick which pick date event i wish to use
make @view-change before @choose-date
break choose-date event become choose-year, choose-month, choose-week (ugly but more specific and easier for beginner)

sorry, close this issue first


Trouble simply downloading ltc from cluster - Manjaro linux

I am simply following the getting started guide here: http://lattice.cf/docs/getting-started/ and have remained hung up on something that I don't see any other mention of.    I get all the way through the process where vagrant up completes successfully and see:
==> default: Waiting for services to start...
==> default: Lattice is now installed and running.
==> default: ----------------------------------------------------------------
==> default: To obtain a version of ltc that is compatible with your cluster:
==> default: $ curl -O http://receptor.local.lattice.cf/v1/sync/linux/ltc
==> default: $ chmod +x ltc
==> default: Optionally, move ltc to a directory in your PATH.
==> default: You may then target your cluster using: ltc target local.lattice.cf
==> default: ----------------------------------------------------------------

I then do the curl operation to download ltc and get:
curl -O http://receptor.local.lattice.cf/v1/sync/linux/ltc
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:02:07 --:--:--     0curl: (7) Failed to connect to receptor.local.lattice.cf

And trying wget, it appears that I get the same connection timeout...
wget http://receptor.local.lattice.cf/v1/sync/linux/ltc
--2015-11-28 11:59:03--  http://receptor.local.lattice.cf/v1/sync/linux/ltc
Resolving receptor.local.lattice.cf (receptor.local.lattice.cf)... <IP_ADDRESS>
Connecting to receptor.local.lattice.cf (receptor.local.lattice.cf)|<IP_ADDRESS>|:80... failed: Connection timed out.
Retrying.

I was wondering if the cluster is truly up, so I ran
vboxmanage list runningvms

and see....
"vagrant_default_1448435783935_53895" {a2aa046c-a9ec-44cb-a83b-228126ed103f}

...which tells me that it is running.  Does anyone have any suggestions for moving forward?  I have been stuck here for far too long!

As a followup, I have found a solution.  I had to open the VirtualBox GUI, go into the network settings for the vagrant instance, and modify "Promiscuous Mode" to "Allow VMs" as you can see in the image below.  I am going to leave this bug open in case that is perhaps a modification that the developers need to add so that it does this by default.  If not, feel free to close it.

@dshuck, it's work! Thank you.


New Console Class && Logging + ClientDir changes

Proposed Semver Increment Bump: [MAJOR/MINOR/PATCH]
Patch
Changes Proposed in this Pull Request (List new items in CHANGELOG.MD)
New Things:

New Console Class
Breaking changes in config (moved them around)
No longer need Chalk (Once finalizer is fixed)
HexString and HexNumber Format color support (0x and #)
RGB Color Format [number, number, number]
HSL Color Format [string, string%, string%]

Subject to change:

Color String Names (light instead of bright) light instead of bright now
Snake_Case Strings?
UPPERCASE instead of lowercase?
RGB/HSL Format... rgb(r,g,b) && hsl(h,s,l) as strings might be more efficient?

Things Left to do:

Fix CommandLogging Finalizer (fucking forgot this uses chalk as well..)
Add 88/256 Color Support
Fix Internal Attribution code ( I complicated it a lot. )
Maybe HSL support?

Disclaimer: Some things will work and some things won't work. This is entirely based upon what terminal you use. If something isn't as the documentation says, then chances are the terminal you're using changed it. It will not be changed as the current implementation is the most static one across all terminals.

EDIT from Cyberium: Attached my ClientDir changes to this PR as my changes were checkedout from this PR

Fixes #357


KAFKA-2671: Enable starting Kafka server with a Properties object

@guozhangwang mind taking a look at this trivial patch?

LGTM

LGTM.


Bump carbon.business-process version

Purpose
$subject

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/2268063093

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/2268063093
Status: success


Incorect with convert to/from evmos

Hi, when i try to convert from cosmos/osmo to evmos, the result is incorrect.
Please look at this.

Most cosmos chains are derived with the Slip44 cointype /118'/... in the derivation path... Evmos and a few others use their own cointype id.
It's not possible to convert addresses between different slip44 cointypes in the HD derivation path, without the original private key / mnemonic


PR: Change style of border around thumbnail of current plot

Description of Changes

[x] Wrote at least one-line docstrings (for any new functions) N/A
[x] Added unit test(s) covering the changes (if testable) N/A

[x] Included a screenshot or animation (if affecting the UI, see Licecap)

Change the border around the thumbnail of the current plot in the Plots pane to 3px wide and gray (COLOR_TEXT_3) for clarity and consistency with the overall styling. This style was suggested in this comment.
Screenshot after the change in dark theme:

Screenshot after the change in light theme:

Issue(s) Resolved

Fixes #21046
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: Jitse Niesen

Thanks @jitseniesen for your work on this! I think the new border style looks quite good in the light theme but not so much in the dark one.
@conradolandia, what do you think?

This is what it looks like with Gray.B70 in dark mode:

I am thinking we should go back to the blue. Preserving the line thickness, but going back to the blue color we had before. That will look good in both the dark and light theme.

I am not certain that my previous screenshot was correct. This is what it really looks like with Gray.B70:

This is the original blue color, but with 3px thickness instead of the original 2px thickness. I think it is clearer than before and thus an improvement.

Same in light mode:

This is the original blue color, but with 3px thickness instead of the original 2px thickness. I think it is clearer than before and thus an improvement.

I think so too. So, I propose that we should go with this option instead.
@conradolandia, what do you think?

I think this option works fine enough, yes.

Great, I squashed the commits in one, as it is basically a one-character change now.

Please unsubscribe me.
Thanks,

From: Carlos Cordoba @.>
Sent: Wednesday, January 3, 2024 10:17 AM
To: spyder-ide/spyder @.>
Cc: Subscribed @.***>
Subject: Re: [spyder-ide/spyder] PR: Change style of border around thumbnail of current plot (PR #21598)
@ccordoba12 approved this pull request.
Thanks @jitseniesenhttps://github.com/jitseniesen!
Note: The error in our test suite is unrelated to this.
—
Reply to this email directly, view it on GitHubhttps://github.com/spyder-ide/spyder/pull/21598#pullrequestreview-1801270075, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BBN3IHZD3DONFSGK5LPZKEDYMSWTXAVCNFSM6AAAAABANYY7NGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTQMBRGI3TAMBXGU.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


Update README.md

Rename the word "Eello world" to "Hello world"

This is an intentional joke :) It seems to have flown over a few people's heads, but I think we'll keep it for now anyway ...

This is an intentional joke :) It seems to have flown over a few people's heads, but I think we'll keep it for now anyway ...


Add hugo-theme-arch

https://github.com/syui/hugo-theme-arch
Please let me know if there are any issues.
Thanks!

Hello @syui,
thank you for sharing your theme with the community. Before we can merge you theme we have fix a few things:
Currently, your repo is structured like a Hugo site, not a theme. All themes in this list are cloned into the themes folder of a Hugo site.
Copy everything from themes/hugo-arch-theme into the root directory of your repository. This step turns your repository into a theme

Since you want to ship your theme with custom static / data files and content you have to create a folder called exampleSite. This folder just mirros the corresponding folders in the root directory of a Hugo website. Read this paragraph for more information. Furthermore, take a look at the structure of my themes to get a feeling for it.

Make sure that the thumbnail and screenshot in images have to appropriate dimensions.

Your themes has a navigation at the top of each page. The links are hardcoded. Usually, users expect to customize it for their own needs.

Furthermore, you feature a search field in the top right. Neither your config file nor the partials show how it should work. I would disable it for now if it isn't working.
Have a look at spf13/hugo#1853. This should allow you with a future release of Hugo to implement a working search.
Cheers,
Digitalcraftsman

@digitalcraftsman fixed

@digitalcraftsman
Please let me know if there are any issues.
Thanks!

Everythinh LGTM. Merged in ab1b716edd8aea611d849ebdb7e5207ac24deef2.