Flow 0.23.1 hanging forever in Linux on project codebase

I'm having an issue where since Flow 0.23.1 in linux specifically, flow check seems to hang forever when trying to type-check a private codebase with 100k flow-typed lines and its node_modules folder (some stuff in there does have flow-type info that's used). Flow 0.23.0 and previous versions were fine and usually took a minute at most.
I can't reproduce the issue with Flow 0.23.1 on OS X. I can reproduce the issue using the official Flow 0.23.1 linux build on Ubuntu 15.10 (64-bit, ran with 4gb of ram in VirtualBox) and on Debian 7 Wheezy (the official Flow build requires a version of libc newer than what's in Debian 7's repos, so I can't really recommend this). Flow 0.23.0 works fine on both.
If I run flow check --verbose, then I see it process many files and some type information about them as is normal, but it eventually halts. It doesn't halt in the same place always.
I've been trying to cut the codebase down to a minimal reproduction case, but it's slow-going as I have to wait up to a few minutes after each attempt to cut it down to see if the issue still exists, and I don't think it's a single file that's triggering the issue as my attempts at a binary search have failed. I figured I would report this first just in case anyone might have some troubleshooting tips, or might recognize what the problem is from this description. It doesn't seem there have been many commits between 0.23.0 and 0.23.1. I could do a git-bisect over Flow to find which one introduced the problem if that would be useful.

I'm experiencing the same issue with<EMAIL_ADDRESS>We're performing type-checking during our CirceCI builds, running in an Ubuntu 14.04 container. Builds are timing out while running flow check --show-all-errors. When I run flow, it never gets past the parsing phase.
Launching Flow server for /home/ubuntu/gigwalk_apps_platform
Spawned flow server (child pid=17843)
Logs will go to /tmp/flow/zShomezSubuntuzSgigwalk_apps_platform.log
flow is still initializing; this can take some time. [parsing] \

Started experiencing this after upgrading from 0.22.1

So I've been stripping down a copy of the codebase to try to get the minimal reproduction case. I've been aggressively deleting or truncating files (so that Flow sees they have no @flow header and doesn't report an error when they're imported). I've run into a wall though now: if I remove or truncate many more files, Flow starts working again. There doesn't seem to be anything special with these individual files. It's especially weird that removing a zero-length file that nothing imports can cause Flow to work again! This seems to imply that I'm running into some sort of maximum file or memory limit.
Here's something interesting: I have 32745 files (.js, .jsx, and .json files are all that's left). Sometimes removing a file, including a zero-length file, makes Flow work (as in, not hang) again. That number of files is suspiciously close to 32768.
Increasing the open file limit with ulimit -n 40000 and increasing the stack size didn't help.

Started noticing this in my travis builds today after upgraded from 0.20
https://travis-ci.org/bevry/projectz/builds/127099577

I've started getting this after upgrading to 0.24

Attached is a backtrace & blocked task list from an instance of this happening in our CI environment:
https://gist.github.com/DanielHeath/5480367dac9760c592c2748b1bfcc28b

I could do a git-bisect over Flow to find which one introduced the problem if that would be useful.

@AgentME That would be super helpful!

Another project affected by it: https://travis-ci.org/bevry/caterpillar/builds/127340723
In both cases, node 0.12 and node 4 hang, node 5 and node 6 work fine.

I am also observing this same behavior on my very simple codebase. It works fine locally on my Mac but trying to use flow to typecheck on Debian Jessie hangs forever.
If it helps, I am using flow 0.24.0 on Node 6. Also this started happening when I added a npm-shrinkwrap.json file to my codebase. Removing this file, fixes the problem.

Hello,
I'm having a very similar issue i have created a github issue in the Facebook CFT:
https://github.com/facebook/fbctf/issues/67
Just wondering whether anyone had any ideas of what may be causing the issue.
Kind Regards,
Byron Fisher

Our workaround was to put our src and node_modules folders next to each other (not nested), put the .flowconfig in src, and include the specific modules we needed: https://github.com/facebook/fbctf/blob/master/src/.flowconfig

This is happening for me as well. Flow gets stuck on the "local inference" phase -- GCE compute instance, 4 vCPUs, 8 GB of RAM, Ubuntu 16.04 (fresh install)

@samwgoldman I can confirm this issue does not occur for me in 0.23.0, but occurs in 0.23.1.
The change between those two versions was very minimal: https://github.com/facebook/flow/compare/baa38fface3f6f7f24125b10f11e46298bfdf723...c6dc55d5337c72af70a383b1879a9c3330605df1
This revelation, in addition to @scast's comment about the fact that things start failing when he added an "npm-shrinkwrap.json" file to his codebase, leads me to believe that there is some issue with the lack of strict parsing of JSON that causes flow to fail in some way (and for some reason not surface the error).
Does this help/does it trigger any ideas?

We have the same issue with flow 0.25. It tell us some memory limit happens when running on travis CI. Works localy on OSX El Capitan, very strange behaviour.
@skevy yes, you added some json file... and from 0.24 json parsing/support has been heavily revamped, I suspect that if we exclude json parsing then the failure will varnish. We're currently investigating in this direction for our project with failures.

Tried again with Flow 0.26.0 and I no longer see this issue. From the releases log, it looks like the issue might have been fixed in v0.24.2.

@AgentME I'm still experiencing the issue with 0.26

same here with versions 0.24.2, 0.25, 0.26.
blocks production.

I am having the same issue with older versions -- 20.1 and 22.1

It's related to my app node_modules because if I delete the node_modules directory of my app then I don't reproduce this issue.
It's probably related to some specific module(s) but I can't figure which one yet.

i suspect it's related to the number of files rather than any specific file. there's a bug in the hashtable implementation that we (and hack) use where it loops forever when it fills up.
try adding
[options]
sharedmemory.hash_table_pow=19

to your flowconfig (0.26+) to double the size of the table. if that works, we'll at least know what the problem is.

I've try to this option to my .flowconfig file but the option is not reconized: .flowconfig:17 Unsupported option specified! (sharedmemory.hash_table_pow)
My .flowconfig file:
[version]
0.26.0

[ignore]
.*/node_modules/fbjs
.*/node_modules/react-side-effect
build/*
.*/tests/.*
.*/__tests__/.*
.*/node_modules/.*/test/.*
.*/node_modules/.*/tests/.*

[options]
munge_underscores=true
esproposal.class_instance_fields=enable
esproposal.class_static_fields=enable
sharedmemory.hash_table_pow=19

@Spy-Seth I don't understand as sharedmemory.hash_table_pow is defined (added on 2016/05/24, 2 days prior to release 0.26.0).

my bad, it didn't make it into the 0.26 release branch: https://github.com/facebook/flow/blob/v0.26/src/common/flowConfig.ml
so if you're set up for it, you could try building from master. 0.27 will be released next week.

@mroch ok, thx we will give a try with master to bring you some feedback ASAP.

The issue is resolved for me (in 0.26 at least) by ignoring json files:
[options]
module.file_ext=.js
module.file_ext=.jsx

@mroch ok I've tested with the master branch of flow with this docker image I've built and the result is slighly different. The flow process die silently & return an error code 15.
@stevoland yes, I suspect json files since the beginning. We have 2944 json files into our app's node_modules directory. I've seen that npm store a lot of big json files into node_modules/npm/.nyc_output/*.json. I will check if they're responsible au flow crashes.

@stevoland @mroch ok, in fact we had in our dev dependencies the npm-check-updates which have npm itself as a dependency. And npm bring many many pretty heavy json files.

Thanks for chiming in @mroch!

Same here. Hangs forever at flow is still initializing; this can take some time. [local inference] |

sharedmemory.hash_table_pow=19```

works for me with 0.27.0

Updated from version 0.24.0 to v0.27.0 and problem is resolved for me.

FYI, I am having a similar issue while trying to use Flow on Windows
(my project is brand new and don't have a lot of files, takes a second on my mac, I am setting flow for some windows dev)

flow via docker toolbox (so OS>VM>docker container: horribly slow, can take a couple of minutes).
flow via native windows bin (I builded it this morning, the build is ok, but the check take around half a minute).
flow via docker for Windows is not affected (but only works on Windows 10, and some devs have windows 7)

I moved flow stuff in src/ to avoid having node_modules, and boom speed issue is (almost) gone for flow via docker toolbox or via native bin. (FYI, I have .*/node_modules/.* ignored).

Problem still exists in 0.27:
[16:32:27] 'flow-single' errored after 23 min
[16:32:27] Error: stderr maxBuffer exceeded.
at Socket. (child_process.js:697:13)
at Socket.emit (events.js:95:17)
at Socket. (stream_readable.js:764:14)
at Socket.emit (events.js:92:17)
at emitReadable (_stream_readable.js:426:10)
at emitReadable (_stream_readable.js:422:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
at Pipe.onread (net.js:528:21)

still in 0.28

Still in 0.29. Any workaround ?

Seems to be fixed in 0.30.0. Thanks!!

It's good here thanks !
Envoyé depuis mon smartphone Samsung Galaxy.
-------- Message d'origine --------De : James Kyle<EMAIL_ADDRESS>Date : 18.08.16  12:39  (GMT-05:00) À : facebook/flow<EMAIL_ADDRESS>Cc : Guillaume Leclerc<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Objet : Re: [facebook/flow] Flow 0.23.1 hanging forever in Linux on project codebase (#1721)
Is anyone still experiencing this in 0.30?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/facebook/flow","title":"facebook/flow","subtitle":"GitHub repository","main_image_url":"https://cloud.githubusercontent.com/assets/143418/17495839/a5054eac-5d88-11e6-95fc-7290892c7bb5.png","avatar_image_url":"https://cloud.githubusercontent.com/assets/143418/15842166/7c72db34-2c0b-11e6-9aed-b52498112777.png","action":{"name":"Open in GitHub","url":"https://github.com/facebook/flow"}},"updates":{"snippets":[{"icon":"PERSON","message":"@thejameskyle in #1721: Is anyone still experiencing this in 0.30?"}],"action":{"name":"View Issue","url":"https://github.com/facebook/flow/issues/1721#issuecomment-240782200"}}}

@thejameskyle
on 0.30 when i run flow i get into a loop of
Launching Flow server for ...
Spawned flow server (child pid=62840)
Logs will go to ...
flow is still initializing; this can take some time. [processing]
Launching Flow server for ...
...

when I run flow start i don't get the repeating behavior but the server never starts either and calls to flow stop error
flow check works fine

I no longer experience this in Flow 0.30

Thanks for all the detailed debugging information, everyone! I'm gonna close this out because the issue seems to be resolved by bb67b737dc0c365dc1249f127e84b2cd36e7ab7a.

Reproduced in 0.34
flow is still initializing; this can take some time. [processing] \ hangs forever
.flowconfig
[libs]
../node_modules
[options]
sharedmemory.hash_table_pow=19

Folder contains just several js files

@yarax you probably don't want all of node_modules as libs. libs are interfaces like these. adding all of node_modules will probably spend an extremely long time loading all of the actual implementation files. i'm guessing it's not hanging forever, just taking a super long time.
try [include] instead of [libs].
there's probably more we could do to not actually load non-libs as libs, though. i'll file a separate issue for that.

#2795

@mroch thanks!

I get this like 3/4 times on a new create-react-app repository. Then after a while, it gets pass the flow is still initializing; this can take some time message, and then works. I noticed my CPU goes to 100% with antimalware service executable and then for some reason perhaps flow isn't fast enough and then the process terminates with some timeout message. This is on windows 10. Does this have something to do with scanning all the node_modules?

I get the same result as OP in version 45 when I use all=true, and I also happen to get outrageously high memory usage (I only have 16 GB!) . I'm using Create React App.

Here's my .flowconfig:
[include]
./client/src/
./lib/
./server/

[ignore]
.*/node_modules/.*
.*/.git/.*

[options]
module.file_ext=.js
module.file_ext=.jsx
sharedmemory.hash_table_pow=19
all=true

the same issue, here my config:
[ignore]
.*/node_modules/.*
.*/dist/.*

[include]

[libs]

[options]
all=true
module.system=haste
esproposal.decorators=ignore
sharedmemory.hash_table_pow=19
module.name_mapper='.*\.\(svg\|png\|jpg\|gif\|css\|scss\)$' -> 'stub'


the spectre svg in canvas

Description
<Canvas
style={{
height: '100%',
width: '100%',
position: 'absolute',
}}>
{completedPaths?.map((path, index) => (
<Path
key={path.path.toSVGString()}
path={path.path}
//@ts-ignore
paint={{ current: path.paint }}
/>
))}

I use skia to draw the svg's saved into a completedPaths array and use canvas to render them. when I remove each item in the array until it's empty, there's still one on the screen even though the array is empty. when i set a new stroke it disappears.
https://user-images.githubusercontent.com/54024031/196923407-14a46e1a-8b63-4ca0-9284-8c61f12924db.mp4
https://github.com/Shopify/react-native-skia/issues/1008#tasklist-block-4b009453-f59f-4a7b-baba-831dab3100ba

could you send us a small reproducible example?
What is most likely is that you remove the path without triggering a redraw so the path is still shown

The source code provided is not something we can run easily on our side.
Please reopen this issue if you think that there is a bug in the library and you have identified the small steps that can help us to reproduce that bug.
Currently it looks like the library is behaving correctly and the logic in the app needs to be reworked.


Add quickstart notes on how to install AWS plugin

Customers sometimes run into issues with the AWS quickstart when their
AWS plugin did not automatically install as part of their package
installation. In the event that NPM did not correctly install their
plugin, this commit adds notes to the relevant areas that instruct users
on how to install the plugin manually.
Fixes https://github.com/pulumi/pulumi/issues/2097

Hmm - I don't think this is how we should "fix" pulumi/pulumi#2097. I'd prefer to make sure this doesn't happen, and in the very rare case that it does due to things entirely out of our control, find a way to provide richer information in the context of the failure.

We already do this now, to be clear: https://github.com/pulumi/pulumi/pull/2040.
If we think this is sufficient, then sure, we can close this PR 😄 . However, there is evidence that users do occasionally run into this issue. I'm fine either way.

We already do this now, to be clear: pulumi/pulumi#2040.

Nice!  I didn't realize we had already done that.  Personally I think that's a sufficient alternative to this docs change - gives an actionable fix immediately at the point of the error - which is frankly even better than in the docs.
I'm still unclear on why we expect this to be common for users to hit - and whether that is because we are doing something wrong somewhere else or just because we believe there Internet is unreliable.

Per notes in pulumi/pulumi#2097 we can close this out.


Potential decoder+rotary embeddings bug

I think there is a subtle bug in this codebase that will only rear its head when performing autoregressive decoding on a model with rotary embeddings:
When decoding such a model, each iteration will progressively increase the sequence length of the x input to AttentionLayers, starting at 1. AttentionLayers computes the max_rotary_emb_length based on the length of x. This represents a divergence between inference and training which likely results in suboptimal performance on the first few decoder passes.
Since rotary embeddings are pretty flexible, I think the simple solution to this is to fix them to some expected number early in the decoding process. I have PR which implements this here: https://github.com/lucidrains/x-transformers/compare/main...neonbjb:patch-2

@neonbjb oh hey James, i don't really see a problem. i tested it on a length of 1024 tokens, and got a max_rotary_emb_length of 1024, and when i lowered that down to 1, i got 1. what values are you expecting?

I'll use my use-case to try and explain:
I'm building a Text To Speech model with rotary embeddings providing position information. Here  is the model definition (though you probably don't need to look at it to understand what is going on).
This is a classic encoder/decoder style transformer. During training, the decoder predicts the next token, but it is always fed a full sequence of tokens. For this reason max_rotary_emb_length is always in the range of ~100 during training.
During inference, I perform decoding by sampling one token at a time (which is fairly standard). The problem with this is that in the first sampling step, max_rotary_emb_length=1, in the second step, it is 2, then 3, etc. These cases were never encountered during training, and I am thinking this might pose a problem.
Digging into the implementation of RotaryEmbeddings more makes me less certain, though. It might be that these embeddings behave the same regardless of the value of max_rotary_emb_length and that parameter only allows them to attend to further distances.
I am going to close this for now and do some testing once my model is fully trained. I'll report back with results with and without these proposed changes.

@neonbjb hey James, if you are worried about extrapolating to positions not seen during training, try this feature instead https://github.com/lucidrains/x-transformers#dynamic-positional-bias


Add preparing state to sheet view.

This ensures that isSheetShowing() returns true while we are still laying out the sheet. Before this showWithSheetView() could break even though isSheetShowing() returned false.
Fixes #48

LGTM

I don't have push access. You will have to push the green button yourself :)

That's not right... I'll talk to matt tomorrow, you should still have push access.

Goldengate as well in that case :p

All set; check your email @emilsjolander.

Thanks
On Fri, Aug 21, 2015 at 17:41 Matt Blair<EMAIL_ADDRESS>wrote:

All set; check your email @emilsjolander
https://github.com/emilsjolander.
—
Reply to this email directly or view it on GitHub
https://github.com/Flipboard/bottomsheet/pull/49#issuecomment-133467062.


Add diagnostic for label with string segment

Resolves #1831

@swift-ci please test

@ahoppen testDiagnoseAvailability18 fails.
It fails formatting the same code, this is the result
@available(*, unavailable, message: """
  foobar message.

""") func multilineMessage() {
}
multilineMessage()

A quick debug I think it's because we do some post processing of multiline string when parsing a RawStringLiteralExprSyntax.
We can use the same method, but that require we convert the RawStringSegmentSyntax to a RawStringLiteralSegmentsSyntax.Element and then back to RawStringSegmentSyntax.
Or we should try to extract the postProcessMultilineStringLiteral into multiple functions so we better can reuse it.
What do you think?

I think we should try just re-using postProcessMultilineStringLiteral. Mapping between RawStringLiteralExprSyntax and RawStringLiteralSegmentsSyntax.Element doesn’t result in an allocation on the bump allocator, so we shouldn’t be leaking any memory that way, so the mapping should be fine.

@ahoppen I was just debugging and trying to figure out why we get this error
I've tried to debug, but I can't find the reason
Trees do not match due to token in:
stringSegment("  foobar message.") [2:1...2:18]
when expecting:
stringSegment("foobar message.") [2:3...2:18]

As the failure message says: What we do is remove all the trivia of the tree, run BasicFormat and check that we end up with the same tree. This basically tests BasicFormat to check that we indeed separate different tokens by space.
But when you remove the leading spaces from the closing """, you are really changing the semantic meaning of the string literal because the two spaces in front of foobar message. now become part of the string literal.
That’s why in SwiftParserTest/Assertions.swift:735 (inside TriviaRemover, we check if the token is inside a StringLiteralSyntax, in which case we just don’t remove trivia from inside this subtree. You just need to add SimpleStringLiteralExprSyntax here.
And as I’m looking at the code, I’m realizing that we could actually simplify TriviaRemover
/// Removes trivia from all tokens that don’t occur inside multiline string
/// literals.
///
/// We keep trivia inside multiline string literals because the indentation of
/// the closing quote of a multi-line string literals has impact on how much
/// leading trivia is stripped from the literal’s content.
class TriviaRemover: SyntaxRewriter {
  override func visit(_ node: StringLiteralExprSyntax) -> ExprSyntax {
    if node.openingQuote == .multilineStringQuoteToken() {
      return ExprSyntax(node)
    } else {
      return super.visit(node)
    }
  }

  override func visit(_ node: SimpleStringLiteralExprSyntax) -> ExprSyntax {
    if node.openingQuote == .multilineStringQuoteToken() {
      return ExprSyntax(node)
    } else {
      return super.visit(node)
    }
  }

  override func visit(_ token: TokenSyntax) -> TokenSyntax {
    return token.with(\.leadingTrivia, []).with(\.trailingTrivia, [])
  }
}

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci Please test Windows

@swift-ci Please test

@swift-ci Please test windows


Add support for android 4.1 and up emoji font

The summary pretty sums up this; it can be a pain to have to toggle back and
forth between the dafault keyboard and Hacker's, and I'd rather not get a
different keyboard since this is so awesome.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 23 Aug 2013 at 5:19

Yes please, I would totally appreciated some emoji support.

Yes awesome emoji
'

Are there any news on this? Because being able to access emojis whenever I want is the only reason I'm still using AOSP keyboard (which came preinstalled, obviously, but it's 45 Mb!).

+1

This is probably the one feature that I most want. NextApp's keyboard is the only other one I've found that has CTRL & ALT keys, which I've become dependent on so much that asking me to live without them is like asking a Linux user to start exclusively using Windows. lol. Anyway, they do have the emoji button, but they seem to have abandoned their keyboard and they don't have a compact layout like this one, which makes it extremely difficult to use on my tiny, 4.5" budget phone screen.

:+1:
Missing this feature is one of reason I'm considering switching to something else.

:+1: I support this feature request

Yes, please add this - even if as a fork that isn't on the Play Store.

You could also add a "raw Unicode" - you can input hex data and it writes it as a character.

Totally gonna remember all emojis in hex code. It's not like I can barely remember the one I just wanted to send...

@szymonwalle You're taking the issues title rather verbatim. You can also copy-n-paste emojis, enter emojies by switching keyboards (while typing) and so on. For me (and I guess most supporters here) the issue ist not the font, I'am rather interested in a build-in emoji selector.

Yes please! Emoji support would be awesome! \o/


Make Tabs' active class names configurable

This is an updated version of #9018 that also separates tab panel visibility from the is-active class.

This looks good to me. @Owlbertz you were active on #9018, what do you think?

Yeah, seems good to me.


UI feedback

Here are a few cosmetic feedback on the latest UI branch:

[x] there is an incorrectly wrapped "ID" word "Vulnerability ID"

[x] Aliases should be positioned above the summary

[x] On the de "Vulnerability Details" page, the "Vulnerability ID" should be repeated in the blue bar right after "Vulnerability details". For instance Vulnerability details: VULCOID-1J9

[x] On the de "Package Details" page, the "purl" should be repeated in the blue bar right after "Package details". For instance Package details<EMAIL_ADDRESS>

[x] On the de "Vulnerability Details" page, the list of references should be sorted by id then by URL

[ ] There are some issue with "responsiveness": it would be good to test basics such as resizing to a narrower window/screen size.

@pombredanne Re responsiveness (and perhaps some wrapping and/or other display issues), please see my new issue https://github.com/nexB/vulnerablecode/issues/868.
Some of the examples above are based on older code and handled in the code I pushed yesterday evening Calif. time.  See https://github.com/nexB/vulnerablecode/pull/847 .  Re sorting references and moving alias above summary, I'll tackle those next.

@pombredanne:
(1) Re the wrapping issue with Vulnerability ID, I haven't seen that locally but in any event I just increased the column width (by 10px, rems to come later ;-), which should resolve that issue.
(2) I moved Aliases above Summary.
(3) Emphasizing/positioning the Vulnerability and purl IDs was handled in last night's push.
(4) Sorting References by Reference ID then by URL was handled a day or 2 ago.  Note that as a result, records that have, e.g., a CVE/GHSA Reference ID appear at the bottom of the list, which could require the user to do some substantial scrolling to find them if the list is voluminous.  Example (since VULCOIDs vary from DB instance to DB instance, FYI this example's summary is Deserialization of Untrusted Data in Log4j):

(5) I'm leaving this issue open for now at least because of the responsiveness issue, which is also addressed in new issue #868 .
I'll push the latest changes shortly.

All tasks in this issue have either been completed or moved to a separate issue.


test filter input fails without any module

Steps to reproduce:

Open http://jsfiddle.net/gj6hudry/ sample.
Type 'testname' in 'Filter' input and click 'Go'.
Error "Cannot read property 'options' of null" will be occurred at:
selection = decodeURIComponent( selectBox.options[ selectBox.selectedIndex ].value ),

the Cannot read property 'options' of null error was caused because no module was present.
I'm fixing it, thanks!


Vertical prop is not working

Hey, on emulator / android phone vertical prop is not working. With or without styling

Hello @plonsik!
This is a known issue that is already reported in #196. Let me close this one as a duplicate.


feat: update Prettier config to match Catalyst

feat: update Prettier config to match Catalyst
chore: run pnpm format

#362  👈 (View in Graphite)
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Merge activity

Dec 5, 2:28 PM EST: Graphite disabled "merge when ready" on this PR due to: a merge conflict with the target branch; resolve the conflict and try again..


Factor out the index cache implementation, add ristretto

SimpleLRU is a nice and simple algorithm for storing items in a cache. However, it is not the most efficient and it doesn't work well in our use-case under high-pressure situations since users tend to execute ad-hoc queries and, in addition, refresh Grafana dashboards quite often which leads to the same items being loaded over and over again.
I have factored out the index cache implementation into another file. This lets us change it to another one on a whim. In addition, I have added an implementation which uses the ristretto library, which uses TinyLFU underneath - a relatively new algorithm which espouses very good surprising performance (see the benchmarks here: https://github.com/dgraph-io/ristretto).
This current implementation kind of works.
Verification: go test -v.

Nice! I did not look at this much, but definitely huge area for improvments here. Can we think of / run some benchmarks to assess if this change is valuable? It makes sense in theory (:

Yes, I will rework this into making it a (hidden) option and will make some automatic benchmarks, just like with the other ones that we have already.

@GiedriusS have you seen? https://blog.dgraph.io/post/caching-in-go/

I haven't seen that article but I am aware of TinyLFU. It seems to me that it is the new best LRU cache policy. I started this PR with 2Q since there is a mature implementation of it. On the other hand, I have only seen one experimental implementation of it in Go however it lacks some very important features that are mentioned in that article as well. So I guess we should wait until they will implement it or I will try it if I will have the time. Or maybe someone else wants to do that (:

https://github.com/dgraph-io/ristretto seems like that new library is here :) hopefully the implementation will come soon

The library has been finally implemented so now we could resume the work on this! :tada:

@bwplotka do you think we should make this configurable? Myself I would lean towards a one time switch since the performance should be miles ahead with this library :smiley:

Unfortunately but ristretto has some problems:

Potential collisions between keys
Memory leaks https://github.com/dgraph-io/ristretto/issues/96

@GiedriusS Collision checking is being finalized. We're investigating the memory leak issue; however, it appears to only occur under rare circumstances. Thanks for checking out Ristretto!

@bwplotka how do you think the performance of this could be tested? WDYT about the PR in general?

Indeed this is not relevant anymore since these things should probably be pushed to some outer provider like memcached which could have a flexible control of the admission policy


Fix table structure

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

#sign-off


There is no session.spawn(...) method

In the example I see this code:
const process = await session.spawn("canary", {
    additionalArguments: ['--headless'],
    windowSize: { width: 640, height: 320 }
  });

But when I use "chrome-debugging-client": "^0.4.3", I see spawnBrowser(...) instead of spawn(...).

fixed readme


Lint and use allowFrom

The following PRs should all be merged at the same time, and should thus be reviewed together (sorry!):

https://github.com/quilt/django/pull/6
https://github.com/quilt/nodejs/pull/4
https://github.com/quilt/demos/pull/9
https://github.com/quilt/mean/pull/8
https://github.com/quilt/quilt/pull/1029


Update to reflect changes to astropy test infrastructure

Astropy recently changed the way that its pytest plugins are packaged (https://github.com/astropy/astropy/pull/6606). This currently affects builds against development versions of Astropy.
This requires https://github.com/astropy/astropy/pull/6817 to be merged first.
We will probably need to add some logic to handle different versions of Astropy in the short term, although we should consider deprecating support for the Astropy v1.x series.

This is the reason for the cron build failure: https://travis-ci.org/spacetelescope/asdf/builds/298960530


allow shadow memory offset per shadow ioeventfd

Signed-off-by: Thanos Makatos<EMAIL_ADDRESS>

I should also move the debug_region_access() and unlikely fixes into separate commits.

@jlevon this is ready to be reviewed, it only contains code for specific the offset in the shadow memory.


documentation referencing deprecated options

Hi,
you're referencing the "-O extended_file" option of zmap in the file examples/forge-socket/README.
This feature has since been removed.
Using the default (csv) format is still compatible with the forge-socket example ?
Thanks

Yes, you can export the data you need from ZMap using the CSV output module and specified the --output-fields that you need. I'll fix the documentation.

updated in d9ab985.

Thanks for the explanation and quick fix !


Enabled Managed prometheus metrics

sample config:
- type: amp
    regions:
      - eu-west-1
    metrics:
      - name: DiscardedSamples
        statistics:
        - Sum
        period: 60
        length: 600

Amazon Managed Prometheus is a service gradually picking pace. At my current organization, we use over 50 AMP workspaces and getting metrics for them is crucial.
I am also looking to get AWS/Usage metrics which should be covered in this PR. Collectively, they will meet the requirement for this enhancement

@cristiangreco - Requesting review for the PR.

@cristiangreco - I see the upgrade of SDK already went through via dependabot - You can proceed with the further review of the PR. I've pulled the latest master branch into this.

@cristiangreco @thomaspeitz - The SDK upgrade is no longer part of the PR. Could you please review and help in getting this merged.

@cristiangreco thanks for looking into this. Can we get a OWNERS.md added for future to get the attention of right folks here.
Thanks

Hi @datsabk, sorry I'm not sure what would be OWNERS.md used for?

@cristiangreco OWNERS.md tells who owns the repository. It allows folks to easily address owner when needed.
Additionally a MAINTAINERS.md file could have list of people who can actively maintain this tool to take the development ahead at a faster pace.


Status

hi, thanks for the writeup! is this still working?
also, is it possible to use this guide for pairing so i can both use mqtt and my remote to control the shutters?
https://github.com/Hypfer/schellenberg-qivicon-usb
thanks a lot!

Hey yes I guess it should still be working (im not using any schellenberg device at the moment so i cant test it though). Sure, feel free :)

My USB will arrive tomorrow, I'll test and report back :)
On Mon, 14 Oct 2024, 18:04 moTo31, @.***> wrote:

Hey yes I guess it should still be working (im not using any schellenberg
device at the moment so i cant test it though). Sure, feel free :)
—
Reply to this email directly, view it on GitHub
https://github.com/moTo31/schellenberg-mqtt/issues/4#issuecomment-2411676361,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACVBMGAXC5YVTLFSMKZ4ZLTZ3PTP3AVCNFSM6AAAAABP4ZHDJKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMJRGY3TMMZWGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

Works flawless! thanks a lot!!


Python chapter changes

@fwimp , can you please review this chapter, specifically the new section of good programming practices?

Thanks for the very detailed review, @fwimp !
That's a long list of changes, so am going to deploy the book with some edits and then address these...

Lots of suggestions, but most of them shouldn't require much thought to investigate :)


Add gcov and coveralls.io code coverage [travis-coveralls]

This pull request isn't ready.  I've added the PR to trigger Travis to test this.

Changes Unknown when pulling 5d5bde157b14c23f3d930e02c069ba22616d8352 on travis-coveralls into ** on master**.

Changes Unknown when pulling 5d5bde157b14c23f3d930e02c069ba22616d8352 on travis-coveralls into ** on master**.

I'll disable the notifications on this, testing code coverage.
Aaron
From: Coveralls<EMAIL_ADDRESS>Reply-To: mfem/mfem<EMAIL_ADDRESS>Date: Wednesday, August 16, 2017 at 4:19 PM
To: mfem/mfem<EMAIL_ADDRESS>Cc: "Black, Aaron C."<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [mfem/mfem] Add code cov to travis ( not ready ) (#255)
Changes Unknown when pulling 5d5bde1 on travis-coveralls into ** on master**.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Changes Unknown when pulling 81b7e5ba165a1e1152b12d1359684b7e3822e018 on travis-coveralls into ** on master**.

Changes Unknown when pulling d13ff5e1b957a335e9429b1f4510798890db3f92 on travis-coveralls into ** on master**.

@trb413 @v-dobrev - I'm still working on this, but it might be worth looking over, in case you have some early feedback.  I converted over the .travis.yaml to container-based testing ( added some comments on why in the diff ).
One issue on code coverage with a code base like MFEM is that we really have two code bases - one MPI, one non-MPI, controlled by #defines on whether we are using MPI.  To get an accurate coverage report, you really need to build and run both versions of the code, then combine the results.  I'm looking into whether coveralls.io can do this.

Changes Unknown when pulling 911640ef23c088bed98e0ae82b5facdb04f72172 on travis-coveralls into ** on master**.

Looks like this email is coming from github - whenever someone comments on a pull request, it sends to the general mfem email list?
Our pull requests are running our automated tests (travis and appveyor) and I've added a code coverage run to the travis configuration.  The code coverage run adds a comment on the PR with the current code coverage result.  I can change this, if the team prefers code coverage to be reported on a different channel/means.
Aaron
From: Coveralls<EMAIL_ADDRESS>Reply-To: mfem/mfem<EMAIL_ADDRESS>Date: Thursday, August 17, 2017 at 12:06 PM
To: mfem/mfem<EMAIL_ADDRESS>Cc: "Black, Aaron C."<EMAIL_ADDRESS>Assign<EMAIL_ADDRESS>Subject: Re: [mfem/mfem] Add gcov and coveralls.io code coverage [travis-coveralls] (#255)
Changes Unknown when pulling 911640e on travis-coveralls into ** on master**.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub, or mute the thread.

Changes Unknown when pulling b3abac74c8798973337fd25a07be4863b88aebfa on travis-coveralls into ** on master**.

Changes Unknown when pulling b3abac74c8798973337fd25a07be4863b88aebfa on travis-coveralls into ** on master**.

Changes Unknown when pulling cce52dc0148d7f0c2f087700bb8040312fae975f on travis-coveralls into ** on master**.

Changes Unknown when pulling 6cc1e61e1d91c34366af6831896dc955e4bcd59b on travis-coveralls into ** on master**.

Changes Unknown when pulling f4f5756d4d0f92408443be3ed9292e605f28e9ae on travis-coveralls into ** on master**.

Changes Unknown when pulling 5658018f396c940ff84c0820e80b2a240dad0f07 on travis-coveralls into ** on master**.

Changes Unknown when pulling 1916043f7a2f46c96a229c15c205946eae85d186 on travis-coveralls into ** on master**.

Changes Unknown when pulling 3ba213cca717eea4f029fa7f995d1733edcc0faa on travis-coveralls into ** on master**.

Changes Unknown when pulling 1da8fce0a07d90d998249accb3f5e9e48f40658a on travis-coveralls into ** on master**.

@aaroncblack, using 4 MPI tasks seems to work OK. What do you think, should we keep this, or go back to 1 task?

Changes Unknown when pulling 05e98a6cde891f16a102803ef15d22cf8746a3b3 on travis-coveralls into ** on master**.

Changes Unknown when pulling 2483dc6a7deb4f13fa4db956433725d9fd7e0b37 on travis-coveralls into ** on master**.


Despwan tool tweaks

Compiled mod for testing: TMPE.zip
Prerequisite for #1441
This PR started out as an attempt to use ExtVehicleManager lookup for vehicle type checks, but that only applies to managed vehicles, so reverted most of the changes. What remains is slightly tidied code and some new extensions for use with managed vehicles.

Add new ToExtVehicleType extensions for vehicle ids (might be useful in #1441)
Update existing extension to use new extension
Various minor tweaks

Any other reviews got feedback on this PR?

Marge?

Marge?


Look up runes by number

#3215 can you review my PR?
I use Rune's number to index Runes.

@casey  #3440  Lookup rune number


unable to deploy

Repro steps:

Action: appService.Deploy
Error type: Error
Error Message: Entry not found in cache.
Version: 0.16.0
OS: win32
Product: Visual Studio Code
Product Version: 1.38.1
Language: en

Call Stack
a.module.exports.a.createError extension.js:1:49013
b.<anonymous> extension.js:229:176842
extension.js:229:171457extension.js:229:171457
extension.js:229:43512extension.js:229:43512
extension.js:229:41505extension.js:229:41505
extension.js:229:41127extension.js:229:41127
i.module.exports.i.find extension.js:229:75620
module.exports.find.init.then extension.js:229:22917

Hi @MukeshBikham,
Thanks for reporting. We are still tracking the external issue here:
AzureAD/azure-activedirectory-library-for-nodejs#199
Please add some 👍's to give the team feedback that this is an issue worth resolving!


[Hold for payment 2022-02-03] Payment GH for E/E #169078

@mollfpr reviewed the PR for Pressing the Up-Arrow right after sending a message will edit the previous message #169078

Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~011dd4c038531f1fc4
Upwork Job ID:<PHONE_NUMBER>059706880
Last Price Increase: 2023-01-28

@mollfpr can you please accept the job and reply here once you have?
https://www.upwork.com/jobs/~011dd4c038531f1fc4

@mallenexpensify accepted

Paid! Closing.  Fastest turn-around ever.  Thanks @mollfpr , as stated in #expensify-open-source, i HATED that bug, took ~2 years to fix too 🤯


Add hole support to Geoblaze

Geoblaze doesn't currently support holes, in that when overlaying a polygon, it doesn't exclude raster cells overlapping within any holes of the polygon.
Geoblaze tasks:

[ ] add hole support to geoblaze
[ ] add unit tests and document it

GP lib tasks:

[ ] upgrade geoprocessing library to new geoblaze version, add unit tests demonstrating.

[ ] remove the workaround in raster toolbox functions

https://github.com/seasketch/geoprocessing/blob/dev/packages/geoprocessing/src/toolbox/overlapRaster.ts#L38
https://github.com/seasketch/geoprocessing/blob/dev/packages/geoprocessing/src/toolbox/overlapRasterClass.ts#L61

[ ] test in a current gp project.

Sounds right. Feel free to edit the original list and move stuff around.


installation problem

Describe the bug
I have tried to install pentestgpt several time ,and every time it show up this error .
Expected behavior
successful  installed
Screenshots

This should be problems with external dependencies. I recommend you checking this: https://stackoverflow.com/questions/70744625/issue-when-pip-installing-packages

Try running:
pip install --only-binary :all: greenlet

Thanks I will try later

I try this two way and still got same problem ,

Hmm.. did you try to do it on a fresh environment, installing greenlet first then the remaining libraries?
For example:
conda create -n "test" python=3.10.0 ipython
conda activate test
pip install --only-binary :all: greenlet
pip install git+https://github.com/GreyDGL/PentestGPT

To be honest, I'm not familiar with Mac but it might be a problem with your python/pip installations, you can check out:
https://gist.github.com/MuhsinFatih/ee0154199803babb449b5bb98d3475f7

Sorry I am just a junior student , thanks for your help


After parsing a value an unexpected character was encountered: t. Path 'sess', line 1, position 112

I have connected to logshark and able to download the dashboards using log files.
Later we  have upgraded tableau server to 2019.3, then after i am unable to get the dashboards.
i am getting the below error .
"After parsing a value an unexpected character was encountered: t. Path 'sess', line 1, position 112"
for backgrounder file

Hi,
We see this warning a lot - when backgrounder was shut down for whatever reason it sometimes starts to write logs on the same line it stopped before ending up with incorrect JSON in that one line.
LogShark 4.1 expected to simply skip this one line, report a "processing error" and then continue processing the rest of the life. So if you see this message under "Processing errors" section of the run summary - there is nothing to worry about: LogShark simply skipped processing one incorrect line in the logs and nothing else is affected.
If you see this error message somewhere else though - please lmk


Creating Settings.json spec under preview

ARM API Information (Control Plane)
MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo.  If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[x] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.

[x] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.

/azp run

approved

@ArcturusZhang  & @msyyc , could you help to check whether the GO & Python SDK breaking changes are expected?

@thramu, could you fix the LintDiff errors? thanks

@thramu, could you fix the LintDiff errors? thanks

Can you please help me understand what is the fix for the LintDiff errors?

@thramu, could you fix the LintDiff errors? thanks

@thramu, could you fix the LintDiff errors? thanks

Can you please help me understand what is the fix for the LintDiff errors?

@jianyexi, could you help @thramu on how to fix this problem?   Is this a valid linter issue?

@thramu, could you fix the LintDiff errors? thanks

@thramu, could you fix the LintDiff errors? thanks

Can you please help me understand what is the fix for the LintDiff errors?

@jianyexi, could you help @thramu on how to fix this problem? Is this a valid linter issue?

@jianyexi  Can you please help me on the fix?

Since the change in this PR is not included in the default tag, approved the breaking changes for Go which are not related with this PR.


add description to iam role erb

IAM role description was not included in the configuration.

Coverage remained the same at 100.0% when pulling a6b35a0959c8ea6f37d87b9b10c2efa9b0d6d242 on tiagom62:role_description into c1d467becef5645e14ff822860f3fc2a9868c066 on dtan4:master.

Sorry for the late review.
Could you update unit test to add description?


How to use custom filesystems inside a virtual machine with bootloader?

Issue description
I'm using a custom filesystem layout (tmpfs on root + ZFS for persistence, but that doesn't really matter). When installing my configuration on a new machine I use an installer script that creates partitions and filesystems. But before that, I want to test my configuration inside a qemu virtual machine on my development computer. To do that, I followed the tests in #178531 with slight modifications, defined my filesystems, set useDefaultFilesystems to false and added commands in postDeviceCommands that basically mimic what the installer script is doing with setting up partitions and filesystems, except the boot partition.
This approach worked for quite some time. The last commit that it works on is 13ea5dc163f5abde5ed5954b75179eee7c420a8e. If you use the configuration I provided below, the system boots correctly and you can run lsblk -o NAME,FSTYPE,PARTLABEL,LABEL,SIZE,MOUNTPOINTS to get something similar to:
NAME    FSTYPE  PARTLABEL           LABEL   SIZE    MOUNTPOINTS
vda                                         1G
└─vda1  ext4    root                root    1022M   /
vdb                                         120M
├─vdb1          BIOSBootPartition           1007K
└─vdb2  vfat    EFISystem           BOOT    119M    /boot

I don't really know the internals of what's happening, but it seems that there are two disks available in this situation with the boot partition being on the second disk. This is not the same situation as my target configuration, because I have only one disk and the boot partition is on the same disk as other partitions, but it allows you to test almost everything.
Now with the newest commit things don't work anymore. I get an error saying:
error: EFI variables can be used only with a partition table of type: hybrid, efi or legacy+gpt.

 It seems that the whole virtual machine image-building workflow got an overhaul and my approach doesn't work anymore.
I feel that it's not a bug in the internal logic, but that my approach was wrong. Can someone point me in the right direction of what should I do to be able to use my custom filesystems inside a virtual machine with a bootloader?
Steps to reproduce
This is a minimal reproducible example. Create flake.nix:
{
  inputs.nixpkgs = {
    type = "github";
    owner = "NixOS";
    repo = "nixpkgs";
    rev = "5e9303c061a896530037496222950feb7284d54d";
    # it works with the commit below
    #rev = "13ea5dc163f5abde5ed5954b75179eee7c420a8e";
  };

  outputs = inputs: {
    nixosConfigurations = {
      foo = let
        system = "x86_64-linux";
        pkgs = import inputs.nixpkgs {inherit system;};
      in
        inputs.nixpkgs.lib.nixosSystem {
          system = system;
          modules = [
            {
              boot.loader.systemd-boot.enable = true;
              system.stateVersion = "23.05";
              users.users.root.password = "";

              virtualisation.vmVariantWithBootLoader = {
                boot.initrd.postDeviceCommands = ''
                  ${pkgs.parted}/bin/parted --script /dev/vda -- mklabel gpt mkpart root 0% 100%
                  ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L root /dev/disk/by-partlabel/root
                '';

                virtualisation = {
                  fileSystems."/" = {
                    device = "/dev/disk/by-label/root";
                    fsType = "ext4";
                    neededForBoot = true;
                  };

                  useDefaultFilesystems = false;
                  useEFIBoot = true;
                };
              };
            }
          ];
        };
    };
  };
}

and run:
nix --extra-experimental-features 'nix-command flakes' run .#nixosConfigurations.foo.config.system.build.vmWithBootLoader

#228346 might be relevant.

Hey there, original author of the patch which broke your usecase, apologies for this, we tested it over nixpkgs but no one had usecases like yours, so I am discovering it.
My intuition is the following: make-disk-image is responsible for that assert error, it has no way to know you want to pass a GPT partition table because you are doing it in a string fashion in the initrd and useDefaultFilesystems pass none as partition table.
Obviously, now the semantic question is: should useDefaultFilesystems = false; still take care of the default partition table?
If the answer is yes, then we probably want a useDefaultPartitionTable option in the future and make it clear that partition table setup is assured by the QEMU test infrastructure, you only have to deal with partitions.
If the answer is no, I am not really certain what is the best way.
Clearly, the user would need to provide the system image in that case and fill out all the blanks for the exact usecase they want to have.
It might be much more complicated because some of them relies on knowledge on what is a closure information is, etc.
But it would provide maximum flexibility towards those usecases.

Tested with
{
  inputs.nixpkgs = {
    type = "github";
    owner = "NixOS";
    repo = "nixpkgs";
    rev = "84966c085e2b8fe55748959f4f2fc5957f937d28";
    # it works with the commit below
    #rev = "13ea5dc163f5abde5ed5954b75179eee7c420a8e";
  };

  outputs = inputs: {
    nixosConfigurations = {
      foo = let
        system = "x86_64-linux";
        pkgs = import inputs.nixpkgs {inherit system;};
      in
        inputs.nixpkgs.lib.nixosSystem {
          system = system;
          modules = [
            {
              boot.loader.systemd-boot.enable = true;
              system.stateVersion = "23.05";
              users.users.root.password = "";

              virtualisation.vmVariantWithBootLoader = {
                boot.initrd.postDeviceCommands = ''
                  ${pkgs.parted}/bin/parted --script /dev/vda -- mklabel gpt mkpart root 0% 100%
                  ${pkgs.e2fsprogs}/bin/mkfs.ext4 -L root /dev/disk/by-partlabel/root
                '';

                virtualisation = {
                  fileSystems."/" = {
                    device = "/dev/disk/by-label/root";
                    fsType = "ext4";
                    neededForBoot = true;
                  };

                  useDefaultFilesystems = false;
                  useEFIBoot = true;
                };
              };
            }
          ];
        };
    };
  };
}

This is going probably too far, but if I would take a shot at redesigning the whole virtual machine stuff related to a NixOS configuration from an ease-of-use point of view, something like this would probably give users a lot of flexibility:
{
  outputs = inputs: {
    nixosConfigurations = {
      foo = inputs.nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";

        # Target system configuration
        systemModules = [
          (
            # Pass only system configuration as an input
            {config, ...}: {
              # Concerning virtualisation possibilities inside the target system
              virtualisation = {
                docker.enable = true;
              };
            }
          )
        ];

        # Virtual machine variant of the system for outside usage
        vmModules = [
          # You can override the system configuration here
          (
            # Pass both system and vm configurations as inputs
            {
              systemConfig,
              vmConfig,
              ...
            }: {
              networking.hostName = "${systemConfig.networking.hostName}-vm";
            }
          )
          # And you can define virtual machine configuration inside 'vm' attribute
          {
            vm = {
              memorySize = 2048;

              # Each disk image can be created with qemu-img
              # Then parted can be used to create partitions on the image
              # Then we can mount the image inside a temporary virtual machine and run a script to set up the filesystems
              # And finally we can attach the images as virtio drives in qemu for the target virtual machine
              diskImages = [
                # Position in the list is the drive index, so this is /dev/vda (next one would be /dev/vdb)
                {
                  # Options to use in qemu-img create
                  size = "1G";
                  format = "qcow2";
                  options = {
                    preallocation = "full";
                  };

                  # This is the path on the host system
                  # It is persisted between runs
                  # But if the configuration changes, it will be replaced with a new image
                  file = "disk.qcow2";

                  # As in mklabel in parted
                  partitionTable = "gpt";

                  # Each one translates to a mkpart in parted
                  # They will be executed in order so each one gets its own predictable number
                  partitions = [
                    # We know this is /dev/vda1 (and also /dev/disk/by-partlabel/boot since we're using GPT)
                    {
                      name = "boot";
                      filesystem = "fat32";
                      start = "1MB";
                      end = "512MB";
                      flags = ["boot" "esp"];
                    }
                    # And this is /dev/vda2 (and also /dev/disk/by-partlabel/root since we're using GPT)
                    {
                      name = "root";
                      filesystem = "ext4";
                      start = "512MB";
                      end = "100%";
                    }
                  ];
                }
              ];

              # Additionally, make it possible to attach any host drives
              hostDrives = [
                # CD-ROM drive from the host
                {
                  # Translates to -drive file=/dev/cdrom,media=cdrom in qemu
                  file = "/dev/cdrom";
                  media = "cdrom";
                }
              ];

              # Run a script inside a temporary virtual machine to set up the filesystems
              # I guess we can use vmTools.runInLinuxVM for this and attach the disk images as virtio drives (same as the target virtual machine)
              # We could use a more static configuration instead of a script, but it's hard to cover all cases (e.g. ZFS)
              # Using a script we can just run whatever commands we want
              filesystemsSetup = ''
                mkfs.fat -F 32 -n boot /dev/vda1 # or /dev/disk/by-partlabel/boot
                mkfs.ext4 -L root /dev/vda2 # or /dev/disk/by-partlabel/root
              '';

              # I don't know much about bootloaders
              # But I guess this is enough info to install one
              bootDevice = "/dev/vda";
              bootPartition = "/dev/vda1";
            };
          }
        ];
      };
    };
  };
}

And then just be able to use this to run the virtual machine:
nix run .#nixosConfigurations.foo.vm

This is not necessary, but the reason I moved the virtual machine configuration outside of the usual modules is that:

Virtual machine configuration is not a part of the system configuration, it's on another layer.
So that it's easier to make the virtual machine accessible as #nixosConfigurations.foo.vm instead of #nixosConfigurations.foo.config.system.build.vm (And I think that should go deeper than just vm, why is system.build inside a config? The word config implies you can find static options there which are the input to some process, and what is in system.build is obviously an output of that process).

But this would require a lot of changes and I probably overlook many issues with this approach. But for sure, there needs to be a way to give users more flexibility with partitioning the disk(s).
For now, I just dropped the bootloader and started to use vmVariant instead of vmVariantWithBootLoader. The system boots directly and I can set up the partitions and filesystems in initrd. Can't test the bootloader this way, but it's not that much of a loss for me.

There's a lot to unpack in your message, apologies if I don't answer everything.
Firstly, I don't use flakes, and they are experimental, so your top-level API is really specific to nixosSystems I believe, so I think you'd have to report this separately to get it this way.

Virtual machine configuration is not a part of the system configuration, it's on another layer.

This is complicated, do we want to have makeItAVM :: NixOSConfig -> NixOSConfig or makeItAVM :: NixOSConfig -> VMConfig, etc.
Modelling this properly is still an open problem IMHO.

diskImages, hostDrives

The first two are list-driven APIs, it's unfortunately a bad idea IME.
NixOS modules can perform spooky interaction at distance, you cannot predict the order of your disks, therefore you cannot have reliable tests (or anything).
I am in the process of killing and deprecating APIs, we should rather use attrset-driven APIs.
diskImages."root" = ...
partitions."vda" = ...
Look at how https://github.com/nix-community/disko works for example.

filesystemsSetup

Ideally, we should avoid string-driven API because they do not carry any structured information so that internal libraries can use them to do smart things.
I'd prefer much more structured things, why not plug disko into filesystems and let it drive the partitioning/mounting correctly for example.

For now, I just dropped the bootloader and started to use vmVariant instead of vmVariantWithBootLoader. The system boots directly and I can set up the partitions and filesystems in initrd. Can't test the bootloader this way, but it's not that much of a loss for me.

Did you try my PR? If that's enough for you, and you are not interested into it, let's close this issue because it's not actionable anymore IMHO.

This is complicated, do we want to have makeItAVM :: NixOSConfig -> NixOSConfig or makeItAVM :: NixOSConfig -> VMConfig, etc.
Modelling this properly is still an open problem IMHO.

I agree. But the way it works now just feels kinda messy to me.

NixOS modules can perform spooky interaction at distance, you cannot predict the order of your disks, therefore you cannot have reliable tests (or anything).
I am in the process of killing and deprecating APIs, we should rather use attrset-driven APIs.
diskImages."root" = ... partitions."vda" = ...

I would be happy with whatever that works. I just tried to make a data model that enforces the order of items. While using virtio drives in qemu we can't specify how to device will be called, it's based on the order, so with ordered items we always know what devices they map to (e.g. first item will be /dev/vda). I guess that with attrsets there would be no way to enforce that a given disk should be at /dev/vda, it would be random or based on some sorting of keys.

I'd prefer much more structured things, why not plug disko into filesystems and let it drive the partitioning/mounting correctly for example.

I have never used disko, but it seems like it's able to deal with a lot of different configurations, so if it's somehow possible to use it to set up partitions and filesystems for vm image then it would be awesome. However, I'm afraid that it assumes that the user knows beforehand how the devices are called (viewing them from inside a NixOS installer) and with virtual machines there are no pre-existing devices, they need to be created based on our configuration. And even if declarative management can deal with a lot of situations, there will always be some exceptions. So I think that there should always be a possibility for the user to do things manually his own way. "Simple things should be simple, complex things should be possible".

Did you try my PR? If that's enough for you, and you are not interested into it, let's close this issue because it's not actionable anymore IMHO.

I tried it, but it only boots me to UEFI Interactive Shell with useDefaultPartitionTable = true. But one way or another, I can't really use the default partition layout, because my target layout is different. And with useDefaultPartitionTable = false it's the same story as before.
I guess we can close this for now. I'm sure someone will pick it up in the future because it's very useful to be able to reproduce your custom system as close to 1:1 as possible in the virtual machine. But it seems that a lot needs to be changed, discussed and agreed upon to make it possible.

This is complicated, do we want to have makeItAVM :: NixOSConfig -> NixOSConfig or makeItAVM :: NixOSConfig -> VMConfig, etc.
Modelling this properly is still an open problem IMHO.

I agree. But the way it works now just feels kinda messy to me.

Unfortunately, untangling all of this requires time.

NixOS modules can perform spooky interaction at distance, you cannot predict the order of your disks, therefore you cannot have reliable tests (or anything).
I am in the process of killing and deprecating APIs, we should rather use attrset-driven APIs.
diskImages."root" = ... partitions."vda" = ...

I would be happy with whatever that works. I just tried to make a data model that enforces the order of items. While using virtio drives in qemu we can't specify how to device will be called, it's based on the order, so with ordered items we always know what devices they map to (e.g. first item will be /dev/vda). I guess that with attrsets there would be no way to enforce that a given disk should be at /dev/vda, it would be random or based on some sorting of keys.

It's not desirable to depend on the ordering of your disks, when you have multiple layers of abstraction, something can insert a disk before you and after you and all of your tests depending on vda, vdb, vdc, vdd, vde needs to be shifted by one disk or more.
Unless you have a compelling case, I never find any use of having ordering for disks, you want to give them names and reference them through their names.

I'd prefer much more structured things, why not plug disko into filesystems and let it drive the partitioning/mounting correctly for example.

I have never used disko, but it seems like it's able to deal with a lot of different configurations, so if it's somehow possible to use it to set up partitions and filesystems for vm image then it would be awesome. However, I'm afraid that it assumes that the user knows beforehand how the devices are called (viewing them from inside a NixOS installer) and with virtual machines there are no pre-existing devices, they need to be created based on our configuration. And even if declarative management can deal with a lot of situations, there will always be some exceptions. So I think that there should always be a possibility for the user to do things manually his own way. "Simple things should be simple, complex things should be possible".

Did you try my PR? If that's enough for you, and you are not interested into it, let's close this issue because it's not actionable anymore IMHO.

I tried it, but it only boots me to UEFI Interactive Shell with useDefaultPartitionTable = true. But one way or another, I can't really use the default partition layout, because my target layout is different. And with useDefaultPartitionTable = false it's the same story as before.

Can you detail more about your usecase? Because your example code mentioned a GPT partition table and UEFI boot.
Are you trying to test legacy protective MBR partition table or stuff like that?

I guess we can close this for now. I'm sure someone will pick it up in the future because it's very useful to be able to reproduce your custom system as close to 1:1 as possible in the virtual machine. But it seems that a lot needs to be changed, discussed and agreed upon to make it possible.

I would appreciate any help anyway. :)

It's not desirable to depend on the ordering of your disks, when you have multiple layers of abstraction, something can insert a disk before you and after you and all of your tests depending on vda, vdb, vdc, vdd, vde needs to be shifted by one disk or more.
Unless you have a compelling case, I never find any use of having ordering for disks, you want to give them names and reference them through their names.

I agree, it would be best to be able to explicitly name the disk. But if we are using qemu for the virtual machine and creating virtual disks, then I think we have no option to enforce the disk name. It's not our choice, it's qemu's design. But I'm not 100% sure about that. If it is possible to bind the name, then I'm 100% in favour of relying only on the name.

Can you detail more about your usecase? Because your example code mentioned a GPT partition table and UEFI boot. Are you trying to test legacy protective MBR partition table or stuff like that?

It's not that much different from the default setup. I just want to have one disk and possibly more partitions. The simplest example would be boot partition (for /boot), root partition (for /), home partition (for /home) and swap partition (for swap). And the reason I want more partitions inside the virtual machine is that I use more partitions in my physical machine setup and I want to match the two configurations as close as possible.

It's not desirable to depend on the ordering of your disks, when you have multiple layers of abstraction, something can insert a disk before you and after you and all of your tests depending on vda, vdb, vdc, vdd, vde needs to be shifted by one disk or more.
Unless you have a compelling case, I never find any use of having ordering for disks, you want to give them names and reference them through their names.

I agree, it would be best to be able to explicitly name the disk. But if we are using qemu for the virtual machine and creating virtual disks, then I think we have no option to enforce the disk name. It's not our choice, it's qemu's design. But I'm not 100% sure about that. If it is possible to bind the name, then I'm 100% in favour of relying only on the name.

It's not a QEMU limitation, you never use disks before udev has kicked in, therefore you can always use udev to rename them.
It's our choice to not have those APIs.

Can you detail more about your usecase? Because your example code mentioned a GPT partition table and UEFI boot. Are you trying to test legacy protective MBR partition table or stuff like that?

It's not that much different from the default setup. I just want to have one disk and possibly more partitions. The simplest example would be boot partition (for /boot), root partition (for /), home partition (for /home) and swap partition (for swap). And the reason I want more partitions inside the virtual machine is that I use more partitions in my physical machine setup and I want to match the two configurations as close as possible.

You are mentioning partitions, but I still don't see the need for partition table at the moment.
Note that also the "test VM with bootloader" is not devised to test your filesystem mapping, we cannot do this because we do not have the declarative information of your partitioning. Some projects existed in the past to achieve this (nixpart for example).
Right now, the best bet is disko, if it becomes part of NixOS, it is possible to invent a mode where we partition a layout, install NixOS in it and test your VM completely.
In the meantime, this usecase (testing your filesystem mapping) is unsupported and writing custom code yourself to make it work is probably not a good idea because you are not testing the filesystem mapping, you are testing you wrote the correct code to put your fs in the right situation and there's nothing that says when you reinstall this machine you will type the same commands.
Thus, disko seems the way forward on this usecase.


Include all *_filter and *_action methods from Rails 4.2 release

This commit attempts to round out the list of *_filter and *_action
methods that are detected and replaced by the Rails/ActionFilter cop. It
is currently only acting on 4 out of the 13 methods listed in the Rails
4.2 [release notes] (https://github.com/rails/rails/blob/4115a12da1409c753c747fd4bab6e612c0c6e51a/guides/source/4_2_release_notes.md#notable-changes-1).

:+1: Thanks!


Better annotations for toolkit

https://github.com/Steinbeck-Lab/cheminformatics-python-microservice/blob/235ec40a1b5549d39c875019ffad3f962be02b67/app/routers/chem.py#L302
toolkit: Optional[str] = "cdk" should not be optional - it's required with a default. It's also better to use Literal["cdk", "rdkit"] so FastAPI knows these are the list of allowed values and can do error checking for you. Same idea can be applied in many places

@CS76 fyi it's very confusing to track how changes are addressed if they are put into an opaque development branch before merging into main

@cthoyt Here is the pull request that resolved these issues - https://github.com/Steinbeck-Lab/cheminformatics-python-microservice/pull/307

Also, here is a pull requests filter you might find helpful for filtering https://github.com/Steinbeck-Lab/cheminformatics-python-microservice/pulls?q=is%3Apr+base%3Adevelopment


link_to method: :put or :delete or :post did not working on rails 7

Rails 7 did not support ujs anymore, Therefore link_to did not working with :put, :delete, :post method.
There is many issue such as logout of link_to using :delete method on Device gem, so on.
Many answer on stackoverflow that shown use link_to data: {"turbo-method": :post} instead of link_to method: :post
Below of code is git log for unsovled link using link_to with :put method
-            <%= link_to t('undo'), simple_discussion.unsolved_forum_thread_forum_post_path(@forum_thread, forum_post), method: :put %>
+            <%= link_to t('undo'), simple_discussion.unsolved_forum_thread_forum_post_path(@forum_thread, forum_post), data: {"turbo-method": :put} %>

Could I do PR for solving this issue on rails 7 without ujs?
Or Do you have some solution?

These should be changed to button_to so they don't require JavaScript. If you want to make a pull request, please do!

These should be changed to button_to so they don't require JavaScript. If you want to make a pull request, please do!

but button_to was not pretty on view.
link_to use awesome icon.


Untagged unit variant fails to deserialize from visit_none()

I'm writing a serialization format that uses explicit optionals. Similarly to serde_json::Value, my Value enum has a Null variant representing the null value. When asked to deserialize_any(), this null value calls visit_none() on the supplied visitor. However, UntaggedUnitVisitor doesn't implement visit_none(), only visit_unit(), so this fails.
It seems to me that UntaggedUnitVisitor should ideally implement visit_none() because OptionVisitor treats unit and None as the same, so this would be the consistent behavior.
Another reason is that although I could fix the error by making Value::deserialize_any() call visitor.visit_unit() instead of visitor.visit_none(), I'd rather not change this behavior, because untagged enums are what I would consider more of a less-used special case, whereas Option has very regular structure and semantics, and it is used a lot more frequently too.

@H2CO3 , I found, that the problem here was in calling deserialize_any. If derived code would call deserialize_unit to request the unit variant for untagged enum, would that solve problem with your format?


dose it can using the other LLM ? like  Qwen2-vl or MiniCPMV, Llava, any VLM

thsk for  open source !!  but the  installation instructions default to palegemma, but I would like to try another vision language model. I'm not sure if this is possible. Has anyone else tried this?

You can try with idefics2, we'll be trying out other models as well but one of the constraints is memory usage. all models are not always that lightweight or may have large numbers of image tokens

You can try to implement the Llava ! I am training a qwen right now


feat: update gosoline monitoring module to 2.1.1

Description

Motivation and Context

Breaking Changes

How Has This Been Tested?

[ ] I have updated at least one of the examples/* to demonstrate and validate my change(s)
[ ] I have tested and validated these changes using one or more of the provided examples/* projects

[ ] I have executed pre-commit run -a on my pull request

:tada: This PR is included in version 2.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


fix(renovate): Update patch to ^7.1.1 (patch)

This PR contains the following updates:

Package
Type
Update
Change

@typescript-eslint/eslint-plugin (source)
devDependencies
patch
^7.1.0 -> ^7.1.1

@typescript-eslint/parser (source)
devDependencies
patch
^7.1.0 -> ^7.1.1

Release Notes

typescript-eslint/typescript-eslint (@typescript-eslint/eslint-plugin)
v7.1.1
Compare Source
This was a version bump only for eslint-plugin to align it with other projects, there were no code changes.
You can read about our versioning strategy and releases on our website.

typescript-eslint/typescript-eslint (@typescript-eslint/parser)
v7.1.1
Compare Source
This was a version bump only for parser to align it with other projects, there were no code changes.
You can read about our versioning strategy and releases on our website.

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "every weekend" in timezone America/Denver.
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


Add Url video support and demo button

Make easily to watch the example handling url video, adding the video on the repo and having a demo/example button (#demo)
Part 1. of https://github.com/marek-simonik/record3d-wifi-streaming-and-rgbd-mp4-3d-video-demo/issues/3
(introduced duplicated code to parse metadata might be remove in 2.)

Or should I merge OfflineVideoSource and UrlVideoSource objects? and check the mp4 file type (File or String=> url)

I like the idea of keeping OfflineVideoSource and UrlVideoSource in separate classes better (there might be significant differences in metadata parsing logic in the future). As you wrote, the metadata parser logic could be extracted into a function/class later, in the es6 version.


Bearer Token is confusing in API Playground

Given that we have App Clients and API Keys, how do I use these to generate a value to fill out "Bearer Token"?

Potentially related -- I tried reading https://docs.vectara.com/docs/api-reference/auth-apis/oauth-2 to learn more and it left me confused. Under "Obtain a WT token", the docs begin with "Before continuing, you'll need the OAuth 2.0 token endpoint..." and gives some information on how to get the endpoint. But then it ends there. I was surprised because "Before continuing" implies there will be guidance on how to continue obtaining a JWT token but instead the docs just kind of stop.

I just created PR 100 that updates the OAuth 2.0 topic with more clarity.


Thread names in the Call Stack section

Hi, I'm developing a FreeRTOS project, where I have a lot of tasks running which gdb shows as threads, and I find myself having to check manually the info thread to know which thread I want to expand in the Call Stack box

It could be great if the Call Stack box would show the thread names too

Second this request, this would be a good feature to have.

I implemented it in https://github.com/WebFreak001/code-debug/commit/be19c277870e04469347bc2f7032af9dd2daf580.


Remove runtime-async-std from default feature

And then, there is no need to disable default features for the other runtimes.

Fair enough. Adjusted for the incoming 0.4 release.


Dockerizing the build to use JDK 7 + Maven 3.5.4 + Erlang 17

Travis no longer supports JDK 7!
To have a reproducible build, we now use Docker with an image that controls the installed dependencies.

Closing this PR since it was just a test of how to handle Docker in Travis with the idea of using JDK 7; however, this means we won't be building using OS X, which is the sole purpose of sticking to buggy-old Travis.


Testing documentation & guidlines

Which tests have to be run to make sure a tellurium commit is valid?
I could not find anything about testing in the repository.
This should be documented, i.e.

how to run tests
how to write tests

see also #33

unittests are implemented for core functionality
Testing documentation and guidelines are available in
https://github.com/sys-bio/tellurium/blob/master/tellurium/tests/README.md
unittests have to be run successfully before commiting !

This was supposed to be documented a long time ago!
Herbert
On Tue, Feb 2, 2016 at 7:16 AM, Matthias König<EMAIL_ADDRESS>wrote:

Closed #77 https://github.com/sys-bio/tellurium/issues/77.
—
Reply to this email directly or view it on GitHub
https://github.com/sys-bio/tellurium/issues/77#event-535969060.

Running this from within Spyder on the Mac results in the following error message:
>>> import tellurium.tests.test_runner as tetest
>>> runner = tetest.TestRunner()
>>> runner.te_passes_tests()
...
(output of roadrunner tests)
...
<unittest.runner.TextTestResult run=135 errors=13 failures=0>
/Volumes/Tellurium-1.3.2-Spyder-2.3.8-OSX/Spyder-Py2.app/Contents/Resources/lib/python2.7/matplotlib/figure.py:397: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure
  "matplotlib is currently using a non-GUI backend, "

Also, running the tests seem to prevent matplotlib from working at all. I don't get any output from the RoadRunner.plot() function after running the tests.

Sorry. Redirecting the gui interface while running the test. So one can
plot in the tests without creating the images. Have to restore at end of
test runner. Will fix this.
On Feb 27, 2016 12:13 AM, "Kyle Medley"<EMAIL_ADDRESS>wrote:

Also, running the tests seem to prevent matplotlib from working at all. I
don't get any output from the RoadRunner.plot() function after running
the tests.
—
Reply to this email directly or view it on GitHub
https://github.com/sys-bio/tellurium/issues/77#issuecomment-189521602.

Great, thanks so much for your help!
On February 27, 2016 3:49:41 AM PST, "Matthias König"<EMAIL_ADDRESS>wrote:

Sorry. Redirecting the gui interface while running the test. So one can
plot in the tests without creating the images. Have to restore at end
of
test runner. Will fix this.
On Feb 27, 2016 12:13 AM, "Kyle Medley"<EMAIL_ADDRESS>wrote:

Also, running the tests seem to prevent matplotlib from working at
all. I
don't get any output from the RoadRunner.plot() function after
running
the tests.
—
Reply to this email directly or view it on GitHub

https://github.com/sys-bio/tellurium/issues/77#issuecomment-189521602.

Reply to this email directly or view it on GitHub:
https://github.com/sys-bio/tellurium/issues/77#issuecomment-189621698

--
Sent from my TARDIS with K-9 Mail. Wibbly-wobbly wordy gurdy.


Add AliCloud Container Service documentation for Istio Support

We add the documentation about the Quick Start instructions to setup the Istio service using AliCloud Kubernetes Container Service.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: osswangxining
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sdake
Assign the PR to them by writing /assign @sdake in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Hi @osswangxining. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

I signed it! @sdake @googlebot

/ok-to-test

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: osswangxining
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: frankbu
Assign the PR to them by writing /assign @frankbu in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: osswangxining
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: sdake
Assign the PR to them by writing /assign @sdake in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

content/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Duplicate with #1636


Custom 'if' attribute with content recreation?

I wanted to create custom 'hard-if', which causes element to be created from scratch.
After I had read https://github.com/aurelia/templating-resources/blob/master/src/if.js
I copied code and tried to set view = null when hiding (line 75) element. It even worked for simple nested elements, but when I used my 'hard-if' on router-view element  it stopped working (first appearance works, subsequent not).
Is there a way to handle such situation:
<form-login if.bind="sessionExpired"></form-login>
<router-view if.bind="!sessionExpired></router-view>

In the route module I'm loading data (loader shown), I intercept a response error (session expired), show form-login. After successfull log in, router-view is back but with the loader (constructor is not invoked).
Is there a way to hide and show element like it was rendered for the first time?

this question and answer might help:  http://stackoverflow.com/questions/33458274/how-to-switch-between-login-page-and-app-with-aurelia

@krostkowski are you all set?  Can this be closed?

Yes, thank you. It worked like a charm:)


Handle streaming grpc in mock service.

Create empty streaming grpc stub to avoid compile error.

Current coverage is 81.14% (diff: 0.00%)

Merging #403 into master will decrease coverage by 0.01%

@@             master       #403   diff @@
==========================================
  Files           183        183
  Lines          6905       6906     +1
  Methods           0          0
  Messages          0          0
  Branches        900        902     +2
==========================================
  Hits           5604       5604
  Misses         1026       1026
- Partials        275        276     +1

Powered by Codecov. Last update bfbbd79...e1e953d

LGTM


Error on Import

Hey! I'm trying to package coq-elm-extraction in my personal nix package collection and I ran across this build error. I think probably MetaCoq/Utils/utils.vo is the intended path.
make[2]: Entering directory '/home/rigille/repositories/coq-elm-extraction/tests'
COQDEP VFILES
COQC theories/Ack.v
COQC theories/ElmExtractTests.v
File "./theories/ElmExtractTests.v", line 12, characters 0-34:
Error: Required library utils matches several files in path (found
/nix/store/fsl0glk77szddhv2llwq10alx3zfyysf-coq8.17-metacoq-broken/lib/coq/8.17/user-contrib/MetaCoq/Quotation/ToPCUIC/Utils/utils.vo,
/nix/store/fsl0glk77szddhv2llwq10alx3zfyysf-coq8.17-metacoq-broken/lib/coq/8.17/user-contrib/MetaCoq/Quotation/ToTemplate/Utils/utils.vo and
/nix/store/fsl0glk77szddhv2llwq10alx3zfyysf-coq8.17-metacoq-broken/lib/coq/8.17/user-contrib/MetaCoq/Utils/utils.vo).

I'm using coq 8.17 and metacoq v1.2-8.17

This should hopefully be fixed now.

Thanks!


arrivals can delete the nuke

Description
title
Reproduction

nuke
drag it over arrival arrival spot
wait for it to arrival
no nuke

Screenshots
happened in round #61353

hmmm. This ones a little more involved because if you wanted to use SpecialRespawn on the nuke it needs to have the same ID and code.


Introduce Update Channels #278

What it does
The goal of this PR is to add a second update channel.
Until now every commit was built and the result was pushed to https://download.eclipse.org/theia/ide/
With this PR we will instead push the results to https://download.eclipse.org/theia/ide-preview/
The ide-preview location may be used for testing the IDE before we promote it to https://download.eclipse.org/theia/ide/
For the promotion there will be a new Jenkinsfile in this PR that will be used to copy the results.
This needs to be triggered manually on the build server then.
Finally there is a new preference for selecting an update channel.
The current options are stable (https://download.eclipse.org/theia/ide/ Released Theia Version, Theia IDE was tested before promotion) and preview (https://download.eclipse.org/theia/ide-preview/ Released Theia Versions, Used for testing before promotion to general public). We may add a third option for Theia Nightlies in the future (non-released nightly builds of Theia).
Contributed on behalf of STMicroelectronics
How to test
Update channels
Testing the update channels requires some local adjustments.
See the image below to check a valid file structure for local testing on linux.. This structure mimics our download.eclipse.org layout

prepare sources for local testing by doing a workspace wide search and replace for "https://download.eclipse.org/theia/" with "http://localhost:5000/". This should update electron-builder.yml and theia-updater-impl. Please verify that the changes look sensible to you, meaning the resulting URLs look valid to you (no missing or additional "/" e.g.)
build a "stable" realease with yarn && yarn build:dev && yarn electron package
create a new directory somewhere on your hard drive. Within this directory, create two further directories "ide" and "ide-preview"
within the ide directory create one directory called "latest" and one directory called "1.45.0" (Should be the version used in applications/electron/package.json)
within those two directories, create a further directory based on your os: "windows", "macos", or "linux"
Now copy the contents of "applications/electron/dist" inside these directories
Now increment the patch part of the version in applications/electron/package.json, e.g. from 1.45.0 to 1.45.1
Build a "preview" release with yarn && yarn build:dev && yarn electron package
within the ide-preview directory create one directory called "latest" and one directory called "1.45.1" (Should be the updated version from applications/electron/package.json)
within those two directories, create a further directory based on your os: "windows", "macos", or "linux"
Now copy the contents of "applications/electron/dist" inside these directories
From the directory containing the "ide" and "ide-preview" directories, run npx serve -d -u -p 5000. The output logs will have valuable information for verifying the channels.
Point your browser to http://localhost:5000/ to check if you can see the ide and ide-preview directories
Now launch the "stable" installer/application (this is the one available in the ide directory)
File -> Preferences -> Check for Updates...
The logs of the npx serve should show three accesses to /ide (1st one is stable location that happens on startup of the application, 2nd one happens when the preference was reported from electron frontend to backend, 3rd one was out manual "Check for Updates...")

 HTTP  1/19/2024 2:35:23 PM ::1 GET /ide/latest/linux/latest-linux.yml?noCache=1hkguts90
 HTTP  1/19/2024 2:35:23 PM ::1 Returned 200 in 5 ms
 HTTP  1/19/2024 2:35:25 PM ::1 GET /ide/latest/linux/latest-linux.yml?noCache=1hkguttlg
 HTTP  1/19/2024 2:35:25 PM ::1 Returned 200 in 0 ms
 HTTP  1/19/2024 2:35:58 PM ::1 GET /ide/latest/linux/latest-linux.yml?noCache=1hkguuu1a
 HTTP  1/19/2024 2:35:58 PM ::1 Returned 200 in 1 ms

Now go to the preferences and search for updates.channel. Update from stable to preview
File -> Preferences -> Check for Updates...
Select "No" to not install the updates. There should be one new log

 HTTP  1/19/2024 2:43:17 PM ::1 GET /ide-preview/latest/linux/latest-linux.yml?noCache=1hkgvcb62
 HTTP  1/19/2024 2:43:17 PM ::1 Returned 200 in 0 ms

Now restart the IDE to check if the update is reported in startup automatically. This should create new logs like this (again stable is always checked on startup, only then we may update the preference)

 HTTP  1/19/2024 2:44:49 PM ::1 GET /ide/latest/linux/latest-linux.yml?noCache=1hkgvf48l
 HTTP  1/19/2024 2:44:49 PM ::1 Returned 200 in 0 ms
 HTTP  1/19/2024 2:44:50 PM ::1 GET /ide-preview/latest/linux/latest-linux.yml?noCache=1hkgvf5lh
 HTTP  1/19/2024 2:44:50 PM ::1 Returned 200 in 1 ms

Install the update and continue manual testing

Build Jobs
The build jobs need to be tested on the Eclipse CI. I don't have local testing instructions.
Review checklist

[x] as an author, I have thoroughly tested my changes and carefully followed the review guidelines

Reminder for reviewers

as a reviewer, I agree to behave in accordance with the review guidelines

Great description, btw :-)


update the helmService - [closed]

In GitLab by @liyanq528 on Mar 20, 2019, 08:36
Merges helm -> dev

In GitLab by @wknet123 on Nov 13, 2019, 11:40
closed


New feature - Nullish (??) operator

JerryScript-DCO-1.0-Signed-off-by: bence gabor kis<EMAIL_ADDRESS>

@rerobika Thank you for the review!


Update sbt-wartremover to 3.1.3

About this PR
📦 Updates org.wartremover:sbt-wartremover from 3.0.8 to 3.1.3
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.wartremover", artifactId = "sbt-wartremover" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.wartremover", artifactId = "sbt-wartremover" }
}]

labels: sbt-plugin-update, early-semver-minor, semver-spec-minor, commit-count:1

Codecov Report

Merging #435 (d9c9e51) into master (806f830) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##           master     #435   +/-   ##
=======================================
  Coverage   84.75%   84.75%
=======================================
  Files          35       35
  Lines         223      223
  Branches       17       17
=======================================
  Hits          189      189
  Misses         34       34

Flag
Coverage Δ

unittests
84.75% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Superseded by #457.


Missing Drains

There seem to be stormwater drains missing from the map in some locations.  I have verified that
there are drains there and I am not sure why they are missing from the Adopt-A-Drain map.
Here is the first location that was brought to my attention:  Monticello Avenue.
Essentially any storm drain on a street owned by the City should be showing up.

Commit 43ec02334b033979188057689b9aacfd82cd4cdb, for reference.


feat(radio, radio-group): Enhance accessibility with arrow key navigation and aria attributes

This PR addresses and resolves issue #950.
Changes Made:

Implemented arrow key navigation for the Radio Group component.

Down/Right Arrow:

Moves focus to and checks the next radio button in the group.
If focus is on the last radio button, moves focus to the first radio button.
The state of the previously checked radio button is changed to unchecked.

Up/Left Arrow:

Moves focus to and checks the previous radio button in the group.
If focus is on the first radio button, moves focus to and checks the last radio button.
The state of the previously checked radio button is changed to unchecked.

Removed the aria-readonly property from the Radio Button component.
Added the aria-checked attribute to the Radio Button component to indicate its checked state.

These changes improve the accessibility and user experience of the Radio Group component in compliance with W3C ARIA Radio Group Example.
This PR resolves issue #950.

this PR fails the test but I think it is necessary, I did not change the test file to avoid breaking it.