FYI: I think we're on the right track...

I had a little downtime, and was just doing some light reading on browser fingerprinting from Slovakia, as one does (it was either that or drinking some boring beer), and came across a reference to the ghacks user.js ... cool :sunglasses:
PDF: http://virpo.sk/browser-fingerprinting-hraska-diploma-thesis.pdf - page 45

Firefox settings can also be imported and exported using a single file. This possibility encouraged its users to create a comprehensive open-source template for Firefox settings called ghacksuser.js [4]. The latter contains a predefined configuration that strengthens Firefox’s security, privacy, and anti-fingerprint character. Browsers with these settings are less likely to be unique. Moreover, all browsers using this settings template will, in most cases, have the same fingerprint.

This is a 2018 master's thesis by Peter Hraška - totally digging the sample size and real-world data-set, as well as focusing on a stable and minimum set of FP'ing items. Shame it lacked DOMRect and a better math test suite.

@ViRPo
Not sure if you're still into all this stuff given you have finished your masters. I have some more info for you - especially about math functions detecting platform and architecture and 32 vs 64bit builds, as well as DOMRect fingerprinting, which is probably as revealing as Canvas.
I found the information on math FP'ing very scarce and tan(-1e300) to be old and no longer reliable (within Firefox, i think, I didn't keep the limited test data I did: I would be interested in your data set on this metric for Firefox). Instead I found a Japanese research paper from mid to late 2018 that highlighted eight math.cos values that do more than enough. BUT, then I added in some ECMAScripts 6th Edition math functions which also added entropy in their own right, and combined I can get more than just platform and browser. Chrome (non webkit) is the same on all platforms and 32 vs 64 builds, but I don't care about Chrome - however this signifies that the Tor Uplift or Firefox could do the same.
FYI: I am actively working on these over at TorZillaPrint - the link to the test site is in the readme. It's a work in progress. I'm also interested in the data you have on error messages, and maybe a few other things :)
PS: For the record: I've been working fairly closely with the Tor Uplift guys at Mozilla for a while - that's the team behind the  privacy.resistFingerprinting and privacy.firstparty.isolate etc prefs
PPS: Thanks for the reference :kiss:

No point leaving this open. For those interested, I have reached out to Peter via email, and if he's interested then we can talk in TZP's repo (or here)

Hi there!
I am sorry to keep you waiting
It is funny, that you mentioned a Japanese research - I am currently travelling all around Japan, which is why I couldn't reply sooner :)
I am super glad to hear you found my work useful and I will gladly provide you with more information and answer further questions once I get back from my travels (~2 weeks)
I will probably post the answers here for future reference
Would that be ok? :)
Also, could you give me a hint on where to find the Japanese paper?
I am not doing a hardcore research on browser fingerprints anymore, but I am still trying to keep myself up to date with the topic and haven't lost my interest :)

Also, could you give me a hint on where to find the Japanese paper?

Sure. Email sent. Let me know if you don't get it

I am super glad to hear you found my work useful ...

It really backed up almost everything I thought I knew (I've been dabbling in this stuff ever since Eckersle), especially real world stats vs sites such as Panopticlick etc.

I will probably post the answers here for future reference... Would that be ok? :)

Sure. Or you could post em at TZP's repo which would be a bit more relevant: https://github.com/ghacksuserjs/TorZillaPrint/issues - just open or find a relevant issue

once I get back from my travels (~2 weeks)

Enjoy :) Ignore my impatience .. and have a great holiday :beers:

@ViRPo,

We were able to collect 566,704 browser fingerprints with 323,746 distinct browser IDs.

I guess that count of fingerprints is a natural number, so , is a digit group separator, not decimal one.

By far the largest source of data on which we were able to apply our browser fingerprinting script was a web application used for enhancing audience interaction on events by allowing them to ask questions or answer polls. Since this web app is mainly used by event participants, most of them will use their smartphone to access it. Indeed, around 65% of its, approximately, 200,000 active users per week use mobile phones/smartphones, and 4% use tablets to access it.

So ~ 307692 active users at total. Assumming that a user has 2 device and almost noone uses private mode in average it results in ~153846 users per week.

Feels like too many. Especially too many, if one take in account that not everyone uses these webapps. I don't beleive that such popular platforms for building conference webapps exist. Is , used consistently as a groups separator?
How could you make an author of such a platform to risk his business interests and insert the backdoor? I don't beleive that Comenius University has enough money to buy successful businesses in order to create datasets for students' mastertheses.

I know this was directed at ViRPo but ....
I can't understand or follow what you're asking. What is a "group separator"? Do you just mean a comma? If it was decimal it would be a period. These are clearly numbers in the hundreds of thousands. I've never written a master's thesis, but using the comma in the number is the expected / universal / standard format in such a document.
566,704 FP's collected (five hundred and sixty six thousand... etc)
323,746 FP's were "distinct" (i.e unique - no one else had the same FP)

Where is the figure 307692 "active users" coming from? The 3rd test was a JS web app (see 4.1 Sources of data). This is the source that harvested 566704 FP's. I'm not Peter and I didn't run this test, but each browser was assigned an ID (cookie, local storage)
From the paper

This way, the browser ID will be stored even if the cookies are unavailable, which occurs frequently

However, at least in Firefox, this hasn't worked for many years - for as long as I have known and tested, if you block cookies within Firefox's settings, localStorage (among other APIs) is not available. Also Private Browsing mode (and incognito?) etc don't keep local persistent data. Maybe Peter can elaborate on the dataset. e.g does the dataset include those browsers that blocked persistent storage. Even if it didn't, it still allows for repeat visits by the same browser if they sanitize local storage, e.g on the fly or manually or on close, or with third party apps.
Still totally confused where 307692 active users comes from. And why does it matter if users have one device, or a hundred. The fingerprint is a "browser" fingerprint - who uses the browser on what platform is immaterial. Unless I'm missing something you're trying to convey. Almost 243 thousand (out of the 566+ thousand) shared FP's (at least two had the same) seems very high and suggests multiple visits by the same browser+device: i.e the browser id tracking failed. Then again, it could be that high because of the number of smart phones in the set (although I'd have to re-read the whole thesis, but I think Peter, and others, have found smart phones leak more entropy?) - e.g in my experience, the font signature on say iOS and Android are fairly set in concrete, and the OS by design harder to "play with" (esp for the average end user).
I also wouldn't call client side JS a backdoor
Anyway, sorry for the ramble. Yes, those are numbers formatted with commas

In representing large numbers, from the right side to the left, English texts usually use commas to separate each group of three digits in front of the decimal. This is almost always done for numbers of six or more digits and often for five or four digits but not in front of the number itself.

I can't understand or follow what you're asking. What is a "group separator"? Do you just mean a comma? If it was decimal it would be a period.

Decimal separator is point in US. In mainland Europe (Slovakia is in Europe) it is comma.

Where is the figure 307692 "active users" coming from?

200000 users of mobile devices among users of the third app / 0.65 share of such users

However, at least in Firefox, this hasn't worked for many years

My experience says me that noone among the people I know uses any privacy extensions, adblockers and settings tweaks (except the ones who have them installed by me), and all of them think it doesn't worth the mental load it takes to worry about all these stuff. And these is not about IT knowledge and skills, it is about mentality. I assumme that share of users using private browsing mode among conferences visitors is negligible.

I also wouldn't call client side JS a backdoor

Of course it is. How we define a backdoor? Supply chain attack is inserting malicious functionality  by someone who is part of supply chain.  What is the supply chain in this case? App developers -> ??? -> conference. Is browser fingerprinting a malicious functionality? It is used to track users and most of users prefer it be missing, even if they don't care enough to do any actions about it. So I consider this functionality malicious. So the described case satisfies this definition of a backdoor, doesn't it?

And why does it matter if users have one device, or a hundred.

Because it affects correctness of estimation of count of people using this app. Count of people using this app is a measure of success of that app. Measure of success of that app can be used try to guess odds that in the case of app being commercial its owner would be willing to risk its business for someones masterthesis. In the case of popular free open source software contributors will likely detect that and fork the app and banish its original dev for that. Also estimation of count of users can be used to check if enough conferences with enough visitors exist in the world to have that count of users (I don't believe in it, but it should be really checked by finding some website aggregating stats about conferences).

Almost 243 thousand (out of the 566+ thousand) shared FP's (at least two had the same) seems very high and suggests multiple visits by the same browser+device: i.e the browser id tracking failed.

I don't believe that randomization of fingerprints is used in large scale by ordinary people, like the ones visiting conferences. Wnd as far as I understand, fingerprint2js was used, which is a pretty mature library.

Decimal separator is point in the US. In mainland Europe (Slovakia is in Europe) it is comma.

Really? I never knew that, then again I'm not European - https://en.wikipedia.org/wiki/Decimal_mark

Because it affects correctness of estimation of count of people using this app

It's not counting people, it's counting browsers. Numbers of people are immaterial.

Where is the figure 307692 "active users"...

"566,704 browser fingerprint samples, 65% of which are from smartphone device" - from the thesis. Ahh, OK, that then is 368358 FP's.

My experience says me that noone among the people I know uses any privacy extensions, adblockers and settings tweaks.. [and from earlier] ... Assuming that a user has 2 devices and almost no-one uses private mode in average it results in ~153846 users per week.

You can't make assumptions, and you can't use anecdotal evidence. It's a shame the FP didn't allow for detecting PB/incognito mode (which can easily be done). But at least it tries to store a "browser id" to reduce duplication - which is why I said it "seemed" to be a little high (for non-unique FPs). Your argument that most end users aren't tech savy and/or too busy and just use the browser in a default state (or close to it) actually supports that repeat visitors would be re-identified by the stored browser id.
However, what I am saying is that it "seems" that 43% of the 566 thousand FP's were not unique is rather high given your statement, and the above fact that a browser id was used.
There are studies (but I'd have to re-dig them up, so it's from memory) that increasing amounts (percentages) of users are resorting to privacy extensions and PB/Incognito etc modes. 83% of users would switch browsers in one study by DDG if it increased their privacy- and that was almost 2 years ago). And awareness is increasing. Since that study (which might be an outlier), it's only gotten "worse", what with all the data breaches and fallout over FB etc. Even main stream everyday news is full of this stuff in my experience - articles that were mainly the preserve of tech blogs like arstechnica, wired, etc, are now becoming common on sites like the guardian, la times, etc. The public may not know what to do, but they sure do know about it and most care if given an easy choice.
Adblockers here have nothing to do with it (except that detecting an abdblocker was a metric) - the script is 1st party (at least on the demo site) and not blocked for results (or else a FP would not be generated). So while, e.g for Firefox I have read (from memory) that 30% of users have 1 extension, and that 1 extension is an adblocker. And IDK, 50% of Firefox users have no extension. Old figures from memory. That doesn't leave many people.
I actually agree with you that only a small percentage (IDK, 1% to 2%?) would actually have reasonable setups. But in terms of FP'ing, almost no-one would. Almost no-one in Firefox would have RFP on. Other browsers lack inbuilt ability to mask FP metrics - hell, even FF hasn't got us our fonts sorted out.
So it seems strange that the non-unique percentage is so high. But I think we can partially lay that at the FP script (see below)
Again, the number of people is not relevant - it's not called a People Fingerprint, is it? If a person has an android device with chrome, and a windows 10 laptop with Firefox, then that's two FPs, not one person. And number of users per week is meaningless. Nothing is measured against time here.

So the described case satisfies this definition of a backdoor, doesn't it?

No, it doesn't. It's not even malicious, for starters

as far as I understand, fingerprint2js was used, which is a pretty mature library

The fpjs2 script is fairly small and simple. Given most people are auto-updated, and most people use one of 5 main browsers - things such as HTTP headers, UA strings, tan, cookies+ localstorage + sessionstorage + IDB, IE plugins, DNT - are going to be the same within the same browser by default. They only serve to help differentiate the browser (chrome vs firefox etc), or catch out a few users or tell fibs or tweak some settings.
The real FP'ing comes from items like audio and canvas, and maybe fonts. Given those metrics were included, THAT is why I find it so surprising that 43% of users were not unique. The high number of smartphones probably played a role - stock safari/chrome on stock iOS/Android = bound to be duplication. (but I thought Peter said smartphones gave more entropy?).
Anyway .. time for some nudity and beer drinking

Again, the number of people is not relevant - it's not called a People Fingerprint, is it? If a person has an android device with chrome, and a windows 10 laptop with Firefox, then that's two FPs, not one person. And number of users per week is meaningless. Nothing is measured against time here.

As I understand, distinct browsers are counted by cookies, and I assummed that assumming that noone clears them would not make a big error. So I have assummed that a conference visitor has accessed the webapp from 2 devices: a laptop and a phone, and divided 307692 by 2 and as an estimation of count of people users per week. Seems like too many.

It's not counting people, it's counting browsers. Numbers of people are immaterial.

Yes, but I want to calculate count of people. I don't quite understand how a research institution managed to make a popular and succesful web app to install own backdoor into it on the market where competition is present.

You can't make assumptions, and you can't use anecdotal evidence.

Why not? It is a GH issue, not a paper. We use the assumptions to quickly estimate the number and ask the author some questions about his ressearch.

Given those metrics were included, THAT is why I find it so surprising that 43% of users were not unique.

Fonts fp gives identical results in identical environments (os + libs + browser). Canvas fp should give identical results in identical devices, like most of phones are (again, in my experience almost noone (among my collegues) changes ROM and almost everyone (among my collegues) uses chinese devices by companies spotted on inserting backdoors.

Why not? It is a GH issue

Well, actually, it's a discussion about Peter's thesis and FP'ing. But, OK, I thought you were "attacking" (for lack of a better word) the integrity of the data, method of stats etc. But I see you're just fixated on other aspects of it (e.g "Yes, but I want to calculate count of people"). The paper (should) outlines limitations as far as I remember
I still do not follow what all this stuff about a conference is. I read that paper, slowly, over several cups of coffee (but just the once mind you), and never saw anything about a conference. I did take in the bit about smart phones and something about "web app" - maybe I should re-read it again when I get time.

As I understand, distinct browsers are counted by cookies ... and I assumed that assuming that noone clears them would not make a big error.

That's what I understood, and also by localStorage in case cookies were blocked, which doesn't make sense to me. Maybe non-FF browsers allow one but not the other, but FF doesn't.
no-one clearing them would eliminate duplicates (or errors) of browsers allowing a cookie. That's the whole point :grinning: Which is why I, me, myself am surprised by the 43% being not-unique. But I did then say that smartphones which make a big percentage, have the same FP in a lot of metrics because, as you said, they are the same OS and default browser and auto-updated, and these OSes tend to be fairly locked down. But there is a bit of a wider distribution of hardware, which would then add more entropy in e.g canvas/audio - but still, many people have the same phone models - so ti should be easy to not be unique, especially as the test size gets bigger and bigger.. So again, we're on the same page.
Anyway .. when Peter stops getting drunk in that Tokyo strip club and returns to GitHub, I'm sure he'll address your questions :)

never saw anything about a conference.

Neither did , but

were able to apply our browser fingerprinting script was a web application used for enhancing audience interaction on events
used by event participants, most of them will use their smartphone to access it

sounds like if an event was a synonym to a conference.

from a 266 page 2018 thesis I'm currently reading...

Nikiforakis et al. (2014a) established that smartphones frequently shared the same fingerprint ID because they have few attributes that can be accessed by the browser fingerprinting technique.

Not that I have looked up the source (Nikiforakis et al) or read it. But it strikes a chord with what we were both saying

Edit: FYI: the 266 page pdf if you want some light easy reading and you have a few spare minutes: https://eprints.soton.ac.uk/427361/1/Final_Thesis.pdf .. I'm up to page 62

thanks.


Slim 1145 all mbus channels occupied

This pull request makes the build fail.

retest this please

All is well.

All is well.

retest this please

All is well.


feat: sort filenames alphabetically in the files_changed tree

Files come in a random order from the API
I propose we sort them before building the tree in order to have deterministic order on a PR, avoiding confusion.
This trick with the extra table is the simplest way I have found for a table in a sorted order by their index lua, let me know if I have missed a magical sort function.

It does seem to be the case on the few PRs I have tested it on :ok_hand:

awesome, thanks


Container does not build

➜ faas template pull https://github.com/openfaas-incubator/node10-express-service
Fetch templates from repository: https://github.com/openfaas-incubator/node10-express-service at master
2019/06/25 21:34:07 Attempting to expand templates from https://github.com/openfaas-incubator/node10-express-service
2019/06/25 21:34:08 Fetched 1 template(s) : [node10-express-service] from https://github.com/openfaas-incubator/node10-express-service
➜ faas new --lang node10-express-service microservice1 --prefix="phumberdroz"
Folder: microservice1 created.
  ___                   _____           ____
 / _ \ _ __   ___ _ __ |  ___|_ _  __ _/ ___|
| | | | '_ \ / _ \ '_ \| |_ / _` |/ _` \___ \
| |_| | |_) |  __/ | | |  _| (_| | (_| |___) |
 \___/| .__/ \___|_| |_|_|  \__,_|\__,_|____/
      |_|

Function created in folder: microservice1
Stack file written: microservice1.yml

functions on  master [!?] at ☸  do-fra1-helm-notifier (openfaas-fn)
➜ faas up -f microservice1.yml
[0] > Building microservice1.
Clearing temporary build folder: ./build/microservice1/
Preparing ./microservice1/ ./build/microservice1//function
Building: phumberdroz/microservice1:latest with node10-express-service template. Please wait..
Sending build context to Docker daemon  9.728kB
Step 1/29 : FROM openfaas/of-watchdog:0.5.3 as watchdog
 ---> 4ff06209ff8b
Step 2/29 : FROM node:10.12.0-alpine as ship
 ---> 7ca2f9cb5536
Step 3/29 : COPY --from=watchdog /fwatchdog /usr/bin/fwatchdog
 ---> Using cache
 ---> 9a6a558666f9
Step 4/29 : RUN chmod +x /usr/bin/fwatchdog
 ---> Using cache
 ---> 1659076a5736
Step 5/29 : RUN addgroup -S app && adduser -S -g app app
 ---> Using cache
 ---> dc3d23ef6262
Step 6/29 : RUN apk --no-cache add ca-certificates     && apk del curl
 ---> Running in 6b5a953a1b72
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/1) Installing ca-certificates (20190108-r0)
Executing busybox-1.28.4-r1.trigger
Executing ca-certificates-20190108-r0.trigger
OK: 7 MiB in 16 packages
WARNING: Ignoring APKINDEX.adfa7ceb.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.efaa1f73.tar.gz: No such file or directory
The command '/bin/sh -c apk --no-cache add ca-certificates     && apk del curl' returned a non-zero code: 1
2019/06/25 21:34:17 ERROR - Could not execute command: [docker build -t phumberdroz/microservice1:latest .]

removing && apk del curl makes the faas up command working again.

Sorry about this. I think I caused that.
Fixed via https://github.com/openfaas-incubator/node10-express-service/commit/2d2ee8412e6a55357228c15823ac189f3ac8805f


[BEAM-79] add Gearpump runner

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[x] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[x] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

This PR adds Gearpump runner to Beam meeting the goals of phase 1 in the design document.
The Gearpump runner supports the following functionalities,

Transformations: ParDo, GroupByKey, Flatten
Windows: using Beam's window logic and code
side outputs
serialization/deserialization: using Gearpump's Kryo serializer
sources: Beam's UnboundedSource
message delivery guarantee: at-most-once
tests: integration test for various translators

Here's a snapshot of running the following Beam example on Gearpump cluster
    PCollection<KV<String, Long>> wordCounts =
        p.apply(Read.from(new UnboundedTextSource()).named("WordStream"))
            .apply(ParDo.of(new ExtractWordsFn()))
            .apply(Window.<String>into(FixedWindows.of(Duration.standardSeconds(10))))
            .apply(Count.<String>perElement());

    wordCounts.apply(ParDo.of(new FormatAsStringFn()));

Note that the Gearpump runner is still in early stage and lacking capabilities like trigger, side inputs, aggregator. However, I'd like to have the community to get a feel of what Gearpump is like, whether Beam and Gearpump go well, and gather ideas for improvements.

Good job. Let me take a look and try it. Thanks @manuzhang !

Wow! We didn't expect it this fast!
We'll take a look shortly, but it might take us a few days to parse through.
R: @davorbonaci

Gearpump requires Java 8 so the test matrix for Java 7 will fail.

Also, R: @kennknowles.

This is really cool!
One thing that you can do to get a lot of automatic feedback on your runner is set up the RunnableOnService tests as in #319 (Direct), #291 (Flink), #294 (Spark). This will also help to drive which test categories we need to split into, so you can explicitly exclude tests of capabilities that are still under development.

@kennknowles Thanks, I'll go through all the stuff with your comments.

Sorry for the slow replies!

@kennknowles updated most parts against your comments. It seems RunnableOnService tests use PAssert which requires support of sideInput. Unfortunately, sideInput is not yet supported in Gearpump runner so I have to disable the RunnableOnService test for now.

@kennknowles any more comments ?

Yes, sorry. I failed to click the "comment" button after writing this:
Good news! In #437 I switched PAssert so it no longer uses side inputs in most cases, but instead uses globally-windowed GroupByKey. Now almost all runners will be able to use PAssert from an early stage. You should be able to use TestPipeline and PAssert to test your runner using the test suite we provide.
But even before that, we can merge such a major development as this new runner into a feature branch as soon as it has some viability, so everyone has a place to collaborate. Since this runner does have tests that run some real pipelines, that is enough for a feature branch. After that, the criteria for merging into master are outlined in this email from Frances.
So, first, we need to get the tests happy then we can merge into a feature branch. I will also give this another review right away.

Thanks. Did you just revert the PAssert changes ? And Will you create a feature branch ?

@kennknowles I assume you will support this and also count as a contributor for maintaining it :smiley_cat: ?

Yes, I had to roll back the PAssert changes while I work out some issues that only showed up in the postcommit integration tests. Fixing those tests turned up issues in the unit tests so I needed some time. Hopefully it will be simple and rolled forwards soon.
As for the feature branch, I'll pull this PR straight to a feature branch but I think we should get the tests green first, even though it won't block mainline development.

The PAssert changes are rolled forwards again, this time for sure.

Just a heads up: you are going to need to add a dependency on runners/core-java as we are in the process of moving utilities there.
<dependency>
  <groupId>org.apache.beam</groupId>
  <artifactId>beam-runners-core-java</artifactId>
</dependency>

@kennknowles Yes, I saw that. I'm trying out the new PAssert now.

Let me know if there is anything else I can make easier here. Happy to chat, etc.

@kennknowles It seems some tests are still implemented with PCollectionViewAssert which requires side input. Another problem is I get tests timeout on travis while I can get them passed locally.

Tests using PCollectionViewAssert: Filtering them out is the right thing to do. The way you have it is fine to get unblocked. It would be even better to tag specific test methods with @Category(StaticSideInputs.class) (from the capability matrix doc shared by @tgroh) and then use <excludedGroups> in your pom. This way you aren't eliminating the whole test class, just the method.
Test timeouts: It may be infeasible to run all these RunnableOnService tests in the presubmit and in Travis. For Dataflow, we run just a couple in the presubmit and then the rest as a post-submit Jenkins job. It probably makes sense to do this for many runners, so that is also no problem. Do you know whether it is just overheads or whether there is a real performance problem?
For right now, there's a RAT plugin failure in the runners-parent module. If we fix that, then then Jenkins should be willing to run your tests to completion even if it takes a long time.
From there, since traffic on the branch will be low enough, I think we can probably check it in to a feature branch and then set up the postsubmit job and try to see if we can speed up the tests.

It looks like the RAT plugin was seeing files that needed to be cleaned up from another branch. We've just adjusted the Jenkins configuration so those files should be cleaned. Go ahead and force a rebuild via rebase and force push, or dummy commit, and we should see Jenkins succeed or timeout.

The travis build has errors as below which cannot be reproduced on my laptop.
java.lang.RuntimeException: Failed to construct instance from factory method TestGearpumpRunner#fromOptions(interface org.apache.beam.sdk.options.PipelineOptions)
	at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:236)
	at org.apache.beam.sdk.util.InstanceBuilder.build(InstanceBuilder.java:165)
	at org.apache.beam.sdk.runners.PipelineRunner.fromOptions(PipelineRunner.java:59)
	at org.apache.beam.sdk.testing.TestPipeline.fromOptions(TestPipeline.java:103)
	at org.apache.beam.sdk.testing.TestPipeline.create(TestPipeline.java:98)
	at org.apache.beam.sdk.transforms.CreateTest.testCreateTimestampedEmpty(CreateTest.java:261)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.rules.ExpectedException$ExpectedExceptionStatement.evaluate(ExpectedException.java:168)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runners.Suite.runChild(Suite.java:127)
	at org.junit.runners.Suite.runChild(Suite.java:26)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.apache.maven.surefire.junitcore.JUnitCore.run(JUnitCore.java:55)
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.createRequestAndRun(JUnitCoreWrapper.java:137)
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.executeEager(JUnitCoreWrapper.java:107)
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:83)
	at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:75)
	at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:161)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.apache.beam.sdk.util.InstanceBuilder.buildFromMethod(InstanceBuilder.java:225)
	... 41 more
Caused by: java.util.concurrent.TimeoutException: Futures timed out after [10000 milliseconds]
	at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219)
	at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223)
	at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:190)
	at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
	at scala.concurrent.Await$.result(package.scala:190)
	at akka.remote.Remoting.start(Remoting.scala:181)
	at akka.remote.RemoteActorRefProvider.init(RemoteActorRefProvider.scala:190)
	at akka.cluster.ClusterActorRefProvider.init(ClusterActorRefProvider.scala:31)
	at akka.actor.ActorSystemImpl.liftedTree2$1(ActorSystem.scala:666)
	at akka.actor.ActorSystemImpl._start$lzycompute(ActorSystem.scala:663)
	at akka.actor.ActorSystemImpl._start(ActorSystem.scala:663)
	at akka.actor.ActorSystemImpl.start(ActorSystem.scala:679)
	at akka.actor.ActorSystem$.apply(ActorSystem.scala:141)
	at akka.actor.ActorSystem$.apply(ActorSystem.scala:118)
	at org.apache.gearpump.cluster.embedded.EmbeddedCluster.start(EmbeddedCluster.scala:51)
	at org.apache.beam.runners.gearpump.TestGearpumpRunner.<init>(TestGearpumpRunner.java:40)
	at org.apache.beam.runners.gearpump.TestGearpumpRunner.fromOptions(TestGearpumpRunner.java:48)
	... 45 more

Curious. I can't say much about the details there. What was at the other end of the future that timed out when the embedded Gearpump cluster was starting up?
I'll pull and try it to see if my environment reproduces the issue.

@kennknowles finally, travis is green.
I tried mvn clean apache-rat:check locally and the output is
1 Unknown Licenses

*******************************

Unapproved licenses:

  .github/PULL_REQUEST_TEMPLATE.md

*******************************

I can confirm that failure. It should certainly succeed. I'm looking into it.

From a quick search it looks like the failure of apache-rat:check is working as intended (for some definition of "intended") according to this thread which I found through this issue.
The fix suggested is to invoke the plugin only through mvn verify. But if that succeeded, we would expect Jenkins to succeed, since it is currently green outside this PR.

I have identified two issues that may prevent you from finding the real problem:

We have only configured the RAT plugin in the release profile, which Jenkins uses. We probably meant to only execute it in the release profile, but configuration should be global. So you can get the proper excludes on the command line with -Prelease. I will fix this separately.
RAT includes defaults for IDEs to exclude things like Eclipse's .settings and .classpath but the exclude patterns are not correct in the presence of subprojects. I will also fix this.

When I fix these two issues locally, the remaining RAT failure is runners/gearpump/README.md. Obviously we want it. The issue is that your README.md needs to have the Apache license header in a comment. See the source code for any of the other README.md files.
I would fix this for you and merge to a feature branch, but since it is a licensing issue I think it best that you make the edits.

@kennknowles Thanks for the thorough explanation. I think we are good to go this time.

Boom! :shipit:

Awesome!

Merged to branch gearpump-runner. Since the PR is against master that didn't close it, but feel free to close any time.

😄


fix UB in bytestring::from_v8

reliably on rust 1.78 (and i think maybe occasionally previously) ByteString::from_v8's strategy of set_lening a smallvec seems to be UB and results in bad memory accesses in op_fetch (and probably op_node_http_request as well).
i don't have a minimal repro but i do have a project with deno embedded which reliably fails on different architectures, just from calling fetch() - the method param ends up holding garbage.
not sure if the approach i took is the fastest safe strategy - please let me know if there's a better way. but actually this type is rarely used in v8->deno direction anyway so maybe it doesn't matter much.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

There’s another similar block in u16string which could be changed too if you like. I don’t have an issue with it but it’s the same vec_uninit -> ffi pattern

sorry spoke too soon. i was checking if this was the issue by using a string in op_fetch directly instead, then made the patch and forgot to revert my change to string.
i am still getting heap corruption with this change, so the actual problem must be elsewhere.


Can we set TransferConfig options for bandwidth control on a download?

Problem description
Be sure your description clearly answers the following questions:

I'd like to set max_bandwidth in the TransferConfig option but I fail to see where that could be done. Reading  s3.py I see how to send extra config options to the client but no how/where to set TransferConfig.

Is it possible at all?
Steps/code to reproduce the problem
Versions
macOS-10.16-x86_64-i386-64bit
Python 3.8.5 (default, Sep  4 2020, 02:22:02)
[Clang 10.0.0 ]
smart_open 5.2.1

smart_open does not use s3.tranfer, so max_bandwidth isn't an option that we could support.
This is the API we use:
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#client
If you can find bandwidth-related options there, let us know.

It seems that the max_bandwidth option can only be used with TransferConfig and that can only be provided to:

download_file
download_fileobj
upload_file
upload_fileobj
copy

if I am not mistaken, smart_open uses get_object correct? so there is no way to set the transfer options in TransferConfig.

Yes.

closing since it seems to the current implementation is not really using the required config.


python3Packages.weconnect: 0.38.1 -> 0.39.0, python3Packages.weconnect-mqtt: 0.32.0 -> 0.33.0

Description of changes
https://github.com/tillsteinbach/WeConnect-python/releases/tag/v0.39.0

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 170338 run on x86_64-linux 1

4 packages built:

python310Packages.weconnect
python310Packages.weconnect-mqtt
python39Packages.weconnect
python39Packages.weconnect-mqtt

@ofborg eval

@ofborg build python39Packages.weconnect python310Packages.weconnect python39Packages.weconnect-mqtt python310Packages.weconnect-mqtt


Translation in multiple languages

We should probably set a milestone once it's stable enough, s.t. we can start translating in multiple languages. So I keep this here open for people to volunteer for their language and notification once we want to start going multi-lingual:
@buggins offered to translate into Russian
@wilzbach offered to translate to German
It probably makes sense then to put the translated commit as plain text comment in the regarding language, s.t. it's easy to update the languages once in a while.

@acehreli would you be willing to translate it to Turkish? (once it's moderately stable)

Of course! :)
Ali
On 05/25/2016 09:28 AM, Sebastian Wilzbach wrote:

@acehreli would you be willing to translate it to Turkish? (once it's moderately stable)

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/stonemaster/dlang-tour/issues/132#issuecomment-221627241

Thanks all translators for their help! Lets make that happen when the storm of pull requests and changes has passed :-)

Willing to! But @DlangRen is translating "Prg in D" into Chinese at present. As the only active dlang community in China, we are extermly short of volunteers. So we want to finish this project first due to the lack of helping hands. We still waiting for an upturn of dlang in China. Anyway we will start translating this as soon as the current one is completed.

@meatatt, Chinese community may be slow but rest assured, perhaps due to large population, ddili.org gets almost equal visitors from China and US. (There has been months where Chinese visitors were more than US visitors.)
This month so far:
US
Pages: 28,412
Hits: 32,741
Bandwidth: 1.18 GB
China
Pages: 23,776
Hits: 24,516
Bandwidth: 1.04 GB
The next country in line is Turkey with about 25% of those numbers.
Ali

@acehreli Wow! This is truly beyond our imagination. Thank you :)

Just a quick update from the dev team, with #276 the last real blocking PR for multi-lingual just went in.
Also we now have separated each chapter into a single file, s.t. translation will be easier and we now feature an edit button on the tour that directly takes one to the corresponding markdown file.
@stonemaster and I will work on getting basic macro support (#55) to avoid putting redundant HTML into the markdown. Meanwhile we encourage everyone to read through the tour and find nitpicks.
I guess after another heavy round of reviewing and nitpicking, the fight for the first translation may begin ;-)

guys, for sure I can translate in Romanian, and also my colleague, Louis will do it in French.
just ping us :)

@claudiug Awesome! Give us a couple weeks for polishing and then we'll be ready for the translation marathon :-)

Hi guys,
do you already have someone who can translate in italian?
If not, I'd be happy to contribute.
(just ping me when it's time to do it)

@lodo1995 Not yet! Awesome, thanks we'll come back to you!

Check list of translators:

[ ] German: @wilzbach, @stonemaster
[ ] Turkish: @acehreli
[ ] Russian: @buggins
[ ] French: Louis
[ ] Romanian: @claudiug
[ ] Chinese: @meatatt

Must haves to be done before translation can be started:

[ ] Agreement that tour contents in English meet overall expectations and next round of reviewing has passed.
[ ] #55 is implemented
[ ] ...

For sure I'm in @stonemaster !!

Check list of translators:
Chinese: @meatatt
French: @llaine
German: @wilzbach, @stonemaster
Romanian: @claudiug
Russian: @buggins
Turkish: @acehreli

Hey all time has passed and @stonemaster and I feel that the tour has matured enough to be ready for the translation into multiple languages. @dmi7ry has already done a huge step forward for the Russian translation and I started myself with the German one.
Hence I would look to share my experience of translating the tour in German with you and I prepared a small guide for translators:
https://github.com/stonemaster/dlang-tour/wiki/Tips-for-translators
And I have also written a small, optional  tool that automates submitting multiple PRs:
https://github.com/wilzbach/splitup-prs
(It's not perfect, but it already saves time for me)
Some key points

please submit a PR for each file as it makes it makes the reviewing easier (my tool can help you to automate this)
the tour isn't perfect yet and while translating you will have a close look at it -> don't hesitate to submit a PR even if it's just for one word. This can be done most conveniently via the edit button on the top right of the content
the translator guide should describe most issues you may run into, but really just ping us for help
I know that it's quite a work that is ahead of us, so your help is really, really appreciated!
I think once welcome + basic chapter are fully merged, we will start listing it on tour.dlang.org ;-)

Let's get the party started :tada:

Let's get the party started  :tada: and let the race begin!

Hey all,
just a quick update from my side. We have seen such a massive increase in PRs for the translations that we split them up into submodules (#454).
Already a huge thanks to our already started party teams: Sweden (@vladdeSV @vild @nordlow  @jacob-carlborg)
Italia (@lodo1995 @trikko), Russia (@Dicebot @DmitryOlshansky @dmi7ry) and Germany (@WebFreak001 @stonemaster ...).
In case you didn't follow this closely: the organization dlang-tour has been founded and contains a repo for each language which will be embed into the main tour & some languages have already been linked:
http://tour.dlang.io/tour/sv/welcome/welcome-to-d
http://tour.dlang.io/tour/it/welcome/welcome-to-d
http://tour.dlang.io/tour/de/welcome/welcome-to-d
(they are still WIP and thus not linked from the main repo)
From the process above nearly nothing should have changed except for two things:

You can now make PRs against the language repo (there's a CI in-place which will check that all examples script are runnable)
You are now in charge of your own language repo (all of you should have gotten an invitation to join their language repo)

For my readers from the future: if you want to start a translation of a new language or join an existing team, just ping me or @stonemaster, we are happy to help.
Last but not least don't hesitate to ask questions if you run into troubles and don't forgot to make a PR for every file (see above for more tips).

I am closing this issue now as the translations are on a good way and in same cases already finished :)
If you run into any issue, feel free to open a new issue at your repository and ping @dlang-tour/base (this works only for repos at the dlang-tour) or alternatively open an issue here.
Thanks a lot for all the great work that you are doing!


chore: print result field description link after running the bench test case

Description
In the output information, some fields, such as p99 and p995, are initially difficult to understand. Therefore, I think providing a link to the description of these fields may help users understand them more friendly.

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. If the feature is substantial or introduces breaking changes without a discussion, PR might be closed.
[ ] Ideally, include a test that fails without this PR but passes with it.
[ ] Please, don't make changes to pnpm-lock.yaml unless you introduce a new test example.

Tests

[ ] Run the tests with pnpm test:ci.

Documentation

[ ] If you introduce new functionality, document it. You can run documentation with pnpm run docs command.

Changesets

[ ] Changes in changelog are generated from PR name. Please, make sure that it explains your changes in an understandable manner. Please, prefix changeset messages with feat:, fix:, perf:, docs:, or chore:.

It looks a bit noisy to show this for each re-run :thinking:  Would it be fine if we mention that in the doc? https://vitest.dev/guide/features.html#benchmarking or https://vitest.dev/api/#bench

Of course, it would be better to add this to the documentation. However, I think it might be more convenient and quicker to output this in the terminal so that it can be directly accessed.
Maybe we can add it on both sides. As for what you said, it will be a bit noisy when it is printed every time it is re-run. Maybe we can add a shortcut key to print this information when the corresponding key is pressed. What do you think?

If we provide an API to run benchmarks, the API should be documented in https://vitest.dev
Ref: https://github.com/vitest-dev/vitest/issues/279


Image moving stops when cursor leaves the preview area.

Hey,
just found out: when moving the image and leaving the preview area while draging the image stops moving.
Better behavior would be move the image until the user releases the mouse button.

Any news on this?

This would be super nice, especially for thumbnail icons...

+1

+1


[WIP] Add a placeholder PR for a blog for volume group snapshots beta

Description
This is a placeholder PR for moving volume group snapshots to beta.

Issue

Closes: #

/sig storage

@mbianchidev Thanks for the reminder!  I'll get the blog ready to review by 11/25.

Amazing work @xing-yang can you please edit the metadata as follows?
---
layout: blog
title: "Kubernetes 1.32: Moving Volume Group Snapshots to Beta"
date: 2024-12-11
slug: kubernetes-1-32-volume-group-snapshot-beta
draft: true
author: >
   Xing Yang (VMware by Broadcom)
---

Basically adding draft: true so that we can merge the blog without worrying about the publication date and handle that ourselves (as Comms) in a separated PR that won't change any of the content you've written.
In this way we smoothen the publication process and avoid back and forth due to eventual date shufflings.
Thank you for your collaboration and again, amazing work :)

Thanks @mbianchidev!  Addressed your comment.

/lgtm

Thanks @xing-yang
/approve


Mrca finding

First draft in addressing #40. The docstring for the method should mostly explain it: Most functionality other than the algorithm mirroring the sample_resolve function is encapsulated in the BinaryIntervalStack class.

    Find all regions between nodes u and v that share a most recent
    common ancestor in the GIG which is more recent than time_cutoff.

    Returns a dict of intervals, each of which is a region between u and v

    Implementation-wise, this is similar to the sample_resolve algorithm, but

    1. Instead of following the ancestry of *all* samples upwards, we
       follow just two of them. This means we are unlikely to visit all
       nodes in the graph.
    2. We do not edit/change the edge intervals: instead we return
       the intervals shared between the two samples.
    3. We keep a separate stack for the ancestral intervals for each
       of these samples, We check which of the stacks has the youngest
       node at the end, and pop only that one off. With the additional
       constraint that nodes of equal time are listed on the stack by
       node ID (i.e. ID is used to break ties), this ensures that we
       can detect when the same node is at the top of the two stacks,
       indicating a common ancestor (in this case we pop from both stacks)
    4. We do not add older regions to the stack if they have coalesced.
    5. We have a time cutoff, so that we don't have to go all the way
       back to the "origin of life"

I haven't quite got the OriginalInterval stuff working yet, so the tests are failing.

Summary by CodeRabbit

New Features

Introduced new functionality for genetic inheritance graph processing, including the ability to resolve graphs and find regions between nodes.
Added support for dynamically initializing table instances and enhanced table manipulation with new methods.

Enhancements

Improved existing classes with data immutability and additional utility methods.
Enhanced test suite with new fixtures and test cases for increased coverage and reliability.

Documentation

Updated documentation to reflect new features and changes in functionality.

Dependencies

Added portion package to the requirements to support new graph processing features.

Bug Fixes

Addressed minor issues with node data and consistency in test fixtures.

Jerome suggested:
a) we probably don't need a complicated thing with 2 stacks. Instead we can have a single stack and detect whenever two intervals overlap, registering that as a coalescent event

That's because each position can only ever have 1 parent (even in a GIG), so if we find an overlap, it must be a coalescence.

b) it might be more obvious to track the original L/R coordinates rather than the (left+is_inversion) scheme I have started to implement here.


Data Grid not working with proper padding

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Can you explain more? Provide an example?

@symbiogenesis Issue solved, there were a bugs in the Property of the DataGrid, now the issue solved!


Issue when bottom sheet content is smaller than the anchor

When the content of the bottom sheet view is not big enough to be expanded to the anchor position, the Behavior shouldn't expand it.

It should expand to the maximum capacity of the content. Like so:

@justasm any news on this?


fix: breakpoints in JS not working

Description
I once struggled making this work without adding a big overhead caused by generating sourcemaps (#9476).
This time I came up with a solution using //# sourceURL.
I tested this with #13503 on Chrome and Firefox (Windows) and it worked for me.
This doesn't work with VSCode's debugger. 😢
Additional context

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

Nice! If this isn't a regression for VS Code, I think we can merge it and get some mileage from users in the 4.4 beta.
One thing I see is that the source is being applied to some files where it doesn't help. I imagine it isn't hurting though, but we could try to apply it only if the sourceURL points to a real file? Or maybe this would later be useful with virtual modules too?
From https://vite.new/vue:

//# sourceURL=/src/App.vue?vue&type=style&index=0&scoped=7a7a37b1&lang.css
//# sourceURL=/src/style.css

In the second case, it points to a real file but adding a breakpoint isn't useful. Still, I don't think it would hurt having the comment there. About 1., should it point to /src/App.vue?

I know this sounds obvious and like a great solution and @jaro-sevcik and I discussed this as well yesterday and whether we should recommend this as a fix. However, this isn't going to work as you expect it to work (with Chrome), because //# sourceURL (unlike //# sourceMappingURL) is handled by V8 (the back-end) while source maps are handled purely by the DevTools front-end. The implication is that if you have multiple scripts with a clashing //# sourceURL (intentionally clashing in the case of HMR), a breakpoint will be set in all of these scripts by V8, which is not what you want. Ideally only the last script would be around with HMR, but often you have state that keeps the previous versions of the script alive as well, and you'll stop in random places, which leads to a very confusing developer experience.
While this is more of an implementation detail of V8/Chrome, and I think we could also change it over time (although the specified behavior for //# sourceURL is even more vague than for source maps), I'd strongly encourage to go with identity source maps instead for now. They are extremely cheap to generate (you're merely adding couple milliseconds, which in the grand scheme of things doesn't matter) and will provide a consistent experience to developers.

If this isn't a regression for VS Code,

It's a partial regression. Without this PR, the breakpoints work if that file is not changed. But with this PR, the breakpoints don't work even if that file is not changed.

However, this isn't going to work as you expect it to work (with Chrome),

I'd strongly encourage to go with identity source maps instead for now.

I see. To generate an identity source map, Vite will have to tokenize the content of the file and generate the mappings field. Or skip the tokenization and generate the mapping field with the every character in the file. Is there a better way than this?

To generate an identity source map, Vite will have to tokenize the content of the file and generate the mappings field. Or skip the tokenization and generate the mapping field with the every character in the file. Is there a better way than this?

I'd use a naive approach and just generate a mapping for every whitespace/word boundary (poor mans tokenization).

I updated the PR to inject //# sourceMappingURL=data:* to every file unless { mappings: '' } is returned. I used hires: 'boundary' to generate the identity sourcemap as suggested.
I tested this with Chrome and Firefox and VSCode debugger on Windows. It worked fine.

/ecosystem-ci run

nuxt, unocss, vite-plugin-react-pages are failing on main too.
vite-plugin-svelte is failing because of the snapshot mismatch that is expected.
vitest is failing with the type mismatch (https://github.com/vitejs/vite/pull/13514#discussion_r1292150538).

Just reviewed this. LGTM 👍 Feel free to merge this once the conflicts are resolved @sapphi-red. Looks like it's caused by https://github.com/vitejs/vite/pull/14061, so the bundle limit numbers might change.


[BUG]: Users don't republish apps/flows after rejecting archival

Describe the bug
We see that our users don't republish the app but keep rejecting the archival every week.
Is it possible to implement one of the following improvements?

Republish the app/flow automatically for the user using

When they reject for archival, don't resend the archival approval every week but for example every 6 months? The schedule of that flows should be kept on every week, but by using an additional condition not sending the approval for archival every week anymore...

Component (please tell us which flow or app you are experiencing issues with):

Solution: Audit/governance
Version: Latests
App or Flow: Archival request flows for Apps and Flows archival

Expected behavior
After a user rejected archiving and didn't republish, don't send the archival mail every week again to the user.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

We don't want to re-publish for the user as this would negate the forcing function of making them question if they still need the app. We are adding a check to see if the app was launched though, so apps that are in use will no longer trigger archival (expect in ~1 month).
If you still want the re-publish when the user rejects, you could add a flow on your side which, on some time basis of your choosing, goes and republishes apps that have had their archival rejected. You can use the Admin | App Archive and Clean Up - Check Approvals and Archive flow as a basis for this for how to get those rejects. Note that you cant use a trigger off the approvals table due to product limitations though, and will need to just do a periodic sweep like we do in that flow.
Thanks for using CoE!


unable to send mail

does the server pref v6 by default? is v6 a prereq or can I force v4?
Network is unreachable - connect(2) for "2a00:1450:400c:c00::1b" port 25, execution expired, Network is unreachable - connect(2) for "2a00:1450:4010:c09::1a" port 25, Network is unreachable - connect(2) for "2404:6800:4003:c01::1a" port 25, Network is unreachable - connect(2) for "2a00:1450:4010:c09::1b" port 25
[worker.1:1911] [2017-07-12T11:45:46.909] INFO -- : [E93LLIZO] Cannot connect to <IP_ADDRESS>:25 (alt1.gmail-smtp-in.l.google.com) (Net::OpenTimeout: execution expired)
[worker.1:1911] [2017-07-12T11:45:46.923] INFO -- : [E93LLIZO] Cannot connect to 2404:6800:4003:c01::1a:25 (alt2.gmail-smtp-in.l.google.com) (Errno::EADDRNOTAVAIL: Cannot assign requested address - connect(2) for "2404:6800:4003:c01::1a" port 25
also getting to another address;
No SMTP servers were available for ****co.uk. Tried ****-co-uk.mail.protection.outlook.com
execution expired
Support Ref: DBPVVUGQ

also getting;
No SMTP servers were available for ****co.uk. Tried ****-co-uk.mail.protection.outlook.com
execution expired
Support Ref: DBPVVUGQ

Firewall! Derp.


⚠ AVS (kty) has degraded performance

In 9dfbac7, AVS (kty) (https://avus.com.br) experienced degraded performance:

HTTP code: 200
Response time: 9434 ms

Resolved: AVS (kty) performance has improved in 088f8a7.


Refactor CompoundText to be a subclass of AbstractNode + remove factory

factory will remain and will base this on AbstractText instead


disable prefer destructuring for arrays

disable prefer-destructuring for arrays

Could you explain why we are disabling this rule? @airondumael

@javierM84 ,
It's because if we follow the this rule the generated code sometimes have auto semicolon insertion issue.
It was discussed on our development channel https://rnfdigital.slack.com/archives/development/p1486393806001567


Feature: stroke alignment support for CanvasRenderer

Description of change
Enable drawing strokes with different alignment values (0 - 1) for Canvas.
The CanvasGraphicsRenderer now performs the actual drawing onto a secondary off-screen RenderingContext; the stroke is drawn by compositing drawing operations according to specified strokeStyle.alignment. The result is then finally drawn onto the main RenderingContext.
Performance:

the same off-screen RenderingContext is reused between multiple render() calls;
off-screen rendering is actually used only when necessary (i.e. when special rendering is needed - e.g. for stroke alignment);
the off-screen RenderingContext is released from memory when rendering is finished.

DEMO

Pre-Merge Checklist

[ ] Write class Painter?
[x] Documentation is changed or added
[x] Lint process passed (npm run lint)
[x] Tests passed (npm run test)

Codecov Report

Merging #7161 (f965e81) into dev (99d5d41) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               dev     #7161   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           17        17
  Lines          699       699
=========================================
  Hits           699       699

Continue to review full report at Codecov.

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

Codecov Report

Merging #7161 (f965e81) into dev (99d5d41) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               dev     #7161   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           17        17
  Lines          699       699
=========================================
  Hits           699       699

Continue to review full report at Codecov.

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

Any idea why there's are weird artifacts on canvas renderer (@ 0.75 and 0.25 alignments)

Any idea why there's are weird artifacts on canvas renderer (@ 0.75 and 0.25 alignments)


Add table highlight parameters

This adds parameters to set the table highlight character and color to use when highlighting table differences.

Color is set using the lua-term colors (i.e. red, red.onblack.bright, etc.). Use none to bypass color formatting.
The table highlight character can get set to any character or multiple characters (i.e. * vs **).  The default is *.

Sure, what do you think of TableErrorHighlightCharacter and TableErrorHighlightColor?

Sorry, you said "variable" names.  I'll make them more descriptive.


Fix Insiders versioning with Prisma 3.x

...

I think it would make sense to try to have only one insider versioning like
// Add Prisma major in insider major to make it compatible with major bumps
// Example for Prisma 2.30.0
// 231.0.1
// Example for Prisma 3.1.0
// 301.0.1
...

Related: https://github.com/prisma/language-tools/issues/867


Cocoapods installation error

Alamofire (~> 4.0) required by Podfile

None of your spec sources contain a spec satisfying the dependency: Alamofire (~> 4.0).
You have either:

out-of-date source repos which you can update with pod repo update.
mistyped the name or version.
not added the source repo that hosts the Podspec to your Podfile.

How can I fix this? Thanks.

Same problem here.

NB : this is not a bug, more like a question that could be asked on Stack Overflow, tagged with alamofire. Anyhow, that's an easy answer : how could Cocoapods get Alamofire 4.0 if it hasn't been released yet? It's still beta so even though the podspec says 4.0.0, there's no 4.0.0 tag yet!
TL;DR : write pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'master'

@thebluepotato Thank you for the explanations.

Thanks @thebluepotato. 🍻


LMS-450: Finish up PostgreSQL support

This is lacking only the special Schoology support for submissions, and running the PostgreSQL integration tests on GitHub actions.


Build system should parse the Xilinx tool output and generate stats

From @mithro on July 29, 2014 3:40
Start simple with things like;

Number of warnings generated in each stage
Output bit file size

Then move onto things like;

The number of LUTs used
Timing information

Then do all the above for each individual directory.
Copied from original issue: timvideos/HDMI2USB-jahanzeb-firmware#77

From @shenki on August 7, 2014 10:29
This tool will spit out stats by message type from the logs:
https://github.com/leaflabs/xmsgs-tools.git
It will also do diffs between the xmsgs log files. We should plot these numbers to see changes between builds.

See https://github.com/timvideos/HDMI2USB/wiki/Xilinx-Parsing-Tools too

https://github.com/timvideos/HDMI2USB-misoc-firmware/issues/62

We should definitely start using this tool and help extend it.


⚠ Processors has degraded performance

In 6681991, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 49 ms

Resolved: Processors performance has improved in 5a893ff.


Rename xarray comparators

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (0e17755) 100.00% compared to head (5e93b98) 100.00%.

:exclamation: Current head 5e93b98 differs from pull request most recent head b317fc0. Consider uploading reports for the commit b317fc0 to get more accurate results

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #109   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            9         9
  Lines          403       400    -3
  Branches       100       100
=========================================
- Hits           403       400    -3

Impacted Files
Coverage Δ

src/coola/_numpy.py
100.00% <ø> (ø)

src/coola/_torch.py
100.00% <ø> (ø)

src/coola/_xarray.py
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Post to delete should maybe just be a delete

RESTful APIs allow for the DELETE method. Quite uncommon to use POST along with /{id}/delete to delete recourses when DELETE /{id} would work just as good and there are no additional data in the JSON body request. This is just a suggestion.

Hi! Thanks for the suggestion. Changing this now would break the API, and adding a DELETE endpoint as an additional way to delete defenses and chats would probably make participants confused. The earliest we can revisit the API design is for the attack phase in around one month from now.

Hi, in the end we decided that we won't let people delete chats through the API for the attack phase, so this won't be necessary anymore.


DBDouble has no unit test coverage

We should either;

Remove and deprecate in favour of standard DBFloat
Add to standard DBSchemaManager::double() method

If we retain this class we should build proper unit testing to ensure that it least falls back to float in cases where double isn't supported.

Let's remove and deprecate; add a "Double" entry in the injector config that creates a float and use the class renamer config to update double to be float.

What about cases where site developers want to leverage the use of native DB double type?

See http://dev.mysql.com/doc/refman/5.7/en/problems-with-float.html for use case.
I think this demonstrates the need for retaining a literal double storage class.

@sminnee as an update to this, https://github.com/silverstripe/silverstripe-framework/issues/6338 points out the need for a double precision numeric value.

Ok let's close


Comment on mapping line messing up IG rendering

The mapping for Observation (in cimi_statement_map.txt) contains the following line:
SubjectIfNotPersonOfRecord.RelationshipToPersonOfRecord maps to http://hl7.org/fhir/StructureDefinition/observation-focal-subject // CodeableConcept

Note the comment // CodeableConcept at the end (may require horizontal scrolling).  The SHR grammar doesn't deal well with comments at the end of mapping statements.  As a result, this gets rendered in the IG like this:

For now, the best solution is to simply delete that comment at the end of the line.  When we work on the new Grammar 6, we should address this issue.

@cmoesel does this apply to branches other than shimi?


[Question]: After using TextSplitter to split a text, how can I obtain the indices of the split texts in the original text?

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
from llama_index import Document
from llama_index.node_parser import SimpleNodeParser

node_parser = SimpleNodeParser.from_defaults(chunk_size=1024, chunk_overlap=20)

nodes = node_parser.get_nodes_from_documents([Document(text="long text")], show_progress=False)

How can I obtain the index positions of each node in the original text?

Currently this is not possible, although it used to be. But keeping track of this was limiting any development or improvement on our text splitters, and causing the text splitter implementations to be very difficult to debug and use
The bots suggestion is around the correct lines though, find() will be useful here


Work In Progress: Finally fix CI

This is work in progress of fixing CI in master branch.  Do not merge yet.
I separated releases of NPM and pypy packages and made release pipeline trigger only on tags in master branch.
Also, it looks like not all configuration of buildkite is in the repo.
Is it possible to move all buildkite steps and configuration to the repo, so we have everything in one place?
Also, I think we should bundle js files in python package before having something stable. Releasing separate versions of JS and python packages just makes a lot of confusion. And npm package release does not make any sense right now, because Yukon does not use this package in any way.
UPD1.
Step one is to separate release pipeline to separate pipeline: .buildkite/pipeline.release.yml and trigger it from main pipeline.yml only on master and tags. Done. Needs review.
Next step is to divide JS and Python pipelines and run inside docker containers. Frontend and backend does not have interconnections and do not require to be run in one container with both python and nodejs. JS step separated in ':nodejs: Run JavaScript checks' label. Done. Needs review.
Then pipelines of buildkite should be configured in yml file. This does have downside, because trigger requires a slug, and slug is available only via web interface. This is huge problem, because requires to do something in web interface => requires to config something in another place. Travis CI does look better because these web-interface steps are not needed. Who can help with this? Or should we move to Travis CI?

Let me know if we have UAVCAN organization members that need access to our Buildkite organization.
A few of things to consider:

Be careful what you allow any CI system to do from a PR. I setup a separate pipeline with steps that were in the Buildkite UI instead of pulling from the source so that random third parties could not use our CI as a zombie actor with elevated permissions.

We don't have a dedicated AWS account for UAVCAN but if we want one I can set this up. I've been using my personal account and I was able to get AWS to sponsor our project so I'd have to move our account credits over if we do want to do this.

I started using Buildkite because it offers maximum flexibility for CI workers. It's the only service I'm aware of that lets you insert arbitrary (but authenticated) resources into their pipelines. We're planning on using this for libuavcan to provide on-target testing for multiple platforms (e.g. we can actually put a Pixhawk hawk into a Buildkite pipeline if we wanted to). For Yukon this type of automation would be interesting to allow test rigs involving a full IP stack and remoting between two systems. See Nanaimo for details.

This all said, if you find the complexity of Buildkite stifling (and, as CI services go, it is in the complex/powerful quadrant of the matrix) and want to switch to something else I'm not going to object. I am not the maintainer of Yukon. Only a hopeful customer and fan.
Thanks for contributing  everyone!

@thirtytwobits I will fix security concern and will remove it from PR. Is it possible to share access to buildkite account so I can configure pipeline for both PR and release?
If it's possible to separate secrets between commit and release pipelines, we can easily store commit pipeline in the repo and store release pipeline in buildkite (I dont like this, but it it's the best way for now).
BTW, is it possible to add some restrictions on PR commits, so it's not possible to run releases from PR?

I made a quick look through the docs and interface of the buildkite and found, that interface differs from documentation. For now I will make pipeline templates files, that can be copied to the web interface of the buildkite.
I think main pipeline should be run on every event including master branch commits. Release pipeline should not run automatically, but will be triggered via main pipeline on tags and success of previous steps.
@thirtytwobits Does this make sense?

@thirtytwobits It looks like we have one question about docker image. But main question is are we ready to update pipelines in buildkite web interface?
I am ready to change pr pipeline to content of pipeline.yml.template. Is it ok?

I am ready to change pr pipeline to content of pipeline.yml.template. Is it ok?

Please go ahead but mind the security as advised by Scott.

I uploaded new yml to buildkite for pull requests. Will look into what will break.

So what do we do?

We accept this and we fix the tests afterwards.


[Enhancement] make block cache more flexible.

What type of PR is this：

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

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

This PR:

fix CahceInputStream::BLOCK_SIZE. if its value is not multiplier of config::block_cache_size, some wierd problem happens.
add session variable enable_scan_block_cache to control if to use block cache or not per request.
fill cache_key with hash of filename instead of filename, which makes cache key shorter.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] I have added user document for my new feature or new function

[FE PR Coverage Check]
:disappointed: fail : 2 / 4 (50.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/Coordinator.java
0
2
00.00%
[2136, 2137]

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
2
2
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 2 / 4 (50.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/Coordinator.java
0
2
00.00%
[2136, 2137]

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
2
2
100.00%
[]

fill cache_key with hash of filename instead of filename, which makes cache key shorter.
what's the benefit?

fill cache_key with hash of filename instead of filename, which makes cache key shorter.

what's the benefit?

to save memory
    for (size_t index = start_block_index; index < end_block_index; ++index) {
        std::string block_key = fmt::format("{}/{}", cache_key, index);
        const char* block_buf = buffer + off_in_buf;
        const size_t block_size = std::min(size - off_in_buf, _block_size);
        RETURN_IF_ERROR(_kv_cache->write_cache(block_key, block_buf, block_size, ttl_seconds));
        off_in_buf += block_size;
    }

run starrocks_fe_unittest

[FE PR Coverage Check]
:disappointed: fail : 2 / 4 (50.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/Coordinator.java
0
2
00.00%
[2136, 2137]

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
2
2
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 2 / 4 (50.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/Coordinator.java
0
2
00.00%
[2136, 2137]

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
2
2
100.00%
[]

fill cache_key with hash of filename instead of filename, which makes cache key shorter.

what's the benefit?

to save memory
    for (size_t index = start_block_index; index < end_block_index; ++index) {
        std::string block_key = fmt::format("{}/{}", cache_key, index);
        const char* block_buf = buffer + off_in_buf;
        const size_t block_size = std::min(size - off_in_buf, _block_size);
        RETURN_IF_ERROR(_kv_cache->write_cache(block_key, block_buf, block_size, ttl_seconds));
        off_in_buf += block_size;
    }

how

fill cache_key with hash of filename instead of filename, which makes cache key shorter.

what's the benefit?

to save memory
    for (size_t index = start_block_index; index < end_block_index; ++index) {
        std::string block_key = fmt::format("{}/{}", cache_key, index);
        const char* block_buf = buffer + off_in_buf;
        const size_t block_size = std::min(size - off_in_buf, _block_size);
        RETURN_IF_ERROR(_kv_cache->write_cache(block_key, block_buf, block_size, ttl_seconds));
        off_in_buf += block_size;
    }

Can we measure the memory overhead? I'm bit doubted that with 1MB block, the memory overhead of key is negligible since the length of key is ~100B in common cases.

We should be on the same page about following things:

cache key will be stored in cache lib memory(such as hashmap)
cache key will be compared when doing search(such as hashmap)

Before this pr, we use filename as cache key, which maybe is very long(etc 100bytes). After this pr we use hash(filename) as cache key, we use 8bytes. We reduce 92 bytes for every cache item.

Can we measure the memory overhead? I'm bit doubted that with 1MB block, the memory overhead of key is negligible since the length of key is ~100B in common cases.

I don't have handy way to measure memory overhead. But 100B is quite a lot for a single cache item from memory storage  side. Saving 100 bytes is also very critical from computation side, beause we don't need to strcmp on 100 bytes but on 8 bytes.

run starrocks_fe_unittest

[FE PR Coverage Check]
:disappointed: fail : 1 / 4 (25.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/Coordinator.java
0
2
00.00%
[2136, 2137]

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
1
2
50.00%
[671]

run starrocks_admit_test

run starrocks_admit_test


Remove warning messages when the schema is loaded

Cerberus prints some warnings when the schema is loaded, figure out how to get rid of them

See http://docs.python-cerberus.org/en/stable/customize.html#custom-rules


[Enhancement] Rename block_cache configurations to data_cache and support configuring data cache size by different expression.

In this PR, we rename the old BE configuration items and FE session variables related to datacache from block_cache to datacache, to make it easier for users to understand. Also, we still keep the original items for compatibility with old versions, and they will be removed after some version iterations.
In addition, we support more flexible ways, such as space percentage, to configure datacache.
What type of PR is this:

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

Does this PR entail a change in behavior?

[x] Yes, this PR will result in a change in behavior.
[ ] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[x] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

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

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

Bugfix cherry-pick branch check:

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

[ ] 3.2
[ ] 3.1
[ ] 3.0
[ ] 2.5

[BE Incremental Coverage Report]
:disappointed: fail : 10 / 67 (14.93%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
29
00.00%
[60, 61, 62, 63, 65, 66, 68, 69, 76, 81, 82, 83, 84, 87, 89, 93, 95, 99, 101, 103, 108, 109, 111, 112, 116, 177, 178, 179, 181]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
3
12
25.00%
[297, 298, 299, 300, 301, 302, 303, 304, 305]

:large_blue_circle:
src/connector/hive_connector.cpp
7
23
30.43%
[94, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 534]

[FE Incremental Coverage Report]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
4
4
100.00%
[]

[BE Incremental Coverage Report]
:disappointed: fail : 9 / 64 (14.06%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
27
00.00%
[60, 61, 62, 63, 65, 66, 68, 69, 76, 81, 82, 83, 84, 87, 89, 93, 98, 100, 105, 108, 109, 111, 113, 176, 177, 178, 179]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
3
12
25.00%
[297, 298, 299, 300, 301, 302, 303, 304, 305]

:large_blue_circle:
src/connector/hive_connector.cpp
6
22
27.27%
[94, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 534]

[FE Incremental Coverage Report]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
4
4
100.00%
[]

[BE Incremental Coverage Report]
:disappointed: fail : 30 / 102 (29.41%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
43
00.00%
[54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 76, 80, 81, 82, 84, 87, 89, 90, 91, 92, 94, 98, 100, 105, 106, 107, 108, 109, 110, 111, 113, 115, 176, 177, 178, 180, 298, 299, 300]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/connector/hive_connector.cpp
6
26
23.08%
[95, 98, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351]

:large_blue_circle:
src/block_cache/cache_options.cpp
11
17
64.71%
[34, 35, 36, 38, 44, 45]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
13
13
100.00%
[]

[FE Incremental Coverage Report]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
4
4
100.00%
[]

[BE Incremental Coverage Report]
:disappointed: fail : 30 / 103 (29.13%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/io/cache_input_stream.cpp
0
2
00.00%
[154, 155]

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
42
00.00%
[54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 76, 80, 81, 82, 84, 87, 89, 90, 91, 92, 94, 98, 100, 105, 106, 107, 108, 109, 110, 111, 112, 114, 175, 176, 177, 179, 297, 299]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/connector/hive_connector.cpp
6
26
23.08%
[95, 98, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351]

:large_blue_circle:
src/block_cache/cache_options.cpp
11
17
64.71%
[33, 34, 35, 37, 43, 44]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
13
13
100.00%
[]

Using enable_scan_datacache to replace use_scan_datacache better? make the same style as other properties.

OK

[FE Incremental Coverage Report]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
4
4
100.00%
[]

[BE Incremental Coverage Report]
:disappointed: fail : 30 / 103 (29.13%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/io/cache_input_stream.cpp
0
2
00.00%
[154, 155]

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
42
00.00%
[54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 76, 80, 81, 82, 84, 87, 89, 90, 91, 92, 94, 98, 100, 105, 106, 107, 108, 109, 110, 111, 112, 114, 175, 176, 177, 179, 306, 308]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/connector/hive_connector.cpp
6
26
23.08%
[95, 98, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320]

:large_blue_circle:
src/block_cache/cache_options.cpp
11
17
64.71%
[33, 34, 35, 37, 43, 44]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
13
13
100.00%
[]

[BE Incremental Coverage Report]
:disappointed: fail : 30 / 103 (29.13%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/io/cache_input_stream.cpp
0
2
00.00%
[154, 155]

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
42
00.00%
[54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 76, 80, 81, 82, 84, 87, 89, 90, 91, 92, 94, 98, 100, 105, 106, 107, 108, 109, 110, 111, 112, 114, 175, 176, 177, 179, 306, 308]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/connector/hive_connector.cpp
6
26
23.08%
[95, 98, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320]

:large_blue_circle:
src/block_cache/cache_options.cpp
11
17
64.71%
[33, 34, 35, 37, 43, 44]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
13
13
100.00%
[]

[BE Incremental Coverage Report]
:disappointed: fail : 30 / 104 (28.85%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/io/cache_input_stream.cpp
0
2
00.00%
[154, 155]

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
42
00.00%
[54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 76, 80, 81, 82, 84, 87, 89, 90, 91, 92, 94, 98, 100, 105, 106, 107, 108, 109, 110, 111, 112, 114, 175, 176, 177, 179, 306, 308]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/connector/hive_connector.cpp
6
27
22.22%
[95, 98, 103, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325]

:large_blue_circle:
src/block_cache/cache_options.cpp
11
17
64.71%
[33, 34, 35, 37, 43, 44]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
13
13
100.00%
[]

[FE Incremental Coverage Report]
:heart_eyes: pass : 4 / 4 (100.00%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/qe/SessionVariable.java
4
4
100.00%
[]

[BE Incremental Coverage Report]
:disappointed: fail : 30 / 104 (28.85%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
src/io/cache_input_stream.cpp
0
2
00.00%
[154, 155]

:large_blue_circle:
src/service/service_be/starrocks_be.cpp
0
42
00.00%
[54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 76, 80, 81, 82, 84, 87, 89, 90, 91, 92, 94, 98, 100, 105, 106, 107, 108, 109, 110, 111, 112, 114, 175, 176, 177, 179, 306, 308]

:large_blue_circle:
src/storage/options.cpp
0
3
00.00%
[163, 186, 187]

:large_blue_circle:
src/connector/hive_connector.cpp
6
27
22.22%
[95, 98, 103, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325]

:large_blue_circle:
src/block_cache/cache_options.cpp
11
17
64.71%
[33, 34, 35, 37, 43, 44]

:large_blue_circle:
src/exec/hdfs_scanner.cpp
13
13
100.00%
[]


Clarification for cloud policy description "Create and view Loop workspaces in Loop"

This description of the cloud policy "Create and view Loop workspaces in Loop" includes the following paragraph:

If you disable this policy setting, users can’t create new Loop workspaces in the Loop app. The app will still boot and if the user has access to the content, it will be displayed, but the application will not enable editing of the content.

From my perspective, the last sentence "but the application will not enable editing of the content" is wrong or incorrect, or wrong configured for Loop workspaces.

It's true, if I disable the policy, members cannot create Loop workspaces.
If I disable the policy, members have the ability to edit other Loop workspaces when someone invites the account. So the "not enable editing" is just not true.

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

ID: 093c11ef-791c-c4bd-71e6-c3e6ecc347e1
Version Independent ID: 093c11ef-791c-c4bd-71e6-c3e6ecc347e1
Content: Manage Loop workspaces in Syntex repository services
Content Source: microsoft-365/loop/loop-workspaces-configuration.md
Service: sharepoint-online
GitHub Login: @v-smandalika
Microsoft Alias: v-smandalika

@TobiasAT Thank you for your feedback. The document has been updated with the correct information now.
Hope this helps!
Thanks
Sri

@msbemba Thank you very much for the contribution and sharing this explanation. @TobiasAT Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


JOSS - Improve example usage

Currently the README provides the following usage example
https://github.com/maxrousseau/pfla#usage
However, it doesn't clearly show how the data/images need to be organized in order for this to work. Is there an example dataset that comes with the package? If so, can you modify the usage example to clearly explain

[x] How the input data is expected to be organized using your example dataset
[x] Incorporate the example dataset into the usage example

LGTM


Fix windows builds

RELEASE_NOTES=n/a
Signed-off-by: Dominik Schulz<EMAIL_ADDRESS>

Codecov Report

Merging #1387 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1387   +/-   ##
=======================================
  Coverage   57.34%   57.34%
=======================================
  Files         196      196
  Lines       11044    11044
=======================================
  Hits         6333     6333
  Misses       3898     3898
  Partials      813      813

Continue to review full report at Codecov.

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


Switch to different PHP generator?

Currently we are using bramp/protoc-gen-php to generate the PHP files. However, there seem to be many issues with this. Maybe we should consider using protobuf-php/protobuf instead, with protobuf-php/protobuf-plugin as generator. Any input on this is welcomed!

Looks like the dev of this is still active, what is good, but again (I start thinking I'm doing something wrong) I can't get it to work. If I execute the tool it gets stuck (it does not abort, just does nothing anymore) here. This is on a Windows environment, I can't test it on a Linux right now. Maybe you have more luck.

I managed to compile a single proto file to PHP with it (on Linux), but didnt actually try to use it. I am going on holiday tomorrow, but when I get back I will look more into it.

I made a new branch, test-protobuf, that contains all compiled PHP classes. If you feel like it, you can test them. I compiled them with the compile.php which I included

This looks very good, I only had to make some minor adjustments to get it working with the rest of my project, the biggest problem was that the "new" AuthTicket contains stream-ressources, so I have to do a fseek(..., 0) each time I used them, otherwise the next request fails. But I can manage that without changing things at your side.
Still, I have a problem with the PlayerData again :laughing: I had to wrap the result of readVarint here into \POGOProtos\Enums\TutorialState::valueOf() - the add-method expects a \Protobuf\Enum. I don't want to send a PR for this change because it should probably be generated correctly by the protobuf-plugin.
Enjoy your holiday.

Just to make this clear because I reference this issue a lot, the second problem of this is resolved. It was a bug in the protobuf-plugin and got fixed in protobuf-php/protobuf-plugin@2ef08223cf6bebc7aa211e4d8ad4782968dd0119.

I merged the test-protobuf branch into master. Once we fix the license ( #16 ) we can tag it.


Fixes high CPU usage after device-vibration

The type of concerned QSocketNotifier is changed to Write as vibration command is written on socket of QSocketNotifier.
Fixes #133

Thank you. Will do a review in the upcoming week 👍

Hi @jahnf, Thanks for the review. I have implemented all the changes. However during rebasing, I rewrote the history by mistake.
I have made a new pull request (#137 ) with clean history (and all the changes recommended).
I am closing this pull request to avoid any confusion. Please review the new PR #137.


Add different launcher icon

For devices which have only icons in the menu and not chips, this makes it a bit easier to know which activity is tapped


"jshint . | less" shows no results when actual results are too numerous

On one of my projects, jshint . shows about 1000 results. When I pipe this to less (jshint . | less), it shows no results. When I repeat jshint . | less for a different project with fewer results, they correctly display in less.
System:
$ specs jshint node git os
Specs:

specs 0.4
https://github.com/mcandre/specs#readme

jshint --version
jshint v1.1.0

npm --version
1.2.17

node --version
v0.10.3

git --version
git version 1.8.0.msysgit.0

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows XP Professional
OS Version:                5.1.2600 Service Pack 3 Build 2600

tested with 1600 errors on windows 7 and I couldn't reproduce. This could be an issue with your system or a fixed bug in jshint. Please let us know if this is still happening.


getMatchedComponents 在base 模式下没有返回正确路由

Version
3.1.6
Reproduction link
https://github.com/evont/vue-multi-ssr
Steps to reproduce
SSR 下，如果使用了base 选项，比如： { routes: [{ path: '/page1', component: Page1 }], base: '/test' }，访问/pc2/page1, getMatchedComponents 将不会匹配到Page1，会抛出not found
What is expected?
getMatchedComponents 在base 模式下能够正确匹配到组件
What is actually happening?
getMatchedComponents 会直接使用routes中的path 去和fullPath 比对，导致无法获得正确路由组件

在尝试修改源码，在addRouteRecord 添加base 到 normalizedPath，即record.path 加上了base 之后，运行正常，但由于对源码改动比较大，且不确定这一问题是否为正常行为，希望解答或修复，感谢

This is way too much for a reproduction, please include the bare minimum for reproductions. You can find instructions here: https://ssr.vuejs.org
Also please, write the issue in English so I can read it

Forget about the code, in SSR mode, getMatchedComponents  use the route's path to match with the fullpath, ignore the base option, then get a 404 when visiting this router, I tried to add base to record.path in addRouteRecord method and it works, I want to know if this is a bug or is on purpose, if is a bug, I hope it could be fixed, if is on purpose, please tell me why, thanks a lot

When pushing with the router, the base shouldn't be there. It is only stripped during client navigation. Route record must not include the base either and a RouteLocation object does not include the base attribute in path nor fullPath