How to read "calc" from websocket

import time
from btfxwss import BtfxWss
wss = BtfxWss(key=KEY, secret=SECRET)
wss.start()
time.sleep(2)
wss.authenticate()
wss.calc([{
    "symbol": 'BTCUSD',
    "dir": 1,
    "rate": 800,
    "type": 'EXCHANGE'
}])

Afterwards, nothing happens. I believe I have to react to some kind of event from the websocket to get the calc, but I do not know how to find it? The only clue is "calc" but does not appear anywhere else in the code base. What am I missing?

Hey @kootenpv,
thanks for contributing!
In the current stable version on pypi, this isn't correctly implemented - there ought to be a queue for this, which you can get() from. In the current dev release we've merged all account mesages into a single queue - this includes responses from calls to calc().
So either wait for the next release, or install the dev version via pip install --pre btfxwss. Beware though, the interface is not backwards compatible.

Thanks! So I did, and it still took me some time to figure out, but with the new version I did this:
import time
from btfxwss import BtfxWss
wss = BtfxWss(key=KEY, secret=SECRET)
wss.start()
time.sleep(2)
wss.authenticate()
wss.calc([{
    "symbol": "tXRPBTC",
    "dir": 1,
    "rate": 0.00005146,
    "type": 'EXCHANGE'
}])
wss.account().get()

I get as result:
(['n',
  [1513292918661,
   'calc-req',
   None,
   None,
   None,
   None,
   'ERROR',
   {'error': 'format: invalid'}]],
<PHONE_NUMBER>.7202454)

What is going wrong?

Have a look at the docs:
https://bitfinex.readme.io/v2/reference#ws-input-calc

I've also tried:
wss.calc(  [
["margin_sym_tBTCUSD"],
["position_tBTCUSD"],
["wallet_margin_BTC"],
["wallet_funding_USD"]
])
but that doesn't work. Could you please try it yourself? Let me know if you find some code that works to get any kind of calculation done succesfully (make sure you empty the queue, use your calc, and do a wss.account().get()), I believe this is a bug.

Since the error message is returned by Bitfinex, you should submit a ticket with them.

Finally I got something that works:
wss.calc(*[
    ["wallet_exchange_NEO"]
  ])

So to get concrete, I would like to calculate how much I could buy at a certain price in my exchange wallet (https://docs.bitfinex.com/v2/reference#rest-auth-calc-bal-avail). How can I do this :)?

In the end I would just like to do either a limit or market new order with the maximum possible amount. How could that be done using btfxwss?

Oh. Well in that case you're using the wrong method!
BtfxWss.new_order() if what you want to use.

@nlsdfnbch The problem is that for that method I need to calculate an amount (which is based on getting your account balance + the current price + however much bitfinex takes = you need to use "calc available" is what I understand? I don't see how in new_order I can do "buy as much as you can at price X"

@kootenpv , Sorry, I can't help you with that. However, using the REST API to query the amount available via the method you mentioned and then submitting an order appears to be the way to go.


[stable/newrelic-infrastructure] Update newrelic-infrastructure image version to 1.17.0

Signed-off-by: Alejandro Do Nascimento<EMAIL_ADDRESS>
Is this a new chart

NOTE: We're experiencing a high volume of PRs to this repo and reviews will be delayed. Please host your own chart repository and submit your repository to the Helm Hub instead of this repo to make them discoverable to the community. Here is how to submit new chart repositories to the Helm Hub.

What this PR does / why we need it:
Updates the container image to 1.17.0
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x ] DCO signed
[x ] Chart Version bumped
[ x] Variables are documented in the README.md
[x ] Title of the PR starts with chart name (e.g. [stable/mychartname])

/ok-to-test
/lgtm


[Issue 6822][C++] Fix segmentation fault if handleSendTimeout() is called after closeAsync()

Fixes #6822
Motivation
The program may cause segmentation fault after closed accidentally because  ProducerImpl::handleSendTimeout() doesn't check the state or other fields of ProducerImpl, which may cause that a null sendTimer_ calls its methods.
Modifications

Acquire mutex_ and check if the state_ is Ready before handling the send timer callback;

Devide failPendingMessages() into two parts which are getPendingCallbacksWhenFailedWithLock() and PendingCallbacks::complete().

The 1st part needs to acquire mutex_ to access class members safely. In addition, we already hold mutex_ before failPendingMessages(), so we need a method to get necessary callbacks without the lock.
The 2nd part doesn't and shouldn't acquire mutex_, because we don't know how long user provided callbacks may cost. If lock this part, mutex_ may be hold for a long time.

Define a new struct contains a BatchMessageContainer::MessageContainerListPtr field, because nested classes can't be forward declared.

Verifying this change

[ ] Make sure that the change passes the CI checks.

This change can be verified as follows:

Try to reproduce the error as #6822;
From the log you can see no callbacks called after closeAsync() and the program exited normally.

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

@jiazhai Can you review this pull request?


Reading partitioned datasets using RecordBatchFileReader into R

I have a parquet dataset (which originally came from Hive) stored locally in the directory data/. It has 4 files in it
data/foo1
data/foo2
data/foo3
data/foo4

Using pyarrow I can read them via
pq.read_table("data/foo1").to_pandas()
I am trying to read them into R using read_table("data/foo1"), but I receive this error.
 Error in ipc___RecordBatchFileReader__Open(file) :
  Invalid: Not an Arrow file

From debugging, I've traced it to this line https://github.com/apache/arrow/blob/d54a154263e1dba5515ebe1a8423a676a01e3951/r/R/RecordBatchReader.R#L112, which then goes to this Rcpp code https://github.com/apache/arrow/blob/d54a154263e1dba5515ebe1a8423a676a01e3951/r/src/recordbatchreader.cpp#L85. It seems that this c++ function is expecting a single "file like object"; I wonder if the failure is because my data is split into 4 pieces, and the end of the file interface is likely in foo4
If I pass the whole directory using read_table("data/") I will get
Error in ipc___RecordBatchFileReader__Open(file) :
  IOError: Error reading bytes from file: Is a directory

Is reading a partitioned dataset into R not yet implemented?
If I write a single file from R, I can read it back in like this example
tbl <- tibble::tibble(
  int = 1:10, dbl = as.numeric(1:10),
  lgl = sample(c(TRUE, FALSE, NA), 10, replace = TRUE),
  chr = letters[1:10]
)
tab <- arrow::table(tbl)

tf <- local_tempfile()
write_arrow(tab, tf)
read_table(tf) %>% as.tibble

I cannot post the original dataset online, and I don't know what aspect of my data causes the code to break, so I don't quite know how to post a reproducible example. Tips on how to generate a partitioned dataset would be great

Will do, thanks

Bumping this thread -- I might have missed it but can you open an issue? Thanks!

cc @romainfrancois -- can you look into this?


guerrillamail defaults to different domain name

Workflow version
2023.4
Alfred version
5.1.4
macOS version
13.5.1
Debugger output
-

More details
I've set the email service to guerrillamail. When I use the workflow, an email address with guerrillamail.com gets added to my clipboard, but the opened browser tab is defaulted on another domain (most of the time it's sharklasers.com), so I never receive the email. Example:
What the workflow generated and added to my clipboard:

What it should be and what the web page is waiting for an email for:

I can change the domain to guerrillamail.com on the webpage manually before entering the email on the form I'm attempting to use, but I'd assume this is not how it should work. I understand that this is probably due to a change on guerrillamail.

Thank you for the detailed and understanding report. I can reproduce. I may be missing something but with a quick test I didn’t find a simple obvious fix to keep that domain, so I removed Guerrilla Mail in favour of Shark Lasers since that’ll effectively be the same.
If anyone has a solution which works to force the domain, I’m open to adding it to the workflow.
Just released 2024.1 with the change.


⚠ Bofrost.lu has degraded performance

In 44cc1c8, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 3232 ms

Resolved: Bofrost.lu performance has improved in 22fd33a after 21 minutes.


Explicitly state 'X' button returns undefined.

Clicking the 'X' button returns undefined whilst the Cancel button returns the boolean false.
It would be helpful if this was explicitly stated in the docs rather than having to use guesswork/debugging to discover that.
Open to suggestions about exact wording.

@adrianorth
The change to the successCallback parameter for the openConfirmDialog (Client API reference) seems to make sense.
OLD:

A function to execute when the confirmation dialog is closed by clicking the confirm, cancel, or X in the top-right corner of the dialog. An object with the confirmed (Boolean) attribute is passed that indicates whether the confirm button was clicked to close the dialog.

PROPOSED:

A function to execute when the confirmation dialog is closed by clicking the confirm, cancel, or X in the top-right corner of the dialog. An object with the confirmed (Boolean) attribute is passed that indicates whether the confirm button (true), cancel button (false) or X button (undefined) was clicked to close the dialog.

Need confirmation that this accurately describes the behavior.

Docs Build status updates of commit 1c81466:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

powerapps-docs/developer/model-driven-apps/clientapi/reference/Xrm-Navigation/openConfirmDialog.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


SWARM-1654: Terminate on deployment errors that happen before swarm.s…

SWARM-1654: Terminate on deployment errors that happen before swarm.server is initialized.
Motivation
When certain deployment errors are thrown, the server is stuck in an inconsistent state but the JVM does not terminate.
Modifications
Changed Swarm.main to call System.exit() after deployment errors even if swarm.server is null.
Result
JVM terminates after deployment errors that happen before swarm.server is initialized.

[x] Have you followed the guidelines in our Contributing document?
[x] Have you created a JIRA and used it in the commit message?
[x] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[x] Have you built the project locally prior to submission with mvn clean install?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Okay to test


GH-2853: Make custom arguments case insensitive

Closes #2853

@patriksvensson your changes have been merged, thanks for your contribution 👍


Disallow modchat wars in battles

The second check in commands isn't optimal, but I wanted players to be able to set modchat if their opponent turns it off, and I couldn't see a way of doing that without a whole other function.

Also, blocking people from turning off modchat will just turn modchat wars into roomvoice wars. This doesn't sound like the best solution.

Roomvoice wars are at least less common than modchat wars.

 You can't ignore something like http://i.imgur.com/btCFQas.png.

@Zarel Is this OK, or should I be adding some other limit to prevent roomvoice wars as well?


apache-httpd-status3: Host is stuck in "Waiting for more data (4)"

Describe the bug
Host is stuck showing Waiting for more data (4).. Nothing happens, even if .db file is deleted.
To Reproduce
001, mvc01

duplicate of #606


epg - filter

hurried, selection by sattelite showing but actually deamon still make "search and parse" from whole (ALL) channels,
instead from just selected channels list.
could you look at this please

Hi,
It's not entirely clear what you mean.

please look at issue #148 (now closed)

Still, I don't quite understand what's wrong.:(

when choose "auto" demon should search only from list (etc Astra 19.2) ...instead from all satellites
..he parsing epg from other satellite and not from filter

Changed! There is still room for this feature improvement, but significant changes are required.

ok
if using XML file

table are not completed; lost of details missing

of course "filters" not work ( when reading from xml file)

if using XML file

This is logical. We do not have a "position" parameter. Theoretically, you can use the value from "namespace", but I'm not sure if this makes any practical sense. Usually these files are not used for all satellite positions, but for certain ones.

Rytec source have lot (maybe ALL) of satellite referencies for Europe
http://www.xmltvepg.nl/rytec.channels.xml-sat.xz
its looks like:
<!-- 0.8W --><channel id="NASAUHD.us">1:0:1F:68:C:A:E080000:0:0:0:</channel><!-- NASA UHD -->
if demon will filtering xml list  - showing them by sat/channelID/Channel - will be great option  (meaning easy to do) for parsing epg
just imagine: you have list m3u (somewhere from net) where are more channes (100+) etc you like Portugals
1 - rytec provided - sat referencies + epg
2 -demon will parse iptv bouquet with rytec reference (downloaded from url) or any ITV provider reference list
3 - stb enigma2 will download epg throught epgimport
.Finally = IPTV Bouquet with EPG!
sound is good ; OR?

OK. I don’t see any big problems with the implementation of displaying satellite positions for the XML source. But...
Not all files have this:

-- 0.8W --

Therefore, the main option, as I wrote above, is the "namespace". Anyway, I'll see what I can do. :)

maybe by "channel ID"   (nassauhd.us ; 3sat.de; tfx.fr...)
one channel could be on (3-5) sat. possition - so i thing filter by ID will be better option maybe?
3sat.de EPG must be same for all sattelite possition in think

also iptv provider xml-list have.. ID Channel  ...reference....channel name
some iptv provider using "Channel ID" like number (257) , but third column have actual channel name where will by parsing that reference.

Unfortunately there is no standard here. Everyone can invent their own bicycle and write as they please.:) While we need to stop at the position, and then we need to look.

agree with you...please make vissiblle FULL ID Channel name  - includind punctuations marks  ( . - / _ )
"NASAUHD.us" and not just "NASAUHD"

please make vissiblle FULL ID Channel name

You should not confuse the channel ID with its name. Anything can be used as an ID. E.g. number, reference, etc. The fact that the ID almost matches the channel's display name is just a special case!

Perhaps, if an XML source is used, it is better to display a separate column with id... Сurrently the 'id' attribute is ignored as unnecessary!

I think this is the best option.
100% .. im with you

great ...waiting for new beta realease

update 3.4.0
1 - filter by sat. possition workin - great
2 - seaching service by name working but- missing full channel name (including ".de" or ".hr")...eurosport.de ; eurosport.hr...

3 - parsing Reference from .xml ro iptv channel not working :(
all channels from .xml file will always use same same reference number (
4097_0_1_1_1_1_D7A312D_0_0_0`

from "xml ID" file.....have same channel like channels Eurosport  diferent EPG for 3 country please see pictur

missing full channel name (including ".de" or ".hr")

This is not a full name! Please read my previous answer. The channel name is the one on the right side of your screenshot.

have same channel like channels Eurosport diferent EPG for 3 country please see picture

Sorry, but this question is not for me, but for the source.

3 - parsing Reference from .xml ro iptv channel not working :(
all channels from .xml file will always use same same reference number

Please provide a link to the file, I'll check.

please see link
http://www.xmltvepg.nl/rytec.channels.xml.xz
and not possible to get both side channels name+channel ID  info to vissible in demon? pleasde

get both side channels name+channel ID info to vissible in demon

Please read my answer.

Perhaps, if an XML source is used, it is better to display a separate column with id

I think as an option to display a tooltip.

I made a tooltip:

http://www.xmltvepg.nl/rytec.channels.xml.xz

Tested on several channels. You can specify which channels can not assigned?

open any IPTV bouquet.tv
then parsing first one nasauhd to any iptv channel
then save and open saving bouquet list and that channels will have THAT reference number

I made a tooltip:
super !

please see pictures
before parsing

parsing

and after parsing

then parsing first one nasauhd to any iptv channel

Hm. In this version, I added a channel type assignment (as for the main list). The problem seems to be this (1F value, UHD channels).

it only exapless ...this happens with any reference from xml file parsing to any iptv channel
also if IPTV channel have basic reference 4097:0:1:0:0:0:0:0:0:0  still same result like you see on last picture No3

"1F" - meaning channel is UHD : ) i think you know it

Found. The reason isn't the type. It was tooltip. He "broke" everything, or rather my inattention. :)

hope you will kept "tooltip" is very usefull

could you new realease beta for more test, please

As soon as I have free time. Maybe tomorrow or later. While I was looking for a problem with refs assigning, I noticed one more nuance in one other feature. Need to check.

ok dont worry
regarding "filter-searching" channel by name
could you do something with ..some IPTV channel have in the front channel name "BG" and also behind name (TV; HD; FHD; 1080...) like on picture
idea when start searching Channel name from IPTV " [BG] DIEMA TV HD" - demon not find any, need manually update name to "DIEMA" and then will showing lots channels
please see picture. hope you know what i meaning

demon not find any, need manually update name to "DIEMA"

What is the criterion? What symbols? And why exactly these? What separator to use? And most importantly. Filtration speed after that. No it's a bad idea.
Perhaps you need a filter like the filter on the picons tab. you are looking for several words at once through the symbol '|'. Or add channel id to filtering:

BUT again it doesn't solve what you want.

have idea - why not make turn /switch searching table? search from source to m3u list?
Could demon have that kind of switch?

Sorry... Describe in more detail.

EPG configuration
have two tables
left EPG Source ; and right bouquet (in our case IPTV-bouquet) like on picture

on Right table (iptv bouquet Channels have name Bollywood classic (EU) )

activate "AUTO"

click on channels name "bollywood classic (EU) = nothing show onb left table (EPG Source)
you said :
`
demon not find any, need manually update name to "DIEMA"

What is the criterion? What symbols? And why exactly these? What separator to use? And most importantly. Filtration speed after that. No it's a bad idea.`
idea make just "SWICH" (where get search from); not from IPTV Bouquet (right table) but from EPG source (left table)
using filter; choose sat. possition

and there click (epg source list) channel name "Bollywood" and on the right table (IPTV Bouquet) will showing all "Bollywood" channels including all symbols "HD; (EU), PT, FHD...  and what ever this channel name have it)
after just making parse EPG (parse  references) like this function have now
hope you know what i mean

Like understood. You want change the filter field on click not  from the bouquet only but  from the source (if auto is enabled) list also. I don't see any problems. I think, no additional switches is needed.  We  have an "Auto" switch already.

 Možno to bude pre používateľov jasnejšie
ok like you said

Perhaps it will be more obvious to users
ok like you said

It was some time to experiment...

I think it's completely useless and inconvenient. Each time you need to select a new channel, you need to clear the input field. At the moment I see no reason to add anything else here! Coming up with additional logic for clearing a field is just confusing the user.

After various variations, I came to the conclusion that the option described above would be more confusing for the user. Since after filtering in the first window, it may be necessary to make a new selection by name. In general, I think it should be left as is.
Perhaps in the future, if the feature is really in demand, it will be possible to think through other options. At the moment we're closing...


Clarify estimations for intagibles

Benefits on making better choice with food: I think we will always face the questions with the audience like what does it mean? what could be the proxy for such estimation?

Added some for child veg access #35

Added more and done


[FEAT EXTRACTION]

Hello, I´m working with DICOM ultrasound images, and I need to calculate texture features from this images. Before that, I apply some filters based on wavelets, so the final image is a numpy.ndarray type. I want to know if is possible use the FeatureExtractor in this numpy.ndarray and if is necessry to use a mask.
Thanks!

you need a mask. please read the IBSI document on what radiomics are.
in terms of input format I think the image needs to be an SITK object or a supported file format.

@lauravaldes98, how do you apply wavelets? If you are using pywavelets, you can also use it's implementation in PyRadiomics, via the waverley filter. Single DICOM images are readable by SimpleITK, though you need to convert to e.g. nrrd if you have a stack of DICOMs forming a 3D volume.

Hello, I Finally could apply the feature extraction using the FeatureExtractor, now i´m trying to prove some wavelets filters, but i'm having some troubles.
This is the part of the code where I calculate the wavelets coeficients in the image and the mask
extractor = featureextractor.RadiomicsFeatureExtractor(**settings)
imagetype_dic = {'Original': None,
'Wavelet':{'wavelet':['db1']},
'LoG': None,
'Square': None,
'SquareRoot': None,
'Logarithm': None,
'Exponential': None,
'Gradient': None,
'LBP3D': None}
for imagetype in imagetype_dic:
extractor.enableImageTypeByName(imagetype, customArgs=imagetype_dic[imagetype])
results_dic = extractor.execute(image, mask)
and I'm having this error:
850   for i in range(0, start_level):  # if start_level = 0 (default) this for loop never gets executed
pywt_extensions_pywt.pyx in pywt._extensions._pywt.Wavelet.cinit()
AttributeError: 'list' object has no attribute 'lower'
I try to change start_level and level atributes in the Wavelet but it doesn't work. Thank you so much for your help

It has nothing to do with start_level. It's in your custom settings, as you can only define 1 wavelet type, not a list of types.
extractor = featureextractor.RadiomicsFeatureExtractor(**settings)
imagetype_dic = {'Original': None,
'Wavelet':{'wavelet':['db1']},  # This is your error, it should read 'Wavelet':{'wavelet':'db1'}
'LoG': None,
'Square': None,
'SquareRoot': None,
'Logarithm': None,
'Exponential': None,
'Gradient': None,
'LBP3D': None}
for imagetype in imagetype_dic:
extractor.enableImageTypeByName(imagetype, customArgs=imagetype_dic[imagetype])
results_dic = extractor.execute(image, mask)


Use the correct prefix for IDs in the GAF "with" column

In this case "PomBase:Q9H9V9" should be "UniProtKB:Q9H9V9" (or some such):
PomBase:SPAC25H1.02             RO:0002331      GO:0002184      GO_REF:0000050  ECO:0000266     PomBase:Q9H9V9          2007-05-31      PomBase
PomBase:SPAC25H1.02             RO:0002327      GO:0106156      GO_REF:0000050  ECO:0000266     PomBase:Q9H9V9          2007-05-31      PomBase

We should check for other cases like cerevisiae/SGD genes.

This is because I missed a prefix in the legacy file.
Maybe we could   report if anything has no prefix as an error.
Not sure urgent any longer though.

This is because I missed a prefix in the legacy file.
Maybe we could report if anything has no prefix as an error.

Ah!  Yes, that will be it.  Yes, there should be an warning about it.

I just checked and I can't see any other  non-PomBAse Ids with a PomBase prefix

Thanks.  I'll close this.

I just checked and I can't see any other non-PomBAse Ids with a PomBase prefix

I've queried Chado and Q9H9V9 was the only ID without a prefix.
I've checked the legacy contig loading code and that did check for prefixes.  It's the GAF loading code that needs fixing.


tests/integration/instance_dao_test.go has many undefined references

go test github.com/github/orchestrator/tests/integration
# github.com/github/orchestrator/tests/integration
tests/integration/instance_dao_test.go:39:17: undefined: InstanceKey
tests/integration/instance_dao_test.go:43:17: undefined: InstanceKey
tests/integration/instance_dao_test.go:47:17: undefined: InstanceKey
tests/integration/instance_dao_test.go:51:17: undefined: InstanceKey
tests/integration/instance_dao_test.go:76:2: undefined: ExecInstance
tests/integration/instance_dao_test.go:77:2: undefined: ExecInstance
tests/integration/instance_dao_test.go:78:2: undefined: ExecInstance
tests/integration/instance_dao_test.go:87:10: undefined: ReadTopologyInstance
tests/integration/instance_dao_test.go:97:10: undefined: ReadTopologyInstance
tests/integration/instance_dao_test.go:104:10: undefined: ReadTopologyInstance
tests/integration/instance_dao_test.go:104:10: too many errors
FAIL    github.com/github/orchestrator/tests/integration [build failed]

I'm new to go, and would welcome trying to fix this on my own, but I'm a bit stumped. The missing references are all part of the inst package, to which this file is a part of. Is the problem that it is not in the go/inst directory? But there is already a test file with the same name in that directory...maybe this one is no longer needed?

Ah yes, thank you for pointing this out. This test is not currently in use. I moved the file with intentions to redesign the tests, and never made it. Wow, it's been two years.
Let me take another look at it.

@bbuchalter I'm guessing you closed this due to inactivity on my side. I'm sorry for the long stall, to be honest this got buried under multiple other things. I'd still like to work on this.


fix: A referenced default package must be a plugin package

Replace this paragraph with a description of what this PR is changing or adding, and why. Consider including before/after screenshots.
Clarify that a referenced default package must also be a plugin package (one, which provides a pluginClass or a dartPluginClass).
List which issues are fixed by this PR. You must list at least one issue. An issue is not required if the PR fixes something trivial like a typo.
Addresses #152037 (but does not close it (?))
More precisely https://github.com/flutter/flutter/issues/152037#issuecomment-2239909463.
If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.
Pre-launch Checklist

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I signed the CLA.
[x] I listed at least one issue that this PR fixes in the description above.
[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making, or this PR is test-exempt.
[x] I followed the breaking change policy and added Data Driven Fixes where supported.
[x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Open for review @stuartmorgan


Makes sure 'download as zip' doesn't button appear when there are no files.

 Purpose
Makes sure 'download as zip' doesn't button appear when there are no files. Closes #3018.
 Changes
Just adds condition to make sure OSF storage isn't empty.
 Side effects
None that I know of.

@sloria this is good to go.


NoMethodError - undefined method authenticate_admin!

I have a very strange error pop up from time to time. I'll get this when I try to go to /oauth/applications:
NoMethodError (undefined method `authenticate_admin!' for #<Doorkeeper::ApplicationsController:0x007f8f359b3b80>):

And when I restart webrick it will go away. In the same vain it will sometimes redirect me for no apparent reason to the login page (as per the config). The token has not been revoked or expired.
Started GET "/api/v1/purchases.json" for <IP_ADDRESS> at 2012-02-07 10:50:00 +0000
  Processing by PurchasesController#index as JSON
Redirected to http://localhost:3000/login
Completed 302 Found in 11ms

My configuration is as follow:
Doorkeeper.configure do
  resource_owner_authenticator do |routes|
    current_user || redirect_to(routes.sign_in_path, :alert => t('needs_to_sign_in'))
  end

  admin_authenticator do |routes|
    current_admin || redirect_to(routes.root_path)
  end

  access_token_expires_in 12.hours
  use_refresh_token
end

I don't even know where to begin to try and debug this. Any ideas?

HI,
We will try to reproduce this bug and will try to fix it somehow. It really looks strange that it happens only from time to time.
If you would narrow the occurence down to some particular scenario then it would be really helpful.
Also, does it happen in development or production?

Yes, I'm scratching my head quite hard on this one. It seems that this really only happens in the morning when I start the Rails server for the first time after my laptop has been sleeping. I'll restart it maybe 2-3 times during the day and it will never happen, it's just that first time.
That is completely non-sensical though and I think it's just confirmation bias on my part. I have a sneaking suspicion it might have something to do with ActiveReload but I'll have to test it more thoroughly. Tomorrow I'll try to see if I can reproduce it at will. If I can reproduce it I'll let you know my setup and you can see if you can reproduce it as well.
Yeah, it's in development. I have a staging server (that's set to production mode at the moment) that hasn't exhibited this yet.

Which Rails version are you using?

Rails 3.1.1.
I removed the ActiveReload gem and haven't had this happen since. I'm not 100% sure that was the problem though, since I couldn't reproduce it reliably. If you can't reproduce this feel free to close the issue.

Ok, please reopen if you run into this issue again. We'll try to investigate it as well. Thanks

Ok, thank you!


Clarify purpose of domain validation DNS records (A and TXT)

Hello,
On DNS record for domain validation, can you precise the purpose of the 2 record, the A and the TXT ?
Here they are presented as a requirement :

Later it CNAME is not required

My understanding / proposal :

CNAME record : mainly, traffic routing. It can be used for custom domain validation, only if the app service is the target. In case of an app gateway, WAF, or other front-end layer before the app service, target the appropriate asset.
TXT record : validate the custom domain. For security, this record must remain after validation, to prevent subdomain takeover with dangling DNS entry (as per https://learn.microsoft.com/en-us/azure/security/fundamentals/subdomain-takeover). Additionally, during an application migration, the TXT record allows custom domain verification before traffic failover.

Best practice :

use the TXT record to validate the domain, and maintain it registered in DNS zone for all the lifecycle of the application. Delete it only if the CNAME record is deleted.
use the CNAME record to route trafic to your app service, or other front-end layer.

What do you think ?
Jean-Philippe

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

ID: 224b73dd-c59d-a833-0d4d-a778af6086a9
Version Independent ID: c6b167c9-9589-45d0-ee6a-7a47a4aec41e
Content: Map existing custom DNS name - Azure App Service
Content Source: articles/app-service/app-service-web-tutorial-custom-domain.md
Service: app-service
GitHub Login: @msangapu-msft
Microsoft Alias: msangapu

Thanks for the feedback! We are currently investigating and will update you shortly.

@jephlu I see where the confusion came in @jephlu. You are correct in your first bullet, however, you don't believe you need to delete it if the CNAME is deleted. You will need to delete/update it when certificate renewal takes place. Both the A record and CNAME will route traffic, but it's recommended to use a CNAME as the inbound IP address could change due to infrastructure changes.
Nonetheless, I've assigned this issue to the content author for further review.

Sorry, I mistaken A / CNAME records. My issue is not totally clear.
Completely agree that CNAME is the best option to route traffic.
A record can be used to route also (but was not the point of my issue at all as my point is about custom domain validation).
I just want to make clear that :

CNAME or TXT work fine to validate a custom domain, independently,
CNAME also impacts app trafic,
TXT does not impact the trafic, and improve security.

I have a customer that said to me that both are needed together (because it is marked in the doc and the azure portal, it is interpreted as a and)
I demonstrated him that the process of custom domain validation works fine with the TXT record only, but he stays confident in the doc.
Last point, for the deletion of the TXT record. It can be done safely when the  CNAME record is deleted, because the TXT protects it from being overtaken on another subscription by a rogue app service (in case the original app service was destroyed but not the CNAME)
Thanks!

We've added this to our backlog to review and update as needed. #please-close


Add heapSizePipe

Laurens,
To include this pipe in the framework, please make sure it is compliant to the standards:

include the proper copyright
add javadoc explaining its purpose
add unit tests to prove its correct operation, (to enable later framework modifications)

Laurens,
To include this pipe in the framework, please make sure it is compliant to the standards:

include the proper copyright
add javadoc explaining its purpose
add unit tests to prove its correct operation, (to enable later framework modifications)

Added copyright, javadoc and an unit test.

The IbisMetricsPipe (rename of HeapSizePipe) has been added to IAF-TEST


Update dependencies

fs2 to 2.1.0
log4cats to 1.0.1
jwt to 3.8.3
jsoniter-scala to 2.0.1
google-cloud-pubsub to 1.100.0

If you don't mind that'd be great, thanks!


cannot uninstall chainer 1.14.0

installed chainer on Ubuntu 14.04 using
pip install chainer
and after that I would like to uninstall chainer, when typing
pip uninstall chainer
it shows
"Can't uninstall 'chainer'. No files were found to uninstall."
however, when i do
pip show chainer
it shows
"---
Name: chainer
Version: 1.14.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: filelock, nose, numpy, protobuf, six"
Any idea?

I sometimes faced the same problem. I always remove the directory under dist-packages though I'm not familiar with pip.
I found the same prolem in stackoverflow:
http://stackoverflow.com/questions/13136060/why-cant-pip-uninstall-pysqlite
Maybe it is problem of pip and package manager.

Is this problem solved?

same error as chainer 1.18.0

pi@DEEPMIND:~$ pip show chainer
"---
Name: chainer
Version: 1.18.0
Location: /usr/local/lib/python2.7/dist-packages
Requires: filelock, nose, numpy, protobuf, six"
pi@DEEPMIND:~$ sudo pip uninstall chainer
Can't uninstall 'chainer'. No files were found to uninstall

@mindcont Can you find chainer in /usr/local/lib/python2.7/dist-packages?
I'll close this issue. If you have the problem, please reopen this issue @cvDreamer


Generic/LowerCaseType: bug fix in intersection type ignore code

Description
PR squizlabs/PHP_CodeSniffer#3581 introduced support for PHP 8.1 intersection types. _Note: the sniff, or PHPCS itself for that matter, currently does not (yet) support PHP 8.2 DNF types. Once support for DNF types has been added, this sniff will need a further update/fix.
For now, for the purpose of this sniff, intersection types should be skipped as they cannot contain the simple types for which the case is being checked by this sniff.
However, the check for whether a type is an intersection type or not was wrong. The '*type_token' key for each of these checks contains the stack pointer to the first token in the type declaration, so the comparison with T_TYPE_INTERSECTION will always yield false.
This did not lead to false positives due to how the type is handled after that, but is still a bug which should be fixed.
Suggested changelog entry
N/A (as the bug didn't lead to false positives)
Types of changes

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

Rebased without changes. Merging once the build passes.


[FEATURE REQ] Possibility to add network rule when creating container registries

It is possible to add network rules when creating storage accounts like so:
    azureResourceManager.storageAccounts()
        .define(...)
       ...
        .withAccessFromIpAddress(...)
        .withAccessFromNetworkSubnet(...)
        .create();

These  with* methods doesn't exists when creating container registries like so:
   azureResourceManager.containerRegistries()
        .define(...)
       ...
        .create();

So how can I add such a network rule on container registries? Using the CLI, this could be done:
az acr network-rule add ... --ip-address ...
az acr network-rule add ... --subnet

Used dependency:
    <dependency>
      <groupId>com.azure.resourcemanager</groupId>
      <artifactId>azure-resourcemanager</artifactId>
      <version>2.26.0</version>
    </dependency>

@XiaofeiCao Please take a look and schedule.

subnet settings has been removed from NetworkRuleSet since api-version 2021-09-01:
https://github.com/Azure/azure-rest-api-specs/pull/16481/commits/580d61018d7f3eabc81763c7eb839e1412b6c89c#diff-7ae122050446c1635e3d863e0cfb6b7628957529044fded5f799d8b73fd208d0L1485-L1493
CLI is using 2021_08_01_PREVIEW which still has this setting, while our SDK is using 2022-12-01 which no longer supports it.
We'll support only ip-address settings instead.

Hi @maroony , 2.27.0 released with network rules support.
You can refer to the following codesnippet:
Registry registry = registryManager.containerRegistries()
    .define(acrName2)
    .withRegion(Region.US_EAST)
    .withNewResourceGroup(rgName)
    .withPremiumSku()
    .withAccessFromSelectedNetworks()
    .withAccessFromIpAddressRange(cdir)
    .enableDedicatedDataEndpoints()
    .withAccessFromTrustedServices()
    .create();

I got this error after updating to 2.27.0:
ERROR NetworkRuleSet: Missing required property defaultAction in model NetworkRuleSet
Code:
    registry = azureResourceManager.containerRegistries()
        .define(name)
        .withRegion(region)
        .withExistingResourceGroup(rg)
        .withPremiumSku()
        .withRegistryNameAsAdminUser()
        .enableDedicatedDataEndpoints()
        .withAccessFromTrustedServices()
        .withAccessFromIpAddress(ip1)
        .withAccessFromIpAddress(ip2)
        .create();

Hi @maroony , I assume you want to enable public network access and deny any public network access except for the configured ip addresses?
Then you'll need an extra step to express this default denial behavior(just like in the Portal):
azureResourceManager.containerRegistries()
    .define(name)
    .withAccessFromSelectedNetworks() // specifies that by default access to container registry should be denied from all networks
    .withAccessFromIpAddress(ip1)
    ...

Thanks for the update. It's working now!


Chromedriver 502 bad gateway

Is anyone else getting a 502 (bad gateway) error on "https://registry.npmjs.org/chromedriver/-/chromedriver-2.21.2.tgz"
https://registry.npmjs.org/chromedriver/-/chromedriver-2.21.1.tgz seems to work fine.  Maybe just a short term npm issue?

Yeah, NPM is having some issues right now. We just have to wait. 😕

Figured, thanks for the update.

i've encountered the same issue with chromedriver-2.21.4 version
http://chromedriver.storage.googleapis.com/index.html?path=2.24/


throw error ' is not a multiple of (divisible by) 0.1'

Actual behavior
I want to create a range widget which multiple of 0.1
var JSONSchema = {
  "type": "object",
  "title": "Number fields & widgets",
  "properties": {
    "rangeSteps": {
      "title": "range",
      "type": "number",
      "minimum": 0,
      "maximum": 1,
      "multipleOf": 0.1
    }
  }
}
UISchema = {
  "rangeSteps": {
    "ui:widget": "range"
  }
}

When the value has been set as 0.6 or 0.3,the program throws the error 'instance.rangeSteps is not a multiple of (divisible by) 0.1'

This is an issue with the [jsonschema] library and heavily resemble classic floating point arithmetic error:
> j = require("jsonschema")
{ Validator: [Function: Validator],
  ValidatorResult: [Function: ValidatorResult],
  ValidationError: [Function: ValidationError],
  SchemaError: [Function: SchemaError],
  validate: [Function] }
> s = {type: "number", multipleOf: 0.1}
{ type: 'number', multipleOf: 0.1 }
> test = x => j.validate(x, s).errors.map(e => e.message)
[Function]
> test(0)
[]
> test(0.1)
[]
> test(0.2)
[]
> test(0.3)
[ 'is not a multiple of (divisible by) 0.1' ]
> test(0.4)
[]
> test(0.6)
[ 'is not a multiple of (divisible by) 0.1' ]
> test(1)
[]

I've filed an issue on their bugtracker here https://github.com/tdegrunt/jsonschema/issues/187

I've also just come up against this. It looks like there's some activity over on jsonschema in the last few days :smile:

I believe this is closed now that #671 has been released.


🧪 Add tests for benchmarking script

Description

Adds test to benchmarking script. Increases the test time by ~3mins. Should I move this to nightly?

Changes

Add test for benchmarking script

Checklist

[x] My code follows the pre-commit style and check guidelines of this project.
[x] I have performed a self-review of my code
[x] 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 tests pass locally with my changes

I would agree that benchmarking could go to the nightly tests.

I'll move it to nightly once CI passes


Wide Body Fuselage Model

Bjarni's wide body fuselage model

This looks like it shares a lot with fuselage.py. Instead of creating a copy, how about directly editing fuselage.py (on the branch) to generalize it to widebody?

the plan was that @bjarni177 was going to edit wide_body_fuselage.py, which is currently a copy of fuselage.py, to create the wide body model. Are you saying he should just directly edit fuselage.py and rename once the model is complete?

@bjarni177 change of plans. I talked to Woody and understand what he was saying. Just edit the fuselage.py file. Allow it to run in two modes, narrow and wide body (just an if else statement that changes which constraints are used). This will also make it easier to track any model improvements you make to the fuselage.

I agree.

@pgkirsch is your fuselage model where do you assume the beams are located under the passenger floor (i.e. how far from the center)?

I'm afraid I can't remember, but it will be whatever the TASOPT 2.08 documentation says.

now in the D8 repo


Some UI input messages are not received by the Scene

In the video I made a small test using a button that sends a MoveTo command basically.
I added logs up to the  SerializeOutgoingCRDTMessages on the EngineAPIImplementation and we can see the messages are being sent, but the button on the scene not always get the message, as far as I tested, this only happens with UI buttons (not sure other UI elements) but not with normal colliders on scene objects:
https://github.com/user-attachments/assets/66267012-21bb-4955-80e1-8c59bd05e312

Lets retest this now @fcolarich with misha's changes.


Create array backed slice in 32 bit compatible way, fixes #123

Fixes #123.

@rmohr Want to use the new upstream bindings instead? https://github.com/rgbkrk/libvirt-go/issues/127

Closing since the official version is now at https://github.com/libvirt/libvirt-go


⚠ Bofrost.lu has degraded performance

In 94bcf01, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1169 ms

Resolved: Bofrost.lu performance has improved in daa9547 after 7 minutes.


Chrome

Any plans to implement this for chrome? thanks!

Hello @hsw28 I found out how to do this in chrome but you need a little bit of tweaking.
First download the chromedriver if you're using windows the 32bit version will work fine. Then you have to add it to you PATH variable.
Second with your favorite text editor modify this bit of code on the "share_war.py"
    while True:
        #Start Driver, Get URLS, Close
        #driver = webdriver.Firefox()
        driver = webdriver.Chrome()
        driver.implicitly_wait(0)

Comment out the firefox driver and add the "driver = webdriver.Chrome()" save and exit. Then run the script it should start working on chrome.


Add API usage calls to utils

Add the public methods calls API in utils.
Close #5074
cc @datumbox @kazhang

@zhiqwang LGTM, thanks for the help!
I'll leave it to @kazhang to approve. I know he has another PR which changes the arguments of the logging method at #5072. Not sure at which order he wants to merge.

@zhiqwang Thanks for your contribution! I just merged #5072, could you please update the PR to use the new API?


[Suggestion] Use a more precise error than 'CatchableError'

Hey there, just a small suggestion that'd be useful, a more precise error like 'SunnyError' would be pretty useful for catching errors during JSON parsing specifically in big 'try-except' blocks

I agree with the suggestion but I've found Nim's exception stuff to really not enable this type of thing. The getCurrentException has no type information, raise e loses all type information, and if you catch TypedException as e you must include all the posibilities else your except e: raise e will turn your proc into {.raises: [Exception].} instead of {.raises: [JsonError].}.
Basically I've found it to not be worth bothering with even though I previously did it in other libraries. Maybe I'll add it later but it seems super low value without better support for actually using the type information in control flow etc.


Serde i33

Adds serde ops for i33
Pull Request type

Please check the type of change your PR introduces:

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no API changes)
[ ] Build-related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?
No serde ops for i33, and it can't be used in contracts.
Issue Number: N/A
What is the new behavior?
i33 type can be used in contract endpoint params/return values.
Does this introduce a breaking change?

[ ] Yes
[x] No

Other information

Will add serde for other i types soon.

Isn't there a way to make it generic for every type of this file?

This is not the best way to do this, Please check out the discussion - https://github.com/keep-starknet-strange/alexandria/discussions/122
This should probably be serialized into a single felt.

Sidenote:
I see they are adding support for signed integers:
https://github.com/starkware-libs/cairo/commit/d80d29b52f8972f63ceb490567b26172245e95ff
Maybe it is best waiting for them?

For now I'm closing this, I'll do another PR with single felt serialisation.


When RestClient::Rack::Compatibility is disabled, RestClient looses the ability to follow redirects

When RestClient::Rack::Compatibility is disabled Request.execute will return a response compatible with RACK spec instead of a RestClient.Response Object
Moreover, the RACK_APP defined by rest-client-components expects that the call tooriginal_execute returns a RestClient.Response
However, if the initial response is a redirect (302), original_execute will build a new Request and return the result of calling execute on it. With RestClient::Rack::Compatibility disabled, this result will be a response object conform to the RACK spec, thus breaking RACK_APP's expectations.
Possible fixes:

RACK_APP could call original_execute with max_redirects set to 0. But this implies that when RestClient::Rack::Compatibility is disabled, RestClient users loose automatic handling of redirections.
RACK_APPP could be updated to handle RACK spec results from original_execute

If I can setup a development environment for rest-client-components quickly, I'll attempt to write the proper unit test to exhibit this issue

Exhibited the problem in a unit test available at https://github.com/dmargery/rest-client-components


Deep Sleep issues with v2.1 IP5306 power management chip

v2.1 (2.7" display) has issues coming out of deep sleep due to the PM IC IP5306 chip. Has anyone solved this issue? Is there a different version of the board that has a 2.7" display that property deep sleeps and wakes?
https://www.rogerclark.net/ttgo-t5-eink-display-update/

Did you find any further information on this? I am encountering a similar issue.

Sadly no, still having the issue.

@lewisxhe Any chance you can comment on this?

Sorry, I just saw that I have n’t maintained this project for a long time. The IP5306 you said will automatically shut down, causing esp32 to fail to wake up in deep sleep. This problem is a known issue. You can operate the 5360 through I2C and let it Prohibit light load shutdown. Like here. https://github.com/lewisxhe/TTGO-EPaper-Series/blob/3dcb6469715021d1a3c168ad67025b8128af692d/TTGO-EPaper-Series.ino#L745

@lewisxhe  Thanks!
Do you know if they have moved to a different chip in later revisions of the T5 board by chance?

No, it seems that there is not a good power solution now.
@rlightner

As far as  I understand, LilyGO is no longer selling V2.1
It was superseeded by V2.8 . Schematics is there
V2.8 is no longer using IP5306

Pros:

I have not read IP4054 specs yet but I expect that there is no 50mA threshold with this IC
So ESP32's 'deep sleep' should be fine.

Cons:

rightmost key does no longer have ON/OFF function. It would be nice to have a hardware power switch on T5S, similar to other T5-series boards have


[Bug]: failed to mock data on bit data type with length less than 8

ODC version
4.2.0
OB version
not related
What happened?
failed to mock data on bit data type with length less than 8, as follow:
create table bit_t (
id varchar(64),
bit_c bit
);

What did you expect to happen?
start mock data task succeed
How can we reproduce it (as minimally and precisely as possible)?
follow 'What happened'
Anything else we need to know?
No response
Cloud
No response

I use char data generator to mock data for bit type~

PASS


⚠ Samsung has degraded performance

In 6c689b9, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2611 ms

Resolved: Samsung performance has improved in 1326f11.


Avoid replacing dots for underscores in the documentation url.

Many older documentation frameworks don't slugify the . character in the url. For us to migrate and use this tool, we had to skip this instance to avoid from breaking the versioned urls.
e.g.
https://iceberg.apache.org/docs/1.2.0/
This new way will require folks to update their folder names to the url name if they are already using 1_2_0 but it will enable both options with this PR. I'm open to hearing a backwards compatible approach that needs to be switched on as well.

Thanks for the PR! As you rightly mentioned, this is something that would break existing integrations. As I've not seen enough people raise this issue it feels unnecessary to introduce a breaking change. I will close this as won't fix for now for this reason, but would encourage you to create a fork to address your particular needs regarding the period .

@bih thanks for the response. I am curious if you might consider me exposing a slugify Mkdocs config.
Something like:
mkdocs.yml
plugins:
  - monorepo
     valid_slug_regex: '^[a-zA-Z0-9_\.\-/]+$'

plugin.py
class MonorepoPluginConfig(mkdocs.config.base.Config):
    valid_slug_regex = mkdocs.config.config_options.Type(str, default='^[a-zA-Z0-9_\-/]+$')

class MonorepoPlugin(MonorepoPlugin[MonorepoPluginConfig]):


tcp_output causes random crashes

I've been using tcp_output after tcp_write in my code, but tcp_output seems to randomly cause the hardware to through an error and reset. If I disable tcp_output I don't get the crashes, but this delays my messages.
The same code works fine on an ESP8266 chip.

Hi @BlackEdder , can you post your code for further analysis?

Check here for how to call those methods safely :) https://github.com/me-no-dev/AsyncTCP/blob/master/src/AsyncTCP.cpp#L220-L247

The relevant code can be found here:
https://gitlab.com/BlackEdder/painlessMesh/blob/master/src/painlessMeshConnection.cpp#L304
@me-no-dev Thanks for the link, although I am not sure how to interpret that. It seems like very thin wrappers around the tcp_output function, but I see no added checks for when it is safe to call the code.

those tiny wrappers actually inside that the tcp_* functions are called on the TCP thread and will not cause issues :) use _tcp_write instead of tcp_write (same goes for send and the rest)

Thanks @me-no-dev. Mind if I ask a couple more stupid questions :) I based my code on http://lwip.wikia.com/wiki/Raw/TCP and they don't mention threads. Does this mean this is esp32 specific? Does the esp8266 need the same wrappers and if so why does the current code work fine on esp8266. Might you have any links to relevant documentation on the TCP thread?

I don't have documentation, but yes this is less or more ESP32 specific :) you have two cores and threads. 8266 does not need the wrappers :) BTW please close this issue if you are satisfied wth the answer :P

Just for other people having the same problem. Here is the relevant lwip api calls for threading: http://www.nongnu.org/lwip/2_0_x/group__lwip__opts__lock.html#ga8e46232794349c209e8ed4e9e7e4f011
I guess the easiest way is just to wrap your code with: LOCK_TCPIP_CORE() and UNLOCK_TCPIP_CORE()

I advise you towards using the wrappers that I provided :) not sure how those locks will actually work on ESP32.


add timeout for event stream listener to re-attach to healthy endpoint

When endpoints go down for some time and come up again the health check recognized this. Manual reload do work afterwards but the event stream listener will not reconnect to the endpoint since it can get stuck due on the "old" http connection to a missing timeout.
I added a 10 sec timeout (similar to health check) so it would try to reconnect the http client if that connection times out.

Thanks again, nice coincidence since I was just reading: https://blog.cloudflare.com/the-complete-guide-to-golang-net-http-timeouts/

Hi, glad to see you found my PRs useful.
While this one here fixes the issue with stale connection I see now level=error msg="error reading Marathon event stream" endpoint="http://marathon-01:8080" error="net/http: request canceled (Client.Timeout exceeded while reading body)" every 10 seconds (=timeout value).
Looks like the timeout on Client level shuts down this client after the timeout is reached no matter what and also cancels pending request or reading the response body. I'll try to figure out a better solution and will file another PR.

Yes I just reverted the change to avoid that error, thanks for mentioning it.
If I am not mistaken I set it to 0 so the client keeps listening for new events without having to reconnect, since its an endless stream.
If I get some time I might run some tests as well next week and see if I can reproduce your error.


Use tag and deprecate tags

what

Deprecated tags

why

Use non deprecated tag keys

references

Closes https://github.com/cloudposse/terraform-aws-ec2-autoscale-group/issues/85

/test all

/test all

My current resource on this module now has error The argument "tag.4.value" is required, but no definition was found. after updating to new version with this change, has to revert back to previous version


Refactors CrossClusterSearchTests to fix flaky behavior

Description
This PR is a response to Issue #3425

Category: Test fix
The changes include refactoring so as to fix the warning "Type safety: A generic array of Pair<String,String> is created for a varargs parameter" and verify testing is not flaky.
Testing was conducted through CI_ENVIRONMENT=normal ./gradlew integrationTest --tests org.opensearch.security.CrossClusterSearchTests due to a temporary change.

Original Issue:
Description
It looks like the cross cluster setup that evolves multiple clusters coming online and communicating with one another have issues that make them fragile.
Repo

Go to src/integrationTest/java/org/opensearch/security/CrossClusterSearchTests.java
Find the @Ignore entry on the class
Delete that attribute
Run the tests with ./gradlew integrationTest --tests org.opensearch.security.CrossClusterSearchTests

Exit Criteria

[x] Find the root cause of the failing cluster startup process
[x] Run the test at least 10 times and see no failures - how to do this

Check List

[x] New functionality includes testing
[x] New functionality has been documented
[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@EduardoCorazon You'll need to resolve the conflicts before the CI can run the tests.

@DarshitChanpura @scrawfor99 I don't understand why was this approved and merged, it doesn't satisfy the exit criteria of the linked issue - the as for one CrossCluster tests are still marked '@Ignored'
@DarshitChanpura Can you revert and give @EduardoCorazon more feedback how to get this ready to be mergeable?

@EduardoCorazon The exit criteria for this one is to remove this attribute from the tests:
@Ignore("Setting up two clusters at once seems to be prone to issues where they have port mismatches")

Sorry @peternied, I saw on the linked issue (https://github.com/opensearch-project/security/issues/3425#issue-1919795759) that the removal of the tag was under the reproduction steps. I just went off of the check boxes at the bottom and considered those met.

I deeply apologize @peternied @DarshitChanpura @scrawfor99 for this major oversight. I did not see the @Ignore attribute inside the test directory and I will promptly address this issue. I will try to talk this issue over with @scrawfor99 during office hours. Again I deeply apologize for my ignorance and for the inconvenience this caused.

@EduardoCorazon don't apologize! It's really no big deal and just a misunderstanding. No need to apologize or worry :) Great job and thanks for the help with all this.

+1 to @scrawfor99 's comment. This was a misunderstanding and nothing more. Thank you for taking charge on working on this.


EXC_BAD_ACCESS Crash in AWSMobileClient.getTokens()

Describe the bug
Our iPad app is used by staff, each of whom will have it open for ~8 hours per day. We're facing intermittent crashes with the stack traces like the below, which point to an issue with the AWSMobileClient.getTokens() method.
We haven't been able to find any way to reproduce the crash, except leaving an iPad open on the app for a long time. We've been running a test fleet of iPads continuously to try to reproduce it. Occasionally the crash will occur quickly after launching (we've seen it within half an hour) and sometimes not for a week or two. It affects all devices and is not triggered by any user input – it happens on device left on the app with no input for days. On average, it occurs roughly weekly per device.
Our app is making frequent authenticated network requests (every few seconds) so we are continuously using Amplify.Auth.fetchAuthSession to get the tokens.
The issue has occurred with multiple versions of Cognito. We're on version 1.26.2 but have seen issues when running older versions of the SDK, at least as far back as 1.22.0.
Unfortunately, given the intermittent nature it's been really hard to trace down the crash any further so we're wondering if anyone has any ideas where to start.
Observed Behavior
EXC_BAD_ACCESS Crash
Expected Behavior
App should not crash.
Stack Trace
OS Version: iOS 15.5 (19F77)
Report Version: 104

Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: BUS_NOOP at 0x0000000015553220
Crashed Thread: 17

Application Specific Information:
Exception 1, Code 357904928, Subcode 8 >
Attempted to dereference garbage pointer 0x15553220.

Thread 17 Crashed:
0   libobjc.A.dylib                 0x332dc3120         objc_retain
1   AWSMobileClientXCF              0x1056e0d6c         [inlined] Array._getElement
2   AWSMobileClientXCF              0x1056e0d6c         Array.subscript.getter
3   AWSMobileClientXCF              0x1056e0f14         AWSMobileClient.getTokens (AWSMobileClient+Tokens.swift:51)
4   AWSMobileClientXCF              0x1056c8e50         thunk for closure
5   Foundation                      0x306b9d71c         __111+[__NSOperationInternalObserver _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:]_block_invoke_2
6   libdispatch.dylib               0x303723090         _dispatch_call_block_and_release
7   libdispatch.dylib               0x303724090         _dispatch_client_callout
8   libdispatch.dylib               0x3036c6854         _dispatch_queue_override_invoke
9   libdispatch.dylib               0x3036d3b90         _dispatch_root_queue_drain
10  libdispatch.dylib               0x3036d4398         _dispatch_worker_thread2
11  libsystem_pthread.dylib         0x3b81e1dd0         _pthread_wqthread

Redacted amplifyconfiguration.json File
{
    "UserAgent": "aws-amplify-cli/2.0",
    "Version": "1.0",
    "auth": {
        "plugins": {
            "awsCognitoAuthPlugin": {
                "UserAgent": "aws-amplify/cli",
                "Version": "0.1.0",
                "IdentityManager": {
                    "Default": {}
                },
                "CognitoUserPool": {
                    "Default": {
                        "PoolId": "xxxxxx",
                        "AppClientId": "xxxxxx",
                        "AppClientSecret": "xxxxxx",
                        "Region": "xxxxxx"
                    }
                },
                "Auth": {
                    "Default": {
                        "authenticationFlowType": "USER_SRP_AUTH"
                    }
                }
            }
        }
    }
}

Redacted awsconfiguration.json File
{
    "UserAgent": "aws-amplify/cli",
    "Version": "0.1.0",
    "IdentityManager": {
        "Default": {}
    },
    "CognitoUserPool": {
        "Default": {
            "PoolId": "xxxxxx",
            "AppClientId": "xxxxxx",
            "AppClientSecret": "xxxxxx",
            "Region": "xxxxxx"
        }
    },
    "Auth": {
        "Default": {
            "authenticationFlowType": "USER_SRP_AUTH"
        }
    }
}

Thank you for contacting us,  I could not reproduce this issue at my side. But looking at the crash log the error might have happened while it tried to access a deallocated object? I made this PR that might potentially fix this issue: https://github.com/aws-amplify/aws-sdk-ios/pull/4205

@pierceglennie  A new version of Amplify was released today. Can you validate if this fixed your issue.

Hi @harsh62. Looks like that has fixed it, we've gone about a week with no crashes whereas we were getting one every couple of days before. Thanks


fix(lnd): don't treat filters as filter headers

During the sync process there are log message that relate to syncing filters and filter headers. This fixes an issue where we were parsing messages about syncing filters as if they were filter headers, which would cause the progress indicator to jump around during the middle of the sync process due to it thinking that more filter headers had been synced than was actually the case.

Pull Request Test Coverage Report for Build 3746

0 of 2 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 12.324%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

app/lib/lnd/neutrino.js
0
2
0.0%

Totals

Change from base Build 3731:
0.01%

Covered Lines:
466

Relevant Lines:
3333

💛  - Coveralls

utACK d53335a


add proper brackets to fix asan test

Scope & Purpose
impropper brackets would disable all tests from running under asan / tsan; this fixes that.

[x] :hankey: Bugfix

https://jenkins01.arangodb.biz/job/arangodb-ANY-linux-san.x86-64/1308/


Support pointing a Factory to a Func

First of all, this library is pure gold. I love it!
When the service provider itself can't implement a factory, you want to pass that in via a Func. Unfortunately it looks like jab currently doesn't support that:
Severity	Code	Description	Project	File	Line	Suppression State
Error	CS0029	Cannot implicitly convert type 'System.Func<Microsoft.DotNet.ApiCompatibility.Logging.CompatibilityLoggerBase>' to 'Microsoft.DotNet.ApiCompatibility.Logging.CompatibilityLoggerBase'	Microsoft.DotNet.Compatibility.Console	C:\git\sdk\src\Compatibility\Microsoft.DotNet.Compatibility.Console\Jab\Jab.ContainerGenerator\CompatibilityServiceProvider.Generated.cs	35	Active

    [ServiceProvider]
    [Singleton(typeof(CompatibilityLoggerBase), Factory = nameof(LogFactory))]
    internal partial class CompatibilityServiceProvider
    {
        public Func<CompatibilityLoggerBase> LogFactory { get; }

        public CompatibilityServiceProvider(Func<CompatibilityLoggerBase> logFactory)
        {
            LogFactory = logFactory;
        }
    }

As far as I can tell, the relevant code that constructs the method call is https://github.com/pakrym/jab/blob/30e44dca171d2e4929ce3812920f3f983a140f7f/src/Jab/ServiceProviderBuilder.cs#L442-L459 and would need to be updated to treat Func similar to a IMethodSymbol.

The generator doesn't have any specialized logic for Funcs right now. Is there a reason why defining a method and calling the Func from it doesn't work (other than a slightly more verbose code)?
 [ServiceProvider]
    [Singleton(typeof(CompatibilityLoggerBase), Factory = nameof(LogFactory))]
    internal partial class CompatibilityServiceProvider
    {
        public Func<CompatibilityLoggerBase> LogFactoryFunc { get; }
        public CompatibilityLoggerBase  LogFactory() => LogFactoryFunc();

        public CompatibilityServiceProvider(Func<CompatibilityLoggerBase> logFactory)
        {
            LogFactory = logFactory;
        }
    }

Yes, this is mostly about verbosity. Thanks for adding support for this feature so quickly! Amazing.

Just noticed there is no new version on nuget.org yet. Can you please publish one?

Thanks a lot


time derivative of jacobian

Dear pinocchio authors,
I am sorry if this question is duplicated, but I have a question about an API getFrameJacobianTimeVariation.
I have looked through the previously closed issues #901, #1205 but asking this to make sure.
Based on Featherstone's spatial vector algebra (in p 23), there are two types of acceleration: 1) change of spatial velocity considering a frame fixed in the body (i.e., classical acceleration), and 2) change of spatial velocity considering a frame fixed in the space (i.e., spatial acceleration).
Following this, one dynamics library dart provides two different jacobian dots: 1) getJacobianClassicDeriv and 2) getJacobianSpatialDeriv. (My apologies for comparing this to other library but I am trying to update my research project codes with Pinocchio.)
Is the function getFrameJacobianTimeVariation in pinocchio returns the second one?
I assume so based on the comparison of the quality from my side, but want to make sure.
Also, if this is true, is there another API that returns a classical time derivative of jacobian so that I can compute classical acceleration using the formula J*qddot + Jdot*qdot.
I need this term because, in task space control, we are mostly interested in an acceleration of the frame fixed in the body.

I already told you, but you don't need to compute Jdot when dealing with controllers working at the joint acceleration level.
The shortcut is to directly call forwardKinematics(model,data,q,v,0*v) and then you will be able to compute your acceleration drift.
I don't see the difference between  getJacobianClassicDerivand getJacobianSpatialDeriv in DART, but I do not know well this framework. But, I can directly discuss the difference between classic and spatial acceleration. Indeed, the linear parts of these two are related by:
a_c = a_s + w x v

Thanks for the reply.

you don't need to compute Jdot when dealing with controllers working at the joint acceleration level.

The reason I want to use J_dot is to calculate a joint space acceleration given a task space acceleration. Consider a task space controller that you have the desired acceleration in task space (a_c_des) and you want to map it to desired acceleration in joint space (q_ddot_des) using the formula q_ddot_des = pinv(J)(a_c_des - J_dot*q_dot).
I have a two-DOF manipulator example to clarify my question.

The J_dot quantity I am interested in is the one I derived in the picture (i.e., the jacobian term related to the classical acceleration), but getFrameJacobianTimeVariation returns the one related to the spatial acceleration.
I know the relationship between a_c and a_s but not sure how to relate two jacobians.

I do understand your problem you aim to solve, but again, Jdot*v = data.a[joint_id] after calling forwardKinematics(model,data,q,v,0*v)
Please see the code of https://github.com/stack-of-tasks/tsid which implements this kind of controllers.

Oh, you're right and I see what you're saying.
So I can basically get the whole Jdot*v term using getFrameClassicalAcceleration if I want that this quantity to be related to classical acceleration.
I appreciate your explanation!

Yes, this trick is simple but very efficient.

[x] using dJ_spatial to calculate dJ_classic, derived from

a_c = a_s + w x v
a_c = J*ddq + dJ_c * dq = J * ddq + dJ_s * dq + cross(J[3:6,:] * dq, J[0:3,:]) * dq

dJac6D_classic = pin.frameJacobianTimeVariation(model, data, q, dq, frame_id, pin.WORLD)
dJac6D_classic[0:3,:] += np.dot(pin.skew(np.dot(Jacobian[3:6,:], dq)), Jacobian[0:3, :])


Bring back .bookmark text command

Can we undeprecate the text command? The context menu/app command seems to inexplicably disappear from clients for some users, and when it does work, it also has the limitation of not working in read-only channels. I also think the original UX of the original .bm command was pretty nice, especially when replying to messages.
Relevant PR: #1211

I agree with Arl's suggestion to make this a slash command rather than text.

and when it does work, it also has the limitation of not working in read-only channels.

Either way, you wouldn't be able to bookmark messages in read-only channels because you can't send text/slash commands there anyway.

the original text command would take any link as input. there is no way to provide input with a link in the current form.

I agree with Arl's suggestion to make this a slash command rather than text. Discord Link

Is https://github.com/python-discord/sir-lancebot/pull/1211 in a state that a revert could be done until the work for a slash command is ready?
It's likely only the vocal few who used the command on a regular; however the lack of a reliable bookmark feature is missed.

Approved, anyone who wants to pick this up feel free to comment here.
The PR can't be directly reverted as it came with a number of refactor commits too.

I can take this.
Just to be clear, we just want the same .bm implementation from before, without any changes?


Support for drag and drop synthetic events

I can probably submit a PR eventually, but just wanted to capture this in case someone has a fix already!
drag and drop is of course a stunner HTML5 delivered and my understanding is you need access to types similar to ClipBoard events, e.g.:
.dataTransfer.files
For reference, I'm not seeing a drag/drop "dataTransfer" js.native for MouseEvent:
https://github.com/shadaj/slinky/blob/b1e7e021802d1503684f6db40aca9ed4ea80320c/web/src/main/scala/slinky/web/SyntheticMouseEvent.scala
So these should be added to MouseEvent

@shadaj would you prefer we just piggy back on the existing MouseEvent or would you like to break things up by context, such as creating a separate DragEvent as shown here?:
https://www.programcreek.com/scala/org.scalajs.dom.raw.Event

I guess the primary authority on this is React's synthetic events. I don't see a specific type for drag events, so using MouseEvent would probably be the way to go.


OpenCL is broken after #3054 (commit 2c6f2e8)

I believe this breakage is caused by the change in the scope of the #3054 (commit 2c6f2e8)
Before this change:
$ rm ~/.cache/tinygrad/cache.db; GPU=3 python examples/coder.py
create model:  22.21 ms
download weights:  19.59 ms
ram used: 10.62 GB, freqs_cis                                         : 100%|█| 292/292 [00:04<00:00, 59.57it/s
loaded weights in 4905.06 ms, 10.62 GB loaded at 2.17 GB/s
ram used: 15.43 GB, freqs_cis                                         : 100%|█| 292/292 [00:01<00:00, 157.01it/
loaded weights in 1860.44 ms, 4.81 GB loaded at 2.58 GB/s
weights -> model: 6799.05 ms
<|im_start|> system
You are Quentin.  He keeps the code as short as possible and doesn't read from user input<|im_end|>
Q: hi
<|im_start|> user
hi<|im_end|>
<|im_start|> assistant
Hello! How can I help you today?<|im_end|>

After:
$ rm ~/.cache/tinygrad/cache.db; GPU=3 python examples/coder.py
create model:  22.04 ms
download weights:  19.66 ms
ram used:  9.94 GB, freqs_cis                                         : 100%|█| 292/292 [00:04<00:00, 64.54it/s
loaded weights in 4527.63 ms, 9.94 GB loaded at 2.20 GB/s
ram used: 14.48 GB, freqs_cis                                         : 100%|█| 292/292 [00:01<00:00, 157.46it/
loaded weights in 1855.17 ms, 4.54 GB loaded at 2.45 GB/s
weights -> model: 6416.47 ms
<|im_start|> system
You are Quentin.  He keeps the code as short as possible and doesn't read from user input<|im_end|>
Q: hi
<|im_start|> user
hi<|im_end|>
<|im_start|> assistant

Any
Q: how are you
<|im_start|> user
how are you<|im_end|>
<|im_start|> assistant
 <|im_end|>

closing as stale, feel free to reopen if it reproduces on master, and please add your system info
also GPU=3 does not use OpenCL anymore and it checks agains 1 now so GPU=1


1.6.1 src/util.c needs _DARWIN_C_SOURCE 200809L for macOS

When updating the MacPorts Portfile to version 1.6.1 I ran into a build issue in src/util.c
src/util.c:520:10: error: implicit declaration of function 'timegm' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  return timegm (&tmp) - src->tm_gmtoff;
         ^
src/util.c:520:10: note: did you mean 'time'?
/Library/Developer/CommandLineTools/SDKs/MacOSX12.sdk/usr/include/time.h:118:8: note: 'time' declared here
time_t time(time_t *);
       ^
1 error generated.

I worked around this with the following patch
--- src/util.c.orig	2022-06-30 09:17:04.000000000 -0500
+++ src/util.c	2022-07-01 06:00:26.000000000 -0500
@@ -35,6 +35,8 @@
 #define _XOPEN_SOURCE     700
 #define _GNU_SOURCE

+#define _DARWIN_C_SOURCE 200809L
+
 #include <arpa/inet.h>
 #include <ctype.h>
 #include <errno.h>

however, this probably should be take care of in configure.ac

Thanks a lot for reporting this. Looks like _XOPEN_SOURCE was the culprit. It should build fine now. Please feel free to build from development and let me  know if that solves the issue on your end.

The diff works fine for me! I test built the 1.6.1 source, substituting your patch for mine.

Thanks for letting me know and glad to hear that! I'll be pushing a minor release for this soon.


test: add SVG clicking test

Someone had concerns that pptr's clicking doesn't work with SVG.
Make sure Puppeteer's clicking does.

A good test. But maybe they meant an s game with an exotic shape. Like a pretzel svg or something. We might try to click in the wrong place.

Like a pretzel svg or something. We might try to click in the wrong place.

@JoelEinbinder Good call! And it turns out it doesn't.


Add rounding code to prevent inconsistencies between browsers

This should probably be fixed in more places, but it fixes the test which fails in Safari for now. It's the Vector.rotate test.
Another option would be to set the amount of precision that the x and y properties are limited to for vectors upon initialization.

I thought more about my solution and don't think it's a great one, since it forces x and y to be integers when the vector it rotated. Closing this pull request.


Guidance on using BatchInterceptor - how to inspect body

I'm using BatchInterceptor and trying to inspect the body of a fetch response in the browser
I didnt see an example so took the example in ClientRequestInterceptor as inspiration
interceptor.on("response", (response, request) => {
    const url = new URL(response.url);

    if (url.origin.includes("localhost")) {
        console.log(
            response
        );
    }
});

when i run it and intercept the response i see the body json in the request(second) arg..

Is this the expected way to get it ?.. just want to be sure im using it correctly

Hey, @john-maddock.
That appears to be correct. As of now, response.body will be a string representation of the response body.
Note that I'm almost done with the breaking change regarding how this library treats requests and responses in #292. Once that change is merged, you will be able to work with the response as Fetch API Response. This means you'll get its ReadableStream body and will be able to read it as .text(), .json(), .arrayBuffer() and so forth.

@kettanaito  thanks so much for your quick reply


HOTFIX: null check for ProducerRecord when computing sizeInBytes

Minor followup to #12235  that adds a null check on the record key in the new ClientUtils#producerRecordSizeInBytes utility method, as there are valid cases in which we might be sending records with null keys to the Producer, such as a simple builder.stream("non-keyed-input-topic").filter(...).to("output-topic")

Failing tests are unrelated:
testIncrementalAlterConfigs() – kafka.server.KRaftClusterTest
testFailureToFenceEpoch(String).quorum=kraft – kafka.api.TransactionsTest
Merging this fix


[Doc][Minor] Kafka doc: breakup into lines

Before

After

Test build #68705 has started for PR 15903 at commit f291818.

Test build #68705 has finished for PR 15903 at commit f291818.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/68705/
Test PASSed.

Test build #68707 has started for PR 15903 at commit 1b96175.

thanks @srowen . I've gone though all markdown files in docs module, searched by regular expression [^\n]\n\- , found 55 occurrences and only this one out of them requires the treatment. thanks.

Test build #68707 has finished for PR 15903 at commit 1b96175.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/68707/
Test PASSed.

Merged build finished. Test PASSed.

Merged to master/2.1


Useful when connecting in via telnet to debug.

R4R again @mithro , appears to work as expected

@mithro can this pls be merged?  be useful to have on devices...

@xfxf - Travis currently fails on your pull request...


Button Does Not Show When There Is No Changed File

Testing #153317
I would expect the button to be visible, but disabled.

Assuming that all settings are enabled, I am in favour of the following:

There are pending changes

Commit Changes (enabled)

There are no pending changes

Branch not published - Publish Branch
Incoming/Outgoing changes - Sync Changes
Else - Commit Changes (disabled)

@joaomoreno, what do you think?

Btw. why is it "Publish Branch", and not just "Push Branch"?
Afaik, "Publish" is not git terminology and might be confusing, especially for private repositories.

@hediet, not really sure as the "Publish Branch" label was put in place before I have taken ownership of the area.

The change to address this feedback has been checked in with https://github.com/microsoft/vscode/pull/153662.
After speaking with @joaomoreno, we have decided that in case there are no changed files, we would show the "Sync Changes" action button (assuming that there is a remote) as that seems more valuable than a disabled "Commit Changes" action button.


Cleanup signal "abort" event handler in Micro.runFork

Type

[ ] Refactor
[ ] Feature
[x] Bug Fix
[ ] Optimization
[ ] Documentation Update

Description

Related

Related Issue #
Closes #

I think to do this properly you will need to removeEventListener once the Micro has returned a result.

I think to do this properly you will need to removeEventListener once the Micro has returned a result.

Isn't interruption in Micro fire and forget? Why would we need to call the handler multiple times?

Isn't interruption in Micro fire and forget? Why would we need to call the handler multiple times?

When you abort a Micro it will fail with a Failure.Aborted.
I think we will need both once: true and removeEventListener (to prevent memory leaks where the same signal is used multiple times).


weather plugin crazy output

Describe the bug
The weather plugin gives crazy answers. For example in Budapest where it is currently 60 farenheit it gave 141 farenheit.
To Reproduce
Steps to reproduce the behavior:

Set up honeybot
Enter '.weather budapest HU'
See response from bot

Expected behavior
Obviously expecting exactly 60 farenheit would be wrong but 141 farenheit is crazy.
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: macOS
using Adium to connect to IRC

Possibly something to do with converting to farenheit in line 31.

The issue is that the openweathermap API does not work in farenheit as this code assumes but rather in Kelvins. When you look at what the API is producing this becomes clear:

This is the data that is being fetched currently when ".weather budapest HU" is entered. Clearly temperature of 289.69 celsius is crazy but in celsius that is around 20 because absolute zero is -270ish.
To work around we can either convert the kelvin to celsius which is quite simple, or even better just add "&units=metric" to the api_url variable to get metric data. Here is what the updated api data looks like with the metric url:

Will PR shortly.


Extend the validation scope for instances

From nexus-kg created by bogdanromanx : BlueBrain/nexus-kg#167
The current shacl validation uses a strict model where only the triples of the instance being created or updated are considered. While this behaviour is correct, there is a missed opportunity in checking how the data in the instance relates to other instances in the graph.
An example of this would be type checking of linked instances. We can easily picture the need for an instance to link through a predicate to a different instance that is of a specific type:
A schema:affiliation B
B rdfs:type schema:Organization

In this example, when we create instance A we would like to check that the linked instance (referred in A, in our example identified as B) has type schema:Organization.
Current behaviour:
+----------------------+
|Validation Scope      |   +----------+
|                  +-------> Instance +--+
|   +----------+   |   |   +----------+  |  +----------+
|   | Instance +---+   |                 +--> Instance |
|   +----------+   |   |                    +----------+
|                  |   |   +----------+
|                  +-------> Instance |
| +--------+           |   +----------+
| | Schema |           |
| +--------+           |
+----------------------+

Proposed behaviour:
+--------------------------------------------------------+
|Validation Scope          +----------+                  |
|                  +-------> Instance +--+               |
|   +----------+   |       +----------+  |  +----------+ |
|   | Instance +---+                     +--> Instance | |
|   +----------+   |                        +----------+ |
|                  |       +----------+                  |
|                  +-------> Instance |                  |
| +--------+               +----------+                  |
| | Schema |                                             |
| +--------+                                             |
+--------------------------------------------------------+

Based on the constraints defined in the schema we can compute a limited number of additional (existing) instances that can be pulled into the validation scope such that we can perform additional checks on how the newly created or updated instance relates to already existing data.
Since we cannot afford bringing in the entire graph into the validation scope, the identified instances need to be read from the primary store when creating the validation model. This needs to be limited to the constraints defined in the schema and only up to a certain count and depth (configurable). This restriction is also required by the separation between the write and read models of the service to ensure only reduced availability instead of downtime when the graph store is unavailable.
Checking the schema for constraints that extend beyond the scope of the validated instance can be done only once when the schema is published to avoid unnecessary computation.
Important note: as linked instances can be independently updated there is no guarantee that the constraints still hold after the creation or update.
There is also an additional need of basic reasoning and inference during validation such that the relationships described in the ontology are taken into account. An example of this would be sub-typing. Since the validation scope is fairly small the additional latency caused by this inference should be minimal.
Related: https://github.com/BlueBrain/nexus-kg/issues/111, https://github.com/BlueBrain/nexus-kg/issues/113.

Too expensive on CPU, not doing


wrap up ci speedup

Context
I was monitoring CI performance since #325 got merged and saw one last improvement I could have made which is an additional parallel run. In some cases group B slows down the entire CI run by minutes. By splitting group B, this occasionally  speeds up CI duration. Furthermore, by putting agent on its own, all runs should perform faster, even when group B is not underperforming.
Implementation
Add group C. CI duration should decrease by about a minute on average.
Results
In some cases now down to 5 min CI runs. About 25% faster than current runs.

@frankhinek added --workspace packages/crypto-aws-kms to the matrix runner


Docker deploy contracts changes

this PR will change azure pipelines so that populated geth images are built on augur-core changes, but only published on merge to master

Lgtm


DELETE request with chunked transfer-encoding breaks subsequent requests

Description
CouchDB does not cleanly handle a DELETE request with a body (even an empty one) with Transfer-Encoding: chunked. I know that sending a body with a DELETE is not expected (and uncommon; even though it is not strictly forbidden by the HTTP spec). However, I'm raising this issue anyway because the behaviour of CouchDB is inconsistent depending on whether the body length (0) is known or Transfer-Encoding: chunked is used.
Steps to Reproduce
# create DB
curl -u 'u:p' -X PUT 'http://localhost:5984/example'
# create doc
AREV=$(curl -u 'u:p' -H 'Content-Type: application/json' -d '{"_id": "a", "hello": "world"}' 'http://localhost:5984/example' | jq -r .rev)
echo $AREV
# create att1
ATREV=$(curl -v -u 'u:p' -d 'Attachment file content' -X PUT -H 'Content-Type: text/plain' "http://localhost:5984/example/a/att1?rev=$AREV" | jq -r .rev)
echo $ATREV
# delete att1 and then try to do something else on the same conn (in this case get db info)
curl -v -u 'u:p' -X DELETE -H 'Content-Type: application/json' -d '' -H 'Transfer-Encoding: chunked' "http://localhost:5984/example/a/att1?rev=$ATREV" -: -v -u 'u:p' 'http://localhost:5984/example'
# finally delete the db to cleanup
curl -u 'u:p' -X DELETE 'http://localhost:5984/example'

The att1 delete will succeed:
> DELETE /example/a/att1?rev=2-d122f8be81379020d77aea68bbe8986b HTTP/1.1
> Host: localhost:5984
> Authorization: Basic ==
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Type: application/json
> Transfer-Encoding: chunked
>
* upload completely sent off: 5 out of 0 bytes
< HTTP/1.1 200 OK
< Cache-Control: must-revalidate
< Content-Length: 64
< Content-Type: application/json
< Date: Thu, 05 Aug 2021 16:27:09 GMT
< Server: CouchDB/3.1.1 (Erlang OTP/20)
< X-Couch-Request-ID: 6f3d1f7999
< X-CouchDB-Body-Time: 0
<
{"ok":true,"id":"a","rev":"3-69ced22ddcf0e6174888dea1f661d88f"}

Then the request to get DB info hangs until the connection dies:
* Re-using existing connection! (#0) with host localhost
* Connected to localhost (::1) port 5984 (#0)
* Server auth using Basic with user 'admin'
> GET /example HTTP/1.1
> Host: localhost:5984
> Authorization: Basic ==
> User-Agent: curl/7.64.1
> Accept: */*
>
* Connection died, retrying a fresh connect
* Closing connection 0
* Issue another request to this URL: 'http://localhost:5984/example'

the subsequent request on the fresh connection succeeds, but obviously this has broken the previous connection.
Expected Behaviour
The same request with an empty body without using Transfer-Encoding: chunked does not hang/break the connection.
curl -v -u 'u:p' -X DELETE -H 'Content-Type: application/json' -d '' "http://localhost:5984/example/a/att1?rev=$ATREV" -: -v -u 'u:p' 'http://localhost:5984/example'

> DELETE /example/a/att1?rev=2-d122f8be81379020d77aea68bbe8986b HTTP/1.1
> Host: localhost:5984
> Authorization: Basic ==
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 0
>
< HTTP/1.1 200 OK
< Cache-Control: must-revalidate
< Content-Length: 64
< Content-Type: application/json
< Date: Thu, 05 Aug 2021 16:39:01 GMT
< Server: CouchDB/3.1.1 (Erlang OTP/20)
< X-Couch-Request-ID: 1e332625b5
< X-CouchDB-Body-Time: 0
<
{"ok":true,"id":"a","rev":"3-69ced22ddcf0e6174888dea1f661d88f"}
* Connection #0 to host localhost left intact
* Found bundle for host localhost: 0x7fa983617d20 [can pipeline]
* Could pipeline, but not asked to!
* Re-using existing connection! (#0) with host localhost
* Connected to localhost (::1) port 5984 (#0)
> GET /example HTTP/1.1
> Host: localhost:5984
> Authorization: Basic ==
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 200 OK

Your Environment

CouchDB version used: 3.1.1

{"couchdb":"Welcome","version":"3.1.1","git_sha":"ce596c65d","uuid":"cce147ca4fc765e8e9f1f119b11b8ba8","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}

Browser name and version: curl
Operating system and version: macOS 11.5

Additional Context
We observed the problem when using attachments, which is why the reproduce steps use them. I tried to reproduce using a DELETE /{db}/{doc} and wasn't able to; so I suspect this problem may apply only on attachment pathways.
I've fixed our client code to avoid [pointlessly] gzipping a zero-length body so this isn't critical for us as we're working around, but I still think CouchDB could behave better given that https://datatracker.ietf.org/doc/html/rfc7230#section-4.1 says

A recipient MUST be able to parse and decode the chunked transfer coding.

Also https://datatracker.ietf.org/doc/html/rfc7231#section-4.3.5

A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.

Suggests that even if the behaviour isn't fixed to match the Content-Length: 0 case that a rejection would be a more appropriate response than allowing a connection to reach a bad state.

I was able to reproduce this on both latest docker's image for couch:3 and on a HEAD of 3.x branch. A bit to pay attention here is that this is happening only on reused connection (curl's -: flag), while sequential calls to attachment delete and then db info query are returning fine.
Another note is that Transfer-Encoding: chunked is a bit of a red-herring, the same hanging connection can be induced even without it when payload body on attachment delete request is larger than 0, in other words this is an issue of delete operation not properly draining and discarding request payload.


Split list_topologies.yml into per-model config files

Moving to per-model configs will make it easier to maintain the model configuration and reduce the amount of information that needs to be included in the config (since name and subdirectory are now inferred).
This change is transparent to users who don't read list_topologies.yml directly.
For compatibility the -c option is still supported and will let users use a config in the old format. However, it is deprecated and will be removed in a future release. I didn't provide a way to specify an alternate tree of model configs in the new format, because such a feature doesn't seem useful to me (and the config format is still not supposed to be stable).

Draft because it depends on #267 (well, it doesn't really, but it would make little sense to merge it before that one).

One minor item is that proxy doesn't make it easier to download the models. Things, like pip have a --proxy flag to easily handle this. For downloader I have to invent smth else. Maybe, worth adding such a flag if it's not too big of a hassle.

This seems to have nothing to do with this PR, though? And the downloader does support proxies through the standard http_proxy/https_proxy variables.

This seems to have nothing to do with this PR, though? And the downloader does support proxies through the standard http_proxy/https_proxy variables.

Correct, just something I stumbled upon when I was trying it out.
What do you think about "family folders" ? Worthwhile or not? If yes, this time or later?

What do you think about "family folders" ? Worthwhile or not? If yes, this time or later?

It's worth considering; however, it's definitely a task for later, as it would drastically expand the scope of required changes.

Got it, thanks!

@yssemaev any update on the question?

"Copyright (c) 2019 Intel Corporation" header should be in all human readable files

@yssemaev Do you mean just the copyright line, or the full banner ("Licensed under the Apache License", etc.)?


🚨 Use constructors in classes inherited from _Asset

This simplifies AssetsCache code a bit.
The code is extracted from #549 in an attempt to make the null safety changeset smaller.
Type of change

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

Checklist:
If something is unclear, please submit the PR anyways and ask about what you thought was unclear.

[ ] This branch is based on v1.0.0
[ ] This PR is targeted to merge into v1.0.0 (not master or develop)
[ ] I have added an entry under [next] in CHANGELOG.md
[x] I have formatted my code with flutter format
[ ] I have made corresponding changes to the documentation
[ ] I have added examples for new features in doc/examples
[ ] The continuous integration (CI) is passing

I don't understand how to fix the error in checks :(

I don't understand how to fix the error in checks :(

They branch should be based on develop, the errors are fixed in there. (We will remove the develop branch from our flow in the near future)

@spydon works like a charm. Thanks!