Crashing World at startup

Describe the Bug
Extracting water, using hose reel. Broke the attached tank by accident and now the world crashes my game. Can't get back into the world to remove anything or change it.  Im using a creative motor to power it as i wanted to test it before i ran the actual power units.
Reproduction Steps

Hose reel above the source ( mine was infinite )
Attach proper attachments such as the mechanical pump and liquid tanks
Remove Tanks with wrench.
...

Expected Result
Nothing.. I expected the hose reel to stop or hold its liquid.

Shuffle
Simple Voice Chat
Simply Swords [Fabric & Forge]
SkyLib
Smooth Boot (Fabric)
Snowy Spirit
Sodium
spark
Spectrum
Starlight (Fabric)
Supplementaries
TerraBlender (Fabric)
Terralith
The Mushroom Update - AnimalMace Edition
The Twilight Forest
Tom's Simple Storage Mod (Fabric)
Trade Cycling
Traveler's Backpack [Fabric]
Tree Harvester
Trinkets (Fabric)
Twigs
VanillaTweaks [Fabric & Forge]
Vein Mining (Fabric 1.16.4 - 1.19.2)
Vertical Slabs Compat
Visual Workbench
When Dungeons Arise - Fabric!
Xaero's Minimap
Xaero's World Map
YetAnotherConfigLib
You're in Grave Danger
Additional Context
No response

No, I think it was a chunk error. I went through NBTeditor and removed the
hose pulley and it was fine.
On Tue, Apr 4, 2023 at 4:31 PM TropheusJ @.***> wrote:

Are you able to get it to happen again in other worlds?
—
Reply to this email directly, view it on GitHub
https://github.com/Fabricators-of-Create/Create/issues/875#issuecomment-1496631144,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6674U76Z4KWMTIOSDHDIZDW7SHL3ANCNFSM6AAAAAAWTDIPA4
.
You are receiving this because you authored the thread.Message ID:
@.***>

@TropheusJ
Hey, I was able to recreate the issue. I've prepared a little test setup in form of
this region file. I should also note, that the world was created and played on in conjunction with the Create Live 4 modpack.
Here are the steps involved with recreating the bug:

Create a new world in singleplayer.
Exit the world, go back to singleplayer, select the world, click Edit and then Open World Folder.
Paste the region file into the world's regions folder.
Teleport to the setup with /tp 1703 106 472
Pull the lever on the Clutch and watch everything ||(quite literally)|| descend into chaos, once the Hose Pulley is deep enough.

The resulting crash-report should look roughly like this one
I hope this helps ^^

Another odd behavior, I've noticed, is, that disabling infinite fluid sources for the Hose Pulley results in the fluid no longer being pumped, once a certain depth is reached.

I have analyzed the problem further... When using @eingruenesbeb region file, the whole "water pool" was flowing. Because of that, the whole queue list gets emptied and therefore the first object is null. I have inserted an if statement in the while true loop to prevent the npe...
if (visited.size() > maxBlocks && canDrainInfinitely(fluid) && !queue.isEmpty()) {
	infinite = true;
	// Find first block with valid fluid
	while (true) {
+++		if(queue.isEmpty()) {
+++			infinite = false;
+++			return;
+++		}
		BlockPos first = queue.first().pos();
		if (canPullFluidsFrom(world.getBlockState(first), first) != FluidBlockType.SOURCE) {
			dequeue(queue);
			continue;
		}
		break;
	}
	BlockPos firstValid = queue.first().pos();
	frontier.clear();
	visited.clear();
	queue.clear();
	queue.add(new BlockPosEntry(firstValid, 0));
	tileEntity.sendData();
	return;
}

I don't know much about the rest of the code of the create mod so maybe you also need to call tileEntity.sendData() etc. @TropheusJ
When using this fix everything seems to work, but i didnt check performance etc.
Thank you!

This is a forge issue too: https://github.com/Creators-of-Create/Create/issues/4665
I've added your fix for now, it seems to work fine.


docs: add match stream route with SNI tutorial

Type of change:

[ ] Bugfix
[ ] New feature provided
[ ] Improve performance
[ ] Backport patches

What this PR does / why we need it:

Pre-submission checklist:

[ ] Did you explain what problem does this PR solve? Or what new features have been added?
[ ] Have you added corresponding test cases?
[ ] Have you modified the corresponding document?
[ ] Is this PR backward compatible? If it is not backward compatible, please discuss on the mailing list first

D

I fix the lint error.

Thanks

@navendu-pottekkat PTAL, Thanks!

Will update and index in a different PR as the "tutorials" section is being updated.


[Design] "randomize" command randomizes both skins and buddies, even though buddy_randomizer disabled in config

I'm not sure if this is intended behavior, since personally speaking, I'm only using the skin-cli for the skins, not the buddies.
I would hope running "randomize" only randomizes skins, and then if you add a parameter such as "all", or "buddies", it will randomize those.
Having the default randomize behavior be only skins for 9 releases, only for it to change is jarring.
Also whats does the "buddy_randomizer" bool do?

great feedback, i'll change this for the next release (a lot of the discrepancy with UX will be alleviated once i make a gui version)
if buddy_randomizer is enabled it'll randomize your buddies after each match

resolved in https://github.com/colinhartigan/valorant-skin-cli/releases/tag/v1.2.3


Config key visibility to private, remove some unused fields

Small tweak to trigger CI
Remove unused fields

Some comment

This PR was released with 0.22.1


Added support for Symfony 6.

This commit adds support for Symfony 6. To successfully use it in your project you might need to require friends-of-behat/mink-extension. It replaces behat/mink-extension and can use Symfony 6 components where the original doesn't.

(Closed and re-opened to trigger GitHub actions)

Thanks, @Devristo !


[V4] Dollar sign ($) in Vue SFC script setup throws SyntaxError

Your Environment

Prettier version: 2.8.7
node version: v18.16.0
package manager<EMAIL_ADDRESS>
Describe the bug
Using a dollar sign $ inside the vue SFC script setup throws an exception and doesn't format the file.
To Reproduce
Try to format a Vue SFC file with a single quoted $ inside

<template>

    {{ dollarSign }}

</template>

Configuration File (cat .prettierrc, prettier.config.js, .prettier.js)
module.exports = {
    singleQuote: true,
    pluginSearchDirs: false,
    plugins: ["@ianvs/prettier-plugin-sort-imports"],
};

Error log
❯ npx prettier --write *.vue
ExampleOne.vue
[error] ExampleOne.vue: SyntaxError: Unexpected closing tag "script". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags (12:1)
[error]   10 | ;
[error]   11 |
[error] > 12 | </script>
[error]      | ^^^^^^^^^
[error]   13 |
[error]   14 | <template>
[error]   15 |

Whoa what a strange bug!  Thanks for reporting and providing a minimal example.  I'll try to figure out what's going on.  Do you know if @vue/compiler-sfc treats dollar signs in some special way?

I'm using "@vue/compiler-sfc": "^3.3.4".
While exploring this I found another issue that I think is related to this. $ sign is being remove from template literals even if escaped (this const foo = `\$${value}` turns into this const foo = `\${value}`)
Unformatted Code:

<template>

    {{ prefixedValue }}

</template>

Formatted Code:

<template>

    {{ prefixedValue }}

</template>

Hey @IanVS, I found the cause and created a pull request.  See #101.

Thanks, the fix has been released in 4.0.1.  🙌


Add a mpmc channel

 Issue by mahkoh
Friday Dec 12, 2014 at 20:26 GMT
For earlier discussion, see https://github.com/rust-lang/rust/issues/19783
This issue was labelled with: A-libs, A-threads in the Rust repository

/cc https://github.com/mahkoh/comm

FWIW, a spmc channel would also be incredibly useful, and could probably be optimized in ways a mpmc can not.

@jonhoo I started bulding a spmc lib for rust, though it needs optimizations, and I should probably dump the linked list idea.. oyashio/spmc lib

Any updates on this? :-)

https://github.com/jonhoo/bus could probably be adapted pretty easily to be spmc instead of sp-broadcast. Will probably simplify the code a fair amount in fact.

I believe crossbeam's SegQueue is a MPMC channel.

Any update on getting this into Rust core?

Would definitely be a useful feature. Is it to be integrated to rust 's sync library ?

I believe crossbeam-channel has become the community preferred MPMC channel this year.

@WiSaGaN thanks for the update. Closing this therefore.

What about crossbeam-channel and tokio? Does it work with it or does it work with std threads only?...

That's a question for crossbeam, not really a rust rfc

@Centril I don't quite understand? How does this solve this issue? 🤔

Use crossbeam, using dependencies in Rust is easy and painless. So if something can be a dep instead of in std, putting it in a dep is preferred.

Mh, should definitly work without dependencies...

Hello from 2024. Since std's mpsc channels are nowadays based on a mpmc channel (whose implementation is in turn based on crossbeam), is there any possibility of reviving this idea? Apologies for replying to a years old closed issue but this is the only/most recent mention of this topic. The impl !Sync for Receiver<T> (https://doc.rust-lang.org/stable/src/std/sync/mpsc/mod.rs.html#194) does not specify a reason so I assume there's nothing technical stopping this.
I assume this is mainly a naming churn problem, since we can't rename the mpsc module to mpmc, and it would be weird to expose the exact same types through a second module based on a 'semantic' change.
Ultimately I'd love to have this in standard Rust, since it already exists in std anyway, but I'm curious to know what would need to be done to make this happen (besides the obvious 'make an RFC'), what kind of approach would be deemed possible and preferred by the libs team.

@Centril @eddyb @jonhoo @Kixiron @WiSaGaN, apologies for the ping, but could we please consider reopening this issue?
I believe that LunarLambda has made excellent points that warrant further comments at least.
The closure of this RFC based on the existence of third-party libraries overlooks the benefits of having this capability integrated into the standard library, especially accessibility, consistent maintenance, and reduced dependency overhead.
Given these points, I believe there is a strong case for revisiting this RFC. Having MPMC channels in the standard library would greatly enhance Rust's concurrency primitives and provide a more robust solution for concurrent programming.
Thank you in advance for considering this request.

@rmnilin issues in the RFC repo are mostly just a place for folks interested in an idea to talk about it. It being open or closed says nothing about the actual state of this. they're not used in any decision making process by the teams.
pull requests are "actual" RFCs that are being actively developed. anyone interested in moving a proposal forward would write an RFC and open a pull request with the RFC itself.

Note that the libs team is generally positive to adding this. Someone needs to do the work, however.


Update datalist.json

added the supporting 12.2 version to the list

Invalid PR. It adds new browser versiom

Yeah, until Safari 12.2 is properly added you can't include it. Also for now "Safari TP" is sufficient to predict what'll be in 12.2.


How do I make NextMessageAsync work in slash commands?

Hello, so I wanted to use NextMessageAsync for my bot, but I got problem. It needs something called SocketCommandContext and it does need user and message, but firstly in SocketCommandContext user must be DiscordSocketClient, but SocketClient cannot be converted, secondly you need command message, but slash command is not a messsage, please help!

Could you send some code? For What I see now is that you need to use InteractiveBase<SocketCommandContext> instead of just InteractiveBase

I don't know what should I send

Module where you have a problem


Consider removing our dart:jni support

Since we now have an alternative approach to dart:jni, we should probably consider removing it, to alleviate ourselves of the documentation and maintenance burden.
If we keep it, we should make sure we provide an iOS equivalent, and we should write dartdocs for it.
cc @jason-simmons

I support removing it.  We can always revert/add it back.

dart:jni does have some advantages over host messages:

it can call into Java code or Android APIs synchronously.  Host messages are async only.
it can be used in apps that are built entirely in Dart with the flutter_tools workflow.  Host apps require a Java toolchain.

To clarify, I don't have an opinion about whether we should keep it or remove it. Our current situation is unstable in that it's missing an equivalent on iOS and it's missing docs (and tests?) and has minimal usage. We should either add an equivalent to iOS, add docs (and tests?), and get customers to use it, or, we should remove it. Either way is fine by me. It's just the status quo that isn't. :-)

In terms of iOS, https://github.com/flutter/engine/pull/2217 was our wip dart:objc support.

Looks like we have docs for dart:jni: http://docs.flutter.io/flutter/dart-jni/dart-jni-library.html

What was the resolution of this issue?

Current status is we have docs but no iOS peer.

Sounds like we decided to keep dart:jni around. Will close. Feel free to reopen if we want to reconsider.


Concerning #12464 - From which version is this provided?

This is implemented June 3, 2021; in version 19.0 and up.
trigger OnOpenPage()
begin
InitButtons();
if not FiltersInitialized then begin
TraceMethod := TraceMethod::"Usage->Origin";
ShowComponents := ShowComponents::"Item-tracked Only";
end;
    SetPackageTrackingVisibility();
end;


tried to deploy a contract

Got an issue error
"Whoops! something went wrong
An error occurred on the client. Please feel free to file an issue and describe: what you were attempting to do, the URL you are trying, and anything that is in the console."

this was due to a testnet downtime and should be resolved.


Functional tests

Based on the requirements documentation prepare a test script (list of test cases) to verify that the final system delivers the agreed functionality.

The file with functional tests based on requirements (U.C.) is [here](https://cernbox.cern.ch/remote.php/webdav/__myprojects/digital-repositories/Services_Projects/CDS/Books/Functional tests/TestCase Backoffice.ods?x-access-token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50X2lkIjoiZmNvc3RhIiwiZ3JvdXBzIjpbXSwiZGlzcGxheV9uYW1lIjoiRmxhdmlvIENvc3RhIChmY29zdGEpIn0.IzE6VYA7P8k9--YZnj3tWjc32OQna-1LYJ5_1nKZtQY]


[type: refactor] renamed logging plugin to loggingConsole plugin

// Describe your PR here; eg. Fixes #issueNo

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #3309 (babba8a) into master (dfd5cb3) will decrease coverage by 0.20%.
The diff coverage is 90.00%.

@@             Coverage Diff              @@
##             master    #3309      +/-   ##
============================================
- Coverage     64.40%   64.19%   -0.21%
+ Complexity     5178     5168      -10
============================================
  Files           742      742
  Lines         20957    20957
  Branches       1919     1919
============================================
- Hits          13498    13454      -44
- Misses         6183     6214      +31
- Partials       1276     1289      +13

Impacted Files
Coverage Δ

.../plugin/logging/rocketmq/AbstractLogCollector.java
77.50% <ø> (ø)

...u/plugin/logging/rocketmq/DefaultLogCollector.java
100.00% <ø> (ø)

...plugin/logging/rocketmq/LoggingRocketMQPlugin.java
90.90% <ø> (ø)

...henyu/plugin/logging/rocketmq/body/BodyWriter.java
55.17% <ø> (ø)

...ogging/rocketmq/body/LoggingServerHttpRequest.java
20.00% <ø> (ø)

...ugin/logging/rocketmq/config/LogCollectConfig.java
100.00% <ø> (ø)

...gin/logging/rocketmq/constant/LoggingConstant.java
0.00% <ø> (ø)

...lugin/logging/rocketmq/entity/LZ4CompressData.java
100.00% <ø> (ø)

...ugin/logging/rocketmq/entity/ShenyuRequestLog.java
100.00% <ø> (ø)

...etmq/handler/LoggingRocketMQPluginDataHandler.java
70.83% <ø> (ø)

... and 21 more

Continue to review full report at Codecov.

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


HTML5Lib Exception

Every so often, I am getting the following error:
File "/Users/adityaoberai/Programming/Python/StockPriceRetriever/yf_extender.py", line 8, in get_ticker_symbol
   return ticker.get_info()['symbol']
 File "/Users/adityaoberai/Programming/Python/StockPriceRetriever/venv/lib/python3.8/site-packages/yfinance/base.py", line 415, in get_info
   self._get_fundamentals(proxy)
 File "/Users/adityaoberai/Programming/Python/StockPriceRetriever/venv/lib/python3.8/site-packages/yfinance/base.py", line 284, in _get_fundamentals
   holders = _pd.read_html(url)
 File "/Users/adityaoberai/Programming/Python/StockPriceRetriever/venv/lib/python3.8/site-packages/pandas/io/html.py", line 1085, in read_html
   return _parse(
 File "/Users/adityaoberai/Programming/Python/StockPriceRetriever/venv/lib/python3.8/site-packages/pandas/io/html.py", line 891, in _parse
   parser = _parser_dispatch(flav)
 File "/Users/adityaoberai/Programming/Python/StockPriceRetriever/venv/lib/python3.8/site-packages/pandas/io/html.py", line 840, in _parser_dispatch
   raise ImportError("html5lib not found, please install it")
ImportError: html5lib not found, please install it'

I have already installed Html5lib...
Has anyone else had this issue and has anyone found a solution?

Could you provide an example of your code? Is there any specific condition that triggers this issue?

I get this when attempting to look up a stock symbol containing special characters?
import yfinance
result = yfinance.Ticker('YAC.U') # or YCBD$A or anything similar
result.info

This is caused by pandas attempting to fetch a list of institutional holders when yahoo doesnt show any.
Good: https://finance.yahoo.com/quote/AAPL/holders
Bad: https://finance.yahoo.com/quote/AACQU/holders
I have bypassed the error this way: https://github.com/castis/yfinance/commit/0a1eb6f4886e2cde6ed24cbebbd6b0d167561bc5


[$1000] Removed reactions on offline mode re appear on the receiver account and there is no way to remove them

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

Action Performed:

Open two new accounts on ND
Start a chat with each other
Go offline (disconnecting from the device required)
React with :+1: on account A to the last message posted
React with :+1: on account B to the last  message
Remove both the reactions from account A and account B
Go online

Expected Result:
There should be no reaction on the last message
Actual Result:
Account B shows the :+1: reaction on the last message sent, it says that account A reacted on it, but when opening account A the reaction is not there.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

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

Version Number: 1.3.46-1
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/b3a57aed-c325-48c1-916d-1c5ea9131190
https://github.com/Expensify/App/assets/43996225/66d4f42e-2093-43f4-917c-d9880e47b108
Expensify/Expensify Issue URL:
Issue reported by: @nathan-mulugeta
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690268434954109
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015cd66a26c22a758e
Upwork Job ID:<PHONE_NUMBER>039745024
Last Price Increase: 2023-11-01

Dupe of https://github.com/Expensify/App/issues/23388

Was able to reproduce, I fully turned off my wifi when doing so.   For the user that is still showing as having sent the 👍, they can click the 👍 emoji twice to remove it (if that matters).

Will do as soon as I can.

Hey @aimane-chnaif I just retested and I still am able to reproduce.

This bug never got to see external 👀 because it was potentially a dupe of https://github.com/Expensify/App/issues/23388. That one has been closed for a while (as non reproducible) and this one is reproducible so lets see if we can get some proposals to fix it.

I didn't managed to pinpoint it because I don't see the pusher events but it feels like a backend problem. Maybe the pusher sends the message to add an emoji to the wrong user for some reason. Also something we can consider is using set instead of merge for the reactions in openReport, right now we have a merge on the whole action and I think merge on collections don't remove from the collection

@cead22 , added Engineering to see if you have knowledge about how pusher might be affecting this bug

Maybe the pusher sends the message to add an emoji to the wrong user for some reason.

@stephanieelliott  I'm off this week, can you please keep 👀 on this then I'll snag it back on Monday?  Thx

Maybe the pusher sends the message to add an emoji to the wrong user for some reason.

That seems unlikely to me, and if it's happening, it's probably due to a bug on our end when calling Pusher. But I don't think that's the first thing to look at.
I think the first thing we should look at is:

The network queue when the reactions are added, and removed
The network requests when coming back online, and the order they're sent
The network responses

@mallenexpensify can you reproduce again and look into the above?

You can check using dev tools > application > storage > indexedDB > OnyxDB > keyvaluepairs > networkRequestQueue
You can check using dev tools > network. You can click on the request on the left and check payload for the request payload, and preview for the responses

Also, can you check if this can be reproduced using different devices, or if it's only when using the same device (eg, desktop web in the issue description) while being logged in into two different accounts?

Yes I was thinking of this also I had asked this on slack: https://expensify.slack.com/archives/C01GTK53T8Q/p1693669536590719?thread_ts=1693669536.590719&cid=C01GTK53T8Q I don't really understand what guarantees that the messages made by the pusher will be received in the same order they have been sent

@cead22 , took me a min (or... many),
For user B, which has the 👍 'stuck' I'm seeing this

Seeing this for network requests

Let me know if that doesn't look right, I went down a bit of an 🐰🕳 and the internet was going in/out while I was also going on/offline trying to test.

@cead22 when you have a min can you let me know if the screenshots from testing above make sense?

@cead22 , when ya have a min, I think/hope the above details are what you were asking for.  Thx

That looks like how it's supposed to be working, given there's an AddEmojiReaction request in the queued, followed by a RemoveEmojiReaction. I'm gonna test locally no

I couldn't reproduce with the steps in the issue description. After reconnecting I saw 2 AddEmojiReaction requests that failed, then a third AddEmojiReaction request that succeeded, and then a RemoveEmojiReaction that succeeded. This was the case for both accounts in the two different browser windows

Hey team I was retesting this now and I am able to reproduce this consistently. I will attach a screen recording down below. cc @cead22 @mallenexpensify
https://github.com/Expensify/App/assets/111440031/953071a5-7a97-4052-962f-4316a84ae824

Hey @aimane-chnaif I just retested this again and YES I am still able to reproduce this.

Yeah, I keep meaning to re-test on my end too, I was having trouble logging in with my test account last week.

https://github.com/Expensify/App/assets/22508304/c8e7d9a0-319d-46fd-a185-b315751ac738

Gonna post in #expensify-open-source to get some eyes

The pusher pushes removed reaction data before pushing add reaction data

I've spent some time trying to figure this one out and here's what I'm at so far.
I was able to reproduce it on staging with two separate Chrome windows. To be this looks like a race condition, that's why it works sometimes, and sometimes it doesn't. Once I was able to reproduce I looked through the logs on the affected Chrome window and started tracing the requests and responses. Here's the sequence:

https://staging.expensify.com/api?command=AddEmojiReaction: Adds emoji for user 15921625
https://staging.expensify.com/api?command=RemoveEmojiReaction: Removes emoji for user 15921625
https://staging.expensify.com/api?command=ReconnectApp: This response contains several merge actions, which are for some reason duplicate:

Adds emoji for user 15921625
Adds emoji for user 15912050 (from the other window)
Removes emoji for user 15921625
Removes emoji for user 15912050
Adds emoji for user 15912050
Adds emoji for user 15921625
Removes emoji for user 15912050
Remove emoji for user 15921625

https://staging.expensify.com/api?command=OpenReport: re-opens the report, but this api does not have any reactions data, so shouldn't affect anything

In the meantime, pusher is active as well:

OnyxUpdateManager] Applying update type: pusher with lastUpdateID: 27743511: this one adds emoji for user 15912050 (the other window)
[OnyxUpdateManager] Applying update type: pusher with lastUpdateID: 27743515: and this finally removes emoji for user 15912050

The emoji that's left on the screen belongs to user 15912050, the other screen. Tracking all the merge operations, as long as the reconnectApp batch actions are applied in sequence (which they should otherwise everything in the app would break), then I do not see any possible sequence of events that would leave this in this state. The last operations are always removing the emoji. The API requests are in sequence, so it will end with a remove emoji action. Reconnect app is also in sequence, it would end with a remove emoji. Pusher the same. Even if these messages end up mixed together, the last one is always removing an emoji.
One thing that occurred to be is that maybe the app is ignoring the last pusher, maybe for being out of sequence or something. Looking for this I found this code:
function apply({lastUpdateID, type, request, response, updates}: OnyxUpdatesFromServer): Promise<void | Response> | undefined {
    console.debug(`[OnyxUpdateManager] Applying update type: ${type} with lastUpdateID: ${lastUpdateID}`, {request, response, updates});

    if (lastUpdateID && lastUpdateIDAppliedToClient && Number(lastUpdateID) < lastUpdateIDAppliedToClient) {
        console.debug('[OnyxUpdateManager] Update received was older than current state, returning without applying the updates');
        return Promise.resolve();
    }
    if (lastUpdateID && (lastUpdateIDAppliedToClient === null || Number(lastUpdateID) > lastUpdateIDAppliedToClient)) {
        Onyx.merge(ONYXKEYS.ONYX_UPDATES_LAST_UPDATE_ID_APPLIED_TO_CLIENT, Number(lastUpdateID));
    }
    if (type === CONST.ONYX_UPDATE_TYPES.HTTPS && request && response) {
        return applyHTTPSOnyxUpdates(request, response);
    }
    if (type === CONST.ONYX_UPDATE_TYPES.PUSHER && updates) {
        return applyPusherOnyxUpdates(updates);
    }
}

Which tells me I would've seen a message saying that pusher message was ignored, which I did not. Looking closer at this function, there's one tiny detail that caught my attention.
If lastUpdateID === lastUpdateIDAppliedToClient, the message is ignored without any messages to console. That's because the first if checks if lastUpdatedID > lastUpdateIDAppliedToClient and the second if lastUpdatedAt < lastUpdateIDAppliedToClient.
It does make some sense because if they are the same that means we already applied that update, but just wanted to mention as there's the only thing that I could see that could remotely explain what's happening here. Updates are being sent around, maybe out of order, and we end up ignoring that very last push message because we thought we already applied it, when maybe we have not 🤷

Proposal
Please re-state the problem that we are trying to solve in this issue.
On a chat between two accounts, if both are offline, and both add an emoji to a message, and then remove, once they go offline, one of the accounts will still display the emoji attached to the message where it shouldn't.
What is the root cause of that problem?
The root cause is how pusher events are handled. After looking very closely at the logs and adding some logs myself, I found out that pusher events, although they are received and enqueued in order, they are not guaranteed to be processed in order. Here's what's happening on this example. See the images below:

This is the real time sequence of events that took place once I went back online (my line numbers might be slightly off because I added some debug).

Got an event from the pusher, to add a +1 to the message (src/libs/actions/OnyxUpdates.ts:62 - apply)
Enqueued the +1 to the message in a promise (src/libs/actions/OnyxUpdates.ts:47 - applyPusherOnyxUpdates)
Got another event from pusher, this time to remove +1 from the message (src/libs/actions/OnyxUpdates.ts:62 - apply). Note that this happened before the first event was processed, which is OK (it should at least)
Enqueued the "remove +1 from the message" in a promise (src/libs/actions/OnyxUpdates.ts:47 - applyPusherOnyxUpdates)

Now that's where it gets interesting. This is what happened:

Processed "remove +1 from message" event first (src/libs/actions/User.js:531)
Processed "add +1 to message" later (src/libs/actions/User.js:531)

You can see on the images highlighted in blue as well as in the "Done applying" messages right after then. They are out of order! So how did this happen? The messages have been received in sequence, enqueued in promises in the right sequence, but the promised resolved out of order. Here's why:
            return SequentialQueue.getCurrentRequest().then(() => {
                // If we don't have the currentUserAccountID (user is logged out) we don't want to update Onyx with data from Pusher
                if (!currentUserAccountID) {
                    return;
                }

                const onyxUpdatePromise = Onyx.update(pushJSON);
                triggerNotifications(pushJSON);

                // Return a promise when Onyx is done updating so that the OnyxUpdatesManager can properly apply all
                // the onyx updates in order
                return onyxUpdatePromise;
            });

This is the event subscriber (src/libs/actions/User.js:531). Before processing the event, it will call getCurrentRequest, which in itself returns a promise. If for whatever reason this takes more than one cycle to resolve, which with all the stuff going on in the background, it's very much likely to, events will get out of order! Imagine it's processing "add +1", call getCurrentRequest, it does not return right away, JS will move on and get back to it later. When it moves on, it will eventually get to "remove +1", which will also call getCurrentRequest, except that now it will return in the same cycle. Event got processed out of order!
The precise reasons as to why this happens hard to pinpoint. There's a lot going on on the "current request". When you come online there's apis being fired, pusher events being received, all at once. Either way, the entire process of processing pusher events relies on several level deep of promises and all it takes is one of them needing an extra cycle to resolve (getCurrentRequest).
Bottom line, pusher events processing code assumes that once you enqueue the promises, they will be executed in sequence, and this turns out to be a flawed assumption.
What changes do you think we should make in order to solve the problem?
I propose that we handle this on the TYPE.MULTIPLE_EVENT_TYPE.ONYX_API_UPDATE subscriber within src/libs/actions/User.js:527. Instead of assuming getCurrentRequest will resolve in the right order, we remove this assumption. For this we introduce a stack of events. Whenever a new pushJSON is received, we push it into a stack, before calling getCurrentRequest. Once this promise resolves, we shift the stack and get the oldest entry from it. That way, even if it ends up resolving out of order, we still get the events in the right order. Here's the suggested code:
function subscribeToUserEvents() {
    const pusherEvents = [];
...
...
...

    PusherUtils.subscribeToMultiEvent(Pusher.TYPE.MULTIPLE_EVENT_TYPE.ONYX_API_UPDATE, (inputPushJSON) => {
            pusherEvents.push(inputPushJSON);

            return SequentialQueue.getCurrentRequest().then(() => {
                const pushJSON = pusherEvents.shift();

                // If we don't have the currentUserAccountID (user is logged out) we don't want to update Onyx with data from Pusher
                if (!currentUserAccountID) {
                    return;
                }

                const onyxUpdatePromise = Onyx.update(pushJSON);
                triggerNotifications(pushJSON);

                // Return a promise when Onyx is done updating so that the OnyxUpdatesManager can properly apply all
                // the onyx updates in order
                return onyxUpdatePromise;
            });
        }
    );

...
...
...
}

I tested it locally and was able to see a log where the inner code (where we shift pusherEvents) got a different event than what it has in its inputPushJSON, meaning it was processed out of sequence but still managed to process the right events in the right order. The UI issue disappeared after that.

What alternative solutions did you explore? (Optional)
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.

@aimane-chnaif from what I could gather the root cause is the fact that we have several levels of nested promises when a pusher event is processed.

applyPusherOnyxUpdates creates one promise for each pusher event
each of these promises will ultimately call SequentialQueue.getCurrentRequest() which is another promise
currentRequest promise waits on Request.processWithMiddleware promise
processWithMiddleware could potentially have more promises

With a lot going on in the background when you come back online (queued api requests, pusher messages, etc) I don't see how we can guarantee the order of pusher events because all these nested promises will resolve in unpredictable sequence.
I don't fully understand why SequentialQueue.getCurrentRequest().then(() => {...}) is needed within subscribeToMultiEvent but this is the main culprit here. But I have to assume there's a good reason for this call to be there and in that case I can't see a way to guarantee the sequence of pusher events without pushing them into a FIFO queue and processed them in sequence.
I see your point that it looks like a workaround and I do somewhat agree with it, but I'm yet to think of another solution for this problem (I'll give it some more thoughts). If anyone else has more ideas now that the real root cause was discovered, I'd be happy to hear.

Proposal
Updated

@aimane-chnaif I spent some more time looking into this and I believe I found the real root cause and a proper way to solve this. let me know your thoughts on the updated proposal.

Proposal
Updated
It just occurred to me that the second part of my proposal was not necessary, I was wrapping a promise into another promise which was redundant. The final proposal is much simpler and changes smaller.

I love that root-cause-analysis! Thank you for being so thorough. I understand the problem and it's extremely similar to a recent change that was made in Onyx to ensure that multiple database writes were handled in the correct order. You can see the PR here: https://github.com/Expensify/react-native-onyx/pull/384
I am having a hard time wrapping my head around how the solution is supposed to fix it exactly. When I have an array of things that each need a promise, and I want to run them in sequence (one after the other), I usually turn to something that looks more like this: https://stackoverflow.com/questions/43082934/how-to-execute-promises-sequentially-passing-the-parameters-from-an-array

but in general, the proposal makes sense 👍 Make the promises happen sequentially.

I am having a hard time wrapping my head around how the solution is supposed to fix it exactly.

@tgolen the thing with this issue is that we have two problems here:

applyPusherOnyxUpdates could be called with more than one OnyxUpdateEvent and we want these to be executed in sequence.
at the same time, applyPusherOnyxUpdates could be called multiple times, in parallel.

If applyPusherOnyxUpdates is called again while promises from a previous call are still executing, then we need to add them to the promise chain so that we wait until them all are finished before executing the new batch. Otherwise we'll just start a new promise chain in parallel, not solving this problem.
That's why my proposal has a promise at the top of the file (naming can be improved I admit), we can't deal with this locally inside of applyPusherOnyxUpdates due to the possible multiple parallel calls to it.
let pusherEventsQueuePromise = Promise.resolve();

All new promises processed by applyPusherOnyxUpdates will have to be chained in this one as to avoid processing them in parallel.
    for (const update of updates) {
        pusherEventsQueuePromise = pusherEventsQueuePromise.then(() => PusherUtils.triggerMultiEventHandler(update.eventType, update.data));
    }

The code above is responsible for creating this chain of promises handling both scenarios described earlier (multiple events in one call and multiple calls).
promise
  .then(()=>{...})
  .then(()=>{...})

is the same as:
promise = promise.then(()=>{...});
promise = promise.then(()=>{...});

Let me know if this makes sense.

Sure, I'll assign it to myself and to @barros001 for the proposal

Thanks for accepting my proposal, I'll have a PR up for review tomorrow.

PR is up for review.
@tgolen I ended up refactoring the for... block to use reduce instead based on the link you provided.

@aimane-chnaif can you please complete the checklist above?  Thx

Bug reporter: @Nathan-Mulugeta paid $250 via Upwork (report was from wayyyyyy back)
Contributor: @barros001 paid $1000 via Upwork
Contributor+: @aimane-chnaif paid $1000 via Upwork
Thanks @aimane-chnaif I agree with

I think this bug existed for long time. Not able to find offending PR.

Created the testrail update GH
https://github.com/Expensify/Expensify/issues/340437


Add read/write text and save/load pickle utility

Add data saving utilities

Coverage increased (+1.2%) to 90.31% when pulling 189737d5340b84c8a1416d666b47dfd2710b82ee on feature/read_write_files into 84cbb7104e3c070d898427d2af4699ba94ea2084 on master.


Add new operators '=&' and '=|'

Currently in order to force an or comparison on multiword input one has to specify clause type. I am finding that I require or support a lot so thinking about adding =| operator to simplify the syntax.
line2 = 'test' {clausetype : 'or'}
Can be rewritten as
line2 =| 'test'

Hi Seemant
Just thought I'd say hi after such long time. Hope you are doing well.
All the best
Eni
--- Original Message ---
From: "Seemant Rajvanshi"<EMAIL_ADDRESS>Sent: 27 May 2015 08:24
To: "FlexSearch/FlexSearch"<EMAIL_ADDRESS>Subject: [FlexSearch] Add new operators '=&' and '=|' (#26)
Currently in order to force an or comparison on multiword input one has to specify clause type. I am finding that I require or support a lot so thinking about adding =| operator to simplify the syntax.
line2 = 'test' {clausetype : 'or'}
Can be rewritten as
line2 =| 'test'

Reply to this email directly or view it on GitHub:
https://github.com/FlexSearch/FlexSearch/issues/26


Explain details of fetch function

The readme states The fetch method mimics the browser's fetch API. Does this mean that the input and output are exactly the same as the browser's fetch API?

Indeed, that is what we are aiming for.
Did you find inconsistencies? Or should we document/explain this better?

No inconsistencies. It's about the documentation: I would clearly state that the goal is to have the same input/output.

If you want I can add an extra sentence to the documentation via a PR. Let me know 😄

Yes please!


There is a problem with downloading the new illustration.

Prerequisites

[ y] Did you read FAQ section in readme.md?
[ y] Did you test with the latest releases or commit ?
[y ] Did you search for existing issues in Issues?

Description
There is a problem with downloading the new illustration.
Other tasks fine and I tried reinstalling them, but the problem was the same.
I haven't checked with another account or other desktop.
The error was printed out like this.
Input: 8
Start Page (default=1):
End Page (default= 0, 0 for no limit): 1
Processing New Illust from bookmark
Page #1
Source URL: https://www.pixiv.net/bookmark_new_illust.php?p=1
Error at process_new_illust_from_bookmark(): (<class 'AttributeError'>, AttributeError("'NoneType' object has no attribute 'findAll'"), <traceback object at 0x0449C2C8>)
Traceback (most recent call last):
File "PixivUtil2.py", line 1388, in main
File "PixivUtil2.py", line 1092, in main_loop
File "PixivUtil2.py", line 604, in menu_download_new_illust_from_bookmark
File "PixivBookmarkHandler.pyc", line 123, in process_new_illust_from_bookmark
File "PixivBookmark.pyc", line 108, in init
File "PixivBookmark.pyc", line 126, in __ParseNewIllustBookmark
AttributeError: 'NoneType' object has no attribute 'findAll'
Unknown Error, please check the log file: (<class 'AttributeError'>, AttributeError("'NoneType' object has no attribute 'findAll'"), <traceback object at 0x04B0EDC8>)
press enter to exit.
I wrote it in Google translation. Thank you for reading it.

which version do you use? can you use other option? Latest version in https://github.com/Nandaka/PixivUtil2/releases/
There should be a file named Dump for New Illust from bookmark.html in the application folder, can you upload it here?
I don't have issue in my pc.

Hmm, looks like the layout is quite different with what I have when accessing from https://www.pixiv.net/bookmark_new_illust.php?p=1
Clicking the See all from Works by users you are following in the front page.

will give me this page

pls check latest release

Sorry for not replying afterwards but I wanted to first test the new version with several acocunts. All smooth now, thanks!
Just a small thing there may have been already for a while but I notice only now, is it normal that the software counts pages of 60 pictures, even if the layout has got only 20 for every page? I noticed that now, for example, after 600 pictures it's page 11 (previously it would have been page 31).


mne not recognising mne-qt-browser version for epochs instance

Describe the bug
I created a conda environment, installed the full version of MNE (via conda & mamba), and installed ipympl for interactive views.
raw.plot(block=True) worked by itself with the mne-qt-browser feature, but when I wanted the same for the epoch instance (of the same raw data) with the command epochs.plot(block=True), it switched to matplotlib backend.
I then tried with this command: mne.viz.plot_epochs(epochs) and got the following message :
'You set the browser-backend to "qt" but your current version 0.0.0 of mne-qt-browser is too low for Epochs.Update with pip or conda.Defaults to matplotlib.
Using matplotlib as 2D backend.'
when looking at my conda environment, I have mne-qt-browser 0.5.0 installed, but it did not appear in mne.sys_info().
also, when I try to install mne-qt-browser via conda, I get the message that the requirement is already satisfied. (and I can see in the environment list of packages that mne-qt-browser is installed with version 0.5.0)
it seems that for my epoch instance mne does not recognize mne-qt-browser version, eventhough it works for the raw instance.
Steps to reproduce
sample_data_folder = mne.datasets.sample.data_path()
sample_data_raw_file = (
    sample_data_folder / "MEG" / "sample" / "sample_audvis_filt-0-40_raw.fif"
)
raw = mne.io.read_raw_fif(sample_data_raw_file)
event_dict = {
    "auditory/left": 1,
    "auditory/right": 2,
    "visual/left": 3,
    "visual/right": 4,
    "smiley": 5,
    "buttonpress": 32,
}
events = mne.find_events(raw, stim_channel="STI 014")
epochs = mne.Epochs(
    raw,
    events,
    event_id=event_dict,
    tmin=-0.2,
    tmax=0.5,
    preload=True,
)
epochs.plot(block=True)

Expected results
visualization of epoch instance with mne-qt-browser
Actual results☺
'You set the browser-backend to "qt" but your current version 0.0.0 of mne-qt-browser is too low for Epochs.Update with pip or conda.Defaults to matplotlib.
Using matplotlib as 2D backend.'
and then a working plot with matplotlib backend.
Additional information
I'm working on VS code in interactive mode with WSL2 on windows 11
Platform             Linux-<IP_ADDRESS>-microsoft-standard-WSL2-x86_64-with-glibc2.35
Python               3.10.11 | packaged by conda-forge | (main, May 10 2023, 18:58:44) [GCC 11.3.0]
Executable           /home/educos/miniconda3/envs/rxpaud/bin/python
CPU                  x86_64 (20 cores)
Memory               15.5 GB
Core
├☑ mne               1.4.0
├☑ numpy             1.23.5 (OpenBLAS 0.3.21 with 20 threads)
├☑ scipy             1.10.1
├☑ matplotlib        3.7.1 (backend=module://ipympl.backend_nbagg)
├☑ pooch             1.7.0
└☑ jinja2            3.1.2
Numerical (optional)
├☑ sklearn           1.2.2
├☑ numba             0.56.4
├☑ nibabel           5.1.0
├☑ nilearn           0.10.1
├☑ dipy              1.7.0
├☑ openmeeg          2.5.6
├☑ pandas            2.0.1
└☐ unavailable       cupy
Visualization (optional)
├☑ pyvista           0.39.0 (OpenGL 4.1 (Core Profile) Mesa 22.2.5 via D3D12 (Intel(R) UHD Graphics))
├☑ pyvistaqt         0.0.0
├☑ ipyvtklink        0.2.2
├☑ vtk               9.2.6
├☑ qtpy              2.3.1 (PyQt5=5.15.6)
├☑ ipympl            0.9.3
├☑ pyqtgraph         0.13.3
└☑ mne-qt-browser    0.0.0
Ecosystem (optional)
└☐ unavailable       mne-bids, mne-nirs, mne-features, mne-connectivity, mne-icalabel, mne-bids-pipeline

Argh probably an issue with the mne-qt-browser feedstock. I'll take a look

Should be fixed by https://github.com/conda-forge/mne-qt-browser-feedstock/pull/24, if you do mamba install mne-qt-browser in an hour or so it should fix the problem

Closing for

https://github.com/conda-forge/mne-qt-browser-feedstock/pull/24
https://github.com/mne-tools/mne-installers/pull/188

I had to reinstall the full mne package into a new conda environment, and now it works !
(just reinstalling mne-qt-browser did not update the package since for conda, it was already the latest version).
Thank you for responding this quickly !


Looks like LATEST_RELEASE is obsolete and currently outdated

See for the reference: https://groups.google.com/forum/#!searchin/chromedriver-users/LATEST_VERSION|sort:date/chromedriver-users/8VmMaFjs1cg/RO97v51rAAAJ

Thanx for the fix. I published version 1.6.2


buildFHSUserEnv: use -a "$0" in almost last exec

Motivation for this change
In a derivation using buildFHSUserEnv, I'd like to support multiple executables in $out/bin using a script such as:
  runScript = writeScript "${name}-wrapper" ''
    arg0="$(basename "$0")"
    for executable in ${lib.concatStringsSep " " (listOfExecutables)}; do
        if [[ "$arg0" == "$executable" ]]; then
            exec -a "$0" ${drvBeingWrapped}/bin/$executable "$@"
        fi
    done
  '';

While in the derivation coming out of buildFHSUserEnv, I'm putting in extraInstallCommands:
  extraInstallCommands = ''
    for executable in ${lib.concatStringsSep " " (listOfExecutables)}; do
        ln -s $out/bin/${name} $out/bin/$executable
    done
  '';

Where listOfExecutables is some list I'm controlling via:
let
  listOfExecutables = [ ..  ];
in
  buildFHSUserEnv rec {
  ...
};

The idea is that every executable's name in listOfExecutables is linked to the main executable - $out/bin/${name} and that executable is calling in turn runScript. I'd like runScript to know the original $0 in order to know what real executable inside the FHS environment to call.
Right now, it's impossible to implement this because the FHS' environment is calling runScript without -a "$0". This change should fix this (untested).
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

I went back and forth on this design when working on the quartus package, and I'm not sure I like using $0. If a user linked to $out/bin/$executable (where $executable is not the wrapper script, but one of the links) using a different name, this would mangle $0, in a way that it wouldn't if the output was an actual real script that set the command (which is the design I went for in the end).
I would suggest a slightly more invasive change, something along the line of
runScript = {
  'path/inside/out' = myScript;
};

Then, if runScript is a string, buildFHSUserEnv can go on as it does now. If it is an attrset, it can link and wrap each of the individual values. This seems more robust to me, but I'd appreciate comments.

Regarding https://github.com/NixOS/nixpkgs/pull/82259#issuecomment-606801508:
Requests for opinion are of course also okay, although they do take a bit more time :)
I've actually seen this one already. I didn't act on it because

I'm not very experienced with buildFHSUserEnv and I don't understand the problem you're solving.
You added an "untested" disclaimer, so I assumed this is not ready for final review yet.

I would suggest a slightly more invasive change [...]

@kwohlfahrt I tend to agree now... I'll work on this sometime...


Clipboard: Fix errors regarding how to respond to WM_RENDERALLFORMATS

This change corrects a few errors in how to respond to the WM_RENDERALLFORMATS window message, which is posted by Windows to a window that is the "clipboard owner" (the creator of the data currently on the clipboard) when that window is being destroyed.

If you want to render some clipboard formats in response to WM_RENDERALLFORMATS, you must first call OpenClipboard(). I fixed an incorrect statement that you must not call OpenClipboard().

After calling OpenClipboard(), you should call GetClipboardOwner() to check that your window is still the clipboard owner, since another app may have opened and taken ownership of the clipboard by calling OpenClipboard() and EmptyClipboard() before you opened the clipboard, and you don't want to overwrite that other app's data. I added a note of that to the docs.

You should not normally call EmptyClipboard() yourself before rendering data and setting it with SetClipboardData(), since that will erase the formats you have already rendered. I removed the incorrect claim that you must call EmptyClipboard(), and replaced it with a warning not to do so in most cases.

I also updated some URL links that still work but redirect, and fixed a grammatical typo.
Pairs with https://github.com/MicrosoftDocs/sdk-api/pull/305

@metathinker : Thanks for your contribution! The author(s) have been notified to review your proposed change.

I actually happened to notice these mistakes when researching an otherwise unrelated topic - I saw that way back in December 2012, @oldnewthing had actually pointed out the mistakes in response to a confused reader, and I was surprised to find out that 7.5 years later, they were still not yet corrected.

@metathinker : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Even Charles Petzold's Programming Windows gets this wrong, interestingly enough. The section on clipboard delayed rendering in my copy of the 5th edition (pages 583-584, or here in the O'Reilly subscription ebook) says that when handling WM_RENDERALLFORMATS, you "should" empty the clipboard with EmptyClipboard(), while in fact it is not necessary to do so and, as I described above, you almost certainly should not do so since you'll destroy all the data formats you already rendered.
Petzold's code snippet also fails to do the GetClipboardOwner() check after calling OpenClipboard(). But that's not as big of a bug, since the race to obtain the OpenClipboard() clipboard lock will almost always be won by the window that received WM_RENDERALLFORMATS.

@metathinker : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@metathinker : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@metathinker : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@metathinker : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks for your (extensive) contribution! I've merged your changes and they should be live soon.


about compatibility of eos and clang version

Does EOS support clang 10 and clang 11?

Hi @gzliudan,
We're currently using clang 8.  We haven't officially tested clang 10 or 11 but we have anecdotal evidence that it might work.


v2

Support for more generic installers (e.g. Debug Adapter, formatter/linter for null-ls)
Restructure plugin
Change plugin name (lspinstall.nvim -> installer.nvim)

It's working now for the time being.

Done for now.


fix: change public role like gamma procedure

SUMMARY
Fixes #9807, by merging the Public role definition with pre-existing data access permissions (all other permissions not included on the template role are removed).
This PR also makes the definition of the Public role more configurable, for this PUBLIC_ROLE_LIKE_GAMMA is removed (breaking change) and a new key is introduced PUBLIC_ROLE_LIKE where a specific role can be set, like Admin, Alpha, Gamma or any other role preexisting on the DB or configured has a builtin role on the config itself.
To retain the same behaviour configure it the following way:
PUBLIC_ROLE_LIKE = "Gamma"

ADDITIONAL INFORMATION

[X] Has associated issue: #9807
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[X] Introduces new feature or API
[X] Removes existing feature or API

Codecov Report

Merging #10674 into master will decrease coverage by 0.06%.
The diff coverage is 94.59%.

@@            Coverage Diff             @@
##           master   #10674      +/-   ##
==========================================
- Coverage   64.36%   64.30%   -0.07%
==========================================
  Files         785      785
  Lines       36981    37016      +35
  Branches     3530     3530
==========================================
  Hits        23803    23803
- Misses      13070    13101      +31
- Partials      108      112       +4

Flag
Coverage Δ

#cypress
54.09% <ø> (-0.73%)
:arrow_down:

#javascript
60.91% <ø> (ø)

#python
59.87% <94.59%> (+0.15%)
:arrow_up:

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

Impacted Files
Coverage Δ

superset/security/manager.py
91.01% <94.28%> (+0.85%)
:arrow_up:

superset/config.py
90.38% <100.00%> (+0.03%)
:arrow_up:

superset/connectors/sqla/models.py
89.72% <100.00%> (+0.13%)
:arrow_up:

...et-frontend/src/SqlLab/reducers/getInitialState.js
33.33% <0.00%> (-16.67%)
:arrow_down:

superset-frontend/src/reduxUtils.ts
70.88% <0.00%> (-8.87%)
:arrow_down:

...rontend/src/SqlLab/components/TabbedSqlEditors.jsx
76.62% <0.00%> (-5.85%)
:arrow_down:

superset-frontend/src/SqlLab/actions/sqlLab.js
60.25% <0.00%> (-4.28%)
:arrow_down:

...rontend/src/SqlLab/components/SqlEditorLeftBar.jsx
44.00% <0.00%> (-4.00%)
:arrow_down:

superset-frontend/src/SqlLab/reducers/sqlLab.js
37.75% <0.00%> (-3.32%)
:arrow_down:

...end/src/SqlLab/components/TemplateParamsEditor.jsx
88.57% <0.00%> (-2.86%)
:arrow_down:

... and 12 more

Continue to review full report at Codecov.

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

Added a very simple landing page for the public/anonymous users, since rendering the login page is not correct if the Public role is "activated".
I think this is enough to establish a working workflow for the anonymous users, we can iterate on more pretty landing page on a following PR.


1.5 rc1

Incorporate @gungorbudak 's fixes.
Closes #458

Merging this to leave master in compilable state.


new google fonts check: ensure families can render language sample text

We recently added a lang package which is used to generate the new language fields in each metadata.pb file. We must check that the fonts can render each language's sample text, https://github.com/googlefonts/gftools/blob/main/Lib/gftools/lang/languages/aa_Latn.textproto.
These sample texts are a new feature. I think they work correctly for noto, https://fonts.google.com/noto/specimen/Noto+Serif+Kannada. According Rosalie, this has already been implemented in the sandbox.

can we create a separate python package containing those textproto files? Just like we did for glyphsets.
gftools is too big to be added as a fontbakery dependency

Agreed but we'll need to coordinate this first with the internal team.
I know this is a hack but for gftools, I use a script which pulls the data I need from google/fonts.

OK. I will start prototyping this by:

creating a separate python package for the language data on my own github account (not yet to be hosted on the googlefonts organization).
Then I'll publish it on pypi and use it in fontbakery to implement this new check.
Then I'll send a PR to gftools to also use this new package. So that you can review and give some feedback.
Finally I'll ask @davelab6 to accept migrating the repo from felipesanches/languages to googlefonts/languages.

All of this will happen without touching the language files currently hosted at google/fonts repo, so it should not affect internal Google Fonts team usage of those files. In the future we can keep track of those files and keep the separate module in sync, or the internal Google team may actually start using the module, removing the files from the google/fonts repo. In both scenarios, all is good, I think.

The repo with my initial implementation of the module is here:
https://github.com/felipesanches/languages
Sample usage:
from languages import lang_support
langs = lang_support.LoadLanguages()
numerals = langs["yi_Hebr"].exemplar_chars.numerals
assert numerals == '- ‑ , . % ‰ + 0 1 2 3 4 5 6 7 8 9'

scripts = lang_support.LoadScripts()
assert scripts["Tagb"].name == 'Tagbanwa'

regions = lang_support.LoadRegions()
br = regions["BR"]
assert br.name == 'Brazil'
assert br.region_group == ['Americas']

font = TEST_FILE('nunito/Nunito-Regular.ttf')
supported = lang_support.SupportedLanguages(font)
langs = [supported[i].name for i, _ in enumerate(supported)]
assert len(langs) == 225
assert 'Lithuanian' in langs

A python module called "languages" already exists: https://pypi.org/project/Languages/
So I'll have to give it a different name. I may use something like GFLanguages. Any other suggestions?

https://pypi.org/project/gflanguages/0.1.0/


PhantomJS has crashed

in case you haven't noticed, there's lots of "PhantomJS has crashed" messages on this board.  Nobody's going to read yours unless your title is more specific.

in case you haven't noticed, there's lots of "PhantomJS has crashed" messages on this board. Nobody's going to read yours unless your title is more specific.

Thanks for trying to help us with the backlog here. There are an awful lot of "PhantomJS has crashed" reports with not nearly enough information for us to do anything about them. (Most of them are upstream bugs in WebKit which we can't do anything about anyway.)
However, please be more polite to newcomers. Everyone has to start somewhere, and we don't want people to get the impression that we don't want to hear about the bugs.
Also, to everyone reading this: this is not a discussion board, it is a bug tracker. If you are looking for help, including help on how to work around a bug, or even help on how to report a useful bug, please take it to the mailing list instead.


css button styling

Is there a way to, for example, add the class btn-sm to the transcluded dropdown button?
The default button is way too big in the bootstrap template i'm using.
Right now i've tackled it like this:
.user-menu-dropdown > button {
  padding: 9px 13px;
  font-size: 13px;
  line-height: 1.385;
  border-radius: 4px;
}

where the css rules are the styling for a bootstrap btn-sm and .user-menu-dropdown is added to the main ol list item as classname.

button size class is implementing but not has been released. If you see the current master branch
where the code at https://github.com/lordfriend/nya-bootstrap-select/blob/master/src/nya-bs-select.js#L82-L85 has already support the btn-sm, btn-lg, btn-xs.
Notice that you cannot use button size class together with form-control class.


Connect whitelist Merkletree

How do I link my merkle tree whitelist? When I add the mint-whitelist button and try to mint with it, it says that the address is not whitelisted. How do I link my whitelist?

To do that, you need to fork and update the code to use IPFS whitelist config instead of our backend. See this file on feature/whitelist branch:
https://github.com/buildship-dev/webflow-nft-components/blob/feature/whitelist/src/mint/whitelist/web3.js#L45

How it works now:
Our backend stores merkle tree and returns hashes for a given address (e.g. for my address it works like this):
https://metadata.buildship.dev/api/extensions/merkle-tree/airdrops/0xffE06cb4807917bd79382981f23d16A70C102c3B
How it might work alternatively:
There's an IPFS static file containing merkle tree info for all addresses, and the proof is generated on the frontend using https://github.com/miguelmota/merkletreejs

Has anyone done this successfully?


Fix spelling

This is great, thanks @jbampton.  Can you drop your email to<EMAIL_ADDRESS>and I can put you in touch with my editor for the book chapters review?
thank you 💯 !


The symbol "Stats" has already been declared

Hi, I'm incorporating wasmedge-quickjs into my own project that doesn't use wasmedge as a runtime, and I'm trying to get the fs module to work.
I get this error when I try to import it with my bundling process: TypeScript error: The symbol "Stats" has already been declared
It seems pretty obvious why this is the case, see here: https://github.com/second-state/wasmedge-quickjs/blob/main/modules/internal/fs.js#L2
Stats is both imported and there is a local class called Stats as well. This is not allowed.

This seems to be happening with various files, I'll put them in here as comments:
TypeScript error: The symbol "debuglog" has already been declared
https://github.com/second-state/wasmedge-quickjs/blob/main/modules/util.js#L2

TypeScript error: The symbol "promisify" has already been declared
https://github.com/second-state/wasmedge-quickjs/blob/main/modules/util.js#L1

TypeScript error: The symbol "deprecate" has already been declared
https://github.com/second-state/wasmedge-quickjs/blob/main/modules/util.js#L1

Running this project outside of WasmEdge could have a lot of WASI challenges. WASI preview 1 simply does not define a lot of host functions required in nodejs.

These are just basic JS issues.
Stats is both imported and there is a local class called Stats as well. This is not allowed.
The build process you all have seems to ignore the issues for some reason. You'll notice in the OP that I point out the issue directly, you can't import something with the same name as a class in the same module/file.
These errors are repeated a couple times.

This is similar to what's happening various times in the wasmedge-quickjs codebase: https://www.typescriptlang.org/play?ssl=1&ssc=10&pln=1&pc=22#code/JYWwDg9gTgLgBAbzlApgQwCYDFgBsUDKAngHYDGcAvnAGZQQhwDkNAzkwNwBQXZuarVsnTY8hUhQSUgA

May I ask how you got these warnings? Are you using TypeScript, or did you simply import these problematic modules?

We are using TypeScript yes, but specifically esbuild as our bundler. Our Wasm binaries must then run in Node's Wasm environment and the Internet Computer's Wasmtime environment.
Here's the most important part of our build process: https://github.com/demergent-labs/azle/blob/main/src/compiler/compile_typescript_code.ts#L56


Plugin not working

After upgrading to version 0.14.2 the plugin has stopped working for me. I was wondering if this has happened to anyone else? Also not seeing any issues within console. I am running on the latest version of Atom at this time (1.6.0).
Reverted plugin version back to 0.14.0 for the time being. Any help is appreciated!

+1. Same issue than brukh.

One of the major differences I see between version 0.14.0 and 0.14.2 is that the description of the plugin + the owner of the plugin matches this repo at version 0.14.0, but at version 0.14.2 it's instead Facebook that's the owner and the description is just a generic description of React.
Has this module somehow mistakenly got replaced with React itself or something in version 0.14.2?

Hi! I think something was changed in apm in the latest version of atom and
now it might prefer npm over apm packages with the same name. I'll rename
the plugin tomorrow just in case this is true.
On Sunday, 27 March 2016, Pelle Wessman<EMAIL_ADDRESS>wrote:

One of the major differences I see between version 0.14.0 and 0.14.2 is
that the description of the plugin + the owner of the plugin matches this
repo at version 0.14.0, but at version 0.14.2 it's instead Facebook
that's the owner and the description is just a generic description of React.
Has this module somehow mistakenly got replaced with React itself or
something in version 0.14.2?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/orktes/atom-react/issues/152#issuecomment-202126019

--
Ystävällisin terveisin,
Jaakko Lukkari

Thanks @orktes - really appreciate it!
Until the issue is resolved I found a workaround.

Navigate to your packages directory: ~/.atom/packages/
Clone the repo: git clone https://github.com/orktes/atom-react
Install dependencies: apm install

Restart Atom and it should work. If not launch atom from the command line using atom
Let me know if anyone has questions :+1:

Apparently this has been tagged as a bug in APM https://github.com/atom/apm/issues/529. Little bit hesitant in adding a random prefix (even atom-) into the package name if they are able to get this fixed to the soon. I'll try to get more info on the issue.

I'll see if releasing a new minor helps with the issue.

I think this is also related to the broken installation: #151
Installing 0.15.0 fixed all my issues.

Updated Atom to 1.6.1 and installed the v0.15.0 fixed the issues. Thanks for the help @orktes


about three.js vision

The function lookAt() in the Object3D in revision 88 and above of three.js has been changed, so there caught a problem that mesh can't be seen.
then I modified: "centerHigh = new THREE.Vector3(centerHigh.x, centerHigh.y, centerHigh.z)" at line 205 in CesiumThree.js .and it works.
After all, Cartesian3 can't be used as Vector3 at all situations.

revision 88 - 95 it works.


Parse sql error with offset and limit

Describe the bug
parse sql error with offset and limit
To Reproduce
Steps to reproduce the behavior:

Example SQL：select * from dual OFFSET ? LIMIT ?;
Parsing this SQL using JSqlParser with this statements@Test
public void testParseStatements() throws Exception {
    Statements result = CCJSqlParserUtil.parseStatements(
            "select * from dual OFFSET ? LIMIT ?;");
    assertEquals("SELECT * FROM dual OFFSET ? LIMIT ?;\n", result.toString());
}

Exception

expected: SELECT * FROM dual OFFSET ? LIMIT ?;
but was: SELECT * FROM dual LIMIT ? OFFSET ?;

Expected behavior
A clear and concise description of what you expected to happen.
System

Database you are using
Java Version
1.8
JSqlParser version
4.3

Greetings.
Indeed, the order of the LIMIT and OFFSET terms is not observed, but hard-coded in the de-parser.
I am still reluctant to declare that an error, because I do not see any merit in observing the order and am not sure if all RDBMS are flexible regarding this order. Instead, I see it similar to the white-space and comments: it does not add any value to the SQL statement and won't stop the SQL statement to be executed correctly.
So to me, this is a "Won't fix".
However, if you would like to contribute a PR we certainly would accept/merge it.


IE11 children width issue with gutter

When there's a padding or margin on child elements, Internet Explorer 11 calculates children widths improperly which results in wrong number of columns (eg. only 2 instead 3). This happens whenever you set a gutter (which uses margins).
Applying max-width with calc(width percent - gutter) solves the issue. Note that it's important to substract 0.001% from the percentage too.
  article
    +above(tablet)
      cell(1, 2, g: 1.5rem)
      max-width: calc(49.999% - 1.5rem)
    +above(desktop)
      cell(1, 3, g: 2rem)
      max-width: calc(33.333% - 2rem)
    +above(hd)
        cell(1, 7, g: 2rem)
        max-width: calc(99.999% / 7 - 2rem)

I don't see issues with this workaround in other browsers, perhaps this would fit in the core?

Hi, with IE11 there is a lot of bugs related to flexbox itself. I am not sure if this is the problem here but here is a very good list of potential flexbox bugs: https://github.com/philipwalton/flexbugs To be honest I haven't worked on this lib for months. This is mainly because I've found that sometimes it is better just to use standard flexbox with autoprefixer that using another abstraction for that. The other thing is that soon we will all use CSS Grid for layouts. But I'll try to take a look if I find more time.

Ok, no worries - one of the reasons I posted this to let others find this workaround for IE.


Added a new popGrapheme function to std.uni

Since it's Hackathon today, even if I'm not there I decided to do something in similar spirit.
@atilaneves new symbol canditate for phobos, meaning it needs your approval!

ping @atilaneves

I don't know how useful this is so I would like someone that knows/cares about unicode more than me opines. Not sure who. @rikkimax ?

I don't know how useful this is so I would like someone that knows/cares about unicode more than me opines. Not sure who. @rikkimax ?

It allows you to get the grapheme length extracted, so you can slice and dice your string without allocation.
Kinda like graphemeStride except it pops it from the input like parse does.
It is one of those things that if a unicode library is being used you'll end up having a hundred variations of. I see nothing wrong with wanting functions like this.

I don't know how useful this is so I would like someone that knows/cares about unicode more than me opines. Not sure who.

Maybe @John-Colvin ? I think he was supposed to take charge, at one point at least, of my Unicode-related project at Symmetry.

I don't know how useful this is so I would like someone that knows/cares about unicode more than me opines. Not sure who. @rikkimax ?

It allows you to get the grapheme length extracted, so you can slice and dice your string without allocation.
Kinda like graphemeStride except it pops it from the input like parse does.
It is one of those things that if a unicode library is being used you'll end up having a hundred variations of. I see nothing wrong with wanting functions like this.

So you're saying we should merge it?

I don't know how useful this is so I would like someone that knows/cares about unicode more than me opines. Not sure who. @rikkimax ?

It allows you to get the grapheme length extracted, so you can slice and dice your string without allocation.
Kinda like graphemeStride except it pops it from the input like parse does.
It is one of those things that if a unicode library is being used you'll end up having a hundred variations of. I see nothing wrong with wanting functions like this.

So you're saying we should merge it?

I have no argument against merging. It is sound, it's a variation of something that exists and is worth having different variants for.
The reason I'm avoiding the phrase "merge it" is because of PhobosV3 vs V2. I don't know how you and @LightBender want to handle it.

I'm good with merging this.

Need to get it passing the build though.

Fails at some of the platforms but passes on others, and I'm not doing anything platform-specific. So probably spurious. I'll attempt restarting the tests.

Windows 64bit test is now passing, Mac tests are still failing. Seems to be the same issue in #9056 . I wonder what's going on there. @RazvanN7 do you know?

It seems that the Mac machines are broken. Most likely this PR is not at fault.

Well Mac machines don't apparently have the "required" labes so probably should just ignore them.
@atilaneves good to go now?

I'm going to merge this as there has been no dissent to date.


Local Screen Recording and Device Audio Recording

I am currently using the ROOTENCODER library for an Android application to record the screen while simultaneously streaming it live to an RTMP server. I have a couple of feature requests and questions regarding the library:

Local Screen Recording when RTMP Connection Fails:
-  Scenario: Suppose the connection to my RTMP server fails or is not established.
- Question: Is there a way for the ROOTENCODER library to continue recording the screen and save the recording locally on the device storage?

Microphone and Device Audio Recording:
- Question: Is there an option within the ROOTENCODER library to toggle between recording audio from the microphone and recording the device's internal audio? If not, could this feature be considered for future updates?

Hello,
Both cases are currently possible.
1 - You have a callback to detect connection fail. You can use that callback to start recording.
2 - Using StreamBase (RtmpStream, RtspStream, SrtStream, UdpStream or GenericStream class). You can change the audio and video source on fly.
You have an example changing video source on fly here:
https://github.com/pedroSG94/RootEncoder/blob/master/app/src/main/java/com/pedro/streamer/rotation/RotationActivity.kt#L70
https://github.com/pedroSG94/RootEncoder/tree/master/app/src/main/java/com/pedro/streamer/rotation
For internal audio you can use InternalSource and for microphone MicrophoneSource.
InternalSource need use a service to create the MediaProjection class like ScreenSource. You have an example using ScreenSource here:
https://github.com/pedroSG94/RootEncoder/blob/master/app/src/main/java/com/pedro/streamer/screen/ScreenService.kt

Hi,
So Thanks for the Reply, Internal Audio is working fine now and yes we can use the same MediaProjection instance for ScreenSource and InternalSource.

Also, Can u tell me how can I record to a local file.  I mean is this possible with your library or should I just implement my own recorder

You can do it this way:
https://github.com/pedroSG94/RootEncoder/blob/master/app/src/main/java/com/pedro/streamer/rotation/CameraFragment.kt#L128


Enforce unique ordering in GraphQL queries

Currently the GraphQL API allows queries like this:
{
  products(first: 10, sortBy: { field: PUBLISHED, direction: ASC }) {
    pageInfo {
      hasNextPage
      endCursor
    }
    edges {
      node {
        id
        name
      }
    }
  }
}

which results in the following SQL query:
SELECT DISTINCT "product_product"."id",
       -- ...
FROM "product_product"
WHERE (("product_product"."publication_date" <= '2020-02-02'::date OR "product_product"."publication_date" IS NULL) AND "product_product"."is_published" = true)
ORDER BY "product_product"."is_published" ASC
LIMIT 10

The GraphQL query for the next page looks like this:
{
  products(
    first: 10
    sortBy: { field: PUBLISHED, direction: ASC }
    after: "YXJyYXljb25uZWN0aW9uOjk="
  ) {
    pageInfo {
      hasNextPage
      endCursor
    }
    edges {
      node {
        id
        name
      }
    }
  }
}

The corresponding SQL query:
SELECT DISTINCT "product_product"."id",
       -- ...
FROM "product_product"
WHERE (("product_product"."publication_date" <= '2020-02-02'::date OR "product_product"."publication_date" IS NULL) AND "product_product"."is_published" = true)
ORDER BY "product_product"."is_published" ASC
LIMIT 10
OFFSET 10

Saleor allows to sort the entries by the PUBLISHED field which represents the boolean field is_published on the Product model. This field is not unique because many product entries can have the same value for this specific field.
In the Postgres docs it says: "When using LIMIT, it is important to use an ORDER BY clause that constrains the result rows into a unique order. Otherwise you will get an unpredictable subset of the query's rows" (Reference)
(There are also a lot of useful posts on Stack)
The is_published field ist not unique and when using the pagination feature of the GraphQL query this can lead to the following situation:
Query of the first page contains Product 1, Product 4, Product 7
Query of the second page contains Product 8, Product 9, Product 1
-> Product 1 is present on page 1 and 2
I agree that this situation doesn't happen often and can only occur under certain circumstances. But I had this exact same problem today with my own project and I fixed it by adding a second unique field to the ORDER BY clause.

Hey @saschametz. Thanks for pointing this out. We'll be working on some changes related to this issue, but I don't know the details yet. In the meantime, if you have more questions or feedback, just let me know.

I think @IKarbowiak is working on that


User::observe(new \NEkman\ModelLogger\Observer\Logger);

Hi, it wasn't clear for me where do you put that line?
User::observe(new \NEkman\ModelLogger\Observer\Logger);
Also, the names of the of the methods needs to be exactly as the defaults or it is supposed to have Action suffix?
Regards

I put it on the end outside of the class and it worked.
Great Laravel Package.


Allow to retrieve discussions/PRs using list_models

It would be nice to have a discussions=True parameter in list_models and other listing methods, to also add the discussions related information in the response. At the moment, one needs to do list_models + get_repo_discussions for each, but that involves quite a bit of work.
@julien-c argument on keeping as they are was

config and cardData are properties of the model in the data backend, whereas discussions are another object completely

From my side, I don't think that's a distinction that users should know/internalize, and I would find making list_models more powerful a better approach from a user perspective
(internal discussion)
WDYT @julien-c @Pierrci @Wauplin

an API always reflect a bit the underlying data model, IMO
I'd be in favor of keeping the server API unchanged, but coding a helper in huggingface_hub could be an option (I thought you were suggesting changing the server API)

Coding the helper in huggingface_hub directly is a bit clunky in my opinion. If the helper is just a for loop to get the discussions repo after repo, we end up with potentially thousands of calls to the API and a very long execution time
models = list_models()
for model in models:
    model.discussions = list(get_repo_discussions(model.id))

Even if we parallelize the calls, it still seems very unefficient.

Something we can do is to add a discussions: bool=True parameter to model_info(...) when we get information from a single model but I don't think that is what you want @osanseviero, right ?

Even if we parallelize the calls, it still seems very unefficient.

if it's inefficient in huggingface_hub it will similarly be inefficient on the backend =)

if it's inefficient in huggingface_hub it will similarly be inefficient on the backend =)

Yep, so having a helper in huggingface_hub is not really helpful in the end.
@osanseviero are you interested in having all the discussions for all the repos or a proxy like "number of discussions per repo" could be enough ? (and not even sure the backend can do that more efficiently than retrieving all the discussions)

Something we can do is to add a discussions: bool=True parameter to model_info(...) when we get information from a single model but I don't think that is what you want @osanseviero, right ?

No, my idea would be to programmatically get all the discussions from an organization of hundreds of repos, or even from all the Hub (but my use case is exploratory analysis, so maybe too specific/power-feature)

@osanseviero are you interested in having all the discussions for all the repos or a proxy like "number of discussions per repo" could be enough ? (and not even sure the backend can do that more efficiently than retrieving all the discussions)

Ideally all, as what I'm interested in is in knowing # of open/closed discussions/PRs across repos.
I've been thinking more on this and maybe it's too much of a power feature at the moment, so I would feel ok to freeze this for now.

Idk if that's possible, but is an internal DB access to do analytics already exists/is planned ? IMO that would be more the way to go for exploratory analysis both to avoid unnecessary features in the Hub API/huggingface_hub and to avoid overloading the prod database with thousands of requests at once. (cc @Pierrci @julien-c)

I'm closing this issue as "won't fix". As discussed in this issue, implementing this would be very inefficient ("n+1 calls") no matter if we implement it server-side or as an helper in huggingface_hub.  It also feels like a quite niche feature request


Check how the using doctests for code coverage changes the results

Tarpaulin is now able to use doctests and show coverage information.
However, the line information for the doc-block part are wrong and mean that other unrelated lines on the top of the file will be marked as covered. More information here: https://github.com/xd009642/tarpaulin/issues/215#issuecomment-538357957


db session middleware with custom  exception middleware raises AnyIO EndOfSteam when client closes early

First Check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
import time
from typing import Callable, Awaitable

import uvicorn
from fastapi import FastAPI
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from starlette.requests import Request
from starlette.responses import Response

SQLALCHEMY_DATABASE_URL = "postgresql://user:password@postgresserver/db"
engine = create_engine(
    SQLALCHEMY_DATABASE_URL
)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base(bind=engine)

app = FastAPI()

class ExceptionHandlerMiddleware:
    async def __call__(
        self,
        request: Request,
        call_next: Callable[[Request], Awaitable[Response]],
    ) -> Response:
        try:
            return await call_next(request)
        except Exception as exc:
            print(exc)

app.middleware('http')(ExceptionHandlerMiddleware())

@app.middleware("http")
async def db_session_middleware(request: Request, call_next):
    response = Response("Internal server error", status_code=500)
    try:
        request.state.db = SessionLocal()
        response = await call_next(request)
    finally:
        request.state.db.close()
    return response

@app.get('/')
def test():
    time.sleep(2)
    return {'message': 'hello'}

if __name__ == '__main__':
    uvicorn.run(
        'example:app',
        reload=True,
    )

Description
We are using the db session middleware exactly as described here in combination with a custom http exception middleware. When a client is disconnecting from us early we get spammed with a bunch of No response returned errors from starlette.
How to reproduce:
Open browser and call the endpoint /
Close the window before the request completes.
You will see that AnyIO raises a EndOfStream error which ends up being propogated as a Runtime Error with the message as No response returned
Operating System
Linux, macOS
Operating System Details
No response
FastAPI Version
0.73.0
Python Version
Python 3.9.6
Additional Context
SQLAlchemy==1.4.31

+1

+1 too.

+1 as well

+1 :(

I did some tests on this after Starlette merged https://github.com/encode/starlette/pull/1715, which contains further fixes for this. It resolved the issues in my fastapi app with early disconnection, so I'm feeling that the pending update will be the solution for this bug. https://github.com/encode/starlette/pull/1715


Fix tyro.conf for pydantic>=2

Unlike versions 1.x.x of pydantic, pydantic 2.x.x pulls runtime annotations into a separate metadata field.
Fixes #68

🏃  I appreciate your help with the test!!


Remove checking name when looking for a certain error message because…

… namespace is unique enough in e2e testing
Issue #, if available:
Three e2e test cases are failing
Should fail due to the specified domain is not found [TC4b] [It]
Should fail due to the specified account is not found [TC4a] [It]
Should fail due to the specified zone is not found [TC3] [It]

Looks like the name in the error log printed from failure domain controller is not something the test expect (cluster name).
E0930 15:34:33.597419       1 controller.go:317] controller/cloudstackfailuredomain "msg"="Reconciler error" "error"="resolving account accountXXXX details: could not find account accountXXXX" "name"="470ad1cb9d240bf93ab6fc6586b0052c" "namespace"="invalid-resource-mqt4sb" "reconciler group"="infrastructure.cluster.x-k8s.io" "reconciler kind"="CloudStackFailureDomain"

Description of changes:
This PR removes checking the name field when looking for a certain error message because the namespace only is unique enough in e2e testing.
Testing performed:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm


Make password creation form functional

Dependent PR
This PR builds on top of https://github.com/jzaki/bls-wallet/pull/95. Please review and merge that one first.
What is this PR doing?
Adds functionality to the password creation form:

Displays password strength using method from previous work

Shows weak/strong/etc
Description elaborating on weak/strong/etc
Horizontal bar with a width corresponding to granular strength measurement

Confirm password box shows whether it is correct/incorrect/incomplete
Continue button is disabled if a password hasn't been entered or the confirm field doesn't match

I included some naive css this time because I couldn't help it. Just things like background-color: green though. Intended to be thrown away.

How can these changes be manually tested?
Visit the password creation form and verify the above.
Does this PR resolve or contribute to any issues?
Resolves #97, resolves #98.
Checklist

[x] I have manually tested these changes
[x] Post a link to the PR in the group chat

Guidelines

If your PR is not ready, mark it as a draft
The resolve conversation button is for reviewers, not authors

(But add a 'done' comment or similar)

This was merged before #95. Oops.


[Boot tabs graph] Link each dot to test details page

Each dot is linked to a commit. By clicking it, selected commit must be updated. Closing this ticket.


[BugFix] Fix possible inconsistencies in the global dictionary

Fixes https://github.com/StarRocks/starrocks/issues/26472
two problems:

we always set dictionary info to tablet_commit_info 0. when rpc disorder, maybe the eos package was affected earlier.

    // Only send valid and invalid dict cache columns info once
    if (!_tablet_commit_infos.empty()) {
        std::vector<std::string> invalid_dict_cache_columns;
        invalid_dict_cache_columns.assign(invalid_dict_cache_column_set.begin(), invalid_dict_cache_column_set.end());
        _tablet_commit_infos[0].__set_invalid_dict_cache_columns(invalid_dict_cache_columns);

        std::vector<std::string> valid_dict_cache_columns;
        std::set_difference(valid_dict_cache_column_set.begin(), valid_dict_cache_column_set.end(),
                            invalid_dict_cache_column_set.begin(), invalid_dict_cache_column_set.end(),
                            std::back_inserter(valid_dict_cache_columns));
        _tablet_commit_infos[0].__set_valid_dict_cache_columns(valid_dict_cache_columns);
    }

when we update dictionary version we should check the collected version.

for a operator sequence.
update event may not match last collected dictionary as #26472. we support provide a version field

What type of PR is this:

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.1
[x] 3.0
[x] 2.5
[ ] 2.4

[FE PR Coverage Check]
:disappointed: fail : 20 / 69 (28.99%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
6
8
75.00%
[149, 152]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 20 / 69 (28.99%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
6
8
75.00%
[149, 152]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 20 / 69 (28.99%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
6
8
75.00%
[149, 152]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 21 / 70 (30.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
6
8
75.00%
[149, 152]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

:large_blue_circle:
com/starrocks/planner/PlanFragment.java
1
1
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 21 / 70 (30.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
6
8
75.00%
[149, 152]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

:large_blue_circle:
com/starrocks/planner/PlanFragment.java
1
1
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 21 / 70 (30.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
6
8
75.00%
[149, 152]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

:large_blue_circle:
com/starrocks/planner/PlanFragment.java
1
1
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 19 / 70 (27.14%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
4
8
50.00%
[155, 163, 164, 165]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

:large_blue_circle:
com/starrocks/planner/PlanFragment.java
1
1
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 19 / 70 (27.14%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/sql/optimizer/statistics/CacheDictManager.java
0
5
00.00%
[263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnLogApplier.java
0
8
00.00%
[50, 79, 80, 85, 86, 87, 88, 89]

:large_blue_circle:
com/starrocks/transaction/LakeTableTxnStateListener.java
0
16
00.00%
[69, 98, 99, 100, 101, 102, 104, 105, 107, 111, 154, 155, 157, 158, 159, 160]

:large_blue_circle:
com/starrocks/transaction/TabletCommitInfo.java
1
6
16.67%
[64, 69, 89, 99, 100]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnStateListener.java
9
22
40.91%
[116, 117, 118, 119, 120, 122, 123, 125, 143, 144, 249, 250, 251]

:large_blue_circle:
com/starrocks/transaction/OlapTableTxnLogApplier.java
4
8
50.00%
[155, 163, 164, 165]

:large_blue_circle:
com/starrocks/transaction/PartitionCommitInfo.java
4
4
100.00%
[]

:large_blue_circle:
com/starrocks/planner/PlanFragment.java
1
1
100.00%
[]

@Mergifyio backport branch-3.1