Add caching to BaseChatModel (issue #1644)

Add caching to BaseChatModel
Fixes #1644
(Sidenote: While testing, I noticed we have multiple implementations of Fake LLMs, used for testing. I consolidated them.)
Who can review?
Community members can review the PR once tests pass. Tag maintainers/contributors who might be interested:
Models

@hwchase17
@agola11

Twitter: @UmerHAdil | Discord: RicChilligerDude#7589

Someone please take a look at this. Really need this :) Thanks

Need this too.

I hope it's reviewed soon, we need caching for ChatModels !

langchain.llm_cache = SQLiteCache(database_path=".langchain.db")
chat = ChatOpenAI(temperature=0, openai_api_key=get_openai_api_key())
messages = [
    SystemMessage(content="You are a helpful assistant that translates English to French."),
    HumanMessage(content="I love programming.")
]
start = time.time()
print(chat(messages))
print(f"first time = {time.time() - start}")
start = time.time()
print(chat(messages))
print(f"first time = {time.time() - start}")

I test this code with this PR. First request miss cache, so It works. But, second request hit cache, and error occur.
cls = <class 'langchain.schema.ChatGeneration'>
values = {'generation_info': None, 'text': "J'adore la programmation."}

    @root_validator
    def set_text(cls, values: Dict[str, Any]) -> Dict[str, Any]:
>       values["text"] = values["message"].content
E       KeyError: 'message'

With InMemoryCache, test code work fine
langchain.llm_cache = InMemoryCache()
chat = ChatOpenAI(temperature=0, openai_api_key=get_openai_api_key())
messages = [
    SystemMessage(content="You are a helpful assistant that translates English to French."),
    HumanMessage(content="I love programming.")
]
start = time.time()
print(chat(messages))
print(f"first time = {time.time() - start}")
start = time.time()
print(chat(messages))
print(f"first time = {time.time() - start}")

Hey @Rienkim, thanks for pointing that out! I'll take a look & add more tests that use more different caching options.
ETA should be this week. In the meanwhile, I'll turn this PR into a draft.

@Rienkim Fixed it & added more tests

Hi folks, what is the latest on this? Is there a timeline for merging this?

@UmerHA thank you for working on this.
I found that _combine_llm_outputs implemented in this PR can be an issue with OpenAICallbackHandler https://github.com/hwchase17/langchain/blob/master/langchain/callbacks/openai_info.py#LL99C42-L99C42

Can you post example code with actual & expected behavior? To me it seems fine, but maybe I'm missing something:
langchain.llm_cache = SQLiteCache(".langchain.test.db")
langchain.llm_cache.clear()

oai_cb = OpenAICallbackHandler()

llm = ChatOpenAI(callbacks=[oai_cb])

messages = [
    SystemMessage(content="You are a helpful assistant that translates English to French."),
    HumanMessage(content="I love programming.")
]

print(llm(messages))
print(oai_cb)

print(llm(messages))
print(oai_cb)

print(llm(messages))
print(oai_cb)

gives first
content="J'adore programmer." additional_kwargs={} example=False
Tokens Used: 34
	Prompt Tokens: 28
	Completion Tokens: 6
Successful Requests: 1
Total Cost (USD): $6.8e-05

then
content="J'adore programmer." additional_kwargs={} example=False
Tokens Used: 34
	Prompt Tokens: 28
	Completion Tokens: 6
Successful Requests: 2
Total Cost (USD): $6.8e-05

and then
content="J'adore programmer." additional_kwargs={} example=False
Tokens Used: 34
	Prompt Tokens: 28
	Completion Tokens: 6
Successful Requests: 3
Total Cost (USD): $6.8e-05

What would you expect to be different? :)

@UmerHA thank you for working on this.
I found that _combine_llm_outputs implemented in this PR can be an issue with OpenAICallbackHandler https://github.com/hwchase17/langchain/blob/master/langchain/callbacks/openai_info.py#LL99C42-L99C42

Can you post example code with actual & expected behavior? To me it seems fine, but maybe I'm missing something:
langchain.llm_cache = SQLiteCache(".langchain.test.db")
langchain.llm_cache.clear()

oai_cb = OpenAICallbackHandler()

llm = ChatOpenAI(callbacks=[oai_cb])

messages = [
    SystemMessage(content="You are a helpful assistant that translates English to French."),
    HumanMessage(content="I love programming.")
]

print(llm(messages))
print(oai_cb)

print(llm(messages))
print(oai_cb)

print(llm(messages))
print(oai_cb)

gives first
content="J'adore programmer." additional_kwargs={} example=False
Tokens Used: 34
	Prompt Tokens: 28
	Completion Tokens: 6
Successful Requests: 1
Total Cost (USD): $6.8e-05

then
content="J'adore programmer." additional_kwargs={} example=False
Tokens Used: 34
	Prompt Tokens: 28
	Completion Tokens: 6
Successful Requests: 2
Total Cost (USD): $6.8e-05

and then
content="J'adore programmer." additional_kwargs={} example=False
Tokens Used: 34
	Prompt Tokens: 28
	Completion Tokens: 6
Successful Requests: 3
Total Cost (USD): $6.8e-05

What would you expect to be different? :)

@deepblue ^^^ (in case you missed it)

@deepblue could you elaborate on your concerns? I am waiting for the feature :)

Just realized I made an error in my code- used BaseChatModel._combine_llm_outputs in this PR instead of the default ChatOpenAI._combine_llm_outputs for testing. Retested with the right method and it's all clear. The original method doesn't affect our subclassed code. Apologies for the mix-up and the late response.
I tested and confirmed that it's working as expected

@hwchase17
@agola11
Good to go?

@hwchase17
@agola11
Any update on this?

Getting the below error when I use MomentoCache. @UmerHA please let me know if this is a bug or if I am doing anything wrong.
Edit: The error pops up for all calls after the cache has atleast 1 key set.
@root_validator
    def set_text(cls, values: Dict[str, Any]) -> Dict[str, Any]:
>       values["text"] = values["message"].content
E       KeyError: 'message'

Code:
import langchain
from datetime import timedelta
from langchain.cache import MomentoCache

langchain.llm_cache = MomentoCache.from_client_params("langchain_momento", imedelta(days=1))

# Further code for constructing and calling the chain using ChatOpenAI

Can you post the full code, error message, and stack trace?


fix regex for whitespace

Description

Fix regex for whitespace.

Fixes #3107
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?

Manual
Junit TCs

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

@sumitsum is this only happening for the MySql plugin?

@sumitsum is this only happening for the MySql plugin?

@nidhi-nair Yes issue is limited to MySql.


HTTP api: v4 & windows

Updating HTTP server:

v4 support
windows support

Pull Request Test Coverage Report for Build 372751264

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 58.242%

Files with Coverage Reduction
New Missed Lines
%

pkg/metrics/sampler/sampler_routine.go
2
94.74%

Totals

Change from base Build 372750115:
0.0%

Covered Lines:
11274

Relevant Lines:
19357

💛  - Coveralls

Deuplicated: https://github.com/newrelic/infrastructure-agent/pull/235


Not sure Org capture is working as it's supposed to in v2

The popup frame created by +org/capture just seems to display the current buffer, and the :org ex command raises an error: evil-ex-call-command: Cannot open load file: No such file or directory, emacs/org/autoload/evil.

Aye, the org module needs a revisit. That particular error is caused because the autoload cookies are out of date. Thanks!

Needs a little more testing, but this was fixed in #a446c58


little clean up

I cleaned up some of the old comments and removed the old method of flagging noisy pixels  to make it clearer how noisy pixels are now flagged.
I tested the new ocde sending it jw*_1_ramp_fit.fits files and it worked fine. I still need to check sending it a mixture of 1_ramp and 0_ramp files.

@bhilbert4 do you know why the travis build failed ?

This looks like some kind of problem with Travis. It appears to install the environment without showing any error messages, and then just stops and claims that the build failed. I just tried restarting the build, but the same thing happened. I saw that it is installing python 3.7, which could cause some problems since everything I've written was done in python 3.6, but it seems like it's never even getting to the point where it tries to run any of the tests, so I'm not sure what's going on.


net/http: document filepath sanitization for ServeFile

This is a petty formulation issue, but the subject is quite sensitive so I thought I would bring it up. The documentation for http.ServeFile(w ResponseWriter, r *Request, name string) states that name needs to be sanitized to prevent ascension into parent directories. It further states that ServeFile rejects requests that contain ".." as path elements.
I assume the implication of both statements combined is that patterns like
http.ServeFile(w, r, filepath.Join(".", r.URL.Path))
http.ServeFile(w, r, filepath.Join("dir", r.URL.Path))

are "safe" in the sense that ascension into the respective parent directories is not possible.
However this is not obvious from the current documentation as there may more obscure ways of ascending than ".." that are less obvious (I am honestly not sure).
Imo it would be a good idea to state explicitly whether the file path in the above patterns is sufficiently sanitized or not because I see only two scenarios:
-If the patterns above are not safe the current documentation may cause security problems
-If the patterns are safe some users won't take advantage of this great function because it is not explicitly stated (this is me right now).

/cc @bradfitz

Sorry, I lost this bug.
r.URL.Path can arrive with ".." in it, so it's not safe to use with filepath.Join directly to ServeFile.
Consider: https://play.golang.org/p/5GlPtcESJm
I suppose we could document that r.URL.Path can contain "..". Would that be sufficient?

ServeFile prevents your attack by checking the URL.Path. See: https://play.golang.org/p/kVXs8aOBNz
Note that in the second example the return value of Join doesn't contain any "..", since Join "cleans that up", but ServeFile checks the URL.Path directly. It seems to me that ascension to parent directories can be caused by the URL, which would make the pattern I used above safe.

Also noted that this vulnerability is even more present when using templates. Our Example: a path from some predetermined directory is passed through the URL via ?path=/in/side/directory. parsed with URL.Query(), into some function to return the contents of our file. Our options to read the contents of this would be ioutil.ReadFile(filepath.Join(directoryPath, filePathFromDirectory)) or ioutil.ReadFile(directoryPath + "/" + filePathFromDirectory).
However filepath when combined with ?path=../../../etc/psswd grabs the contents of the psswd file and outputs it into the template leaving the host vulnerable. We're using directoryPath + "/" + filePathFromDirectory to come up with our path as it's not exposed, but this is not "proper" way to handle this. This is without using ServeFile where the current layer of security lies, there should be some layer of protection at the *http.Request level.

@Hawkinsonb In your specific example, I don't think there would be an easy to protect against that automatically. the net/http library has no way of checking whether a query parameter is a path or not. Maybe we should have a exported function to sanitize paths from untrusted sources somewhere? It's pretty much just ensuring the path is rooted and then path.Cleaning it.
I can see the argument that it should consider requests where the request path itself contains .. invalid. I think that is something we should do.

I was thinking about that today in the office. I think it most definitely should be done at the request level as filepath.Join() needs to allow the environment to navigate the file structure cleanly. Thankfully most filepaths look the same, and I can't imagine case where ../ would be a particularly useful value.
Sanitization could be done safely at the request level. While no expert in Golang design standards so please feel free to ignore this solution: Deprecate Query() and replace with SecureQuery()

Curious as what you mean that the net/http library doesn't have a way to check if the query parameter is a path or not? At some point the URL values are parsed and returned in request.URL.Query() right? While i'm no expert in Golang design standards so please feel free to ignore this recommendation in regards to backwards compatibility: deprecate Query() and add an additional func SecureQuery() that sanitizes the vals?

The url query params can contain arbitrary data. Paths or whatever.
Such sanitization if decided upon should only apply to http.Request.URL.Path.

I'm not exactly what else to document, but I took a stab at it in https://go-review.googlesource.com/c/go/+/125875 ... is that sufficient?
Reviewers welcome.


Fixes #1182 - Allow waitFor timeout exception to propagate

Removed the finally block and moved the code that is not intended to execute into an else block

Wow, the finally/return thing was so odd, thanks for fixing.

ya, I thought the behaviour was a javascript bug when a found it but the last example kind of mentions it in: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch


fix: update references to logging exporter

This exporter has been replaced by the debug exporter and will be removed soon. Related to https://github.com/open-telemetry/opentelemetry-collector/pull/11037

Welcome back! You should visit more often 😉

Only so much time in the day 😅


Send additional form data when requesting access_token with OAuth2

Hi there,
Great package first of all. I have recently started to implement in my laravel package.
In this particular project, I'm trying to integrate external APIs (Machine to Machine) with OAuth2 authentication.
This service requires username: xxx and password: xxx along with client_id: xxx and 'client_secret: xxx**passed in the request body** when requesting anaccess_token`.
I'm not sure where to pass these additional variables within the connector class.
So far, I have done the following:
class ServiceConnector extends Connector
{
    use ClientCredentialsGrant;

    public function __construct(public array $connectionData)
    {
    }

    /**
     * The Base URL of the API.
     */
    public function resolveBaseUrl(): string
    {
        return $this->connectionData['base_url'];
    }

    /**
     * The OAuth2 configuration
     */
    protected function defaultOauthConfig(): OAuthConfig
    {
        return OAuthConfig::make()
            ->setClientId($this->connectionData['client_id'])
            ->setClientSecret($this->connectionData['client_secret'])
            ->setRedirectUri($this->connectionData['base_url'])
            ->setDefaultScopes($this->connectionData['scopes'])
            ->setTokenEndpoint($this->connectionData['token_url'])
            ->setRequestModifier(function (Request $request) {
                if ($request instanceof GetClientCredentialsTokenRequest) {
                    $request->body()->set([
                        'username' => $this->connectionData['username'],
                        'password' => $this->connectionData['password'],
                        'grant_type' => 'password',
                    ]);
                }
            });
    }

}

It seems like the variables passed via the setRequestModifier() method are not correctly going with the request as form body.
Am I missing something somewhere or this type of authentication has a different approach?
Any help is appreciated.

@77media-creations In case you are still stuck on this the solution for me was to modify the code like this:
                            ->setRequestModifier(function (Request $request) {
                                if ($request instanceof GetClientCredentialsTokenRequest) {
                                    $request->body()->set([
                                                              'username' => $this->connectionData['username'],
                                                              'password' => $this->connectionData['password'],
                                                              'client_id' => $this->connectionData['clientId'],
                                                              'client_secret' => $this->connectionData['client_secret'],
                                                              'grant_type' => 'password',
                                                          ]);
                                }
                            });

The client_id and client_secret needed to be added and everything worked from there.


Added problem of Island count under graph section

I have added a new problem of Island count under the graph section.

I already have this solution https://github.com/mission-peace/interview/blob/master/src/com/interview/graph/NumberOfIsland.java which is very similar to your solution.

Ohh I missed it.
Thanks for pointing it out.


Add a role for appliance internet connectivity

Some tasks require that at least one appliance in a region have
connectivity to the internet.  It is not mandatory that an appliance
have this enabled but additional features can be used if it is.

cc @Fryguy @gtanzillo


demo 147

@choper725 wow very cool stuff! thank you!

for now its static, i need to figure out how to integrate it with model binding somehow..
maybe from js, as this is a complex json..
can i add to the model directly from js.  ?

i always try to define a custom control and there you can use as attributes tables or other complex jsons. You can use the message manager custom control as an example. If you want to send other formats to the frontend, this should be also no problem as it is done with the tree table, you can also find a sample for this.
At the frontend i would redefine the setAttribute method of the custom control, to set the data form the backend into the Chart framework.
But to be honest, i did not take a look into the demos, so let me know what you exactly need.

hi @oblomov-dev  i could really need your help on this one,
im trying to make a CC for chartjs,
as per your suggestion im using Array type in the CC,
and for that to work i had to add compress to the bind logic in order to get the condensed json in the CC (without the empty abap values) i implemented it just like you added pretty_print in the bind methods.
now i got it to work, but when i try to update the model upon a change in abap i get a abap error,

ah ok, interesting error.
can you send a PR with the actual version? how can i reproduce it? i can try to take a look to it in the next days.

created a PR #769
chartjs cc demo.txt
this is the demo for it..
when i press update button in the top of the of the page i get the error,
i guess my cc is not complete but i dont really know how to advance when i get an abap error once trying to update..

ok i'll try to check this. Just out of curiosity, why do you use "compress" with the /ui2/json serialization?

because in the CC the recived config array is full of all the values from the defined atruc ty_chart,
and chartjs expect only strict values as it got internal defaults
the full json struc is around 150 values and in each table you use 20, maybe less

added the txt to demo 148, its no problem when there are still bugs, its just the sample repository and this makes it easier to talk about
nice, overlooked the compress function, to keep the requests smaller from my point of you it makes sense to activate it in general for every binded data, tested it here: https://github.com/abap2UI5/abap2UI5/tree/activate-compress-for-binding does this also work for you or do you see any problems in your apps?
you work with a strcture and then have a table as an component, i think this nested structure is a use case i never had before, when i change the binding to one way binding, it works, updated the demo here: https://github.com/abap2UI5/abap2UI5-samples/blob/main/src/z2ui5_cl_demo_app_148.clas.abap

but yes i got the problem, just could check it quickly but i will try to find more time in the next days and check if there is a way to activate two way binding for nested structures/tables. thanks so far for your work!

added the txt to demo 148, its no problem when there are still bugs, its just the sample repository and this makes it easier to talk about
nice, overlooked the compress function, to keep the requests smaller from my point of you it makes sense to activate it in general for every binded data, tested it here: https://github.com/abap2UI5/abap2UI5/tree/activate-compress-for-binding does this also work for you or do you see any problems in your apps?
you work with a strcture and then have a table as an component, i think this nested structure is a use case i never had before, when i change the binding to one way binding, it works, updated the demo here: https://github.com/abap2UI5/abap2UI5-samples/blob/main/src/z2ui5_cl_demo_app_148.clas.abap

but yes i got the problem, just could check it quickly but i will try to find more time in the next days and check if there is a way to activate two way binding for nested structures/tables. thanks so far for your work!

great !
i need to pull again and run tests on default compress in the binds, i guess there would be problems if a value was declared in abap and was not set with a value , and later was used in a binding expression ... i know i used that once, just couldnt find where it was...
the problem is that the array is a nested struc with tables and struc ??

Yes this use case was never done before, I am sure when you split the structure and send the tables as separated attributes to the fronted the two way binding would work. But anyway it makes sense to check if there is way that also the actual version works.

added now:
https://github.com/abap2UI5/abap2UI5/blob/e11cccf9ed575da7238ebb30805c0b69af9037ac/src/01/01/z2ui5_cl_fw_model.clas.abap#L85
demo 148 with two way binding works on my side.
but just made a quick and dirty change, so expect some bugs. you can test with the following branch:
https://github.com/abap2UI5/abap2UI5/tree/activate-compress-for-binding
Best regards.

pulled the activate-compress-for-binding branch and ran tests regarding to default compress binding, for now seems ok...
but i think it will be great if the compress will be default to true, but can be changable to false if indicated in the binding..
i see there is no dump for two way binding.. ill continue to work on the chartjs cc

(1) compress
ok great i will also do some more checks on my side and then push it to main.
(2) two way binding
👍

im getting an error in latest pull from this branch in my handler that check_debugging is missing from http_get method.

activated compress in general now, needed to adjust the index.html for this. my tests are succesfully.
yes i keep it as an optimal parameter that it can be manually deactivated. but in general i like to keep it simple and do not want to add too many parameters. maybe i will ask you in a few month ago and if you have no use case for this till then, i would delete it.

are you referring the check_debugging param ??

Ah no I mean the compress function.

ohh i figured that check debugging is removed as its now via shortcut so parameter is irrelevant,
any way, any pointers on how can i get model change event inside my CC ??
dont seem to get it to work..

tried all kind of things... nothing worked...

define a method setAttribute (e.g. setConfig), then the method is called automatically when binded data is changed and you can proceed your functionality.

just pulled all actual changes to main now. just create a new issue for further questions or errors.


Add CI for Functions Codable

Pending #8854

Cherry-picked into #9091 and closing in favor of that.


Automated cherry pick of #1709: fix console log

Cherry pick of #1709 on release/2.11.0.
#1709: fix console log

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.11.0@cb78a62). Click here to learn what that means.
The diff coverage is 0%.

@@               Coverage Diff                @@
##             release/2.11.0   #1710   +/-   ##
================================================
  Coverage                  ?   7.65%
================================================
  Files                     ?     412
  Lines                     ?   63112
  Branches                  ?       0
================================================
  Hits                      ?    4834
  Misses                    ?   57870
  Partials                  ?     408

Flag
Coverage Δ

#aFlag
7.65% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/cloudsync.go
0% <0%> (ø)

Continue to review full report at Codecov.

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

/lgtm
/approve


[Removal]: My real placed hotspots in the denylist,why?please remval them from denylist, thank you very much.

Hotspot Name
Bitter Shamrock Elephant
Shiny Goldenrod Boa
Dapper Spruce Dachshund
Hollow Garnet Baboon
Amateur Sky Chinchilla
Attractive Basil Chinchilla
Special Turquoise Raccoon
Muscular Brunette Wren
Stale Cloth Raven
Crazy Macaroon Falcon
Cuddly Hazelnut Condor
Dizzy Tweed Pike
Hotspot b58 Address
11e3HJDALH2KCmoaV89T1uKQ4uoq5tHLHff6bG8cPBN7ozz5454
112ervfH4s4249D9qaNV5eHrMXpBbYgFTWBmjTnzbY5APyuDJDLk
11KvdaPv5AUU4NTQQJZPcuMVdVJDYuBpQBUTXdVvCooLDBG7uRH
112FWvGn8juFmesnZawKf2cKf9Ajx6Fr9jLQ6w1ErGeB1NdVkRFS
112jDxzPCnU4fw7i7RcPR28ExttLWijwdRtSQvcHz5Cfs3mTc9RW
11CGKF3g6FAzUZqboBJbphuLGRZSx8erjyZpWVyo7QXBzFkCP8Y
11CekhLfApbJNyRU43qTUZkM1zEGiJdnpHC7KYiS7LgBukhVWr3
11PBQZgoixEF9C8X8KNYMGTvAzu8BaiSGSJQezFvfMDna37ragw
11bwepXmKJXMZcVRVEVe6Vb74npazAV8NymsYya4iWPwyNYHFRM
112MWth3jQpRWubPerNHzNesvUqZ1PePkDHWkuRAm4EPb7YPidbe
112CoRY4iQkqoKFb3RVUNeoe4c6BaNwgrfC67YwHH5tEhiCDigmK
11X12yqwNN9U8KuwrQdTTwDbLDES1na3qYyv5VhM2KyGtYc8NFr
Discord Handle
No response
Hotspot Manufacturer
PantherX
Removal Reason
I fix them in all real place of a industrial park.
Modifications
No
Extra forwarders
No
Extra antennas
No
Additional Information
No response

Please provide:

A link to the denylist issue that caused your hotspot(s) to be denied
Evidence that your devices are not cheating

Your evidence should:
a) Include a clear photo showing the view from your real location, which can then be matched against a satellite photo.
This photo (or additional photos) should show that you have real access to the location. I.e. not just a photo taken from the street.
Do not just provide a single photo of your hotspot on a table.
Do not just provide a phone screenshot showing your claimed GPS location.
b) If necessary, address any of the points made in the denylist issue. E.g. if one of the points was 'this hotspot has witnesses over 1,000km away', provide an explanation of why that happened.

A link to the denylist issue that caused your hotspot(s) to be denied
-->Sorry,please tell me how to find the link address,i am not a technologist.

A link to the denylist issue that caused your hotspot(s) to be denied -->Sorry,please tell me how to find the link address,i am not a technologist.

There is a filter on the issue list page.  Put your HS address in.


Make WithDistributedTracingOptions() available in preview

Is your feature request related to a problem? Please describe.
When running the -preview package, the distributed tracing is logging a lot of traces for requests over the default LatencyTreshold. We cannot change these thresholds because DistributedTracingOptions and WithDistributedTracingOptions() are internal.
Describe the solution you'd like
Make the relevant API's public for -preview, so we can decide the latency threshold we prefer.
Describe alternatives you've considered
We considered a TelemetryProcessor for AI to detect and remove these traces, but decided to disable the distributed tracing for cosmos altogether instead.
Additional context
We are using Application Insights for out application.

Thanks for asking for it.
We are working on it, you would see this option available in next version of preview SDK. Although API name would be changed.


Allow prop-types rule to skip non-exported SFCs

From the docs:

For now we should detect components created with:

React.createClass()
an ES6 class that inherit from React.Component or Component
a stateless function that return JSX or the result of a React.createElement call.

It would be great if we could enforce propTypes being defined on React.createClass() and React.Component-extended components, but not stateless functions which return JSX.
In fact, defining .propTypes in function use such as { arr.map((name, i) => <Row key={ i }>{ name }</Row>) } would increase verbosity considerably

array method callbacks may make sense to skip, but standard SFCs should definitely always have propTypes.

I'm having a weird issue at the moment with prop-types.
import VideoJSPlayer from '../../components/videojs-player';

export default function getVideoJSComponentStream({
  videoJsControlBus
}) {
  // do lots of fancy stuff
  return <VideoJSPlayer videoJsControlBus={videoJsControlBus} />
}

I end up with warnings for videoJsControlBus missing in props validation.
But VideoJSPlayer is a component defined elsewhere, imported in at the top - that component definition has the correct prop types.
I think it's detecting this particular case as a stateless function component, which technically it's not?
Thus ignoring stateless components would be a highly desirable option.

@darrennolan in this case, getVideoJSComponentStream should indeed have propTypes - however you could do getVideoJSComponentStream.propTypes = { videoJsControlBus: VideoJSPlayer.propTypes. videoJsControlBus };.
The goal is to catch bugs as soon as possible - even though VideoJSPlayer will catch it, your component should be catching it first.

Thanks for the super quick reply @ljharb =D
But getComponentStream doesn't actually return a new react component.  I should update that code a bit better.
It's returning an observable stream, just happens to map to a react component, that's typically injected into another component.
To me, that would be like having to declare prop types against the following, when Class PlayerComponent already has them defined.
ReactDOM.render(
    <PlayerComponent {...data.view} />,
    this.element
);

Unless in these cases it's better for me to explicitly return React.createElement(SomeComponent, someProps) ?  Which, maybe it would be better?

Could you provide a more accurate example? If your function doesn't directly return JSX, it shouldn't be identified as needing propTypes.

Trimmed down version of the function, but this shows the streams we muck about with and then return a stream that when subscribed - gives us this react component with the props set accordingly.
import React from 'react';
import bacon from 'baconjs';
import isEqual from 'lodash/isEqual';
import get from 'lodash/get';

import VideoJSPlayer from '../../components/videojs-player';

export default function getVideoJSComponentStream({
    autoPlayStream,
    marbleStream,
    marbleVideoSourcesStream,
    preloadStream,
    showAdStream,
    videoJsControlBus,
    videoJsEventBus
}) {
    let videoJsSettings = bacon.combineWith(
        marbleStream, marbleVideoSourcesStream, autoPlayStream, preloadStream,
        (marbleVideo, marbleVideoSources, autoplay, preload) => {
            return {
                autoplay,
                preload,
                marbleVideoSources: marbleVideoSources,
                nativeControlsForTouch: true,
                poster: get(marbleVideo, 'posters.large', '')
            };
        }
    );

    return bacon.combineWith(
        videoJsSettings, showAdStream, marbleStream,
        (videoJsSettings, showAd, marbleData) => ({videoJsSettings, showAd, marbleData})
    )
        .skipDuplicates(isEqual)
        .map((settings) => {
            return (
                <VideoJSPlayer
                    showAd={settings.showAd}
                    videoUid={get(settings, 'marbleData.marbleId')}
                    videoJsControlBus={videoJsControlBus}
                    videoJsEventBus={videoJsEventBus}
                    videoJsSettings={settings.videoJsSettings} />
            );
        });
}

I'm not sure what the core objection is here — we use PropTypes extensively across our application, at multiple boundaries and depths. We only use Stateless Function Components within class components with propTypes defined (and enforced, thanks to this plugin) so it's both unnecessary to re-declare the same propTypes again for SFCs and affects readability of our code.
I understand not everyone works in this way, which is why it would only be optional at best. I don't have experience with ASTs and eslint but if it's too hard to deal with here I'll try to find some time soon to get a PR together.
Thanks.

@darrennolan that looks like a bug in that it's mistaking the JSX in the .map for your function being an SFC. i'd file a separate issue about that.

Thanks @ljharb - I've made a new ticket at https://github.com/yannickcr/eslint-plugin-react/issues/504 (hoping I copied all the relevant information).

+1, turning this off for stateless function components is exactly what I need. They get used for one-offs, which don't make sense to turn on prop type checking for.

I would be fine with a rule stating that un-exported SFCs don't need propTypes.
However, any exported SFCs should have the same propType checking as any other kind of exported component, and I would be a strong -1 on any propTypes rule that differentiated between components solely based on their statefulness/statelessness.

That happens to work for my use case, so fine by me.
Although I have to say, I don't really understand the extremely rigid take on it. The whole point is that it's an option you wouldn't have to ever use if you disagree so strongly with it. But for other folks it makes sense that when they write one-or-few-liner components they don't want to have to be forced to add prop types.
Either way, I've just abandoned this rule now anyways.

I would be fine with a rule stating that un-exported SFCs don't need propTypes

This would be great. Is there any progress towards this yet?

I also get a false negative for this scenario:

The rule proposed in this thread would help for my use case.

It's not a false negative, it's a correct error - but yes indeed, this proposal would stop warning there.

Really? Even though that function is called directly and not with React.createElement?

@amannn ah sorry, i misread. yeah, in that case it's our SFC detection, since the function returns jsx and isn't a callback, it looks like an SFC.

if i have
function foo(props){
   return
{props.whatever2}
;
}

function ActualComponent(props){
  return (

{props.whatever}

       {foo(props)}

;
}

ActualComponent.propTypes = {
   whatever: PropTypes.string.isRequired
};

export default ActualComponent.

the linter should recognize that foo is not a component and doesn't need proptypes, and that ActualComponent is actually using the whatever prop, and that acutal component is missing a proptype for whatever 2, right?
is it possible to trace through the function calls to see which props are getting used by helper functions? and to not expect proptypes on functions that are called explicitly by other parts of the file?

The recommendation there is that foo should in fact be an SFC, that does need propTypes.
That said, since foo has a lowercase name, the component detection should definitely be able to not treat it as a component - but at that point, whatever2 wouldn't be traceable backwards - which is part of the reason that you don't want to have a function that takes props and returns JSX that isn't actually a component.

that makes sense.


Add air.toml's json schema to schemastore for autocompletion and diagnostics

This is a bit of a future looking goal once things stabilize.
We should create a "json schema" for our toml file and get it on https://www.schemastore.org/json/ by sending a PR to https://github.com/SchemaStore/schemastore. We can do this by tagging our TomlOptions fields using the schemars crate which integrates with serde-json, and then emitting a json schema for that struct to a file.
The reason we'd want to do this is to get autocompletion and diagnostics in our air.toml file. With the Even Better TOML extension in VS Code and in some IDEs natively like PyCharm, if you have a json schema for your file on schemastore, then it will automatically start providing autocompletions and diagnostics for that file. Super useful so you don't have to guess if your toml config is right or not.
https://github.com/pypa/hatch/issues/731#issuecomment-1403520523

ooh that's nice!

IIUC in our vs code extension we can even register our schemastore as the toml validator and even better toml will pick it up. ruff doesn't do this from what I can tell so we'd be experimenting a bit but it would be nice if that made it mostly automatic https://taplo.tamasfe.dev/configuration/developing-schemas.html#visual-studio-code-extensions


Slices: Fix oveflows in Span.Slice methods

Issue #537
Both overloads of Span.Slice method allow to read at negative offsets.
Besides that they lack AggressiveInlining attribute what makes them slow.
I used the following benchmark code:
    public class BenchmarkSlice
    {
        Span<char> slice;

        public BenchmarkSlice()
        {
            string str = new string('c', 256);
            slice = str.Slice();
        }

        [Benchmark]
        public void Slice()
        {
            var copy = slice;

            do
            {
                copy = copy.Slice(1);
            }
            while (copy.Length != 0);
        }

        [Benchmark]
        public void SliceWithLength()
        {
            var copy = slice;
            do
            {
                copy = copy.Slice(1, copy.Length - 1);
            }
            while (copy.Length != 0);
        }
    }

Original results (before the change)
BenchmarkDotNet=v<IP_ADDRESS>
OS=Microsoft Windows NT 6.2.9200.0
Processor=Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz, ProcessorCount=4
HostCLR=MS.NET 4.0.30319.42000, Arch=64-bit  [RyuJIT]
Type=BenchmarkSlice  Mode=Throughput  Platform=HostPlatform  Jit=HostJit  .NET=HostFramework  toolchain=Classic  Runtime=Clr  Warmup=5  Target=10
      Method |   AvrTime |    StdDev |       op/s |

---------------- |---------- |---------- |----------- |
Slice | 1.6296 us | 0.1791 us | 620,547.63 |
SliceWithLength | 1.8450 us | 0.1283 us | 544,803.54 |
The results just after adding AggressiveInlining:
      Method |     AvrTime |     StdDev |         op/s |

---------------- |------------ |----------- |------------- |
Slice | 269.2951 ns |  1.3123 ns | 3,713,482.96 |
SliceWithLength | 273.1879 ns | 17.6509 ns | 3,671,898.16 |
The end result (after the fix):
      Method |     AvrTime |    StdDev |         op/s |

---------------- |------------ |---------- |------------- |
Slice | 192.6039 ns | 2.5312 ns | 5,192,833.50 |
SliceWithLength | 357.4231 ns | 1.4362 ns | 2,797,847.44 |

LGTM :+1:


Develop

The changes for this pull request are the "regex_pattern" lines. All the other stuff is still showing in the diff for some reason, but should've been merged in the last request.

It only shows the pattern line changes in the diff for me.


FR: Keybindings profiles for custom keyboards

Hi,
I didnt find anything about this, so I am writing, is there a way or if not, could it be implemented, a way to create profiles / layers of keybindings for different keyboard layouts, let's say I use a ergo keyboard at home and normal keyboard at work, I would like to set different keybindings for each.
I activate the profile I want. Based on my needs.

Please use existing feature Profiles - https://code.visualstudio.com/docs/editor/profiles


gpu_split does not seem to work for me

gpu_split is set to "80,  80, 80 , 80" but is only using a single gpu (cuda:0).
class method code:
 @classmethod
    def from_pretrained(cls, path_to_model, model_dir, max_seq_len, compress_pos_emb, alpha_value, gpu_split=None):
        # Removed unrelated code
        if gpu_split:
            split = [float(alloc) for alloc in gpu_split.split(",")]

        model.load(split)

terminal output: RuntimeError: CUDA error: an illegal memory access was encountered CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.

The GPU split defines how much space to allocate for weights and buffers on each device but specifically excludes the cache, since the cache is allocated separately and can be any size depending on what you're doing with the model. You can also have multiple caches, and now 8-bit caches, etc.
So overall, if you have 4 x 80GB GPUs, you'll probably want a split along the lines of [70,70,70,70], or something. I would try that, or maybe less, and then check the output of nvidia-smi to see how much memory you actually end up using with the cache, and then dial it in that way.
I do wonder what model you're using that needs 320 GB of VRAM, though?

Thanks for the response. To answer your question, I am trying to load multiple models but the workload doesn't split across the gpus, it does everything on a single GPU... even though I am defining gpu_split to be [70,70,70,70] for e.g.

If you load the first model with a split of [1,2,3,4], that means it will place 1 GB of weights+buffers on the first GPU, 2 GB on the second, and so on. If you load another model with that same split, it will also try to use 1 GB on the first GPU, 2 GB on the second etc. There's no accounting of how much VRAM is used between calls to ExLlamaV2.load() and it doesn't consider how much is currently available.
If you call ExLlamaV2.load() with stats = True, it will return a tuple of gpu_split (what you passed) and a list of how much of that allocation wasn't used up. So essentially you could do:
gpu_split = [70,70,70,70]  # initial split
for model in models:
    _, gpu_split = model.load(gpu_split, stats = True)  # returns e.g. [70,70,70,70], [42.1,70,70,70]

This isn't a perfect solution because caches aren't accounted for, and how much cache space you'll need on a device depends which particular models end up on that device and what parameters you choose for each cache. Each layer of the cache must reside on the same device as the attention block it is tied to, but not all layers are attention blocks, so depending on exactly where the model ends up getting split you may need a little more or a little less VRAM for the cache on any given device.
Also, some of the memory reserved when loading a model isn't permanently allocated. E.g. attention weights only exist in VRAM during the attention step, so that memory could be shared between two models on the same device.

Solved, thank you


TimeField is not fully implemented

I'm using the NuGet package for version 0.24 in an F# (core 4.7) project , but TimeField view is no present. Any idea?

I have the same problem. So I cannot run the example from https://github.com/migueldeicaza/gui.cs/blob/master/Example/demo.cs
The code is in the repo (https://github.com/migueldeicaza/gui.cs/blob/master/Terminal.Gui/Views/TimeField.cs) but inspecting the nuget it does not contain the type.

Renamed Issue to reflect state of control.
See UI Catalog scenario to illustrate. See PR #475

I think we're good here. Reopen if you don't think so.


/content/ Directory Not being display, only 404 error page

How It Was Before
I was using the standard /content/ directory for all my pages and blog posts.  Nothing much, a few directories and sub-directories and plus or minus 30 files.  All was working.
The Problem
In my dev environment only (don't yet have a public site), on Linux (Debian jessie 3.16.0-4-amd64) with hugo version 0.37
When I http://localhost:1313 the homepage appears with all the TABS and content (except the BLOG section where there are no posts).  But when I want to go to a TAB, I get the following: "404 page not found"  (not the nice hugo one).  This is for everything in /content/
What I Did To Make This Happen

mv content/blog/diary/me/ trashdirectory/
Then "The Problem".

Troubleshooting

So obviously I moved the directory back, but didn't work.
I restarted/rebuilt/put verbose and debug/created new files/directories, nothing worked content/ just didn't work.
Created a new dir testcontent/ with a new file, moo.md and ran hugo with -c testcontent/  Worked great for moo.md and the blog didn't give a 404 page but a blank page.
cp content/ to testcontent/ still running hugo on -c testcontent/ and all works, except the blog which gives a blank page or certains things don't work (don't remember exactly because I can't reproduce it!)  AND NOW this doesn't work anymore either.
So I created a new directory moomoo/ with a moo.md file and ran hugo with -c moomoo/ and it works now!!!
cp -R content/ to moomoo/ and works great except for blog which is a blank page. BUT... when I restart hugo then moomoo/ doesn't work anymore.  So I could keep on going, works once.

This is my run command to hugo (but it hasn't changed since before the problem): hugo server -D --bind="<IP_ADDRESS>" -c moomoo/
How To Fix

Do it the lazy way and use a new dir like testcontent/ moomoo/ but it doesn't seem to be stable and work indefinitely and would require figuring out why the blog doesn't work AND my husband will kill me for taking this route and not fixing the problem.
Revert to an older version of the site and loose all that I've done since the last git push (and, I know it's bad, but I don't do it enough) and still a lazy way out which might not work anyway.
Actually fix the problem (but I've hit the limits of my troubleshooting and technical skills)

Any ideas?  Does anyone know how to fix this?

Issue posted on https://discourse.gohugo.io/t/content-directory-not-being-display-only-404-error-page/12423


Combine ETH Transfer and Withdraw screen

Description
As the user just needs the ETH to withdraw tokens from his Raiden Account I would combine the two screens.
In addition the ETH transfer screen looks quite empty.
Acceptance criteria

Tasks

[ ]

Could be combined with #1443

I believe the consensus is to keep them separated because they are two different actions. Also the ETH transfer screen has been re-worked in #1573 .
Perhaps close this issue?

I am ok with that. If the others also agree then we can proceed and close it.


Attempt at local dev using Docker environment

I'm putting this up for review by @TheOriginalAlex & @anoff - I'm not certain this is correct w.r.t. building the local source code...

@mayank0403 Can you please confirm that this branch works for you locally?

@anoff Thanks for your review, will wait for @mayank0403 's confirmation that it works locally.


Delete is not batched when used with EntityFrameworkCore .Net8 and Postgres

Here is what to include in your request to make sure we implement a solution as quickly as possible.
1. Description
Delete does not use BatchSize or BatchDelayInterval when used with EntityFrameworkCore .Net8 and Postgres.
Is that by design?
Looking at /EntityFramework-Plus/src/shared/Z.EF.Plus.BatchDelete.Shared/BatchDelete.cs I can see that the CommandTextPostgreSQLTemplate does not contain a {Top} that would be replaced by BatchSize nor {Delay} replaced by BatchDelayInterval .
If that is by design, then please let me know and mark this in the documentation of the method and on your online help (https://entityframework-plus.net/ef-core-batch-delete)
2. Exception

3. Fiddle or Project
using System;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Npgsql.EntityFrameworkCore.PostgreSQL;
using System.Collections.Generic;
using Microsoft.Data.SqlClient;
using Z.EntityFramework.Plus;
namespace efcoreplustest;

class Program
{
    public static void Main()
    {
        using (var context = new EntityContext())
        {
            context.Database.EnsureCreated();
        }

        GenerateData();
        Console.WriteLine("beforeDelete");
        // Delete: DELETE all rows from the database using a LINQ Query without loading entities in the context
        using (var context = new EntityContext())
        {
            // BatchSize
           // OrderBy(c => c.CustomerID) creates a limit, but int.max is used. See BatchDelete.cs 201 -> query = query.Take(int.MaxValue);
            context.Customers.Where(c => c.CustomerID < int.MaxValue).OrderBy(c => c.CustomerID).Delete(x =>
            {
                x.BatchDelayInterval = 2000;
                x.BatchSize = 1;
            });
        }
        Console.WriteLine("afterDelete");

        using (var context = new EntityContext())
        {
            context.Customers.ToList().ForEach(x => Console.WriteLine(x?.Name));
        }

    }

    public static void GenerateData()
    {

        using (var context = new EntityContext())
        {
            context.Customers.Add(new Customer() { Name = "Customer_A", IsActive = false });
            context.Customers.Add(new Customer() { Name = "Customer_B", IsActive = true });
            context.Customers.Add(new Customer() { Name = "Customer_C", IsActive = false });

            context.SaveChanges();
        }

        using (var context = new EntityContext())
        {
            context.Customers.ToList().ForEach(x => Console.WriteLine(x?.Name));

        }
    }

    public class EntityContext : DbContext
    {
        public EntityContext()
        {
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseNpgsql("Server=<IP_ADDRESS>;Port=5432;Database=testDB;User Id=test;Password=test;");

            optionsBuilder.EnableSensitiveDataLogging();
            optionsBuilder.EnableDetailedErrors();
            optionsBuilder.LogTo(Console.WriteLine);

            base.OnConfiguring(optionsBuilder);
        }

        public DbSet<Customer> Customers { get; set; }
    }

    public class Customer
    {
        public int CustomerID { get; set; }
        public string Name { get; set; } = "";
        public Boolean IsActive { get; set; }
    }
}

Running that create the following Query:
 LOG:  execute <unnamed>:
     DELETE FROM "Customers" AS A
     USING ( SELECT c."CustomerID"
     FROM "Customers" AS c
     WHERE c."CustomerID" <<PHONE_NUMBER>
     ORDER BY c."CustomerID"
     LIMIT $1 ) AS B WHERE A."CustomerID" = B."CustomerID"

DETAIL:  parameters: $1 = '2147483647'

4. Any further technical details
Further technical details
    <PackageReference Include="Microsoft.Data.SqlClient" Version="5.2.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.7" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" />
    <PackageReference Include="Z.EntityFramework.Plus.EFCore" Version="8.103.0" />

Hello @phebing ,
Thank you for reporting.
Indeed the current option BatchDelayInterval = 2000; and x.BatchSize = 1; are only supported for SQL Server
We will look into adding this option for PostgreSQL. I cannot promise anything yet but I should be able to give you an answer within 1 or 2 weeks about if we add the support to it or not.
Best Regards,
Jon

Hello @phebing ,
The support for BatchDelayInterval and BatchSize has been finally added to PostgreSQL starting from version <IP_ADDRESS>
If you have the chance to test it, could you let us know if everything is working as expected?
Best Regards,
Jon


Model Code Issues

I would like to ask if you have a more complete code in your utils module? We ran into some problems with reproducing it. When running main.py, the imported utils module is incomplete. Can you help us with this? Thank you!

The missing code in utils is linked to configurations loading. It is unsafe, so I have no plan to release it.
I suggest modifying the code to use libraries like Hydra if you want to use configuration files. However, this is not required.


"iproxy cannot be opened because the developer cannot be verified"

If you're looking for a quick fix, this should work: https://github.com/flutter/flutter/issues/42969#issuecomment-568303471
Steps to Reproduce

Going through the macOS install tutorial for Flutter (https://flutter.dev/docs/get-started/install/macos), step-by-step, on a brand new MacBook running 10.15.
Any time a flutter command is called (eg. flutter doctor or flutter create), the following warning appears:

Logs
The process hangs until I acknowledge the window by clicking "Cancel", but the verbose logs don't actually show anything.
For example, for flutter doctor logs:
➜  Developer flutter doctor -v
[✓] Flutter (Channel stable, v1.9.1+hotfix.5, on Mac OS X 10.15 19A582a, locale en-GB)
    • Flutter version 1.9.1+hotfix.5 at /usr/local/flutter
    • Framework revision 1aedbb1835 (7 hours ago), 2019-10-17 08:37:27 -0700
    • Engine revision b863200c37
    • Dart version 2.5.0

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

[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.0, Build version 11A420a
    • CocoaPods version 1.8.4

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 40.2.2
    • Dart plugin version 191.8580
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] VS Code (version 1.38.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.5.1

[!] Connected device
    ! No devices available

! Doctor found issues in 1 category.

🛠 A quick fix around this is sudo xattr -d com.apple.quarantine /YOUR_FLUTTER_PATH/bin/cache/artifacts/libimobiledevice/idevice_id, but this really should work out the box :)

Update: it seems this is the case with more than just the idevice_id binary. Just had the same thing when trying to use a physical device - this time it's ideviceinfo that's playing up

This is very strange. Can you run codesign -vvv YOUR_FLUTTER_PATH/bin/cache/artifacts/libimobiledevice/idevice_id for me and verify that it's signed?

I'm having the same problem as Lucas.
Christopher, I ran:

This is very strange. Can you run codesign -vvv YOUR_FLUTTER_PATH/bin/cache/artifacts/libimobiledevice/idevice_id for me and verify that it's signed?

I obtained:
idevice_id: satisfies its Designated Requirement
So, it seems it is well signed.

I download zip from https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_v1.9.1+hotfix.5-stable.zip, idevice_id is error when i run 'flutter doctor'.
I use 'git clone https://github.com/flutter/flutter.git', and run 'flutter doctor'. It's work.

Thx for the fix. It works.
Le lun. 21 oct. 2019 à 05:17, 史金亮<EMAIL_ADDRESS>a écrit :

I download zip from
https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_v1.9.1+hotfix.5-stable.zip,
idevice_id is error when i run 'flutter doctor'.
I use 'git clone https://github.com/flutter/flutter.git', and run
'flutter doctor'. It's work.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/42969?email_source=notifications&email_token=AAUX5RZFDIVDO4NBNHD5O5LQPUNMHA5CNFSM4JCAFNF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBY5VIY#issuecomment-544332451,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAUX5R7XMCFUOE6RAO4YJPDQPUNMHANCNFSM4JCAFNFQ
.

I also got the same issue when I ran flutter doctor, I resolved it in System Preferences > Security & Privacy set to allow device_id

Apologies I've been inactive recently - @christopherfujino as said above, the binaries return signed:
/usr/local/flutter/bin/cache/artifacts/libimobiledevice/idevice_id: valid on disk

/usr/local/flutter/bin/cache/artifacts/libimobiledevice/idevice_id: satisfies its Designated Requirement

Same with other binaries like ideviceinfo which produce the same issue.
To be explicit for anyone reading this, the workarounds here are either:

Cloning from the git repo as @shijinliang mentioned
Resolving the issue by manually overriding macOS's block on the binary, which you can do by removing the attribute as I mentioned earlier ^ or by using the GUI as per @sanchitrk's instructions (which is far less overkill 😅)

Catalina's default security measures is infuriating.  Nothing is allowed now.

I'm still seeing LUCI artifacts in these files.  When I try to launch:
com.apple.securityd	default	19:29:52.700660 -0800	trustd	asynchronously fetching CRL (http://crl.apple.com/timestamp.crl) for client (syspolicyd[138]/0#-1 LF=0)
com.apple.securityd	default	19:29:52.701453 -0800	trustd	asynchronously fetching CRL (http://crl.apple.com/root.crl) for client (syspolicyd[138]/0#-1 LF=0)
com.apple.securityd	default	19:29:52.706941 -0800	trustd	OCSPResponse: single response has extension(s).
com.apple.securityd	default	19:29:52.708504 -0800	trustd	asynchronously fetching CRL (http://crl.apple.com/root.crl) for client (syspolicyd[138]/0#-1 LF=0)
com.apple.securityd	default	19:29:52.708563 -0800	trustd	cert[2]: AnchorTrusted =(leaf)[force]> 0
com.apple.securityd	default	19:29:52.713226 -0800	syspolicyd	MacOS error: -67002
com.apple.securityd	default	19:29:52.716382 -0800	syspolicyd	rule 11 applies - allow=1
com.apple.securityd	default	19:29:52.721247 -0800	trustd	OCSPResponse: single response has extension(s).
com.apple.securityd	default	19:29:52.723370 -0800	trustd	asynchronously fetching CRL (http://crl.apple.com/root.crl) for client (syspolicyd[138]/0#-1 LF=0)
com.apple.securityd	default	19:29:52.723437 -0800	trustd	cert[2]: AnchorTrusted =(leaf)[force]> 0
com.apple.xprotect	default	19:29:52.729082 -0800	XprotectService	File /Users/m/Downloads/flutter/bin/cache/artifacts/libimobiledevice/idevice_id failed on loadCmd /b/s/w/ir/k/homebrew/Cellar/libimobiledevice-flutter/HEAD-398c120_3/lib/libimobiledevice.6.dylib

That last line is File /Users/m/Downloads/flutter/bin/cache/artifacts/libimobiledevice/idevice_id failed on loadCmd /b/s/w/ir/k/homebrew/Cellar/libimobiledevice-flutter/HEAD-398c120_3/lib/libimobiledevice.6.dylib
And the binary itself is loading dylibs from bogus LUCI paths like /b/s/w/ir/k/homebrew/Cellar/
otool -l flutter/bin/cache/artifacts/libimobiledevice/ideviceinfo
...
Load command 12
          cmd LC_LOAD_DYLIB
      cmdsize 128
         name /b/s/w/ir/k/homebrew/Cellar/libimobiledevice-flutter/HEAD-398c120_3/lib/libimobiledevice.6.dylib (offset 24)
   time stamp 2 Wed Dec 31 16:00:02 1969
      current version 7.0.0
compatibility version 7.0.0
Load command 13
          cmd LC_LOAD_DYLIB
      cmdsize 80
         name /b/s/w/ir/k/homebrew/opt/openssl/lib/libssl.1.0.0.dylib (offset 24)
   time stamp 2 Wed Dec 31 16:00:02 1969
      current version 1.0.0
compatibility version 1.0.0
Load command 14
          cmd LC_LOAD_DYLIB
      cmdsize 88
         name /b/s/w/ir/k/homebrew/opt/openssl/lib/libcrypto.1.0.0.dylib (offset 24)
   time stamp 2 Wed Dec 31 16:00:02 1969
      current version 1.0.0
compatibility version 1.0.0
Load command 15
          cmd LC_LOAD_DYLIB
      cmdsize 88
         name /b/s/w/ir/k/homebrew/opt/usbmuxd-flutter/lib/libusbmuxd.4.dylib (offset 24)
   time stamp 2 Wed Dec 31 16:00:02 1969
      current version 6.0.0
compatibility version 6.0.0
Load command 16
          cmd LC_LOAD_DYLIB
      cmdsize 88
         name /b/s/w/ir/k/homebrew/opt/libplist-flutter/lib/libplist.3.dylib (offset 24)
   time stamp 2 Wed Dec 31 16:00:02 1969
      current version 5.0.0
compatibility version 5.0.0

So why is it working from git?
Even if that gets fixed...
https://developer.apple.com/library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG207

If an app uses @rpath or an absolute path to link to a dynamic library outside of the app, the app will be rejected by Gatekeeper. This restriction applies to the app’s main executable and any other executable in the bundle, including libraries. This restriction applies even if the path does not exist (and normally causes the dynamic linker to fall back to a library inside the bundle).

absolute path to link to a dynamic library outside of the app

This means that MyApp.app links against /foo/libLibrary.dylib. /foo is not a standard location for libraries on macOS, so the linkage isn’t allowed.

Solutions:

Publish the entire thing as a signed dmg where everything is loaded within the disk image or some bundle.
"Absolute path" seems critical.  Can we make those paths relative? They obviously ain't doin' anything on anyone's real machines now, and the tool is setting DYLD_LIBRARY_PATHs seemingly correctly?

In any case, if you context-click on any binary and open from the menu, you will get an Open button (you don't need to go through System Preferences).

So why is it working from git?

Oh right, quarantine.
https://stackoverflow.com/questions/37791355/gatekeeper-quarantine-issue-with-certificate/37800961#37800961

But not all network download methods will apply the quarantine attribute. For example, copying a file over a file sharing connection (e.g. AFP or SMB) with the Finder will not mark it as being in quarantine. Also, command-line tools like curl and wget won't apply quarantine.

$ xattr ~/Downloads/flutter/bin/cache/artifacts/libimobiledevice/idevice_id
com.apple.quarantine

Here is simplest solution
re enter flutter doctor command in terminal
then go to System preference-> Security & Privacy -> click allow
then re enter flutter doctor command terminal this it ask for open instead to delete
Click open & now you are good to go

Delete /flutter/bin/cache/artifacts directory and run flutter doctor in terminal

The only solution that worked for me was @mdalameen's!
Thank you!
Next time I'll think twice before upgrading my macOS, so infuriating!

Just go to this path: /your_flutter_directory/bin/cache/artifacts then right click on "idevice_id" and choose open, then click on Open, and run flutter doctor in terminal no errors will show and it will work well.

This website will help: https://medium.com/@alexandrosbaramilis/setting-up-flutter-on-macos-catalina-d023df8845ae
Briefly:
For "idevice_id" error:
sudo xattr -d com.apple.quarantine /Users/Your_User/Your_Dev_Folder/flutter/bin/cache/artifacts/libimobiledevice/idevice_id
For "ideviceinfo" error:
sudo xattr -d com.apple.quarantine /Users/Your_User/Your_Dev_Folder/flutter/bin/cache/artifacts/libimobiledevice/ideviceinfo
For "idevicesyslog" error:
sudo xattr -d com.apple.quarantine /Users/Your_User/Your_Dev_Folder/flutter/bin/cache/artifacts/libimobiledevice/idevicesyslog
For "iproxy" error:
sudo xattr -d com.apple.quarantine /Users/Your_User/Your_Dev_Folder/flutter/bin/cache/artifacts/usbmuxd/iproxy

@mdalameen comment worked for me

idevice_id is gone as of https://github.com/flutter/flutter/pull/49854, which is in v1.15.2.  However, this is still an issue for idevicescreenshot and ``idevicesyslog` artifacts.

I also see LUCI paths for iproxy libusbmuxd ideviceinstaller, and other artifacts.

@jmagman once https://github.com/flutter/flutter/pull/50772 lands, we won't have to worry about ideviceinstaller.

@jmagman once #50772 lands, we won't have to worry about ideviceinstaller.

Oh right, I got it and ios-deploy mixed up.  I don't see any LUCI paths in ios-deploy.

@christopherfujino @jmagman What is the work left to do on this issue? Is this related to https://github.com/flutter/flutter/issues/50299 ?

Not sure static linking --disable-shared will work per https://github.com/libimobiledevice/usbmuxd/issues/47#issuecomment-602952316, though it's worth trying.

Refer to this:
https://www.macworld.co.uk/how-to/mac-software/mac-app-unidentified-developer-3669596/#:~:text=Open System Preferences.,developers'%20from%20just%20App%20Store.

This website will help: https://medium.com/@alexandrosbaramilis/setting-up-flutter-on-macos-catalina-d023df8845ae
...

Works for me.

SOLUTION: Go to System Preferences -> Select Security and Privacy -> General under ** Allow apps downloaded from ** change it to ** App Store and identified developers ** then click the lock to make changes, then run flutter doctor it should work.

I was having this issue with multiple executables. I just ran a recursive sudo xattr -d -r com.apple.quarantine PATH/TO/FLUTTER on the flutter directory and the problem went away.

In my case : Go to System Preference -> Security and Privacy -> General , right below the App Store and identified developers will have a same alert message as this topic ('iproxy' cannot be opened because the developer cannot be verified), click on Allow Anyway solved the problem.

I had the same issue.

Run 'flutter upgrade'
Run your project again. The same issue is likely to pop up
In the dialog box, click 'Move to Bin'
Exit your IDE
Run 'flutter doctor'
Open your IDE and run your project

It should just work!

For anyone else running into this, @skbellevue's answer worked without running all the terminal commands mentioned previously (which failed for me anyway cause the paths cited didn't exist). Sounds like the issue is you just need to delete the idevice_id file, which the dialog will do for you if you let it, and then let flutter doctor bring it back signed.

I tried numerous solutions for this and now @mdalameen's solution worked for me.

If you are hitting this on versions 2.0.3 to 2.0.5 then likely you hit https://github.com/flutter/flutter/issues/81326, which has been resolved in 2.0.6.

This fixed it for me on Flutter 2.5.1:
sudo xattr -d com.apple.quarantine /path/to/flutter/bin/cache/artifacts/usbmuxd/iproxy

In my case : Go to System Preference -> Security and Privacy -> General , right below the App Store and identified developers will have a same alert message as this topic ('iproxy' cannot be opened because the developer cannot be verified), click on Allow Anyway solved the problem.

This solved my problem on flutter 2.5.1 Thank you

I think editing the LC_LOAD_DYLIB via install_name_tool would work.  I grabbed the absolute paths from otool -L iproxy and swapped them for paths relative to @loader_path (path to the executable):
install_name_tool -change "/b/s/w/ir/k/homebrew/opt/libplist-flutter/lib/libplist-2.0.3.dylib"<EMAIL_ADDRESS>iproxy
install_name_tool -change "/b/s/w/ir/k/homebrew/Cellar/usbmuxd-flutter/HEAD-c7d7d1a_1/lib/libusbmuxd-2.0.6.dylib"<EMAIL_ADDRESS>iproxy

I tried this locally, and re-codesigned.  I could then run iproxy without the pop up, and without setting DYLD_LIBRARY_PATH.
Something like the above commands, and the same for idevicescreenshot and idevicesyslog, could be run right after InstallHomebrew.
In a run like https://ci.chromium.org/p/flutter/builders/prod/libimobiledevice/18 it would be after 11 installing libimobiledevice-flutter

I don't see a nicer machine output format for otool, so we'll have to regex it.
iproxy
Here's what the iproxy output looks like:
$ otool -L iproxy
iproxy:
	/b/s/w/ir/k/homebrew/Cellar/usbmuxd-flutter/HEAD-c7d7d1a_1/lib/libusbmuxd-2.0.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	/b/s/w/ir/k/homebrew/opt/libplist-flutter/lib/libplist-2.0.3.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1)

install_name_tool -change "/b/s/w/ir/k/homebrew/Cellar/usbmuxd-flutter/HEAD-c7d7d1a_1/lib/libusbmuxd-2.0.6.dylib"<EMAIL_ADDRESS>iproxy
install_name_tool -change "/b/s/w/ir/k/homebrew/opt/libplist-flutter/lib/libplist-2.0.3.dylib"<EMAIL_ADDRESS>iproxy

Regex of path parsed from otool:
\S.*libusbmuxd.*dylib -> @loader_path/../libusbmuxd-2.0.6.dylib
\S.*libplist.*dylib -> @loader_path/../libplist/libplist-2.0.3.dylib
The names of the dylibs are already hardcoded in the recipe: in INSTALL_PKGS.
idevicescreenshot and idevicesyslog
idevicescreenshot and idevicesyslog are the same.
$ otool -L idevicescreenshot
idevicescreenshot:
	/b/s/w/ir/k/homebrew/Cellar/libimobiledevice-flutter/HEAD-2ba8188_3/lib/libimobiledevice-1.0.6.dylib (compatibility version 7.0.0, current version 7.0.0)
<EMAIL_ADDRESS>(compatibility version 1.1.0, current version 1.1.0)
<EMAIL_ADDRESS>(compatibility version 1.1.0, current version 1.1.0)
	/b/s/w/ir/k/homebrew/opt/usbmuxd-flutter/lib/libusbmuxd-2.0.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	/b/s/w/ir/k/homebrew/opt/libplist-flutter/lib/libplist-2.0.3.dylib (compatibility version 7.0.0, current version 7.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.

install_name_tool -change /b/s/w/ir/k/homebrew/Cellar/libimobiledevice-flutter/HEAD-2ba8188_3/lib/libimobiledevice-1.0.6.dylib<EMAIL_ADDRESS>idevicescreenshot
install_name_tool -change<EMAIL_ADDRESS><EMAIL_ADDRESS>idevicescreenshot
install_name_tool -change<EMAIL_ADDRESS><EMAIL_ADDRESS>idevicescreenshot
install_name_tool -change /b/s/w/ir/k/homebrew/opt/usbmuxd-flutter/lib/libusbmuxd-2.0.6.dylib<EMAIL_ADDRESS>idevicescreenshot
install_name_tool -change /b/s/w/ir/k/homebrew/opt/libplist-flutter/lib/libplist-2.0.3.dylib<EMAIL_ADDRESS>idevicescreenshot

\S.*libimobiledevice.*dylib -> @loader_path/../libimobiledevice-1.0.6.dylib
\S.*libssl.*dylib -> @loader_path/../openssl/libssl.1.1.dylib
\S.*libcrypto.*dylib -> @loader_path/../openssl/libcrypto.1.1.dylib
\S.*libusbmuxd.*dylib -> @loader_path/../usbmuxd/libusbmuxd-2.0.6.dylib
\S.*libplist.*dylib -> @loader_path/../libplist/libplist-2.0.3.dylib
libssl.1.1.dylib
libssl also links against libcrypto so it needs to be updated as well:
$ otool -L libssl.1.1.dylib
libssl.1.1.dylib:
	/b/s/w/ir/k/homebrew/opt/openssl-flutter/lib/libssl.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/b/s/w/ir/k/homebrew/Cellar/openssl-flutter/HEAD-e2e09d9/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1)

install_name_tool -change /b/s/w/ir/k/homebrew/Cellar/openssl-flutter/HEAD-e2e09d9/lib/libcrypto.1.1.dylib<EMAIL_ADDRESS>libssl.1.1.dylib

\S.*libcrypto.*dylib -> @loader_path/libcrypto.1.1.dylib

GUI Fix. Go into finder and locate your flutter sdk. Search for the iproxy executable. Right click and choose open. Try building again.

Hey @christopherfujino, wary it's been 2 years since I first opened this issue. Any update?

I have plans to get this finished this quarter. I've been busy though, I would happily review PRs :)

@mdalameen comment worked for me

This is still an issue, I solved it with
sudo xattr -d com.apple.quarantine /YOUR_FLUTTER_PATH/bin/cache/artifacts/usbmuxd/iproxy

Adding team: infra, the install_name_tool change https://github.com/flutter/flutter/issues/42969#issuecomment-933725997 is in in the recipe.

I will not be able to fix this until January because of the infra code freeze (and my being on vacation).
Some notes for my future self:

the ios-usb-dependencies.py recipes needs to be updated to depend on flutter/osx_sdk
in the builder config, the recipe will have to enable the experimental luciexe runner, like: https://cs.opensource.google/flutter/infra/+/main:config/lib/recipes.star;l=17

WIP recipe CL: https://flutter-review.googlesource.com/c/recipes/+/24460

I'm having this with a fresh install with brew install flutter and a fresh install of macOS 12.1 (21C52)

For Flutter 2.10.0
sudo xattr -d com.apple.quarantine /PATH_TO_YOUR_FLUTTER_HOME/bin/cache/artifacts/usbmuxd/iproxy
sudo xattr -d com.apple.quarantine /PATH_TO_YOUR_FLUTTER_HOME/bin/cache/artifacts/libimobiledevice/idevicescreenshot
sudo xattr -d com.apple.quarantine /PATH_TO_YOUR_FLUTTER_HOME/bin/cache/artifacts/libimobiledevice/idevicesyslog
sudo xattr -d com.apple.quarantine /PATH_TO_YOUR_FLUTTER_HOME/bin/cache/artifacts/ios-deploy/ios-deploy

邮件已收到。谢谢！

You can press "cancel" first. Then on your mac open "System Preferences" -> "Security & Privacy" -> in "General tab" click "open anyway" to allow

邮件已收到。谢谢！

I haven't been able to get to this, but I believe it is unblocked now that we've published a new CIPD package for the latest Xcode version.
I have work in progress CL's for:

recipes https://flutter-review.googlesource.com/c/recipes/+/24460
infra https://flutter-review.googlesource.com/c/infra/+/26000

The recipes change depends on the infra change.

tried on the new flutter 3 and still encounter this. need to manually allow it from apple warning dialog (GUI way or system preference way mentioned above).

@christopherfujino @keyonghan can we close this one once the changes for the new artifacts is complete?

Yes, but they have not yet been published.  We still need to roll to a new version, validate, and codesign. I will close when it's done!

邮件已收到。谢谢！

邮件已收到。谢谢！

Even with the LC_LOAD_DYLIB remapped I'm still seeing that the developer cannot be verified.  If anyone wants to try, draft is at https://github.com/flutter/flutter/pull/115052
$ otool -L  ~/Projects/flutter/bin/cache/artifacts/libusbmuxd/iproxy
/Users/m/Projects/flutter/bin/cache/artifacts/libusbmuxd/iproxy:
	@loader_path/../libusbmuxd-2.0.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	@loader_path/../libimobiledevice-glue-1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
	@loader_path/../libplist-2.0.3.dylib (compatibility version 7.0.0, current version 7.0.0)

which looks very similar to the loader paths in the binaries that are working, like idevicescreenshot:
$ otool -L ~/Projects/flutter/bin/cache/artifacts//libimobiledevice/idevicescreenshot
/Users/m/Projects/flutter/bin/cache/artifacts//libimobiledevice/idevicescreenshot:
	@loader_path/../libimobiledevice-1.0.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	@loader_path/../libusbmuxd-2.0.6.dylib (compatibility version 7.0.0, current version 7.0.0)
	@loader_path/../libimobiledevice-glue-1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0)
	@loader_path/../libplist-2.0.3.dylib (compatibility version 7.0.0, current version 7.0.0)
	@loader_path/../libssl.3.dylib (compatibility version 3.0.0, current version 3.0.0)
	@loader_path/../libcrypto.3.dylib (compatibility version 3.0.0, current version 3.0.0)
	/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 1235.0.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1945.0.0)

The logging isn't complaining about the load paths anymore, it seems to be mad about the cert? But the cert looks fine to me, and the other artifacts built with the same cert in that PR are working, and it's notarized...
default	18:48:02.911086-0800	trustd	trustd	policy	com.apple.securityd	cert[0]: MissingIntermediate =(leaf)[force]> 0
default	18:48:02.911154-0800	trustd	trustd	policy	com.apple.securityd	cert[0]: SignatureHashAlgorithms =(path)[]> 0
default	18:48:02.911207-0800	trustd	trustd	policy	com.apple.securityd	cert[0]: OtherTrustValidityPeriod =(path)[]> 0
default	18:48:02.911226-0800	trustd	trustd	policy	com.apple.securityd	cert[0]: NonEmptySubject =(path)[]> 0
default	18:48:02.911334-0800	trustd	trustd	policy	com.apple.securityd	cert[0]: ServerAuthEKU =(path)[]> 0
...
default	18:48:03.674298-0800	syspolicyd	syspolicyd	default	com.apple.syspolicy.exec	GK evaluateScanResult: 1, PST: (path: /Users/m/Projects/flutter/bin/cache/artifacts/libusbmuxd/iproxy), (team: S8QB4VV633), (id: (null)), (bundle_id: (null)), 1, 0, 1, 0, 4, 4, 5
...
default	18:48:03.677757-0800	syspolicyd	syspolicyd	default	com.apple.syspolicy.exec	Prompt shown (8, 0), waiting for response: PST: (path: /Users/m/Projects/flutter/bin/cache/artifacts/libusbmuxd/iproxy), (team: S8QB4VV633), (id: (null)), (bundle_id: (null))

Actually that trustd cert logging is a red herring, my machine is spewing that constantly, unrelated to running iproxy.

Though bin/cache/artifacts/libimobiledevice/idevicesyslog is exhibiting the same GK failure, but idevicescreenshot isn't...

Now when I try idevicescreenshot is too, and it's actually complaining about the relative path being incorrect:
dyld[89533]: Library not loaded<EMAIL_ADDRESS>  Referenced from: '/Users/m/Projects/flutter/bin/cache/artifacts/libimobiledevice/idevicescreenshot'
  Reason: tried: '/Users/m/Projects/flutter/bin/cache/artifacts/libimobiledevice/../libimobiledevice-1.0.6.dylib' (no such file), '/usr/lib/libimobiledevice-1.0.6.dylib' (no such file)
zsh: abort      ./libimobiledevice/idevicescreenshot

maybe I hadn't emptied the stale artifacts from my cache...?

邮件已收到。谢谢！

@jmagman this issue still holds true after all this time.
In my case I can still see this error:
dyld[94147]: Library not loaded: /b/s/w/ir/k/homebrew/Cellar/usbmuxd-flutter/HEAD-c7d7d1a_1/lib/libusbmuxd-2.0.6.dylib
  Referenced from: <6D9DC549-703F-3A3D-8BB8-DD1A59F40A13> /opt/homebrew/Caskroom/flutter/3.0.5/flutter/bin/cache/artifacts/usbmuxd/iproxy
  Reason: tried: '/opt/homebrew/opt/openssl/lib/libusbmuxd-2.0.6.dylib' (no such file), '/libusbmuxd-2.0.6.dylib' (no such file), '/b/s/w/ir/k/homebrew/Cellar/usbmuxd-flutter/HEAD-c7d7d1a_1/lib/libusbmuxd-2.0.6.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/b/s/w/ir/k/homebrew/Cellar/usbmuxd-flutter/HEAD-c7d7d1a_1/lib/libusbmuxd-2.0.6.dylib' (no such file), '/b/s/w/ir/k/homebrew/Cellar/usbmuxd-flutter/HEAD-c7d7d1a_1/lib/libusbmuxd-2.0.6.dylib' (no such file), '/usr/lib/libusbmuxd-2.0.6.dylib' (no such file, not in dyld cache)
[1]    94147 abort

Is there anything experimental to try out to get this working again?


Cli Association Compatibility Tests

This PR implements running the compatibility tests when a user wants to associate a resource to a benchmark, and adds the test results to the association request.
Depends on #80
Closes #111.

Commit 8a96213 fixes symlink error. Closes #111

Commit fa1e85e updates local benchmark cache if not running the tests. Closes #104.


README: fix vim-plug instructions

Description
Double quotes don't seem to work in this context.
Checklist

[x] I've read the CONTRIBUTING guidelines.

Thanks for this!


Systray icon is impossible to make out

Keybase GUI Version: 1.0.18-20170207061119+ce0f90d
With your latest update and change of icon from the weasel head to... I don't even know what it is now, the systray icon has become an impossible to make out black/white blurb on Windows.
(OS: Win 7 x64)

If I may make a suggestion: you should have stuck with what you had previously - it's recognizable.

@cecileboucheron Default background is light on Win7

That'll be fixed in the next couple days. Thanks!

FYI: this is still an issue in Keybase GUI Version: 1.0.18-20170223121400+af0e640
I also noticed the same monochrome icon is visible in the taskbar when the systray pop-up is visible. The main window, when opened, has a proper task icon (although I'm still in the dark as to what it is supposed to represent).


Create GrammaticalCategory interface and its implementations for English and Russian

GrammaticalCategory should be a read-only set of Grammemes. Grammemes from the same grammatical category should not be able to form GrammaticalMeaning.

Grammar should be able to check whether two Grammemes belong to the same GrammaticalCategory or not.


Issue with resolving a external $ref in a relative subfolder.

This is not a suggested fix, just a PR to reproduce a problem I ran into with a minimal example.
I have a ref like $ref: './subfolder/domain.yaml#/components/responses/ErrorResponse
When resolving I get the following error Unable to load RELATIVE ref: ./subfolder/subfolder/domain.yaml
Note the double ./subfolder/subfolder! Where did it come from?

addressed by #1247

Thanks!


Verifying key re-request does not work.

I have been able to reproduce this a few times for a while now.
Steps to reproduce

Have riot web already signed in
Sign in to riot on a new android device
From android, click on "Re-request encryption keys" on an encrypted message sent before signing in on mobile
A popup will open on web asking if you want to verify or share without verification.
Click start verification on web

After this nothing happens on mobile. Clicking send without verification decrypts the message on mobile.

Hi @Qwertie- , in normal usage case, step 3 is not necessary. Riot-Android already requests the encryption key automatically to any other connected client with the same account.
The "re-request" is only useful if you have dismiss the popup on the Riot web client.
That said, at step 5, you have to click on the next popup on 'I verified that the key match'. If it's not working, it's maybe a problem on Riot-Web then. If you clicked on 'Send without verification' and the message is decrypted on Mobile, there is no issue then? Or I misunderstand something, please let me know

Riot does automatically request the key for web but I don't see anything on my phone so I can't confirm that it was my phone that sent the request.

Yes, use has no feedback on automatic request, except on the other clients, and of course when the messages get decrypted.
You can confirm that your phone has sent the request by comparing the device key.
Are you unable to decrypt your messages?

Ah ok. Looks like it's probably working as intended then. Maybe a slight UX issue as I wasn't sure what I was meant to compare with when the key was only shown on one of my devices.

The UX issue is (partially) tracked here: #2487


Bug: for SQL taps, type failsafe to string should also cast the value

https://github.com/MeltanoLabs/tap-postgres/pull/7/files
I know mssql had a PR and I think oracle had it as well

I was alerted yesterday of the failsafe data type string causing a target error.  Here are the links for the issue and slack discussion.
https://github.com/BuzzCutNorman/tap-mssql/issues/8
https://meltano.slack.com/archives/C01TCRBBJD7/p1670312879839659


Add automatic test for taxa predictions

Currently, there's no test file for tax predictions. See this testing file for examples of how to test the package against an expect output: https://github.com/aquaMetrics/rict/blob/master/tests/testthat/test-rict-validate.R

[ ] Locate a copy of the expected taxa prediction output
[ ] Write a test to check output from this package matches the expected output

This is tested!...my mistake


Error on uninstall

anthonys@anthonys-Aspire-S3:/usr/share/themes$ sudo sh -c "curl https://raw.githubusercontent.com/eOS-themes/Xenite/master/setup/uninstall.sh | bash"
[sudo] password for anthonys:
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100  1434  100  1434    0     0   1297      0  0:00:01  0:00:01 --:--:--  1298
Uninstalling dependencies . . .
bash: line 33: syntax error: unexpected end of file

NOTE: Current setup scripts are full of bugs and must be rewritten - hopefully soon. Please consider using the manual way of installing Xenite.  If you want to remove Xenite - just delete /usr/share/themes/Xenite folder and remove @reboot /usr/share/themes/Xenite/setup/update.sh from your crontab (sudo crontab -e)

If I find some spare time, I'll fix the scripts. But until then, the manual method is the "official" and only supported one.


Documentation: gem "haml" needs to be installed.

Expected Behavior
Views are used by Rails.
Actual Behavior
Standards devise vies are used by Rails.
Steps to Reproduce the Problem

Install gem 'devise-bulma-views'
Run generator rails g devise:views:bulma_templates
Run Rails.
Go to URL/users/sign_in

Specifications
devise-bulma-views 0.1.0
rails 6.1.0
ruby 2.7.2
macOS Big Sur
Solution
Install 'haml' gem

yeah, this should be with bold letters on top of the Readme 🙄


Added Travis.yml

Not sure what I'm doing cause the video doesn't show the actual process of writing the tests

Coverage remained the same at 98.889% when pulling f31d4e5913418bd4577a7831beb3d0e8d355efac on Northwood128:tutorial_wip into 4db7b359091eba38109a0703284a5d3bf18fbb55 on keeppythonweird:solutions.


Adding the Alt Attribute to an image

Hi,
I'm currently using the very simple code found here:
http://dimsemenov.com/plugins/magnific-popup/documentation.html#initializing_popup
...to open an image in a pop up.
Looking at the image tag that is automatically generated, it has a class, src, and inline styles... but no alt attribute. What do I need to add to the javascript so that the image tag will have an alt attribute? If I could define the alt text using the title text that appears on the link (that opens the image pop up), that would be ideal.
Any suggestions would be great.
Thanks!

+1 This would be great please.

I would also like to have this functionality for images.
Does anyone have found a solution for this problem yet?


⚠ Bofrost.at has degraded performance

In b44eda1, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2015 ms

Resolved: Bofrost.at performance has improved in 70d03a4 after 6 minutes.


Planets incorrectly textured (even when using customIcon)

I am currently running...
Forge version: 1.10.2-<IP_ADDRESS>1
Java version: jre1.8.0_151
Mods
Heavily modded
AdvancedRocketry-1.10.2-1.2.5a-80
LibVulpes-1.10.2-0.2.8-8-universal
On a server with the below config, I am getting problems with planets being correctly textured. My mars is set to 'earthlike' even though in config it is 'marslike. Jupiter onwards all look the same as Blue gas giant instead of the custom icons I have set. Have I incorrectly coded my config or is the planet texturing bugged? The incorrect textures are both for the planet selector GUI and orbiting planet texture.
Tried editing the planetsdefs in the 'world' folder as well as refreshing from XML but no luck with getting them to change.
Pastebin of planetdefs.xml https://pastebin.com/A2uc2L5Z

I confirm the issue with 1.7.10 build of AR (1.2.5).
The only thing that changes the planet picture and look is pressure and gravity, customicon doesn't change anything. Tested both on server and client. Please note, all my planets have dimmaping added to them (i do make generation with other mod), maybe that could affect it.

Is this still a issue? Please comment if it is and i will reopen if if you are unable? We are closing old issues to see what is still relevant and needs to be fixed.


DNM: New Documentation Outline

Adding this PR to get rendered versions of the docs posted.
Signed-off-by: Tyler Baker<EMAIL_ADDRESS>

seems like a start +1

Docs for a8927e432e1c0ad41527c1a05c7848d846843311 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/436/docs/artifacts/html/index.html

Docs for 3e19627b3781422bb348c5dcb17e5b5c56c783ec are browesable at: https://ci.foundries.io/projects/fio-docs/builds/457/docs/artifacts/html/index.html

Docs for 84c343713994577b353d426bb6ea5fa9c0e34c8e are browesable at: https://ci.foundries.io/projects/fio-docs/builds/458/docs/artifacts/html/index.html

Docs for 7032ded646c41429751fae43abb9e5e773ccb33b are browesable at: https://ci.foundries.io/projects/fio-docs/builds/459/docs/artifacts/html/index.html

Docs for b0fdcf5bcb4cbd9f65d81fe531c547ed69cfd089 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/460/docs/artifacts/html/index.html

Docs for d0b1b790f3fbd4c31bc7e34503074de21c938d9c are browesable at: https://ci.foundries.io/projects/fio-docs/builds/463/docs/artifacts/html/index.html

Docs for d12c04d3fa49b78f06fd32ea66728b6181d1aac8 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/464/docs/artifacts/html/index.html

Docs for f102c982f45dd2516b505c25ad75b59d920c9c5b are browesable at: https://ci.foundries.io/projects/fio-docs/builds/465/docs/artifacts/html/index.html

Docs for ea2941c5530fea494255ae3af0677d2440314a8d are browesable at: https://ci.foundries.io/projects/fio-docs/builds/466/docs/artifacts/html/index.html

Docs for 6ddaf7c3b6f6e0e0a17353da306ce1ac81f0fa71 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/467/docs/artifacts/html/index.html

Docs for d3c539106e04227495001d4d3e640afd26ff90aa are browesable at: https://ci.foundries.io/projects/fio-docs/builds/468/docs/artifacts/html/index.html

Docs for cf9748396e50add5666922421345a1efb54d064c are browesable at: https://ci.foundries.io/projects/fio-docs/builds/469/docs/artifacts/html/index.html

Docs for 10bfba91ba8eea481ea2c406afdcbdf862f051e9 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/470/docs/artifacts/html/index.html

Docs for cbfcf46f64a29dd2c099d09354a3fcebcc8c034f are browesable at: https://ci.foundries.io/projects/fio-docs/builds/471/docs/artifacts/html/index.html

Docs for fb976d406f7562f596e7239fc713c86ce98a419b are browesable at: https://ci.foundries.io/projects/fio-docs/builds/472/docs/artifacts/html/index.html

Docs for 24458dad6aded680aca92f4642090ec7cb35a240 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/473/docs/artifacts/html/index.html

Docs for<PHONE_NUMBER>8a55bd38cf2ed575bdab0c88032ced are browesable at: https://ci.foundries.io/projects/fio-docs/builds/474/docs/artifacts/html/index.html

Docs for 9c70a955a82f76ea2c39bc1e11f5f4472cdba5d2 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/475/docs/artifacts/html/index.html

Docs for 9196a3890a44692aa31fdb27848e82803314dbb4 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/476/docs/artifacts/html/index.html

Docs for 63608277e4dcd9e5d05d955b3f3b61a8bd6bce41 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/478/docs/artifacts/html/index.html

Docs for b8dd52f29eae2aa0e731903f52358f354affccf3 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/482/docs/artifacts/html/index.html

Docs for 2431576d8a18560a8f39eca6ec5bd4d0752a6fd3 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/485/docs/artifacts/html/index.html

Docs for 1249a67aedb0ce7825e5b0d04253ac78f83e42e0 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/488/docs/artifacts/html/index.html

Docs for 6ec4163b583863b12baf8b77708150ef9b4dc877 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/492/docs/artifacts/html/index.html

Docs for 7cef36e74a0f22e6eb392653e623396c9adacfff are browesable at: https://ci.foundries.io/projects/fio-docs/builds/493/docs/artifacts/html/index.html

Docs for 961be73a84012e8bb76afa3c44e742f86d981833 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/494/docs/artifacts/html/index.html

Docs for 677f45f418649fcf6e43dfd4b84ad87162b858ea are browesable at: https://ci.foundries.io/projects/fio-docs/builds/495/docs/artifacts/html/index.html

Docs for a105ac0545c3a1e147b8fdf2fae58f1cbb4324a1 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/497/docs/artifacts/html/index.html

Docs for ce933c07c3ed4f3f387f9560a32422693c743817 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/501/docs/artifacts/html/index.html

Docs for 0b882140888406aedac02e85e33e30784d10f370 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/505/docs/artifacts/html/index.html

Docs for 058162d4c67e7cd07d2d215e763bae241edeb031 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/513/docs/artifacts/html/index.html

Docs for 47ac452efbe40e106f2e0bf65befc336451e7a3e are browesable at: https://ci.foundries.io/projects/fio-docs/builds/526/docs/artifacts/html/index.html

Docs for aa708f8d1ccc46f43b632068b4ccdbfe87f03654 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/532/docs/artifacts/html/index.html

Docs for 431ddbdf8f83d9b9766e6a12bb977e7c6bb89ced are browesable at: https://ci.foundries.io/projects/fio-docs/builds/533/docs/artifacts/html/index.html

Docs for ff64616d449b09a50353703606108a2493e41230 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/534/docs/artifacts/html/index.html

Docs for<PHONE_NUMBER>84a4777329f89db47c753fdd5db607 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/542/docs/artifacts/html/index.html

Docs for 4161831bb92734bab5ca7f263ebc4791417e280f are browesable at: https://ci.foundries.io/projects/fio-docs/builds/543/docs/artifacts/html/index.html

Docs for 71d270d63d2834621a5eaaadc5a04a0804e7e43e are browesable at: https://ci.foundries.io/projects/fio-docs/builds/549/docs/artifacts/html/index.html

Docs for 4ba70e5545079e4f139c53a9f91fb21dd947e57f are browesable at: https://ci.foundries.io/projects/fio-docs/builds/551/docs/artifacts/html/index.html

Docs for 3ad09c4b28d9781c77a688ebc2af014956a70013 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/552/docs/artifacts/html/index.html

Docs for 9af2012211382e9a2dbd7c4aeed2ee88bff270be are browesable at: https://ci.foundries.io/projects/fio-docs/builds/555/docs/artifacts/html/index.html

Docs for 91310d5dd98e1005a8683185239fe681485e81b9 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/556/docs/artifacts/html/index.html

Docs for ac9c17aeeb9a7aa4c2c7d71416bf304ef0204120 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/559/docs/artifacts/html/index.html

Docs for 97cbeaf803089ae58226dce8a86b30ec8c0be356 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/561/docs/artifacts/html/index.html

Docs for c4ab19c22315922f8cd4cf59a97602405fae66bd are browesable at: https://ci.foundries.io/projects/fio-docs/builds/564/docs/artifacts/html/index.html

Docs for 008721a59d178a5fa22804fcf3bb896dd9f628d1 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/569/docs/artifacts/html/index.html

Docs for f49d7de5d88e85d514e2d93c6c18c7c3171d15db are browesable at: https://ci.foundries.io/projects/fio-docs/builds/570/docs/artifacts/html/index.html

Docs for 04cf30b609a950a3b29ef90ff57c4ccb31e563ee are browesable at: https://ci.foundries.io/projects/fio-docs/builds/573/docs/artifacts/html/index.html

Docs for 989e8098cb043f91f578fd6c7f8a8e56138b0ee2 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/575/docs/artifacts/html/index.html

Docs for 2f1b6dd9d0ab4b9db9fd60b10ee7c622d4a35a82 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/578/docs/artifacts/html/index.html

Docs for a2d21a96132e03347dc5540740f2beafe0887a95 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/579/docs/artifacts/html/index.html

Docs for 8f7234bae1c42fdef9c4837cd212a49f06aba54c are browesable at: https://ci.foundries.io/projects/fio-docs/builds/582/docs/artifacts/html/index.html

Docs for cfe23f3e0b5a22a040dc147833dbe165175423e0 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/597/docs/artifacts/html/index.html

Docs for 08835e6c1f8ce1f7a5b0fd7a9dc7b2482cc7f7be are browesable at: https://ci.foundries.io/projects/fio-docs/builds/603/docs/artifacts/html/index.html

Docs for 74ec9f4803b774d8e4223744c51d32cd1216316a are browesable at: https://ci.foundries.io/projects/fio-docs/builds/605/docs/artifacts/html/index.html

Docs for c93dacad961a02e5dd2f36ae5ee5a61b3576e3a0 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/607/docs/artifacts/html/index.html

Docs for b40565fce42a94110cf1e0d0c262838d0aac03dd are browesable at: https://ci.foundries.io/projects/fio-docs/builds/609/docs/artifacts/html/index.html

Docs for a05382db625d9d0ce2f1bfb562c2840de61c7343 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/620/docs/artifacts/html/index.html

Docs for ef593c774e6c27c8beefbc53a295ef881708e0ed are browesable at: https://ci.foundries.io/projects/fio-docs/builds/623/docs/artifacts/html/index.html

Docs for 69d6ebc28fa94c16506ca48d6e51204eac90b9c7 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/624/docs/artifacts/html/index.html

Docs for 82691c77a4c9cb67622b2c1aa58d3eba65d680f1 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/625/docs/artifacts/html/index.html

Docs for f2caf0866868244101f5d7086c993f4981dabf2d are browesable at: https://ci.foundries.io/projects/fio-docs/builds/626/docs/artifacts/html/index.html

Docs for 0cc58b969af28cfc7dd7744e95bf2e0267ee0122 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/627/docs/artifacts/html/index.html

Docs for 6aa8945147024c8aae1a9866818439b2381e2621 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/641/docs/artifacts/html/index.html

Docs for 27547b17f0a558c457deddb2d84996227965f183 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/642/docs/artifacts/html/index.html

Docs for af5ccbf9171b52f3966e1f499cab417534825042 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/643/docs/artifacts/html/index.html

Docs for b17b97bdcb46a15a2c95ed7169e8fb847a9666a6 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/644/docs/artifacts/html/index.html


Add Monday (former Dapulse) integration

Hi,
I would like to have a toggl button with my dapulse account.
Tnx

Thank you for the suggestion. We currently are not developing new integrations ourselves. We do however accept pull requests. Check out this guide on how to create an integration: https://github.com/toggl/toggl-button/wiki/Adding-new-integrations

@dooart Since Dapulse is now Monday, can/should we change the title and scope of the integration request?

User asking about potentially integrating Toggl with their current Monday-based workflow

@TheSoloJake renamed the issue :)
but unless we start getting a lot more requests, we'll still wait until someone submits the integration

Monday.com is definitely growing in popularity. My team has recently moved over from Trello and I'm definitely missing my toggl button...
(Clockify has one already... https://clockify.me/monday-time-tracking)