Documentation should be expanded by default

https://github.com/swagger-api/swagger-ui#parameters
This was hacked in onComplete function for the admin documentation, but for the mounted documentation it was always unfolded. Swagger 2.0 has a configuration parameter for this.

Thanks!


[docs] added touchups to readme.md

This change is a documentation change that remove the requirement to use git checkout v.20 and clears up certain information on the README.md that confused me when I first started.

But is that really necessary for the average person who wants to get
started as fast as possible and get working on the project?
On Sat Nov 30, 2024 at 3:07 PM EST, Kai Mei wrote:

@dongyuanjushi commented on this pull request.
The v0.2.0.beta version is used to tag and package code to a stable version without changing, and the 0.2.0.beta is currently used for testing.

But is that really necessary for the average person who wants to get started as fast as possible and get working on the project?
…
On Sat Nov 30, 2024 at 3:07 PM EST, Kai Mei wrote: @dongyuanjushi commented on this pull request. The v0.2.0.beta version is used to tag and package code to a stable version without changing, and the 0.2.0.beta is currently used for testing.

It might be more helpful to add an instruction here to indicate that it is recommended to use the stable version (v0.2.0.beta for example) instead of removing the git checkout -b v0.2.0.beta?

Sounds good, done.
…
On Sat Nov 30, 2024 at 10:01 PM EST, Kai Mei wrote: > But is that really necessary for the average person who wants to get started as fast as possible and get working on the project? > … > On Sat Nov 30, 2024 at 3:07 PM EST, Kai Mei wrote: @dongyuanjushi commented on this pull request. The v0.2.0.beta version is used to tag and package code to a stable version without changing, and the 0.2.0.beta is currently used for testing. It might be more helpful to add an instruction here to indicate that it is recommended to use the stable version (v0.2.0.beta for example) instead of removing the git checkout -b v0.2.0.beta?

Could you change your current changes of git checkout v.20 to git checkout v0.2.0.beta (v0.2.0.beta is the correct tag that needs to be switched to)?


parsing LDAP search message openldap

I've tried to parse an LDAP SearchQuery Message from ldapsearch from openldap.
It fails with specific search queries when given an ASN.1 spec for LDAP messages, but also fails when trying to decode the ldap message without any ASN.1 specification. As this is used in an ldap proxy that should just pass-through LDAP search messages, I am mostly interested in pyasn1 not failing at special messages.
The message it fails at is given in hex here:<PHONE_NUMBER>6351041064633d6578616d6c652c64633d6f72670a01020a0100020100020100010100a02c870b6f626a656374436c617373a31d040e73616d4163636f756e744e616d65040b6578616d706c65557365723000
The message can be parsed by asn1js here: https://lapo.it/asn1js/#MFYCAQJjUQQQZGM9ZXhhbWxlLGRjPW9yZwoBAgoBAAIBAAIBAAEBAKAshwtvYmplY3RDbGFzc6MdBA5zYW1BY2NvdW50TmFtZQQLZXhhbXBsZVVzZXIwAA
Testcode:
from binascii import unhexlify
from pyasn1.codec.ber.decoder import decode as ber_decoder
from pyasn1 import debug
debug.setLogger(debug.Debug('all'))
data = unhexlify('30560201026351041064633d6578616d6c652c64633d6f72670a01020a0100020100020100010100a02c870b6f626a656374436c617373a31d040e73616d4163636f756e744e616d65040b6578616d706c65557365723000')
obj, rest_of_input = ber_decoder(data)
print(data)
print(obj)
print(rest_of_input)
GIT Master shows:
2022-12-12 16:06:12,821 pyasn1: running pyasn1 0.4.9, debug flags all
2022-12-12 16:06:12,821 pyasn1: debug category 'all' enabled
2022-12-12 16:06:12,821 pyasn1: decoder called at scope  with state 0, working with up to None octets of substrate: <_io.BytesIO object at 0x7fa36eff9ee0>
2022-12-12 16:06:12,821 pyasn1: tag decoded into <TagSet object, tags 0:32:16>, decoding length
2022-12-12 16:06:12,821 pyasn1: value length decoded into 86
2022-12-12 16:06:12,821 pyasn1: codec SequenceOrSequenceOfPayloadDecoder chosen by a built-in type, decoding value
2022-12-12 16:06:12,821 pyasn1: state is stDecodeValue
2022-12-12 16:06:12,821 pyasn1: decoder called at scope NoneType with state 0, working with up to None octets of substrate: <_io.BytesIO object at 0x7fa36eff9ee0>
2022-12-12 16:06:12,821 pyasn1: tag decoded into <TagSet object, tags 0:0:2>, decoding length
2022-12-12 16:06:12,821 pyasn1: value length decoded into 1
2022-12-12 16:06:12,821 pyasn1: codec IntegerPayloadDecoder chosen by a built-in type, decoding value
2022-12-12 16:06:12,821 pyasn1: state is stDecodeValue
2022-12-12 16:06:12,821 pyasn1: codec IntegerPayloadDecoder yields type Integer, value:
2
...
2022-12-12 16:06:12,821 pyasn1: decoder left scope NoneType, call completed
2022-12-12 16:06:12,821 pyasn1: decoder called at scope NoneType with state 0, working with up to None octets of substrate: <_io.BytesIO object at 0x7fa36eff9ee0>
2022-12-12 16:06:12,821 pyasn1: tag decoded into <TagSet object, tags 64:32:3>, decoding length
2022-12-12 16:06:12,821 pyasn1: value length decoded into 81
2022-12-12 16:06:12,821 pyasn1: codec  chosen by a built-in type, decoding as explicit tag
2022-12-12 16:06:12,821 pyasn1: A: codec RawPayloadDecoder chosen, decoding value
2022-12-12 16:06:12,821 pyasn1: state is stDecodeValue
2022-12-12 16:06:12,821 pyasn1: valueDecoder
2022-12-12 16:06:12,821 pyasn1: valueDecoder B decodeFun=<pyasn1.codec.ber.decoder.SingleItemDecoder object at 0x7fa36efdbd90> len=81
2022-12-12 16:06:12,821 pyasn1: decoder called at scope NoneType.? with state 0, working with up to 81 octets of substrate: <_io.BytesIO object at 0x7fa36eff9ee0>
2022-12-12 16:06:12,821 pyasn1: tag decoded into <TagSet object, tags 0:0:4-64:32:3>, decoding length
2022-12-12 16:06:12,821 pyasn1: value length decoded into 16
2022-12-12 16:06:12,822 pyasn1: codec OctetStringPayloadDecoder chosen by a built-in type, decoding value
2022-12-12 16:06:12,822 pyasn1: state is stDecodeValue
2022-12-12 16:06:12,822 pyasn1: codec OctetStringPayloadDecoder yields type OctetString, value:
dc=examle,dc=org
...
2022-12-12 16:06:12,822 pyasn1: decoder left scope NoneType.?, call completed
Traceback (most recent call last):
File "/home/ron/test-pyasn1/test.py", line 10, in
obj, rest_of_input = ber_decoder(data)
File "/home/ron/test-pyasn1/pyasn1/codec/ber/decoder.py", line 2013, in call
for asn1Object in streamingDecoder:
File "/home/ron/test-pyasn1/pyasn1/codec/ber/decoder.py", line 1928, in iter
for asn1Object in self._singleItemDecoder(
File "/home/ron/test-pyasn1/pyasn1/codec/ber/decoder.py", line 1788, in call
for value in concreteDecoder.valueDecoder(
File "/home/ron/test-pyasn1/pyasn1/codec/ber/decoder.py", line 673, in valueDecoder
for asn1Object in self._decodeComponentsSchemaless(
File "/home/ron/test-pyasn1/pyasn1/codec/ber/decoder.py", line 609, in _decodeComponentsSchemaless
for component in decodeFun(substrate, **options):
File "/home/ron/test-pyasn1/pyasn1/codec/ber/decoder.py", line 1797, in call
raise PyAsn1Error(
pyasn1.error.PyAsn1Error: Read 18 bytes instead of expected 81.
Making RawPayloadDecoder.valueDecoder loop like RawPayloadDecoder.indefLenValueDecoder changes the error messages as it fails at decoding the query message part.

Please close this issue here and report to https://github.com/pyasn1/pyasn1/issues.
This repo is no longer maintained.


FCFS-4 files added in job scheduling

🛠 Issue (Number)

Issue no #1444
👨💻 Changes proposed
Added Python, Java, C and CPP files of FCFS Algorithm.

✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

📷 Screenshots

@Kumar-laxmi sir review the changes .Files name changed!


About the policy

I'm new here and actually don't  know how the training works. Just import the images when I'm driving with trying to achieve some goals such as follow human or along the black line and train them in tensorflow?Do the neural network really know what it is doing?
I'm wondering if I can label the picture manually and train the car more intelligently such as recognize mini traffic light and then do what it is supposed do, and identify a particular people by outlook such as face, clothes, height or something, not just a general human and etc..
And even more, if I can train them individually and deploy them on the car?  Like find pictures online to improve the accuracy of recognition and then combine with the manually drive to let it know how to act at the circumstance. Despise the priority(when images have two or above different types of labels).

The autopilot just regresses images to controls. The task needs to be setup in such a way that it is possible to infer the controls only from the image. So for example, if you drive the car to follow a black line and record the data, the network can learn to imitate this behaviour. More complex tasks can also be learned with more data, but the current network only support single-frame predictions. So if the network has to reason about the environment from memory, it won't work.
The alternative is to build a system. For example like the object detector which is trained offline to detect objects and a large-scale dataset. The predictions are then used to compute controls. You could similarly run multiple networks, e.g. one to detect traffic signs, one to follow the road, one to stop for obstacles, etc. Then you could build a state machine that produces controls taking all those predictions into account.

The autopilot just regresses images to controls. The task needs to be setup in such a way that it is possible to infer the controls only from the image. So for example, if you drive the car to follow a black line and record the data, the network can learn to imitate this behaviour. More complex tasks can also be learned with more data, but the current network only support single-frame predictions. So if the network has to reason about the environment from memory, it won't work.
The alternative is to build a system. For example like the object detector which is trained offline to detect objects and a large-scale dataset. The predictions are then used to compute controls. You could similarly run multiple networks, e.g. one to detect traffic signs, one to follow the road, one to stop for obstacles, etc. Then you could build a state machine that produces controls taking all those predictions into account.

Thanks for your reply. Now I know how it works better, it is based on images rather than on labels right？
I will try it from a simple way like follow a black line and see how it works.
And then try the second suggestion, which looks like really hard to achieve for me.

Thanks for your reply. Now I know how it works better, it is based on images rather than on labels right？
I will try it from a simple way like follow a black line and see how it works.
And then try the second suggestion, which looks like really hard to achieve for me.


[TW#26809] HTTP server over SSL

PR is now here: https://github.com/espressif/esp-idf/pull/2578
I have a working patch for the http_server component to make it work with HTTPS (OpenSSL) or any other layer protocol.
I write this instead of a PR, to ask - do you want it?
I need to clean it a bit, so if there's an official version in the works, I won't waste time doing that.
But otherwise it can be here in a few days.

Hi @MightyPork, can you please upload it to github and paste a link here?
Just a question what is your turnaround time for an https request for your server? In openssl server example, I am getting turnaround time per request to be around 5.5 seconds which is too much as compared to that of an http request(of around 100ms).

@AadiMehta I'll upload it if nobody from espressif responds in 2 days, don't want to do the work twice.
anyway, I have 2.3 seconds RTT when the session is established, running at 240 MHz. I also changed the FreeRTOS clock rate to 1000Hz, but that shouldn't make a difference here.
but keep in mind that the session is not closed immediately when using the http server - same goes for SSL in my implementation. So follow-up requests (favicon etc) are faster, for me it's 500ms - may be even lower if the debug log is disabled - the server spams a lot in LOGD. I'll need to look into that. For my use this is good enough, it'll be just for some config pages.

update - it's 1.8s for the first response, then 50-200 ms for the follow up messages. I think it's very good, considering I use TLSv1.2 (and suspect the OpenSSL library may not be using hardware acceleration properly)

That's quite a huge difference, I would definitely want to give it a try. Also wondering for what maximum time can we keep the session open?
Also do you happen to try https server implementation using mbedtls, if that has lower turnaround time

Okay, waiting now to try it. Thanks again for all the info

@MightyPork That seems promising! We are presently not looking into HTTP over SSL, but it's a desirable addition. So, please proceed with your PR.

@anurag-kar the PR is submitted as https://github.com/espressif/esp-idf/pull/2578
it includes comments and an example, feel free to adjust as needed. moving discussion to the PR

@MightyPork I think its missing "https_server.h" header file.

My bad! found it @MightyPork

@AadiMehta no it's there. Try building the example, it should work as is (after you menuconfig your wifi)
https://github.com/espressif/esp-idf/pull/2578/files#diff-8f852df8ae12ea60a6f2e0d00fce9205


with next.js(server side render) warning: Prop aria-controls did not match. Server: "hidden-tt4h6d" Client: "hidden-vlpmbp"

🐛 Bug report
with next.js(server side render) warning: Prop aria-controls did not match. Server: "hidden-tt4h6d" Client: "hidden-vlpmbp"
Current behavior
using MenuDisclosure and Menu, there is a warning:Prop aria-controls did not match. Server: "hidden-tt4h6d" Client: "hidden-vlpmbp"
Environment
"next": "^9.0.3",
"reakit": "^1.0.0-beta.5",
"styled-components": "^4.3.2"

Because I want to tirgger by 'hover', I add  onMouseEnter / onMouseLeave on MenuDisclosure, then the warning occurred. If I remove onMouseEnter / onMouseLeave the warning disappear
<MenuDisclosure           {...menu}           onMouseEnter={() => {             setVisible(true);           }}           onMouseLeave={() => {             setVisible(false);           }}>           Preferences         </MenuDisclosure>

on Server console warning :
Warning: useLayoutEffect does nothing on the server, because its effect cannot be encoded into the server renderer's output format. This will lead to a mismatch between the initial, non-hydrated UI and the intended UI. To avoid this, useLayoutEffect should only be used in components that render exclusively on the client. See https://fb.me/react-uselayouteffect-ssr for common fixes.

Hi @rumsky! Thanks for opening the issue.
Are you using Provider?
Regarding the other warning, could you please provide a repository or CodeSandbox with the code?

here is respo:
https://github.com/rumsky/next-with-reakit
In _app.js I add Provider, but error still have error in both client and server side.

Update:
I add babel-plugin-styled-components and .babelrc , the client error resolved，but server still error.
Warning: useLayoutEffect does nothing on the server, because its effect cannot be encoded into the server renderer's output format. This will lead to a mismatch between the initial, non-hydrated UI and the intended UI. To avoid this, useLayoutEffect should only be used in components that render exclusively on the client. See https://fb.me/react-uselayouteffect-ssr for common fixes.

@rumsky Thanks for the reproduction!
So, the ID mismatch between server and client has gone?
That one about useLayoutEffect is just a warning, but I'm gonna take a better look at it over the next week.

Yup, the ID mismatch between server and client has gone useLayoutEffect still exist

So, I've checked all the uses of useLayoutEffect we have in Reakit. None of them is supposed to run on the server, but they do need to run before the next painting, so useEffect wouldn't work.
That said, that warning can be ignored.

Could you resolve the warning?If this library support SSR,I think it's better resolve 'useLayoutEffect' warning. There are too many warning in server console, It's hard to find important information，very annoying

Not sure what can be done here, but ignoring warnings is usually not the preferred solution for developers trying to get rid of warnings.
I guess one way to solve it in userland would be to load dynamically the component maybe? Like with Next.js dynamic import: https://nextjs.org/docs/advanced-features/dynamic-import

@vvo This is an old issue. The warning I suggested we should ignore (useLayoutEffect on the server) doesn't exist anymore. If you're referring to the ID mismatch warning, please see #844.


Bugs when function calls have no arguments

An issue in extraction
julia> using Metatheory;

julia> using Metatheory.EGraphs;

julia> @metatheory_init ();

julia> ex = :(f());

julia> g = EGraph(ex);

julia> extract!(g, astsize)
:f

The expected result should be :(f()).

And rule matching doesn't work in this case
julia> ex = :(f() + g())
:(f() + g())

julia> t = @theory begin
           f() + g() => h()
       end;

julia> _, ex2 = @extract ex t astsize;

julia> ex2
:(f() + g())

But if we use f + g => h(), it works.
julia> ex = :(f() + g())
:(f() + g())

julia> t = @theory begin
           f + g => h()
       end;

julia> _, ex2 = @extract ex t astsize;

julia> ex2
:(h())

Thanks! Will fix asap!

It was a bad design choice to store :iscall in terms and enodes metatadata, instead of using :call as the enode/term head. Making the last tests pass and pushing to master!

Fixed.
julia> ex = :(f());

julia> g = EGraph(ex);

julia> @test :(f()) == extract!(g, astsize)
Test Passed

julia> ex = :(f() + g())
:(f() + g())

julia> t = @theory begin
                       f() + g() => h()
               end;

julia> _, ex2 = @extract ex t astsize;

julia> @test ex2 == :(h())
Test Passed


config_param regression in subclasses

Current master breaks riywo/fluent-plugin-hash-forward behaviour.
How to reproduce
bash-3.2$ git clone git@github.com:shyouhei/fluent-config-param.git
bash-3.2$ cd fluent-config-param
bash-3.2$ bundle install -j 32 --path=vendor/bundle
bash-3.2$ bundle exec fluentd -c fluentd.conf
2015-04-21 18:39:15 +0900 [info]: reading config file path="fluentd.conf"
2015-04-21 18:39:15 +0900 [info]: starting fluentd-0.12.7
2015-04-21 18:39:15 +0900 [info]: gem 'fluentd' version '0.12.7'
2015-04-21 18:39:15 +0900 [info]: gem 'fluent-plugin-hash-forward' version '0.3.5'
2015-04-21 18:39:15 +0900 [info]: using configuration file: <ROOT>
  <match **>
    type copy
    <store>
      type hash_forward
      heartbeat_type none
    </store>
  </match>
</ROOT>
2015-04-21 18:39:15 +0900 [info]: adding match pattern="**" type="copy"
2015-04-21 18:39:15 +0900 [error]: config error file="fluentd.conf" error="forward output heartbeat type should be 'tcp' or 'udp'"
2015-04-21 18:39:15 +0900 [info]: process finished code=256
2015-04-21 18:39:15 +0900 [warn]: process died within 1 second. exit.
bash-3.2$

Here, the error was from lib/fluent/plugin/out_forward.rb:47 but the type is not forward but hash_forward.  It does support none heartbeat type here.
So the config_param in the subclass is now magically ignored.

fixed at #583

:beers: awesome


[CELEBORN-1258] Add UserIdentifier to the master application meta

What changes were proposed in this pull request?
In this pr, we support to register application without auth enabled.
And when registering the application, the user identifier(tenant and user name) info also transferred to master.
Why are the changes needed?
to close CELEBORN-1285
Support to register application for all use cases and provide more insight for application info.
Does this PR introduce any user-facing change?
Yes.
This pr introduce new config: celeborn.application.register.enabled.
And when it is enabled, the celeborn.internal.port.enabled should be true for internal communication between master and worker.
If celenorn.auth.enabled is true, the application register is always enabled.
How was this patch tested?
UT.

cc @RexXiong
Could you help have a overall review? I can enhance it after that.

cc @RexXiong
Could you help have a overall review? I can enhance it after that.

OK, I will review this asap.

A general query on this - is there any benefit to not supporting auth ?
This change is not backwardly compatible - so existing applications cannot leverage it - for newer deployments and/or upgrade - make authn standard ?

is there any benefit to not supporting auth going forward given authn support has completed ?

I agree, we will also enable auth for our use case.

This pr is used to provide the tenant information for dashboard. https://issues.apache.org/jira/browse/CELEBORN-1227
Do we plan to set celeborn.auth.enabled to true by defaults?

This pr is used to provide the tenant information for dashboard. https://issues.apache.org/jira/browse/CELEBORN-1227
Do we plan to set celeborn.auth.enabled to true by defaults?

No, IMO this feature has nothing to do with whether the auth enabled or not.

Have a general question. Why is user identifier needed to be shared with Celeborn? I can't find any information in the linked jira: CELEBORN-1285
Also, I think if registration is required for the feature that we are trying to support, I think it will better to add a feature flag instead of register.enabled flag.

Have a general question. Why is user identifier needed to be shared with Celeborn? I can't find any information in the linked jira: CELEBORN-1285 Also, I think if registration is required for the feature that we are trying to support, I think it will better to add a feature flag instead of register.enabled flag.

Thanks for the suggestion, will check how to implement it.

thanks for your suggestions, could you help take a look again?
@RexXiong @mridulm @otterc

Codecov Report
Attention: Patch coverage is 30.00000% with 14 lines in your changes are missing coverage. Please review.

Project coverage is 48.93%. Comparing base (fc23800) to head (0feedd7).
 Consider uploading reports for the commit a9a4761 to get more accurate results

Files
Patch %
Lines

...org/apache/celeborn/common/util/PbSerDeUtils.scala
0.00%
7 Missing :warning:

...born/common/protocol/message/ControlMessages.scala
0.00%
6 Missing :warning:

.../apache/celeborn/common/meta/ApplicationMeta.scala
80.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2365      +/-   ##
==========================================
- Coverage   48.96%   48.93%   -0.03%
==========================================
  Files         209      209
  Lines       13146    13153       +7
  Branches     1135     1137       +2
==========================================
- Hits         6436     6435       -1
- Misses       6287     6296       +9
+ Partials      423      422       -1

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


How to show a table when tapping on pin.

Let's assume I have few items (e.g. 10) that are located on the same lat and lng on the map.
Then when I zoom in a map as max as I can I want to tap on this 10 badge and see a table of items.
We can skip implementation of the table of course, but which callback should I implement to make it done?

Please have a look at this code recipe. The MKAnnotationView object you will receive is a CCHMapClusterAnnotation, which has a property annotations with all the annotations in the cluster.

yea, thanks so much!!!
I use this solution. So each my KNCustomPointAnnotation has custom object (NSDictionary), which I want to access:

(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
ClusterAnnotationView *clusterAnnotationView = (ClusterAnnotationView *)view;
// Check if there are many annotations in the cluster.
if (clusterAnnotationView.count > 1)
{
[mapView deselectAnnotation:view.annotation animated:NO];
  CCHMapClusterAnnotation *clusterAnnotation = clusterAnnotationView.annotation;

  [self.myAnnotions removeAllObjects];

  for (KNCustomPointAnnotation *oneAnnotation in [clusterAnnotation.annotations allObjects])
  {
      [self. self.myAnnotions addObject:oneAnnotation.customObject];
  }

  [self doSomething];

}
}


.png .jpg .gif no longer supported?

.png .jpg .gif badges no longer show up.
Errors thrown in console (same error for each type):
[server]<PHONE_NUMBER> svg2img error Error: Stream yields empty buffer
[server]     at Socket.<anonymous> (C:\Users\Dan\Documents\GitHub\shields\node_modules\gm\lib\command.js:57:17)
[server]     at emitNone (events.js:110:20)
[server]     at Socket.emit (events.js:207:7)
[server]     at endReadableNT (_stream_readable.js:1057:12)
[server]     at _combinedTickCallback (internal/process/next_tick.js:138:11)
[server]     at process._tickDomainCallback (internal/process/next_tick.js:218:9)\

Hmm, still working on staging and in test. Do you have imagemagick installed?

I'm fairly sure i have it installed, must be a problem on my end though!
forgot to test it on the staging server.


Do not check types for gevent: types not exported

Pull Request Test Coverage Report for Build 66

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 98.758%

Totals

Change from base Build 65:
0.0%

Covered Lines:
318

Relevant Lines:
322

💛  - Coveralls


Missing '@babel/preset-typescript' dependency in rollup package

🐛 Bug Report
The rollup version of this package is missing the '@babel/preset-typescript' dependency.
To Reproduce
Try to use rollup to compile the code without explicitly installing '@babel/preset-typescript' will fail.
Expected behavior
The plugin should work with rollup without having to manually install '@babel/preset-typescript'
Link to repl or repo (highly encouraged)
Please provide a minimal repository on GitHub.
Issues without a reproduction link are likely to stall.
Run npx envinfo --system --binaries --npmPackages @svgr/core,@svgr/cli,@svgr/webpack,@svgr/rollup --markdown --clipboard
Paste the results here:

Fixed in #652


how to add a formatting menu bar to Atom-“cut", "copy", "paste".

I study HTML, chose the atom editor.
Please tell me how to add a formatting menu bar to Atom-“cut", "copy", "paste". It is uncomfortable to work without them.

Hi @egor230 can you provide a bit more detail on how you're using tool-bar? In general what you want to do is add a snippet like the one below to your toolbar configuration, but how to do that depends on how you use tool-bar.
Based on the examples in this repositories README and the fact that Atom's "cut", "copy", and "paste" commands are core:cut, core:copy, and core:paste respectively.
toolBar.addButton({
  callback: 'core:cut',
  tooltip: 'Cut',

  /* This just gives it an appropriate icon */
  icon: 'cut',
  iconset: 'fa'
});
toolBar.addButton({
  callback: 'core:copy',
  tooltip: 'Cut',

  /* This just gives it an appropriate icon */
  icon: 'copy',
  iconset: 'fa'
});
toolBar.addButton({
  callback: 'core:paste',
  tooltip: 'Paste',

  /* This just gives it an appropriate icon */
  icon: 'paste',
  iconset: 'fa'
});

Hope that helps :smile:

thank you very much for the quick and complete answer. thank you very much. I used to work with C++ in the Studio. there is a formatting panel, which is very convenient when only one hand can work. then decided to study web. hot keys to press through the nose difficult, began to search for how to add a menu bar with the option of adding buttons. tell me, please, where to insert it? in the json?,

@egor230 you can use Ryo's flex-tool-bar that allows you to add arbitrarily buttons 😊


fix: use Bun to run wrapper process

This removes dependency on POSIX shell on development machine and will
use just Bun to run wrapper that will run Bun again, but now with a way
to automatically shut down it when the stdin closes.

I've been testing this today and it works great. Much simpler than what we had before and also removes the POSIX dependency.
Thanks a lot @hauleth 🌹

I've just pushed a new version v1.2.0 of the library that includes this fix.


Loading does not finish when starting with Skeleton project.

Describe the bug
When I start the Svelte app, which is a project created using the template Skeleton project, the site does not stop loading.
Logs

Expected behavior
The site should complete loading.
Stacktraces
I will post the log after installation.

Stack trace
Sho:module nagaishou$ npm init svelte@next my-page
npx: 5個のパッケージを2.765秒でインストールしました。
create-svelte version 2.0.0-next.70
Welcome to SvelteKit!
This is beta software; expect bugs and missing features.
If you encounter a problem, open an issue on https://github.com/sveltejs/kit/issues if none exists already.
✔ Which Svelte app template? › Skeleton project
✔ Use TypeScript? … No / Yes
✔ Add ESLint for code linting? … No / Yes
✔ Add Prettier for code formatting? … No / Yes
✔ Copied project files
✔ Added TypeScript support. To use it inside Svelte components, add lang="ts" to the attributes of a script tag.
✔ Added ESLint.
Readme for ESLint and Svelte: https://github.com/sveltejs/eslint-plugin-svelte3
✔ Added Prettier.
General formatting options: https://prettier.io/docs/en/options.html
Svelte-specific formatting options: https://github.com/sveltejs/prettier-plugin-svelte#options
Want to add other parts to your code base? Visit https://github.com/svelte-add/svelte-adders, a community project of commands to add particular functionality to Svelte projects

Information about your SvelteKit Installation:

Diagnostics
 System:
    OS: macOS 11.2.3
    CPU: (4) x64 Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
    Memory: 187.16 MB / 8.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 14.15.4 - ~/.nodenv/versions/14.15.4/bin/node
    Yarn: 1.22.10 - ~/.nodenv/versions/14.15.4/bin/yarn
    npm: 6.14.10 - ~/.nodenv/versions/14.15.4/bin/npm
  Browsers:
    Brave Browser: <IP_ADDRESS>
    Chrome: 90.0.4430.93
    Firefox: 87.0
    Safari: 14.0.3
  npmPackages:
    @sveltejs/kit: next => 1.0.0-next.102
    svelte: ^3.34.0 => 3.38.2

Severity
It didn't happen with the other template, so I don't think it's that serious.

Aren't the warning from your extensions not being loaded or something. Try doing a Shift + F5 or hard refresh. Maybe that can help?

Thank you.
I also tried a hard refresh, but it didn't help.

I tried reproducing this. I started with npm init svelte@next svelte-kit-test, made the following choices:

Skeleton project
Typescript Yes
Eslint Yes
Prettier Yes

I then did npm install and npm run dev.
I tried both Firefox and Safari and both of them finish loading http://localhost:3000 correctly. I cannot reproduce this issue.
@shoNagai can you try reproducing the problem again from a clean skeleton? Do you perhaps have any browser plugins that is causing issues? Maybe try with a browser in Private mode.
npx envinfo --system --npmPackages svelte,@sveltejs/kit,vite --binaries --browsers
npx: installed 1 in 0.806s

  System:
    OS: macOS 11.3
    CPU: (8) x64 Apple M1
    Memory: 129.06 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 14.15.1 - /usr/local/bin/node
    npm: 6.14.8 - /usr/local/bin/npm
  Browsers:
    Firefox: 89.0
    Safari: 14.1
  npmPackages:
    @sveltejs/kit: next => 1.0.0-next.102
    svelte: ^3.34.0 => 3.38.2


Ignore vacation conversation on active user

For further reference, active user is the one that already has an active ( not used ) vacation record in application.
If active user is talking about vacation plans in channel, the bot should ignore that conversation and not ask about vacation plans.

Also, when question was asked in DM, user didn't respond but writes about vacation in channel, bot should wait until gets response for first DM before posts next question

This one might by tricky. Maybe it should be an option of muting bot for specific account for specific time period ?
This feature is discussed because there might be someone that talks a lot about vacation or there is a topic about vacation etc in the channel. In order for bot not to spam there would be several options.

simple. Do a buffer for how often bot asks about vacation. Maybe once a day ?  For specific user.
mute. if bot gets no on the first try, maybe it should ask about muting for some time
if vacation is set, bot doesn't bother the user anymore. this might be tricky as someone might setup vacation for far ahead and the miss the opportunity to use it for sooner dates. In the future we would like to handle multiple vacation dates but that will require a lot more UX, like, getting to know what is my current vacation date set in the system etc.

Another version of this app might be a web interface where you can see your vacation dates and manage them, maybe a team view

#2 looks best.
I'm thinking after a "no" response, it asks, "OK, just so I don't bother you again today, reply "yes" if I should stop asking you about vacation for the rest of the day."
You're likely only going to talk about vacation once a day and as long as the user confirms that today the conversation has nothing to do with their own vacation, then we should have made the user happy.


chore: de-mathlib lots of Data/List/Lemmas.lean

I believe all the statements are pulled from mathlib4 identically.
Main weirdness is Std had a mem_map lemma with a conclusion that is in some sense backwards from what would generally be preferred. Mathlib has a mem_map' for porting, so I moved the mem_map' lemma here. We might want to deprecate mem_map.
Depends on #97.

okay, I made mostly style and golfing changes, but also some renames. For mem_map I just replaced the original one as planned (plus one other related theorem). Some duplicate theorems were removed.

if the attributes can be added after the fact in mathlib (which I think is the case), then it's fine to remove the comments.


[$500]  Pressing Enter on the state search page submits the form instead of only selecting the state.

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

Action Performed:
1-Go to settings -> workspaces -> your workspace -> add back 2- account -> connect manually.
3- Fill in the data.
4- Click on the "Connect" button.
5- Open the state search page.
6- Use the arrow keys to navigate to a state.
7- Press Enter.
Expected Result:
Pressing Enter should only select the state and return the user to the form.
Actual Result:
Pressing Enter selects the state and submits the form.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

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

Version Number: 1.3.59-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/e01caeda-6273-4ce6-b44e-5cc7e484ad5c
https://github.com/Expensify/App/assets/43996225/27bbe4dd-c135-4d57-9780-b694d8d0a46c
Expensify/Expensify Issue URL:
Issue reported by: @ahmdshrif
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692629203062389
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01bf4700c16d6a333f
Upwork Job ID:<PHONE_NUMBER>129120256
Last Price Increase: 2023-09-21

Proposal
Please re-state the problem that we are trying to solve in this issue.
What is the root cause of that problem?
The form submit button in the CompanyStep component is receiving key press events even when the screen is not in focus.
What changes do you think we should make in order to solve the problem?
Set the disablePressOnEnter prop on the form to true when isFocused for the page is false.
What alternative solutions did you explore?
None.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Pressing Enter on the state search page submits the form instead of only selecting the state
What is the root cause of that problem?
We have logic onKeyDownCapture to call onSubmit function when user type Enter key, but didn't check the input is belong form or not. So, any input event always calls onSubmit function if user type Enter and happen for all form has input not belong from.
In this case, the search input is not belonged to form, it uses for search state
https://github.com/Expensify/App/blob/a644050cde79ef995e69e1293bacdeb64bd566c5/src/components/FormSubmit/index.js#L14-L38
What alternative solutions did you explore?
Update childrenWrapperWithProps in Form component to add dataSet when call React.cloneElement line 294
https://github.com/Expensify/App/blob/1b63c766095273dca5bce2fb876f12ebb6c67ad3/src/components/Form.js#L219-L357
like this:
dataSet: {formInputId: inputID},

Update BaseTextInput to set dataSet line 350
https://github.com/Expensify/App/blob/1b63c766095273dca5bce2fb876f12ebb6c67ad3/src/components/TextInput/BaseTextInput.js#L350
dataSet={{...props.dataSet, submitOnEnter: isMultiline && props.submitOnEnter}}

Update AddressSearch to set props.dataSet into textInputProps
https://github.com/Expensify/App/blob/1b63c766095273dca5bce2fb876f12ebb6c67ad3/src/components/AddressSearch/index.js#L301-L343
Update submitForm function in FromSubmit component to check the formInputId dataset
https://github.com/Expensify/App/blob/1b63c766095273dca5bce2fb876f12ebb6c67ad3/src/components/FormSubmit/index.js#L14-L38
like this
...

if (event.shiftKey || event.key !== CONST.KEYBOARD_SHORTCUTS.ENTER.shortcutKey || isEnterWhileComposition(event)) {
    return;
}

if (!lodashGet(event, 'target.dataset.formInputId')) {
    return;
}
...

Triaging to external ⏭

There should be listener what listens button actions.
When it listens Enter action of keyboard, it should check and validate, and next process will be submitting.
If you give me choice, I will fix it in this way.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Pressing enter while in state selector submits the form rather than selecting the state of choice
What is the root cause of that problem?
The state select dropdown doesn't lock the proper focus when open so actions that should occur inside the focus context of the dropdown instead happen outside of it, as is default behavior for forms, but not very good by accessibility standards
What changes do you think we should make in order to solve the problem?
While some of the previously proposed solutions mentioned capturing the event and altering its logic to prevent the default behavior, I think it was being altered at the wrong level in the previous proposals in a way that was not as composable. There is already a component for capturing the focus of the arrow keys here:
https://github.com/Expensify/App/blob/b119f9ab54e7cc7272702e270693896b352b61e0/src/components/ArrowKeyFocusManager.js#L35
Which is used by multiple selects to capture the focus of the arrow keys. This component can be extended to also capture the focus of the 'ENTER' key stroke and would fix this problem for not only this selection box, but any future selection boxes as well, making it a more extensible solution than previous proposals

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01dbdc4055191721a0

@sobitneupane what do you think of the existing proposal?

Thanks for the proposal everyone.

This component can be extended to also capture the focus of the 'ENTER' key stroke

@sicarius97 Can you please share more details on proposal. How are you planning to extend the component to manage ENTER key?

@sobitneupane looks like we got a new proposal
@sicarius97 bump on the question from https://github.com/Expensify/App/issues/26345#issuecomment-1717161209

@sobitneupane have you had a chance to review the new proposal? If you don't have time to work on this one I can reassign, let me know :)

We can add the isFocused check as well to make sure the Form Enter Submit behavior is only triggered if the screen is currently focused.

@tienifr Can you explain more about above statement. I believe it should be enough to solve the issue.

@tienifr bumping Sobit's question :) https://github.com/Expensify/App/issues/26345#issuecomment-1728985270

@sonialiap Sorry I missed the notifications on your earlier questions, I can certainly elaborate on my earlier proposal and I think I found an easier solution that should still apply to any future selection lists like this in forms as well:
In this code here in the base selection list, we use the useKeyboardShortcut hook on ther Enter and Ctrl+Enter keypress events:
https://github.com/Expensify/App/blob/7c86d09a34c4104c8b4885899f29d5ec92d199c3/src/components/SelectionList/BaseSelectionList.js#L305-L316
If I'm not mistaken, preventing the default behavior by adding the below on this BaseSelectionList component should resolve the issue for not only this selection, but future ones built from it as well. It might be better to add that here instead of the ArrowFocusManager like I mentioned before as I am not sure if there are any components that adding such behavior might cause a regression within, so this would be a less invasive option as well for now. Solution:
`
useKeyboardShortcut(CONST.KEYBOARD_SHORTCUTS.ENTER, selectFocusedOption, {
captureOnInputs: true,
shouldBubble: () => !flattenedSections.allOptions[focusedIndex],
isActive: !shouldDisableHotkeys && isFocused,
shouldPreventDefault: true,
});
/** Calls confirm action when pressing CTRL (CMD) + Enter */
useKeyboardShortcut(CONST.KEYBOARD_SHORTCUTS.CTRL_ENTER, onConfirm, {
    captureOnInputs: true,
    shouldBubble: () => !flattenedSections.allOptions[focusedIndex],
    isActive: Boolean(onConfirm) && isFocused,
    shouldPreventDefault: true,
});

`

Thanks for the updates!
@sobitneupane what do you think of the above comments?

@sonialiap @sobitneupane @aimane-chnaif After taking a look at it, I think the solution I presented would fix it for both issues and alleviate this for similar issues in the future as well.

Dupe of #24198 (same root cause)

I had proposed a solution for #24198  solves the issue in both the cases,
@sicarius97 shouldPreventDefault will not fix the issue,
we need to introduce shouldStopPropagation key in shortcuts and make shouldStopPropagation value as true.
as I have mentioned the proposal https://github.com/Expensify/App/issues/24198#issuecomment-1676430016

https://github.com/Expensify/App/issues/26345#issuecomment-1742741375
@aimane-chnaif Should we merge these two issues?

@sonialiap We have similar issue which might solve this as well. So, let's Hold this issue.

Putting this on hold for https://github.com/Expensify/App/issues/24198

Still on hold for https://github.com/Expensify/App/issues/24198
That issue isn't super close to being resolved and I'll be OOO until Oct 22 so I'm going to update this issue to "weekly" for now.

This is Dupe. Resolved by https://github.com/Expensify/App/issues/24198


crash question

I get this error on crashlytics panel:
Fatal Exception: java.lang.NoSuchMethodError
android.support.v4.app.FragmentActivity.isChangingConfigurations
com.hannesdorfmann.mosby.mvp.MvpFragment.shouldInstanceBeRetained (MvpFragment.java:91)
com.hannesdorfmann.mosby.mvp.delegate.MvpInternalDelegate.detachView (MvpInternalDelegate.java:70)
com.hannesdorfmann.mosby.mvp.delegate.FragmentMvpDelegateImpl.onDestroyView (FragmentMvpDelegateImpl.java:73)
com.hannesdorfmann.mosby.mvp.MvpFragment.onDestroyView (MvpFragment.java:106)
com.hannesdorfmann.mosby.mvp.MvpFragment.shouldInstanceBeRetained (MvpFragment.java:91)
I override your manifest for library to use it with api 10 and I already test it on android 2.3.3 and it was working ok! but now I see this crash on crashlytics. Hi I can fix this for my version? is crash related to api 10? because the method is for support v4 library so I can't understand why this occurred.

Hi,
yes the method isChangingConfigurations() has been introduced with API 11:
https://developer.android.com/reference/android/app/Activity.html#isChangingConfigurations()
as part of theandroid.app.Activity class (and not as part android.support.v4.app.FragmentActivity, but FragmentActivity extends Activity).
Hence, this won't work on API < 11.
You could implement isChangingConfigurations()  in your Activity and either call
super.isChangingConfigurations() if API >=11 or implement your own thing  if (API < 11). You may want to take a look at Activities source code, but I'm not sure how  this could be back ported. https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/Activity.java#L5152
You could try to just return false if API < 11 . That would mean that the View's state (and Presenter) will not survive screen orientation changes. DISCLAIMER: That might also cause some other unwanted side effects I'm not aware of right now.


deps(llama.cpp): bump to latest, update build variables

Description
This PR updates llama.cpp and adapts the build variables (see https://github.com/ggerganov/llama.cpp/pull/8006)
Supersedes https://github.com/mudler/LocalAI/pull/2652

mh, this is unexpected:
[ 64%] Building CXX object common/CMakeFiles/common.dir/sampling.cpp.o
[ 64%] Building CXX object common/CMakeFiles/common.dir/console.cpp.o
[ 70%] Building CXX object common/CMakeFiles/common.dir/grammar-parser.cpp.o
[ 76%] Building CXX object common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.o
[ 76%] Building CXX object common/CMakeFiles/common.dir/train.cpp.o
[ 82%] Building CXX object common/CMakeFiles/common.dir/ngram-cache.cpp.o
[ 82%] Linking CXX static library libcommon.a
[ 82%] Built target common
[ 88%] Building CXX object examples/grpc-server/CMakeFiles/myclip.dir/clip.cpp.o
[ 88%] Building CXX object examples/grpc-server/CMakeFiles/myclip.dir/llava.cpp.o
[ 94%] Linking CXX shared library libmyclip.so
[ 94%] Built target myclip
[ 94%] Building CXX object examples/grpc-server/CMakeFiles/grpc-server.dir/grpc-server.cpp.o
[100%] Linking CXX executable ../../bin/grpc-server
/usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: ../../bin/grpc-server: hidden symbol `_ZN6google8protobuf2io19EpsCopyOutputStream16WriteRawFallbackEPKviPh' in /home/mudler/_git/LocalAI/backend/cpp/grpc/installed_packages/lib64/libprotobuf.a(coded_stream.cc.o) is referenced by DSO
/usr/lib64/gcc/x86_64-suse-linux/13/../../../../x86_64-suse-linux/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
gmake[7]: *** [examples/grpc-server/CMakeFiles/grpc-server.dir/build.make:199: bin/grpc-server] Error 1
gmake[6]: *** [CMakeFiles/Makefile2:3413: examples/grpc-server/CMakeFiles/grpc-server.dir/all] Error 2
gmake[5]: *** [CMakeFiles/Makefile2:3420: examples/grpc-server/CMakeFiles/grpc-server.dir/rule] Error 2
gmake[4]: *** [Makefile:1349: grpc-server] Error 2
gmake[4]: Leaving directory '/home/mudler/_git/LocalAI/backend/cpp/llama-avx2/llama.cpp/build'

Seems I'm hitting https://github.com/ggerganov/llama.cpp/issues/8166

Builds locally now by setting -DBUILD_SHARED_LIBS=OFF - which restores the old linker behavior (static)

some more fun on arm builds:
cd llama.cpp && mkdir -p build && cd build && cmake .. -DProtobuf_INCLUDE_DIRS=/usr/aarch64-linux-gnu/stage/include -DProtobuf_DIR=/usr/aarch64-linux-gnu/stage/lib/cmake/protobuf -DgRPC_DIR=/usr/aarch64-linux-gnu/stage/lib/cmake/grpc -DCMAKE_TOOLCHAIN_FILE=/tmp/arm.toolchain.cmake -DCMAKE_C_COMPILER=aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER=aarch64-linux-gnu-g++ -DGGML_NATIVE=off -DGGML_RPC=ON -DGGML_AVX=off -DGGML_AVX2=off -DGGML_AVX512=off -DGGML_FMA=off -D	=off -DBUILD_SHARED_LIBS=OFF && cmake --build . --config Release --target grpc-server --target rpc-server
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
CMake Error: Parse error in command line argument: off
 Should be: VAR:type=value

Note how -DGGML_F16C=off disappeared


CRYPTO-77 Hide Steam's Ctor with cipher parameter

CRYPTO-77

Committed to master, thank @kexianda


Export and Migrate JIRA to Atlassian Cloud

💡 Description

Export (SAs)
Import (SAs)
Checkout (@jordanpadams)

This was completed some time ago. Closing.


[FEA] Add Digital Pathology-related transformations

Is your feature request related to a problem? Please describe.
We have implemented Digital Pathology-related transformation operations with CuPy and we would like to make them part of cuCIM's built-in image-processing operations.
Describe the solution you'd like
First, need to discuss how to structure the package layout for non-scikit-image APIs.
Then, expose existing implementations as part of cuCIM package.
Describe alternatives you've considered
N/A
Additional context
We have been working on Digital Pathology-specific operations and need to make them available so that MONAI can make use of them.

Implemented by #100
Closing this.


Add menu entry for respawn-pane

I found this: https://unix.stackexchange.com/questions/88392/is-there-an-easy-way-to-restart-a-tmux-pane
And thought it would be handy to have a menu item for that. Any thoughts?

Great Idea!

I'm not an expert on GitHub, but how come you didn't show up lower right as a Contributor? It's a practical way of giving credit to those who help out!
Something I did, or do you have a setting stating you don't want to be mentioned?

If it is not solvable I could always list you in the ReadMe if that is to your preference Either way I really want to credit anybody contributing.

Well spotted! It turns out I hadn't yet verified the e-mail I used for that commit with Github, so it hadn't linked it to my account. The commit seems to link correctly to my account now, so I guess I may appear on the contributors list after some cache expires. Kind of you to think of attribution, even though it's an incredibly minor contribution!

It never showed up, so I added a blurb in the Readme instead.
Credit should be given, otherwise what's the point in sending in a fix suggestion...


Binning of date-time stamps

I have a file that contains in each record a date  and time stamp like 2017-02-16,12:09:24. For the issue on hand, it doesn't really seem to matter if I parse these together using pandas in jupyter, or if I just use the time. They are recognized as type datetime64[ns]. Because I have several thousand records, I want them to be binned in e.g. one hour slots. Binning works fine, were it not for the fact that AM and PM are binned together in one bin. So, these records are combined in the same bin:
date,time,where,fielda,fieldb,fieldc,num_events 2017-02-16,00:00:16,AHJB,valuea1,valueb1,valuec1,10 2017-02-16,12:09:24,AHJB,valuea2,valueb2,valuec2,10
such that for example
bar x(datetime) y(num_events) sum(num_events) bin(datetime) tooltip(datetime,num_events)
shows a single bar with num_events=20
Is there something I need to do?
Guus Bonnes

Hey Guus,
I tracked this down and it looks like an error inside Brunel; in certain circumstances, it will write values out with hours formatted in 12 hour mode rather than 24 hour mode, which is just wrong.
I have fixed this in our main code and it will appear in our upcoming 2.3 release, but I am guessing this might be a little slow for you. A workaround is to record the time field in pandas as a pure numeric field -- the number of hours (with fractions, say) since midnight. Or you could just pre-bin into hours yourself, adding it as another pandas column.
Apologies for the error -- thank you for finding it and posting a helpful snippet, and I hope either the upcoming fix or the workaround will help.

Thanks for the confirmation. Unfortunately, I'm trying to setup something using the rest service (outside of pandas). So, any pandas processing is not a permanent solution. Of course, I tried your suggestions, and wanted to provide some feedback:

when treating the datetime as an int64, the automatic axis scaling of the bar chart goes astray. I get just a single peak around a few billion, but the scale goes from 0 to real big.
This reminds me of something that I noted with some other bar-graphs that use datetime for x. It's more the reverse. The bar chart needs to be sized down and moved to the left to show all the bars. I have not further diagnosed it, but it seems to be related to the number of records (about 5000 different timestamps). I'll probably create another ticket for this.
Another suggestion that I tried was to add an extra column with dd*24+hh, and let Brunel do the binning. Works like a charm, but the axis has unintelligible labels.

Guus, thanks again for the assistance. If you are able to attach any data sets that show the issue that is immensely helpful. Also, a quick question -- if we fix these defects on the current code version (2.3), is that helpful to you -- not sure if you're using Brunel directly and can update to the latest version, or through an embedded solution where you don't have the control?

To clarify... I'm just doing some research if and how I can exploit Brunel for some type of reporting and producing graphs that can provide insight for my consumers. There is no deadline. My setup will probably involve a webserver to hold the timestamped records, and some minimal html and scripts to pass the data. I'm in full control of the entire environment. Maybe I'm missing how easy it really is to use python and pandas in a server side script. After all, I was lured by the simplicity of visualizing csv data, and most of this is all new to me.

Fixed in latest code


On-demand mode

I have a remote server I'd like to profile more than once, however if I disconnect, it says:
The client you are trying to connect to is no longer able to send
profiling data, because another server was already connected to it.
You can do the following:

1. Restart the client application.
2. Rebuild the client application with on-demand mode enabled.

Is there a way to enable on-demand mode?

Did you try the ondemand crate feature?

I wasn't aware there was a crate feature for this. It seems to work now, thank you. Additionally, it would be nice if there was clearer documentation for it. I didn't see anything in the readme or the docs.

The features are documented in the sys crate, and this section is linked from the other (crates )[https://docs.rs/tracing-tracy/latest/tracing_tracy/#features), but I guess I see your point that it isn’t necessarily super apparent that you’d want to look for the crate features in the first place when presented with such a message.
Too bad it isn’t super straightforward to share documentation between crates…


core_input_multitouch example issues - Raspberry Pi

Issue description
If you add one touch and then another touch, then release the first touch. Two touches are now being registered for the second touch.
This is a bit multi faceted.
When EV_REL or EV_ABS messages are received with one touch they will be on slot 0, if another touch is added then these messages stay on slot 0, if the original touch is then released the messages will start being received on slot 1.
In the EventThread for EV_REL and EV_ABS we have code like:
CORE.Input.Touch.position[0].x = CORE.Input.Mouse.currentPosition.x;

So even thought we are getting the messages on slot 1 which is updating CORE.Input.Touch.position[1].x, we also have code that is setting CORE.Input.Touch.position[0].x, so we get two touches with the same coordinates.
The other places where CORE.Input.Touch.position[0].x is found are:
'GetMouseX()' for 'PLATFORM_ANDROID'
'GetMouseY()' for 'PLATFORM_ANDROID'
'GetTouchX(void)' for 'PLATFORM_ANDROID' and 'PLATFORM_WEB'
'GetTouchY(void)' for 'PLATFORM_ANDROID' and 'PLATFORM_WEB'
These should possible be changed to use the index of the first valid touch and shouldn't just be overwriting index 0?
So as a quick test I just ifdefed the setting of index 0 out, the example still did not work.
The issue then was a simple one, the touches are updated by slot, GetTouchPointCount() returns the number of slots in use but they are not necessarily starting at index 0 and there also can be gaps, we could have slot 2 and slot 5 for instance depending on what fingers had been released.
The loops in the example all look like:
for (int i = 0; i < tCount; ++i) touchPositions[i] = GetTouchPosition(i);

Changing them to the following makes the example then work correctly:
for (int i = 0; i < MAX_TOUCH_POINTS; ++i) touchPositions[i] = GetTouchPosition(i);

I am happy to make some changes to the code and put in a PR, I thought the simplest solution is to keep track of the first touch slot in use and use that, what do you think?
Cheers
Andy
Environment
Raspberry Pi, DRM

@AndrewCapon Currently there's an effort to split rcore into submodules (as per https://github.com/raysan5/raylib/issues/3313). If you could hold this for a bit, I think it will be substantially easier to implement, review and test after the split.

Absolutely.

@AndrewCapon rcore platform module has been already splitted, rcore_drm.c is the RPI native mode. If you want to contribute you are welcome.

As the input mechanisms are being redesign for PLATFORM_DRM I'm closing this issue.


MAINT: remove unused argcheck

src/zipline/utils/argcheck.py isn't used anywhere.
Using singletons in Python is probably not a good idea anyway.

Yay, less code!


UI bug: Overflowing text in Jupyter notebook prompt box

Text prompts are overflowing in the Jupyter notebook view. The text in it is not selectable and the links in it are not clickable.

Web Browser: Chrome
Local OS: Linux
Remote OS: Linux
Remote Architecture: x64
code-server --version: 3.5.0 (vscode 1.48.2)

To reproduce the issue:

Run a ColabCode instance in Google Colab

!pip install colabcode
from colabcode import ColabCode
ColabCode(port=10000, password="asdf")

Create an .ipynb file and run a cell that posts a long link into the prompt:

!pip install kora
from kora import drive as koradrive
koradrive.chdir_notebook()

Observe the textbox overflow (screenshot below).

Any updates on this? I'd like to help in any way I can

I tried to run this with 3.7.3 to see if it's still an issue with the
latest VS Code but the Jupyter extension keeps giving me problems.
Assuming it is still a problem I imagine it just needs some CSS
somewhere to make it wrap properly.

I think you are referring to #2341 which should be resolved before we can resolve this issue.


🍒 [5.7][Distributed] Dont hang calls on not found accessors #60266

Description:  A remote call on accessor which we cannot find ends up with a hang in released toolchains since we don't have assertions. This results in hanged distributed invocations if the target is illegal, which is pretty bad. This fix implements throwing an error rather than hanging.
Risk: Low
Review by: @DougGregor
Testing: PR Testing
Original PR: https://github.com/apple/swift/pull/60266
Radar: rdar://97690516

@swift-ci please test

@swift-ci please test

Also resolved rdar://98432123


bug: Using wgmi to build walletconnect, mobile phone scanning will crash back? How to define the displayed wallet, such as metamask, coinbase, etc.

Is there an existing issue for this?

[X] I have searched the existing issues

Package Version
1.0.2
Current Behavior
I used wagmi to build walletconnet's wallet connection method, and I have built a code scanning page, but the mobile phone scan code will crash back regardless of the wallet, how to solve this problem? Also How to configure a custom wallet list?
Expected Behavior
I hope to realize scanning the code login without flashback, and realize the deployment of your own wallet list
Steps To Reproduce
1
Link to Minimal Reproducible Example (StackBlitz, CodeSandbox, GitHub repo etc.)
https://www.baidu.com
Anything else?
1

I'm not sure what you mean by "crash back". Can you elaborate?
Seems to work all fine for me. Can you please provide a minimal reproducible example via https://new.wagmi.sh? Will re-open when done.


[JDK19] exclude known failures in serviceability suite

Related issues:
https://github.com/eclipse-openj9/openj9/issues/16167
https://github.com/eclipse-openj9/openj9/issues/16168
https://github.com/eclipse-openj9/openj9/issues/16184
https://github.com/eclipse-openj9/openj9/issues/16185
https://github.com/eclipse-openj9/openj9/issues/16186
https://github.com/eclipse-openj9/openj9/issues/16187
Signed-off-by: Jack Lu<EMAIL_ADDRESS>

@llxia Can you review this please.
FYI @babsingh


⚠ ClamAV has degraded performance

In 0ca941d, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in dbc9013.


feat(docker-compose): add FIPS environment variable to docker-compose for busted tests

KAG-5187
The sibling EE PR: https://github.com/Kong/kong-ee/pull/10031

Let's keep this as draft until https://github.com/Kong/kong-ee/pull/10031 is green and approved.

@Tieske all the PRs have been approved and are green.

@Water-Melon thx! looking good.
I added a "do not merge" label, to ensure we do this in the proper order. My suggestion would be this:

[ ] merge the Kong EE PR (https://github.com/Kong/kong-ee/pull/10031) which points to this PRs branch; kag5187_add_fips_env. This will ensure that Kong-EE CI won't fail.
[ ] remove the "Do not merge" label from this PR
[ ] merge this PR in Pongo, such that the fix is in Pongo master
[ ] release Pongo. As part of the release instructions, we create another Kong-EE branch that bumps the Pongo version (from this branch kag5187_add_fips_env to the newly released Pongo version)

This approach should ensure that there are no intermediate CI breakages in either Kong-EE nor Pongo.

@Tieske For step 1, would you help create a pre-release or a tag pointing to this PR to use for kong-ee? Point something to a branch doesn't seem very reliable.

Pongo release can be tracked here: https://github.com/Kong/kong-ee/pull/10335


Support RSA PSS signing algorithms for the CSR signature

AWS IoT Core recently added support for RSA PSS signing algorithms: https://aws.amazon.com/about-aws/whats-new/2023/07/aws-iot-core-new-certificate-signing-key-generation-algorithms/
This allows for workflows such as:
openssl genrsa -out key.pem 2048
openssl req -new -key key.pem -sha256 -out csr.pem -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1
aws iot create-certificate-from-csr --certificate-signing-request=file://csr.pem

Such workflows are possible with python-pkcs11 and asn1crypto, but not possible with cryptography 41.x. Issue raised: https://github.com/pyca/cryptography/issues/9467. The enhancement will be shipped in cryptography 42.0. Then this component can add support for RSA PSS signing algorithms for the CSR.

Python cryptography 42.0 was released Jan 22.


Text editor integration?

I'm wondering your thoughts on what widespread Dhall usage might look like.

Should Dhall files have a common file extension? I've just been using .txt; I suppose one might reasonably consider .hs or .dhall.
How might syntax highlighting in text editors work? Should any Haskell syntax highlighter suffice for Dhall, or would we be better off creating Dhall plugins for various editors?

Yeah, I think there should be a common file extension.  My intuition is to just pick .dhall since I'd rather err on the side of the extension being clear than try to save characters
Haskell highlighters usually work okay for Dhall code.  For example, here is how GitHub renders Prelude/List/concat using the Haskell syntax highlighter:
{-
Concatenate a `List` of `List`s into a single `List`

Examples:

./concat Integer
(   [   [0, 1, 2]    : List Integer
    ,   [3, 4]       : List Integer
    ,   [5, 6, 7, 8] : List Integer
    ]   : List (List Integer)
)
= [0, 1, 2, 3, 4, 5, 6, 7, 8] : List Integer

./concat Integer
(   [   [] : List Integer
    ,   [] : List Integer
    ,   [] : List Integer
    ]   : List (List Integer)
)
= [] : List Integer

./concat Integer ([] : List (List Integer)) = [] : List Integer
-}
let concat : ∀(a : Type) → List (List a) → List a
    =   λ(a : Type)
    →   λ(xss : List (List a))
    →   List/build
        a
        (   λ(list : Type)
        →   λ(cons : a → list → list)
        →   λ(nil : list)
        →   List/fold
            (List a)
            xss
            list
            (   λ(xs : List a)
            →   λ(ys : list)
            →   List/fold
                a
                xs
                list
                cons
                ys
            )
            nil
        )

in  concat

However, it obviously can't hurt to have a Dhall-specific highlighter

Do you have any interest in hosting Dhall-related tooling either here or in another repository, or should those projects just be separate?

They should probably be separate projects, and I will create a dhall organization soon to group all of these projects
The main scope of this project is (A) to provide Haskell bindings to Dhall (thus the project name) and (B) to provide a Haskell implementation of the dhall command-line compiler.  I think it's good practice for each eventual language binding to implement such a compiler to avoid any specific implementation becoming a de-facto language standard and to also provide a starting template for people to customize the compiler in their language of choice if necessary
This project also has a third function of hosting the Dhall Prelude, but that could easily be split out into a separate repository since there's no specific benefit to bundling it with this project
Once there is a dhall organization, this project would no longer be distinguished among projects and there would probably be a separate repository to track project-level issues and provide an overview of the Dhall ecosystem (similar to the ipfs/ipfs repository's role for the ipfs organization)

Cool, thanks for explaining. I don't know whether you want to leave this issue open, but as far as I'm concerned, my questions are answered.


[fix] [test] Wrong mock-fail of the test ManagedLedgerErrorsTest.recoverLongTimeAfterMultipleWriteErrors

Motivation
In the test ManagedLedgerErrorsTest.recoverLongTimeAfterMultipleWriteErrors, it mocks two errors of add entries, then verify that the final write succeeds.
But the event of add entry failure triggers two other operations: delete current ledger and create a new ledger, these two operations have the probability of consuming the error events that were mocked earlier. As a result, the intent of the test is not being performed correctly.  If the error event is consumed by create a new ledger, it will make the test unstable， see: https://github.com/apache/pulsar/actions/runs/4195006942/jobs/7274314432
You can reproduce the issue by the test recoverLongTimeAfterMultipleWriteErrors in the current PR, adding sleep(1000) after line 541 before line 542 increases the probability of reproducing the issue, just like this:
ledger.asyncAddEntry("entry-1".getBytes(), cb, null);
Thread.sleep(1000);
ledger.asyncAddEntry("entry-2".getBytes(), cb, null);

Modifications
Use a specific method when we only need to mock a failed event of add entry.
Documentation

[ ] doc
[ ] doc-required
[x] doc-not-needed
[ ] doc-complete

Matching PR in forked repository
PR in forked repository:

https://github.com/poorbarcode/pulsar/pull/70

@lhotari @nicoloboschi
Could you take a look?

/pulsarbot rerun-failure-checks

/pulsarbot rerun-failure-checks


Create UI tests for home screen

This commit Adds initial UI test for the Home Screen.

Validates collection views rendering
Validates Tab bar rendering
Validates person tap action

Can we have the conflicts resolved before having people review?

Can we have the conflicts resolved before having people review?

@Kilo-Loco please excuse the ugliness in how I resolved those conflict. I am much more comfortable with mercurial these days lol. Getting back into the Git groove


about fp16

When I use fp16 (16-bit float) and multi-gpu training,the code will wait in SyncBN(comm.py).

I haven’t tried fp16 in pytorch. Do you think it’s due to some type mismatch: fp32 vs. fp16? It will be great if you could help me to add a try-catch in the forward method of the batch norm class. We should first check if some exceptions have been thrown out there.

Thanks for your help .Firstly,I am using two gpus. Secondly,I add a try-catch in the forward method of the _SynchronizedBatchNorm class(batchnorm.py).Then ,I locate the error step by step.

Thanks for your help .Firstly,I am using two gpus. Secondly,I add a try-catch in the forward method of the _SynchronizedBatchNorm class(batchnorm.py).Then ,I locate the error step by step.
1. batchnorm.py:
    if self._parallel_id == 0:
        mean, inv_std = self._sync_master.run_master(_ChildMessage(input_sum, input_ssum, sum_size))

2.comm.py:
results = self._master_callback(intermediates)

The error is 'An error occured.'
My try-catch like this:
except IOError:
print('An error occured trying to read the file.')
except ValueError:
print('Non-numeric data found in the file.')
except ImportError:
print "NO module found"
except EOFError:
print('Why did you do an EOF on me?')
except KeyboardInterrupt:
print('You cancelled the operation.')
except:
print('An error occured.')

Can you give detailed information about the "error"?
For example, you may directly wrap the whole function body of forward() with a try-catch statement:
try:
    # original codes
except:
    import traceback
    traceback.print_exc()

The detailed information
Traceback (most recent call last):
File "/mnt/data-2/data/yuzhu.sun/Job/cnn_multi_/cnn_multi/sync_batchnorm/batchnorm.py", line 68, in forward
mean, inv_std = self._sync_master.run_master(ChildMessage(input_sum, input_ssum, sum_size))
File "/mnt/data-2/data/cnn_multi/cnn_multi/sync_batchnorm/comm.py", line 125, in run_master
results = self.master_callback(intermediates)
File "/mnt/data-2/data/cnn_multi/cnn_multi/sync_batchnorm/batchnorm.py", line 108, in data_parallel_master
mean, inv_std = self.compute_mean_std(sum, ssum, sum_size)
File "/mnt/data-2/data/cnn_multi/cnn_multi/sync_batchnorm/batchnorm.py", line 122, in compute_mean_std
mean = sum / size
RuntimeError: value cannot be converted to type at::Half without overflow: 528392

Seems that some values in the tensors exceed the max value of fp16 ... I guess it's the size? Can you double check?
I am not an expert on this: is there any solution to this? I think this should be a general problem for fp16 training.


Upgrade browser info

Adds new data on Browser Object:
data: {
    name: 'browser name';
    group: 'browser group';
    fullVersion: 'version of the browser';
    majorVersion: 'major version of the browser';
    minorVersion: 'minor version of the browser';
},
os: {
    name: 'operational system name;
    group: 'operational system group';
    fullVersion: 'version of the operational system';
    majorVersion: 'major version of the operational system';
    minorVersion: 'minor version of the operational system';
},
viewport: {
    width: 'device screen width';
    height: 'device screen height';
    orientation: 'landscape or portrait' (only mobile);
}

Coverage increased (+0.2%) to 77.627% when pulling fe62f5ed07b3dbfe5c33670ac630c192e554f82f on joaopaulovieira:upgrade-browser-info into 86796d4380e7152632ccfcc74c0622d8a56d9c32 on clappr:master.


Build a web server in sync-server

add /add-version and /get-child-version endpoints that verify signatures and call the backend defined in #55.

Le's do this in #55


[Event Hub] All private members should have names starting with underscore

From #1910
Go through all classes in the Event Hub client library and EPH client library and ensure that all private members have names starting with an underscore

All the private member names already start with underscore, so no need to change anything. Hence closing this issue.


Fix possible unsafe sharing of internal NIO buffer in CompositeByteBuf

Motivation
A small thread-safety bug was introduced during the internal optimizations of ComponentByteBuf made a while back in #8437. When there is a single component which was added as a slice,
internalNioBuffer(int,int) will currently return the unwrapped slice's un-duplicated internal NIO buffer. This is not safe since it could be modified concurrently with other usage of that parent buffer.
Modifications
Delegate internalNioBuffer to nioBuffer in this case, which returns a duplicate. This matches what's done in derived buffers in general (for the same reason). Add unit test.
Result
Fixed possible thread-safety bug

@netty-bot test this please

@njhill good catch... Thanks!


Compatibility with stable thermostat APIs

Removes use of unstable APIs and ensures existing Seam Components work with new Thermostat APIs.

@phpnode I will merge this PR (hopefully tomorrow or friday) once I've done one more review, but this should merge via normal Git merge so feel free to work off of this branch on any new stuff you need to get started on.


BUG: className setter crash when value is null

dom.className = null should empty the class list, now it crashes to following exception:

TypeError: value.split is not a function

not an interesting feature to me and no time to work on it these days. I'll keep it open in case anyone is interested in filing an MR.

Thanks @Havunen!


Add config option to render tiles on minimap

should default to true to match how ground markers work

This will be added in the next release soon.


Failed to find assets path for "flutter_assets"

Steps to Reproduce
Im trying to integrate Flutter module in to simple iOS app, based on this URL. I followed all steps in it.
But still getting this error

AddFlutter[2521:771518] Failed to find assets path for "flutter_assets"
AddFlutter[2521:771597] [VERBOSE-2:engine.cc(112)] Engine run configuration was invalid.
AddFlutter[2521:771597] [VERBOSE-2:FlutterEngine.mm(260)] Could not launch engine with configuration.

We tried solutions given in 20777, but not worked :(

Below steps followed

run this command flutter create -t module my_flutter
We make sure my_flutter and AddFlutter(iOS) are in same parent folder.
Changed pod file, with flutter application path given to my_flutter path. then pod install.
Apply changes to Build phases in AddFlutter project.
In ViewController.swift applied following code changes

 class ViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let button = UIButton(type:UIButtonType.custom)
    button.addTarget(self, action: #selector(handleButtonAction), for: .touchUpInside)
    button.setTitle("Press me", for: UIControlState.normal)
    button.frame = CGRect(x: 80.0, y: 210.0, width: 160.0, height: 40.0)
    button.backgroundColor = UIColor.blue
    self.view.addSubview(button)
  }

  @objc func handleButtonAction() {
    let flutterViewController = FlutterViewController()
    self.present(flutterViewController, animated: false, completion: nil)
    flutterViewController.setInitialRoute("route1")
  }
}

Disabled bitcode for Target in AddFlutter(iOS).
Run the AddFlutter project.

Logs

We see large output, so attached as doc
[flutter run --verbose.docx](https://github.com/flutter/flutter/files/2551942/flutter.run.--verbose.docx)

$ flutter analyze
Analyzing my_flutter...
No issues found! (ran in 4.9s)

$ flutter doctor -v
[✓] Flutter (Channel master, v0.10.3-pre.91, on Mac OS X 10.13.6 17G65, locale
    en-IN)
    • Flutter version 0.10.3-pre.91 at /Users/sandeep/flutter
    • Framework revision 8e7c8048de (21 hours ago), 2018-11-05 08:57:49 +0000
    • Engine revision 88cb78cdf6
    • Dart version 2.1.0 (build 2.1.0-dev.8.0 bf26f760b1)

[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at /Users/sandeep/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling
      support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 10.0, Build version 10A255
    • ios-deploy 2.0.0
    • CocoaPods version 1.5.3

[✓] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 29.1.1
    • Dart plugin version 181.5540.11
    • Java version OpenJDK Runtime Environment (build
      1.8.0_152-release-1136-b06)

[✓] IntelliJ IDEA Community Edition (version 2018.2.4)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 29.1.3
    • Dart plugin version 182.4999

[✓] Connected device (1 available)
    • Sandeep’s iPhone • 790490bfa2033ff5563bd598dc9cb1968b81f4e4 • ios • iOS
      12.0.1

• No issues found!

Please let me know if need more details
Thank you.

Can you share the content of your build phase script?  That should be taking care of embedding the assets for you.

Hi @dnfield , below is the content of build phase script file taken from below path $FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh
`#!/bin/bash
Copyright 2016 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
RunCommand() {
if [[ -n "$VERBOSE_SCRIPT_LOGGING" ]]; then
echo "♦ $*"
fi
"$@"
return $?
}
When provided with a pipe by the host Flutter build process, output to the
pipe goes to stdout of the Flutter build process directly.
StreamOutput() {
if [[ -n "$SCRIPT_OUTPUT_STREAM_FILE" ]]; then
echo "$1" > $SCRIPT_OUTPUT_STREAM_FILE
fi
}
EchoError() {
echo "$@" 1>&2
}
AssertExists() {
if [[ ! -e "$1" ]]; then
if [[ -h "$1" ]]; then
EchoError "The path $1 is a symlink to a path that does not exist"
else
EchoError "The path $1 does not exist"
fi
exit -1
fi
return 0
}
BuildApp() {
local project_path="${SOURCE_ROOT}/.."
if [[ -n "$FLUTTER_APPLICATION_PATH" ]]; then
project_path="${FLUTTER_APPLICATION_PATH}"
fi
local target_path="lib/main.dart"
if [[ -n "$FLUTTER_TARGET" ]]; then
target_path="${FLUTTER_TARGET}"
fi
Use FLUTTER_BUILD_MODE if it's set, otherwise use the Xcode build configuration name
This means that if someone wants to use an Xcode build config other than Debug/Profile/Release,
they must set FLUTTER_BUILD_MODE so we know what type of artifact to build.
local build_mode="$(echo "${FLUTTER_BUILD_MODE:-${CONFIGURATION}}" | tr "[:upper:]" "[:lower:]")"
local artifact_variant="unknown"
case "$build_mode" in
release*) build_mode="release"; artifact_variant="ios-release";;
profile*) build_mode="profile"; artifact_variant="ios-profile";;
debug*) build_mode="debug"; artifact_variant="ios";;
*)
EchoError "========================================================================"
EchoError "ERROR: Unknown FLUTTER_BUILD_MODE: ${build_mode}."
EchoError "Valid values are 'Debug', 'Profile', or 'Release' (case insensitive)."
EchoError "This is controlled by the FLUTTER_BUILD_MODE environment varaible."
EchoError "If that is not set, the CONFIGURATION environment variable is used."
EchoError ""
EchoError "You can fix this by either adding an appropriately named build"
EchoError "configuration, or adding an appriate value for FLUTTER_BUILD_MODE to the"
EchoError ".xcconfig file for the current build configuration (${CONFIGURATION})."
EchoError "========================================================================"
exit -1;;
esac
Archive builds (ACTION=install) should always run in release mode.
if [[ "$ACTION" == "install" && "$build_mode" != "release" ]]; then
EchoError "========================================================================"
EchoError "ERROR: Flutter archive builds must be run in Release mode."
EchoError ""
EchoError "To correct, ensure FLUTTER_BUILD_MODE is set to release or run:"
EchoError "flutter build ios --release"
EchoError ""
EchoError "then re-run Archive from Xcode."
EchoError "========================================================================"
exit -1
fi
local framework_path="${FLUTTER_ROOT}/bin/cache/artifacts/engine/${artifact_variant}"
AssertExists "${framework_path}"
AssertExists "${project_path}"
local derived_dir="${SOURCE_ROOT}/Flutter"
if [[ -e "${project_path}/.ios" ]]; then
derived_dir="${project_path}/.ios/Flutter"
fi
RunCommand mkdir -p -- "$derived_dir"
AssertExists "$derived_dir"
RunCommand rm -rf -- "${derived_dir}/App.framework"
local local_engine_flag=""
local flutter_framework="${framework_path}/Flutter.framework"
local flutter_podspec="${framework_path}/Flutter.podspec"
if [[ -n "$LOCAL_ENGINE" ]]; then
if [[ $(echo "$LOCAL_ENGINE" | tr "[:upper:]" "[:lower:]") != "$build_mode" ]]; then
EchoError "========================================================================"
EchoError "ERROR: Requested build with Flutter local engine at '${LOCAL_ENGINE}'"
EchoError "This engine is not compatible with FLUTTER_BUILD_MODE: '${build_mode}'."
EchoError "You can fix this by updating the LOCAL_ENGINE environment variable, or"
EchoError "by running:"
EchoError "  flutter build ios --local-engine=ios_${build_mode}"
EchoError "or"
EchoError "  flutter build ios --local-engine=ios_${build_mode}_unopt"
EchoError "========================================================================"
exit -1
fi
local_engine_flag="--local-engine=${LOCAL_ENGINE}"
flutter_framework="${LOCAL_ENGINE}/Flutter.framework"
flutter_podspec="${LOCAL_ENGINE}/Flutter.podspec"
fi
if [[ -e "${project_path}/.ios" ]]; then
RunCommand rm -rf -- "${derived_dir}/engine"
mkdir "${derived_dir}/engine"
RunCommand cp -r -- ${flutter_podspec} "${derived_dir}/engine"
RunCommand cp -r -- ${flutter_framework} "${derived_dir}/engine"
RunCommand find "${derived_dir}/engine/Flutter.framework" -type f -exec chmod a-w "{}" ;
else
RunCommand rm -rf -- "${derived_dir}/Flutter.framework"
RunCommand cp -r -- ${flutter_framework} "${derived_dir}"
RunCommand find "${derived_dir}/Flutter.framework" -type f -exec chmod a-w "{}" ;
fi
RunCommand pushd "${project_path}" > /dev/null
AssertExists "${target_path}"
local verbose_flag=""
if [[ -n "$VERBOSE_SCRIPT_LOGGING" ]]; then
verbose_flag="--verbose"
fi
local build_dir="${FLUTTER_BUILD_DIR:-build}"
local track_widget_creation_flag=""
if [[ -n "$TRACK_WIDGET_CREATION" ]]; then
track_widget_creation_flag="--track-widget-creation"
fi
if [[ "${build_mode}" != "debug" ]]; then
StreamOutput " ├─Building Dart code..."
# Transform ARCHS to comma-separated list of target architectures.
local archs="${ARCHS// /,}"
if [[ $archs =~ .i386. || $archs =~ .x86_64. ]]; then
EchoError "========================================================================"
EchoError "ERROR: Flutter does not support running in profile or release mode on"
EchoError "the Simulator (this build was: '$build_mode')."
EchoError "You can ensure Flutter runs in Debug mode with your host app in release"
EchoError "mode by setting FLUTTER_BUILD_MODE=debug in the .xcconfig associated"
EchoError "with the ${CONFIGURATION} build configuration."
EchoError "========================================================================"
exit -1
fi
RunCommand "${FLUTTER_ROOT}/bin/flutter" --suppress-analytics
${verbose_flag}
build aot
--output-dir="${build_dir}/aot"
--target-platform=ios
--target="${target_path}"
--${build_mode}
--ios-arch="${archs}"
${local_engine_flag}
${track_widget_creation_flag}
if [[ $? -ne 0 ]]; then
  EchoError "Failed to build ${project_path}."
  exit -1
fi
StreamOutput "done"

local app_framework="${build_dir}/aot/App.framework"

RunCommand cp -r -- "${app_framework}" "${derived_dir}"

StreamOutput " ├─Generating dSYM file..."
# Xcode calls `symbols` during app store upload, which uses Spotlight to
# find dSYM files for embedded frameworks. When it finds the dSYM file for
# `App.framework` it throws an error, which aborts the app store upload.
# To avoid this, we place the dSYM files in a folder ending with ".noindex",
# which hides it from Spotlight, https://github.com/flutter/flutter/issues/22560.
RunCommand mkdir -p -- "${build_dir}/dSYMs.noindex"
RunCommand xcrun dsymutil -o "${build_dir}/dSYMs.noindex/App.framework.dSYM" "${app_framework}/App"
if [[ $? -ne 0 ]]; then
  EchoError "Failed to generate debug symbols (dSYM) file for ${app_framework}/App."
  exit -1
fi
StreamOutput "done"

StreamOutput " ├─Stripping debug symbols..."
RunCommand xcrun strip -x -S "${derived_dir}/App.framework/App"
if [[ $? -ne 0 ]]; then
  EchoError "Failed to strip ${derived_dir}/App.framework/App."
  exit -1
fi
StreamOutput "done"

else
RunCommand mkdir -p -- "${derived_dir}/App.framework"
# Build stub for all requested architectures.
local arch_flags=""
read -r -a archs <<< "$ARCHS"
for arch in "${archs[@]}"; do
  arch_flags="${arch_flags}-arch $arch "
done

RunCommand eval "$(echo "static const int Moo = 88;" | xcrun clang -x c \
    ${arch_flags} \
    -dynamiclib \
    -Xlinker -rpath -Xlinker '@executable_path/Frameworks' \
    -Xlinker -rpath -Xlinker '@loader_path/Frameworks' \
    -install_name<EMAIL_ADDRESS>\
    -o "${derived_dir}/App.framework/App" -)"

fi
local plistPath="${project_path}/ios/Flutter/AppFrameworkInfo.plist"
if [[ -e "${project_path}/.ios" ]]; then
plistPath="${project_path}/.ios/Flutter/AppFrameworkInfo.plist"
fi
RunCommand cp -- "$plistPath" "${derived_dir}/App.framework/Info.plist"
local precompilation_flag=""
if [[ "$CURRENT_ARCH" != "x86_64" ]] && [[ "$build_mode" != "debug" ]]; then
precompilation_flag="--precompiled"
fi
StreamOutput " ├─Assembling Flutter resources..."
RunCommand "${FLUTTER_ROOT}/bin/flutter" --suppress-analytics
${verbose_flag}
build bundle
--target-platform=ios
--target="${target_path}"
--${build_mode}
--depfile="${build_dir}/snapshot_blob.bin.d"
--asset-dir="${derived_dir}/flutter_assets"
${precompilation_flag}
${local_engine_flag}
${track_widget_creation_flag}
if [[ $? -ne 0 ]]; then
EchoError "Failed to package ${project_path}."
exit -1
fi
StreamOutput "done"
StreamOutput " └─Compiling, linking and signing..."
RunCommand popd > /dev/null
echo "Project ${project_path} built and packaged successfully."
return 0
}
Returns the CFBundleExecutable for the specified framework directory.
GetFrameworkExecutablePath() {
local framework_dir="$1"
local plist_path="${framework_dir}/Info.plist"
local executable="$(defaults read "${plist_path}" CFBundleExecutable)"
echo "${framework_dir}/${executable}"
}
Destructively thins the specified executable file to include only the
specified architectures.
LipoExecutable() {
local executable="$1"
shift
Split $@ into an array.
read -r -a archs <<< "$@"
Extract architecture-specific framework executables.
local all_executables=()
for arch in "${archs[@]}"; do
local output="${executable}_${arch}"
local lipo_info="$(lipo -info "${executable}")"
if [[ "${lipo_info}" == "Non-fat file:"* ]]; then
if [[ "${lipo_info}" != *"${arch}" ]]; then
echo "Non-fat binary ${executable} is not ${arch}. Running lipo -info:"
echo "${lipo_info}"
exit 1
fi
else
lipo -output "${output}" -extract "${arch}" "${executable}"
if [[ $? == 0 ]]; then
all_executables+=("${output}")
else
echo "Failed to extract ${arch} for ${executable}. Running lipo -info:"
lipo -info "${executable}"
exit 1
fi
fi
done
Generate a merged binary from the architecture-specific executables.
Skip this step for non-fat executables.
if [[ ${#all_executables[@]} > 0 ]]; then
local merged="${executable}_merged"
lipo -output "${merged}" -create "${all_executables[@]}"
cp -f -- "${merged}" "${executable}" > /dev/null
rm -f -- "${merged}" "${all_executables[@]}"

fi
}
Destructively thins the specified framework to include only the specified
architectures.
ThinFramework() {
local framework_dir="$1"
shift
local plist_path="${framework_dir}/Info.plist"
local executable="$(GetFrameworkExecutablePath "${framework_dir}")"
LipoExecutable "${executable}" "$@"
}
ThinAppFrameworks() {
local app_path="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
local frameworks_dir="${app_path}/Frameworks"
[[ -d "$frameworks_dir" ]] || return 0
find "${app_path}" -type d -name "*.framework" | while read framework_dir; do
ThinFramework "$framework_dir" "$ARCHS"
done
}
Adds the App.framework as an embedded binary and the flutter_assets as
resources.
EmbedFlutterFrameworks() {
AssertExists "${FLUTTER_APPLICATION_PATH}"
Prefer the hidden .ios folder, but fallback to a visible ios folder if .ios
doesn't exist.
local flutter_ios_out_folder="${FLUTTER_APPLICATION_PATH}/.ios/Flutter"
local flutter_ios_engine_folder="${FLUTTER_APPLICATION_PATH}/.ios/Flutter/engine"
if [[ ! -d ${flutter_ios_out_folder} ]]; then
flutter_ios_out_folder="${FLUTTER_APPLICATION_PATH}/ios/Flutter"
flutter_ios_engine_folder="${FLUTTER_APPLICATION_PATH}/ios/Flutter"
fi
AssertExists "${flutter_ios_out_folder}"
Copy the flutter_assets to the Application's resources.
AssertExists "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
RunCommand cp -r -- "${flutter_ios_out_folder}/flutter_assets" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
Embed App.framework from Flutter into the app (after creating the Frameworks directory
if it doesn't already exist).
local xcode_frameworks_dir=${BUILT_PRODUCTS_DIR}"/"${PRODUCT_NAME}".app/Frameworks"
RunCommand mkdir -p -- "${xcode_frameworks_dir}"
RunCommand cp -Rv -- "${flutter_ios_out_folder}/App.framework" "${xcode_frameworks_dir}"
Embed the actual Flutter.framework that the Flutter app expects to run against,
which could be a local build or an arch/type specific build.
Remove it first since Xcode might be trying to hold some of these files - this way we're
sure to get a clean copy.
RunCommand rm -rf -- "${xcode_frameworks_dir}/Flutter.framework"
RunCommand cp -Rv -- "${flutter_ios_engine_folder}/Flutter.framework" "${xcode_frameworks_dir}/"
Sign the binaries we moved.
local identity="${EXPANDED_CODE_SIGN_IDENTITY_NAME:-$CODE_SIGN_IDENTITY}"
RunCommand codesign --force --verbose --sign "${identity}" -- "${xcode_frameworks_dir}/App.framework/App"
RunCommand codesign --force --verbose --sign "${identity}" -- "${xcode_frameworks_dir}/Flutter.framework/Flutter"
}
Main entry point.
TODO(cbracken): improve error handling, then enable set -e
if [[ $# == 0 ]]; then
Backwards-compatibility: if no args are provided, build.
BuildApp
else
case $1 in
"build")
BuildApp ;;
"thin")
ThinAppFrameworks ;;
"embed")
EmbedFlutterFrameworks ;;
esac
fi
`
Please let me know on it.
Thank you.

Yes, are you calling that with the build and embed parameters

@dnfield,  yes, I applied as below
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed
Thank you.

@dnfield , Its okay finally, after keeping Flutter SDK, Flutter module, and iOS project in a separate new folder. And applied Enable Bitcode set to No for Project and all pods. Solved the issue.
Thank you.

Sounds like this issue can be closed or is there still something left to do?


Acceptance tests (ready to merge)

This is summary PR with all acceptance tests I wrote. Part of it was in PR #138 . But I want to split it to chunks to faster review process... I hope ;)
Short explanation adopted method. Acceptance tests are wrote in Gherkin with Cucumber engine. I use standard Cucumber (for Ruby) folder's convention, so tests are in  features, helper metods/classes/environments are in features/support, code of backend is in **features/step_definitions". There are two additional folders I used spec/fixtures to keep (suprise, suprise) fixtures for tests and tmp for runtime files.
All cucumber features so far are Onceover commands, I show some outputs, it helps to debug but I think in future this should be toogle from command line (show scenarios and steps with and without verbose output). I decide to not create many control repos but use one basic and if test required, modifie it, for example remove some file or add some line to file.
Full set of test can be run with bundle exec rake cucumber_acceptance_tests, single feature can be test by bundle exec cucumber features/XXX.feature, single scenario can be run by bundle exec cucumber -n "name of scenario". I think we can extend rake to cover all this scenarios. All commands should be run from main gem's folder, I use relative paths in steps (maybe it should be changed).
Additional to steps I added two helpers Command_Helper and Repo_Helper.

I rebased rest of acceptance tests. In 0eaf003 is example how to use acceptance tests as TDD, it's fix for #54.

Looks good 👍