Prevent linking of user identity and uploaded diagnosis keys

Where to find the issue
Solution Architecture, TAN exchange as described in figure 3 (9-14)
Describe the issue
In order to facilitate widespread use of the app it is of highest importance to guarantee anonymity when users upload their diagnosis keys. Users should stay anonymous even if the health authorities/laboratories and the verification server collude.
In case of collusion between the LIS and verification server the current design allows to link the user identity to their uploaded keys:

labs / LIS know the personal user data which is linked to the GUID
the verification server can link the GUID (or its hash) to the TAN
the verification server can link the TAN to the diagnosis keys

This is possible because the current system links the patient/GUID directly to the TAN.
Suggested change
There is a standard way to address this issue and to improve anonymity: Use blind signatures. In short:

When polling for the test result the app creates a signature request and includes a random blinding factor which it encrypts this with the public key of the verification server.
If the verification server finds the test to be positive it signs (request*blinding factor) with its private key and returns it to the app.
If the user decides to upload their keys the app unblinds the signature by inverting the blinding factor. (Note that the blinding factor is now unencrypted.) This results in an authorization code that is signed by the verification server.
The app attaches the authorization code to the upload.
The verification server checks the authorization code against its private key to authorize the upload.

Because the verification server cannot link the blind signature to the authorization code it cannot link the upload to the user identity. As an additional benefit it doesn't have to store TANs.
This approach was also proposed in DP3T #210. A PoC is available at https://github.com/think-cell/corona.

@togermer Looking at the current Solution Architecture, TAN exchange as described in figure 3 (9-14),
even if LIS and Verification Server colluded, they could not get access to Diagnosis Keys - would you agree?

Maybe I was imprecise: I assume that all central components possibly collude. In particular, this also includes the Corona-Warn-App server. In fact, I think it's fair to assume that CWA server and verification server are run by the same entity. Obviously the CWA server has the uploaded diagnosis keys, because the user explicitly uploads them along with the TAN.
Regarding authorization reuse: The verification server has to keep track of used authorization codes, as described in DP3T #210. It has to check new uploads against the set of used codes and refuse double submissions.
In order to prune old authorization codes from this list the authorization request could be annotated with a timestamp which is also subject to the blind signature. Then the verification server could only accept authorizations that were created within the last x days. Therefore, it can remove authorizations that are older than x days from its list.

@togermer quoting from source: https://github.com/corona-warn-app/cwa-verification-server/blob/master/docs/architecture-overview.md
"Measures to increase data privacy - Separate Operation of Verification Server and Corona-Warn-App Server - The Verification Server and the Corona-Warn-App Server are operated by different people and run in different cloud subscriptions."

Regarding authorization reuse: The verification server has to keep track of used authorization codes

ok, I was just confused that you mentioned an additional benefit of not having to store TANs.
Anyway, what I still don't understand: If you assume that

labs / LIS know the personal user data

and

all central components possibly collude

what exactly could you prevent?

The Verification Server and the Corona-Warn-App Server will run in the same subscription but in different namespaces. People are organized along those namespaces. The goal is to separate the people running the system. Separate subscriptions will not provide significant benefits.
I will update the document accordingly.

It's certainly nice that the verification server and the CWA server will be operated separately, and it's laudable if you promise that they are run by different people. But it's a matter of trust that these people don't collude and share any information. It's best if we don't require this trust from app users and instead give privacy guarantees. There's no need to rely on this "social" solution if there's a simple technical solution that gives hard guarantees.

The Verification Server and the Corona-Warn-App Server will run in the same subscription but in different namespaces

For all practical privacy purposes any piece of software not under the user's control should be assumed to be compromised, otherwise you expect the user to trust your ability and intentions without being able to vet either. which is likely to limit the adoption of the app.

Coming back to the initial comment.

The statement "the current system links the patient/GUID directly to the TAN" is not correct. The GUID is always hashed in all systems (besides the app), so compromising the system will not reveal a two way link between patient and the data.

The link between hashed GUID and TAN is only transient, never persistent.

Blind Signature, having a technical solution which keeps the link between (hashed) GUID and the diagnostic keys in the space controlled by the user is surely beneficial. The discussion in DP-3T is a good starting point to evaluate the use of Blind Signatures.

I will take this suggestion into the team as an future enhancement.

Regarding your first point: It is enough to link the hashed GUID to the TAN, because the LIS has the patient data and links it to the hashed GUID.

I try to be more specific.

The testing lab/hospital/doctor can map the GUID to an person. These entities are outside the system boundaries of corona warn app (server). The hashed GUID by itself is pseudonym, not as anonymous as we would like to have it.
The testing lab/hospital/doctor is not part of corona warn app
Linking a person to a TAN requires two systems to be compromised.
Buy compromising corona warn app (server), you will be able to link only the GUIDs of the time frame you own the whole system, because the link between GUID and TAN is not persisted

I hope this made my point clearer about how patient (identity) and TAN is strongly linked. And of course a soon as you have a GUID, everything linked to it becomes pseudonym.

The (hashed) TANs are stored in their own DB table without a link to the hashed GUID.

The proposal that was made in the DP-3T context is based on the assumption that the systems are not only compromised by hackers temporarily,
but that the owners of the systems collude to break the anonymity of RPI/TEKs that users have advertised somewhere and that the owners of the systems (presumably an evil government) have collected as well.
In this context all colluding parties already know/share the real-life identity of the user, they should just be prevented from linking that to RPIs/TEKs and the fact whether or not this user uploads them.

Linking a person to a TAN requires two systems to be compromised.
By compromising corona warn app (server), you will be able to link only the GUIDs of the time frame you own the whole system, because the link between GUID and TAN is not persisted

I think you are talking about an external attacker compromising the system. I'm talking about the general possibility to de-anonymize traces data/diagonisis keys. If laboratories and CWA/verification server operators collude (or the government forces them to do so), they can correlate diagnosis keys and patient identities and effectively spy on the user. By opening this possibility users will rightfully get suspicious and not use the app.

@togermer

Who could realistically execute such an attack?
What’s in it for the attacker, how can they benefit from a successful attack?

users will rightfully get suspicious and not use the app.

I don't think this will happen in Germany, because the attack is completely unrealistic.
It might happen in countries where citizens feel oppressed, but in Germany only very few users will have these (in my opinion unfounded) suspicions, and these persons will not trust or use such a system anyway, regardless of the actual level of privacy that the system offers.

Who could realistically execute such an attack?

As already stated, this is less about an attack but about possible collusion of health authorities / the government. It's about preserving privacy against central institutions.

What’s in it for the attacker, how can they benefit from a successful attack?

It could spy on the app user. If you combine this with a distributed network of beacon listeners you can trace user locations, for instance.

I don't think this will happen in Germany, because the attack is completely unrealistic.
It might happen in countries where citizens feel oppressed, but in Germany only very few users will have these (in my opinion unfounded) suspicions, and these persons will not trust or use such a system anyway, regardless of the actual level of privacy that the system offers.

To be honest I first looked at this project hoping it'll do its best to go above and beyond to prove privacy would be integral to the implementation. I do not know how big the segment of the population that shares my approach but I definitely am not part of "these persons will not trust or use such a system anyway" and that approach in general is quite worrisome.
minimizing the possible use of the system outside its mandate is crucial, if there is no legitimate reason to divulge identifiable data, then don't. mindsets such as "Who could realistically execute such an attack?" when approaching security are unhealthy

I don't think this will happen in Germany, because the attack is completely unrealistic.
It might happen in countries where citizens feel oppressed, but in Germany only very few users will have these (in my opinion unfounded) suspicions, and these persons will not trust or use such a system anyway, regardless of the actual level of privacy that the system offers.

This depends on the story the press will make of this. Even if unfounded the suspicion alone can severely limit the adoption. And why taking this risk when there is a simple technical solution?

@togermer

The government is already in a position to ruin everyone’s day. How much would your collusion scenario add to its capabilities?
Our society has various safeguards in place to keep the power of our government under control. These safeguards seem to work reasonably well, we are not invading other countries or deporting people to death camps any more. Are there reasons to assume these safeguards would turn out ineffective in your scenario?
More specifically, the immediate outcome in your scenario seems to be that an entity obtains information it is not supposed to use.
a. Is this statement correct and comprehensive or am I overlooking any important aspect?
b. What could motivate an entity to expend the necessary effort to collect this information? How would they use it?

@togermer

Who could realistically execute such an attack?
This is the wrong question because with „realistically“ you imply there is close to nobody. This is a view on IT-Security that should be gone long ago.  Ever read 2600?

What’s in it for the attacker, how can they benefit from a successful attack?
Fame or fortune . Question : Why does on climb on a mountain? Because its there. Same for intrusion attacks.

@HolgerMayer With “realistically” I imply that motivation and capability vary across possible adversaries. Gone by now should be the illusion that security be achieved by addressing every remote possibility with technical safeguards. Nowadays we base security decisions on risk assessment and a realistic adversary model is an essential component of it.
Security risk assessment is not really as new an approach as I just made it sound. In real life we do it every day when we leave the house. Various deadly attacks against the human body are very well known and easy to execute, not only by the government but by everyone. Since the risk of anyone actually trying remains low, however, we do not usually wear bulletproof vests and helmets. Doing so would be too expensive in implementation and side effects in relation to the actual security gain.
There will be residual risks that we should accept rather than address and there will also be mechanisms of risk management other than technological safeguards. I believe everyone needs to acknowledge this – limits and criteria can still be debated – to have a constructive discussion. The line between valid security concerns and freewheeling conspiracy theories is unfortunately rather thin sometimes.

@sventuerpe While all that is a fine theoretical argument it's not particularly pertinent. if you put full trust in the server side then it renders most of this project meaningless, the main driving principle behind anonymizing the data is to limit the government's ability to misuse it, if by design you allow them to reconstruct the data then that goes a bit beyond some far fetched theorizing, it negates a design principle. a principle that should guide the development because ignoring it is the reason people would not want to install this app

@sventuerpe While all that is a fine theoretical argument it's not particularly pertinent. if you put full trust in the server side then it renders most of this project meaningless, the main driving principle behind anonymizing the data is to limit the government's ability to misuse it, if by design you allow them to reconstruct the data then that goes a bit beyond some far fetched theorizing, it negates a design principle. a principle that should guide the development because ignoring it is the reason people would not want to install this app

For me it's clear that revealing my keys leads in the high chance that many people and white hats can create a trace from me or at least uncover me.
Especially when using video surveillance and beacon listeners. But as long I don't upload my keys no one can create a trace from me.
If this discussion is about the amount of information a White Hat gets you should get in mind he will additionally check the information from §9 IfSG and §5 (2) 5. Lichtbild PauswG (https://www.gesetze-im-internet.de/pauswg/__5.html)
If it's about a Black Hat, the effort vs. gain is very low because to get traces from people he needs the keys. And they have to be uploaded by the people voluntary. Without the keys the whole infrastructure is not useful (Key upload could be triggered by evil beacon sender together with valid TANs) But this vector is quite small, if the risk can be reduced without high effort then it should be done, otherwise not.

@oiime First, we are not talking about full trust here, but rather about a specific concern within an architecture that nevertheless leaves a lot of control to its individual users.
Second, I do not despise trust altogether, as long as it does not degenerate into an inescapable dependency. Genuine, earned and tentative trust reduces complexity. And I do trust my state and its institutions to some extent, not blindly and unconditionally but sufficiently to abstain from fundamental opposition.
Third, as a consequence, I am not convinced that a lopsided focus solely on technological security controls is appropriate. While I see good reasons to go with the flow and use Apple’s and Google’s APIs rather than try something else, I believe institutional and legal safeguards deserve the same amount of attention as they complement the technical ones.
Can we now return to the scenario and continue risk assessment within the application context?

@sventuerpe

First, we are not talking about full trust here, but rather about a specific concern within an architecture that nevertheless leaves a lot of control to its individual users.

You're allowing the operator the ability to tie an individual to their keys, that's pretty much as full as it gets. that connection should be severed as early as possible in the notification chain

Second, I do not despise trust altogether, as long as it does not degenerate into an inescapable dependency. Genuine, earned and tentative trust reduces complexity. And I do trust my state and its institutions to some extent, not blindly and unconditionally but sufficiently to abstain from fundamental opposition.

So far this implementation is more complex and less private so I'm not sure what the benefit is. if there is no good reason to trust them, then don't, it should be that simple, why introduce an attack vector when you have nothing to gain

Third, as a consequence, I am not convinced that a lopsided focus solely on technological security controls is appropriate. While I see good reasons to go with the flow and use Apple’s and Google’s APIs rather than try something else, I believe institutional and legal safeguards deserve the same amount of attention as they complement the technical ones.

The Exposure Notification API in no way mandates doing it this way, I fully support using their API for practical reasons and AFAIK nobody is objecting to using their API

@oiime

You're allowing the operator the ability to tie an individual to their keys, that's pretty much as full as it gets. that connection should be severed as early as possible in the notification chain

I doubt that.
First, we need to bear in mind that Covid-19 is a notifiable disease and conventional contact tracing will continue in parallel to the use of CWA. The application context limits information hiding even by those not using the app at all. The point of designing privacy controls into the architecture is not to guarantee perfect confidentiality, but rather to make mission creep less likely. The most effective control in this respect is a protocol that limits what the server side can learn at all:
Unless you as an app user or any of your recent contacts has tested positive, the server side receives no information about you at all. This makes the CWA system unsuitable for general surveillance. If the server side does learn information about you, this information remains limited and of low value. In particular, your contacts and social network cannot realistically be reconstructed.
If I understand @togermer’s collusion scenario correctly – feel free to correct me if I do not – only the identity of the infected person using a TAN to upload their diagnosis keys would be revealed. I see not much of a gain here for a conspiracy of labs and server operators, hence my request to assess risks and not only technical possibility. If there is a real problem I shall be the last to protest it being solved. I am just not yet convinced there is.
Second, I see no good reason to limit analysis to an arbitrarily chosen subsystem. A comprehensive treatment should consider all involved stakeholders including, for example, platform providers Apple and Google. This takes us back to questions of trust, risk, and trade-offs.

@sventuerpe You are correct, only the identity of the infected person using a TAN to upload their diagnosis keys would be revealed, the point of contention was in the risk and cost of severing the connection between the individual and the TAN at a layer closer to the user.
I guess at this point it is for you to decide if it's worth the effort or not to implement it. but bare in mind that going beyond what is necessary here is not only important from a privacy and security perspective but also from a PR perspective, maximizing adoption is key for this to have a chance of working
Thanks for your time

I already implemented a first version of a blind signatures extension for the DP3T Java/Spring based backend (DP-3T/dp3t-sdk-backend/pull/73).
Feel free to have a look.

In order to facilitate widespread use of the app it is of highest importance to guarantee anonymity when users upload their diagnosis keys. Users should stay anonymous even if the health authorities/laboratories and the verification server collude.

Is there any study about this, and more generally, about the reasons why people would use the app and why not?

Also, I think it's indeed required to read DP3T #210 to understand what this proposal intends to prevent:

Even if all central entities (including labs, Verification Server and Corona-Warn-App Server) colluded,
i. prevent them from knowing the TEKs/Diagnosis Keys of a diagnosed user
ii. prevent them from knowing which diagnosed user uploaded their TEKs/Diagnosis Keys and which one did not

Example 1: the user has a positive test result and a meeting with health service (HS). The user and the HS agree to do the upload to the app-server and to do a function check. Then, on the HS phone, the history of app contacts will be deleted. The user phone and the HS phone will be close together for about 10 minutes. Authorization takes place and the data is uploaded from the user phone to the app-server. Then the app of the HS phone will download data from app-server and should get a notification. If not, something went wrong.
Example 2: the user has a testing date. Before actual testing, he signs a document about rules and privacy. The person doing the testing has a work phone with the app installed and the app contact history deleted. After 10 min the test is performed and further recording on the work phone is disabled. One day later, the user is informed about his positive test result. But very shaken by this message, he forgets to start the upload process. Fortunately, one day later, he is reminded by phone to do this.

Jumping in here a bit late, but what if instead of disclosing one's one rolling IDs, the IDs that have been come into contact with are disclosed instead. In that case, each app checks whether one of their own IDs has been affected instead of one of their contact's IDs.
This would still be problematic if you put beacons and cameras in place though.
Ideally, in addition to that, each phone wouldn't keep track of other rolling IDs but rather a unique token would be generated and kept track of by the two phones. That way the only way to know they were in contact is if you compromise both phones.
Not sure I was able to explain that very clearly, but maybe it's an idea.

@whythecode If I understood you correctly then it'll just mean you'd need to release a larger pool of IDs (potentially), it'll have no influence over the de-anonymization  of the user itself, I think the problem of having an actual interaction between the phones to generate paired tokens is that the protocol relies on using the broadcast payload on bluetooth, you can't really have a back and forth.
however it might be possible to publish a public key on that payload and have the phone store those encrypted with the key, thought I doubt it. either way this implementation relies on the Google/Apple protocol so they don't really have the option to change that layer

@oiime you're totally right, scratch what I said. Releasing a pool of connections is potentially much more dangerous information and does not depend on there being beacons up at the right time in order to do some matching.
De-anonymizing the user would solve most issues, though I can't see how that's supposed to work without at least some kind of trust on the processes and frameworks put in place.
I'm looking forward to seeing how this develops - thanks for your time and effort, everyone.

As the discussion stopped almost two weeks ago, our architects and experts already replied to the original question regarding the possibility of linking and as we received a new issue covering the topic in a much broader sense, we will close this issue here now and ask you all to follow-up in #223.
Thank you very much for your understanding!
Mit freundlichen Grüßen/Best regards,
SW
Corona Warn-App Open Source Team


Fix sticky behaviour on site docs TOC

This reverts the changes made on PR #899

Nicely done! So it wasn't the display: contents thing after all, eh?
Maybe Firefox was the one that was buggy.

yeah it's not easy to tell but maybe it was

this reverts the next/previous buttons height positioning on zoom out (in chrome)

good spot! In that case it seems those changes were required so I've only amended the toc container height


profile model

adding a model in account with one-to-one relation to User model to be used as user profile, and letting profile filled in registration form is very needed :)
keep up the good work!

Thanks for requesting this. I plan to implement this in a general manner soon. Keep watching :)

Hi @pajooh
Please have a look at the pull request https://github.com/arocks/edge/pull/7 for a Profile model implementation. It doesn't have the registration form yet.
Your comments would be valuable.

Added profile model in Edge v2.0


multiple jobs event issue

Hello i am facing a problem with job events:
i am getting rows from mysql and send them to my workers.
rows.forEach(function(row) {
  		  var job = client.submitJob('test', JSON.stringify(row));

			job.on('workData', function(data) {
				console.log('WORK_DATA >>> ' + data);
			});
			job.on('complete', function() {
				console.log('RESULT >>> ' + job.response);
				client.close();
			});

	});

so workers are processing requests and send back an answer to the server, but this just returns undefined (complete event) for multiple requests.
When just sending 1 row it works fine. i think there is a problem with the event listeners since these get overwritten for each row.
any solution how to handle this?

after removing
client.close();
from complete event everything worked fine.


Can it be done the same way of fetching lyrics for VLC player?

Same app, but instead for Spotify to show lyrics for the songs played in VLC player?

Good idea! It should be not that much work, I will look into it

I did it as raw version, changing the getCurrentSong.AppleScript to:
set currentlyPlayingTrack to getCurrentlyPlayingTrack()

-- Method to get the currently playing track
on getCurrentlyPlayingTrack()
  tell application "VLC"
    return get name of current item
  end tell
end getCurrentlyPlayingTrack

This brings some questions:
Should it be done as standalone app for VLC, or expand SpotifyLyrics to cover more players?

I would integrate it to spotifylyrics with a menu, where the user can choose the source spotify (default) and vlc


Use Viewport from Bevy 0.8 instead of sprites to implement screen borders

Bevy 0.8 added a Viewport to each Camera, which should be enough to implement the borders around the desired resolution.

If you want this it's mostly working on my repo https://github.com/vixeliz/bevy_vinox_pixel. Under src/camera/scaled.rs. It should at least get you started. :)

Thanks, I'll take a look!

Fixed by #28


Fix indentation in README's package.json example

Coverage remained the same at 96.561% when pulling 1fccd54cf7683406b992b8db6bcddcafdfb99f49 on aureooms:patch-1 into 8ad0db9106a89614efe5b9d317e3267ed28955a2 on SamVerschueren:master.

Thanks! 🥂


after connect not redirecting to the login page

in Android 13/14 its not redirecting to the login page how can we solve this ??? can you can guide me about this or you can you fix this and update the project ???

in Android 13/14 its not redirecting to the login page how can we solve this ??? can you can guide me about this or you can you fix this and update the project ???

Set your ip to static <IP_ADDRESS>


create a rule for no empty buttons

Empty buttons pose an accessibility issue for sighted users. To be accessible to sighted users, a button must either contain an image or text content.

PR here

PR here


Update select2.md

We're not trying to demo every feature of select2 here - just give a simple example of a typical integration. Since the focus is on Vue and not select2 specifically, I think we can leave out mentions of all the non-default features we're not including in the example.


Screen config replacing all screens rather than extending

The 2xl screen config belongs under extend rather than directly in the theme config. As it is, it is replacing all screen breakpoints with this one rather than overriding just 2xl.
https://github.com/huntabyte/shadcn-svelte/blob/20c6bd623a836b31bbe2fc14068550afcfe53676/apps/www/tailwind.config.js#L12-L14
I can open a quick PR to fix this, but figured I should open an issue first.

These screens should only be applied to the container. Are you experiencing it conflicting elsewhere? ref

That's true, but I guess I don't understand why you'd want the only screen for the container to be 2xl. It prevents things like setting custom screen-based padding values for the container


Fix crash when using Loot All and chat channel switcher issues

We don't need the FlexibleButtonWidget in 1.20.2 🥳

LGTM


Add new setup guides, updated names, adjust layout

Updated doc with new setup guides. Also updated names, and access instructions based on changes within the Microsoft 365 admin center. Changed page layout based on feedback.

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

Copy review - @OhanNanen-MS, kindly commit the minor suggested changes. Many thanks.

All changes are committed. Thanks!


Clustering: Ability to set a BitmapDescriptor cache for custom cluster items (2.11 Clustering composable)

Feature request
Add the ability to cache Bitmapdescriptor's to make the initial drawing smooth as not every single marker needs to recreate views
This is for both clusterContent & clusterItemContent
Solutions:

Ability to specify a custom renderer (extending DefaultClusterRenderer)

Opening up the cluster manager to specify our own renderer would allow an easy way to support this feature by giving the developer the ability to build it himself

Specify some cache keys in order to avoid recreating the bitmap descriptor for identical items (in renderViewToBitmapDescriptor)

...

More context
Currently, I have implemented Clustering using MapEffect and I was able to make my redrawing experience as smooth as possible by recreating only different markers
For example I have 3000+ points but in practice only +-20 different item markers
I apply the same caching for cluster groups by defining a few buckets.
The solution I currently have in mind also means I do not plan to use Compose to create markers & clusters, that's fine as my goal is to make the experience as smooth as possible.

If you would like to upvote the priority of this issue, please comment below or react with :+1: so we can see what is popular when we triage.
@Shusshu Thank you for opening this issue. 🙏
Please check out these other resources that might help you get to a resolution in the meantime:

Check the issue tracker - bugs and feature requests for Google Maps Platform APIs and SDKs
Open a support case - Get 1:1 support in Cloud Console.
Discord - chat with other developers
StackOverflow - use the google-maps tag

This is an automated message, feel free to ignore.

Adding more options for cluster rendering is doable, but we should be very careful about it.

Ability to specify a custom renderer (extending DefaultClusterRenderer)

DefaultClusterRenderer offers a not-ideal abstraction for rendering custom icons. It's not an API I think should be exposed to Compose consumers.

Specify some cache keys in order to avoid recreating the bitmap descriptor for identical items (in renderViewToBitmapDescriptor)

By "identical items", do you mean items that render the same icon but aren't the same marker? If so, agreed some keying may be good here.

Indeed I agree it's not a good API for compose consumers, having said that we need a solution to improve performance.
The cache keying is a possible approach and yes I meant multiple map markers using the same icon.

It's an option, but I'd like to explore optimizations that don't require keying first, for simplicity.

Have you explored different paths regarding optimizations that could be made without introducing complexity?

Have you explored different paths regarding optimizations that could be made without introducing complexity?


Adding test for tombstones from 10910

Can you add @jira_ticket CASSANDRA-10910 to this test's docstring? +1 after that, thanks

Thanks


[Connector-V2]Add Hudi Source

Related to https://github.com/apache/incubator-seatunnel/issues/1946
Add new hudi source connector.
The first version only support hudi cow table and Snapshot Query. (MOR table,Incremental Query, Read Optimized Query will be added later.)
I have pass the hudi source test both on spark and flink batch mode. （Souce is Hudi, Sink is Console）
example spark config:
env {
  job.mode = BATCH
  spark.app.name = "SeaTunnel"
  spark.executor.instances = 2
  spark.executor.cores = 1
  spark.executor.memory = "1g"
  spark.master = local
}
source {
  Hudi {
    table.path = "/test/hudi/test_order/"
    table.type = "cow"
    conf.files = "/home/test/hdfs-site.xml;/home/test/core-site.xml;/home/test/yarn-site.xml"
    use.kerberos = true
    kerberos.principal = "test_user"
    kerberos.principal.file = "/home/test/test_user.keytab"
  }
}
transform {
}
sink {
  Console {}
}

example flink config:
env {
  job.mode = "BATCH"
  execution.parallelism = 1
}
source {
  Hudi {
    table.path = "/test/hudi/test_order/"
    table.type = "cow"
    conf.files = "/home/test/hdfs-site.xml;/home/test/core-site.xml;/home/test/yarn-site.xml"
    use.kerberos = true
    kerberos.principal = "test_user"
    kerberos.principal.file = "/home/test_user/test_user.keytab"
  }
}
transform {
}
sink {
  Console {}
}

Could you add docs to here https://github.com/apache/incubator-seatunnel/tree/dev/docs/en/connector-v2

Sure, added done.

I have several opinions on the necessity and realization of CDC:

Necessity: As a new generation data integration platform, CDC is very necessary; Because in actual use, the demand for change flow capture in the enterprise is gradually increasing. The rapid development of Flink CDC is a good example.

--If Sea Tunnel does not strengthen its ability to process CDC, it will be faced with the problem of using additional CDC processing tools after using ST to process batch data. Like Canal, Debezium, FlinkCDC.
In addition, the change flow capture at the bottom of FlinkCDC also uses Debezium

Several implementation concerns:
---Engine > Connector.
Common databases with many requirements, such as MySQL and Oracle. Their CDC implementation schemes are roughly the same, all based on Binlog. For example:
Flink Oracle CDCs use Debezium for CDC content collection, while Debezium uses a Logmienr based solution.
StreamSets' processing of Oracle is also based on Logminer.
Therefore, the priority of CDC content collection should be lowered, and the design of the processing engine should be considered first. This may include the unified process of CDC processing, such as consistency, breakpoint, batch flow connection, fault tolerance, failover, and other issues that should be handled uniformly.
In this part, FlinkCDC is worthy of reference.
Sinse Sea Tunnel 2.3.0, it has its own computing engine, which is the cornerstone of processing CDC (most of the time, when the outlet of the CDC stream is a single thread, the processing does not need to be distributed, so it does not rely on computing engines such as Flink or Spark).
---Format compatibility. In most cases, when Sea Tunnel has CDC processing capabilities, it will need to process messages sent to Kafka from other CDC tools. Therefore, compatibility with some common formats, such as Flink CDC, should also be considered. In other words, when designing its format, Sea Tunnel should be designed independently to ensure rapid development or compatible with common component formats in the market, which is also worth considering.


MM-20414: Migrate 'components/channel_header_mobile/channel_info_button' module and associated tests to TypeScript

Summary
This PR migrates 'components/channel_header_mobile/channel_info_button' module and associated tests to TypeScript
Ticket Link
Fixes https://github.com/mattermost/mattermost-server/issues/16159
JIRA: https://mattermost.atlassian.net/browse/MM-20414
Release Note
NONE

Hello @sinansonmez,
Thanks for your pull request! A Core Committer will review your pull request soon. For code contributions, you can learn more about the review process here.

/update-branch

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/218828


Added functional DeAnza spider

OK to merge (though you might want to clean up trailing whitespace and the like).


Fix 29405 cursor displayed before emoji on ios native

Details

In the native iOS application if the user types the emoji manually, but they unintentionally put a space after the first colon mark (e.g. “: joy:”) and then remove the space, the emoji is converted successfully, but the cursor goes before the emoji instead of after the emoji.
Fixed Issues

$ https://github.com/Expensify/App/issues/29405
PROPOSAL: https://github.com/Expensify/App/issues/29405#issuecomment-1777079738
Tests

Open the app
Open any report
Type emoji text in following way ': joy:'
Remove space before text to convert it to emoji
Cursor is displayed after emoji

[x] Verify that no errors appear in the JS console

Offline tests

Same as Tests
QA Steps

Same as Tests

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes

[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)

[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/44186263/7f5b7997-8a24-4af4-8d99-7296dcb84939

Android: mWeb Chrome

https://github.com/Expensify/App/assets/44186263/baed6f2a-82ed-4ecf-bab4-b8b24c388a64

iOS: Native

https://github.com/Expensify/App/assets/44186263/0154840b-c781-4f21-a6e3-e0bcb60a5eb9

iOS: mWeb Safari

https://github.com/Expensify/App/assets/44186263/94013bc1-96c9-4f69-9d5d-62d987b62434

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/44186263/f43992e9-3125-4742-b5ff-094e04c16816

MacOS: Desktop

https://github.com/Expensify/App/assets/44186263/87782da8-af97-4fec-8635-506d91fcae04

Sure! @aimane-chnaif please feel free to review, conflict resolved.

Thank you @aimane-chnaif, I can also reproduce it. At the moment it seems to me that there is a problem with React Native's TextInput component on iOS, just as @roksanaz noticed in her initial proposal. I will investigate it and correct the PR soon.

Update: seems like there are a few problems with Composer and TextInput has some unfavorable behaviour on iOS. I will need more time to investigate.
CC: @aimane-chnaif

Update: still developing an approach to that

@aimane-chnaif the PR is ready for review and below you can find a few words explaining my latest changes.
The previous fix involved a momentary behaviour of the cursor jumping to {0, 0}, as you noticed, since it was delaying setting the cursor position to the pre-calculated one. I attempted to overcome this caret behaviour, however on iOS native the original passing of the selection on iOS caused onSelectionChange to be fired sequentially when replacing emoji markers, resulting in unfavorable behaviour of the cursor "jumping around" for a brief moment before being positioned properly by the fix. Upon investigating, I discovered that onTextChange on iOS is called after onSelectionChange and call to the former breaks cursor position after inserting an emoji in place of an emoji text marker. This behaviour was unexpected since it was not mentioned anywhere in the docs and, although it was possible to minimize its effects by ignoring some of the invocations, it involved larger changes in the code and was not perfect.
For the reason described above, I decided that it will be better to drop the controlled approach in favor of using an existing ref to set a flag to sync cursor position inside onTextChange on iOS specifically by setting it after all interactions finish to the position pre-calculated in onSelectionChange.

No, not tried. I checked issues and SO, where there were reports of such problems, but none resolved so far.

Just a quick notice, I'm OOO until Wednesday - I'll report back then.

@aimane-chnaif

It would be ideal. As the current new solution is completely different from original approved proposal, can you post updated proposal on the issue to explain code changes?

Absolutely, posting the new proposal on main issue. Regarding the native code, I inspected it today but couldn't find the root cause of the issue there. Can we carry on with the non-native solution?

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/youssef-lr in version: 1.4.19-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.19-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Flatten layout module into tables module

All the different layout tables are now direct submodules of tables, as is the layout module itself.

yes this has no functional change, just a bunch of path changes in generated code explode the diff.


is there any option to disable "download" link and protect the content from copy-paste?

i am looking for plugin that able to protect the content from copy-paste and forbid people to download it. this plugin looks very nice, but is there any options to protect the content and disable the "download" button?Thank you very much.

You can modify the index.html file in /ViewerJS/ and get rid of the delete functionality.


Remove all dynamic allocations from onDraw

This is strongly recommended by the Android IDE and docs,
to avoid triggering a garbage collection pause while
drawing.

UI code seems reasonable (to the extent that it doesn't seem to do anything weird) but I had some questions about the thread-safety aspects of the new model

Found the intrinsic lock documentation:

When a thread invokes a synchronized method, it automatically acquires the intrinsic lock for that method's object and releases it when the method returns.


dashing is not working with jruby

Thin, the currently used webserver does not work on jruby (and probably other ruby implementations).

I added a pull request for this: https://github.com/Shopify/dashing/pull/677
I am not sure how to get travis to use jruby: their doc do not talk about the newer jruby 9.x series (2.x compatibility).


Use qualified Docker image names

Currently unqualified rustembedded/* image names are used instead of docker.io/rustembedded/*, so I have to add
unqualified-search-registries = ["docker.io"]

to /etc/containers/registries.conf.
I am using podman, which has no default registries and discourages using unqualified names.

sorta related, when we have qualified names it'd be neat to also push the containers to ghcr.io to improve the fetch speed with actions (dockerhub is slow and the new API limits are, rough)

The images are now (to-be) hosted on ghcr.io/cross-rs/


symbiotic --cppflags=-I... does not work with relative paths

The --cppflags=-I... option of symbiotic does not seem to work with relative paths but it works fine with absolute paths.  This makes it difficult to hook symbiotic on the native build process of a C/C++ project.
Minimal example:
$ mkdir -p dir/inc
$ cd dir
$ touch inc/xxx.h
$ echo "#include <xxx.h>" > xxx.c
$ echo "int main() { }" >> xxx.c
$ gcc -I./inc xxx.c

$ symbiotic --cppflags=-I./inc xxx.c
6.1.0-dev-llvm-unknown-symbiotic:6.1.0-de
cc: /tmp/dir/xxx.c:1:10: fatal error: 'xxx.h' file not found

RESULT: ERROR (Compiling source '/tmp/dir/xxx.c' failed)
ERROR:  == FAILURE ==
Compiling source '/tmp/dir/xxx.c' failed

$ symbiotic --cppflags=-I$PWD/inc xxx.c
6.1.0-dev-llvm-unknown-symbiotic:6.1.0-de
INFO: Optimizations time: 0.02158212661743164
INFO: Starting slicing
Did not find slicing criteria: '__assert_fail,__VERIFIER_error'
INFO: Total slicing time: 0.004794597625732422
INFO: Optimizations time: 0.0208742618560791
INFO: After-slicing optimizations and transformations time: 2.4318695068359375e-05
[...]

I confirm it works as expected now.  Sorry for the delay!


Custom code highlighting

Hi, first thanks for this cool tool.
I am still exploring and testing it, but one thing that would benefit me is support for additional programming languages. I work in Progress 4GL (also known as OpenEdge ABL) and since it is a bit obscure I am not surprised that it is not supported. Are there any ways / plans to add extra languages?

Snippet Store is currently using CodeMirror and will support any language that CodeMirror support. If you want your language to be available you should contribute it to CodeMirror.
I'm currently doesn't have any plan on adding extra languages sorry.

No problem, I will see if I can add my language to CodeMirror. Thanks!


[WIP] feature: implement progress mgr

Signed-off-by: Starnop<EMAIL_ADDRESS>
Ⅰ. Describe what this PR did
Implement the InitProgress  and  UpdateProgress  of ProgressMgr.
Ⅱ. Does this pull request fix one issue?

fixes part of #366
Ⅲ. Why don't you add test cases (unit test/integration test)? (你真的觉得不需要加测试吗？)
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews
We should refactor the structure of mgr dir. FYI:
./mgr
-- task
---- task_manager.go
---- task_mananger_test.go
-- progress
---- progress_manager.go
---- progress_manager_util.go
---- progress_manager_repo.go

Codecov Report

Merging #461 into master will decrease coverage by 4.66%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master     #461      +/-   ##
==========================================
- Coverage   60.51%   55.84%   -4.67%
==========================================
  Files          64       68       +4
  Lines        3229     3499     +270
==========================================
  Hits         1954     1954
- Misses       1145     1415     +270
  Partials      130      130

Impacted Files
Coverage Δ

supernode/daemon/mgr/progress_util.go
0% <0%> (ø)

supernode/daemon/mgr/progress_mgr.go
0% <0%> (ø)

supernode/daemon/mgr/piece_state.go
0% <0%> (ø)

supernode/daemon/mgr/progress_repo.go
0% <0%> (ø)

Continue to review full report at Codecov.

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

LGTM


[firestore-bigquery-export] gen-schema-view script - Option to populate array of references via referenceArray type

Extension name: firestore-bigquery-export
Extension version: 0.1.16

Great job with the extension, this has saved me an incredible amount of time.
I was wondering if it is possible to have the gen-schema-view script populate array of references values?
Example Schema
{
  "fields": [
    {
      "name": "tags",
      "type": "referenceArray"
    }
  ]
}

The schema above would produce a cell for every field in the tag document, instead of a cell with the reference url.

Thanks @alexcastillo.
Added for investigation / consideration

Thank you, @dackers86!

related - https://github.com/firebase/extensions/issues/1051


Fix race condition in config handling (main)

Description of the Change
The CLI encounters race conditions when handling config files if multiple commands are executed in parallel.
Currently, the CLI writes a new config for every command executed due to the code in command_parser.go. However, it also deletes all temporary config files when reading the config, leading to race conditions between multiple processes. This PR introduces two changes to mitigate this problem:

Ignore "File Not Found" errors when attempting to delete a file. This change addresses the issue where multiple processes list and delete temporary files simultaneously.
Only delete temp config files older than 5 minutes. This change resolves the problem where one process creates a temporary config that it later wants to rename, while a second process deletes this temp config in the meantime. Orphan files should be rare, as they are normally pruned by the signal handler, as seen in https://github.com/cloudfoundry/cli/blob/04df8ae6dd68b64c2080c863c1ddf4c3e06abcd6/util/configv3/write_config.go#L63-L66

Why Is This PR Valuable?
Enables usage of the CF CLI in scripts which execute commands in parallel
Applicable Issues
fixes #2232
How Urgent Is The Change?
Medium
Other Relevant Parties
Anyone using the CLI in scripts with parallel execution. Multiple users have encountered this issue, as discussed in #2232.
Related PRs
v7
v8

Hi @gururajsh
do you know when there will be a new release which includes this fix?

Hi @f-blass
We are planning on doing a release this week which includes this fix. Will keep you posted.

Hi @f-blass ,
New CLI version has been released with this fix


Does not work with current templates in Visual Studio

With the base templates in Visual Studio, you cannot install the packages directed.  This fails with version collision issues reporting "Install/reference Microsoft.Azure.WebJobs 3.0.5 directly to project Fritz.TwitchChatArchive to resolve this issue. "

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

ID: 5786402e-9d88-5de0-607a-1c2a143af006
Version Independent ID: 15368d1c-b22e-7eb2-413f-cc0d41d2b909
Content: Use dependency injection in .NET Azure Functions
Content Source: articles/azure-functions/functions-dotnet-dependency-injection.md
Service: azure-functions
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

This was a confusion between the NetFx and NetCore versions of functions.  As the package is NetStandard, it was allowed to attempt to be installed on the NetFx version of the templates

@csharpfritz Thanks for the update. 👍


An error with tx push -s

How to fix it?

Hey @mendax1234 from what I understand from your screenshot, this is where you want to create an issue which is the python version of our client.
This repo is related to the new version of the client.

So , the client can't suit python 3.10 version?

I believe the python client is up to 3.9 version, but the people in that repo can provide a more solid answer, since this client is built in Go.
My suggestion would be to migrate to this version of the client since the old one will sunset on Nov 2022. Feel free to check the readme for more information.

Thanks, l have installed python 3.9 and know the transifex seems to work perfectly!


Font issue

This is what yours look like:
http://puu.sh/gg16j/01dc90e113.png
However, on my machine, it looks like this:
http://puu.sh/gg1eR/20b72a8583.png
And no errors in inspection:
http://puu.sh/gg1bt/4e05aad550.png
What am I doing wrong? I don't use Bower. I'm on a Windows machine.

I don't believe that font is set by the grid - it uses your default font.  If you don't like the font on your web page then you need to change it to something else.  I presume if you put something else on that same page (e.g. a simple div) then it would use that same font?
I think the tutorial pages are simply using the default sans-serif font.

I thought the CSS is setting the default font is "grid-ui"?

There isn't a font called grid-ui in our distribution package.  I don't think we're using a special font, we're just using the font that is set in your application.  If we were setting to a special font then you'd have an error when your browser didn't find it?
I'm assuming you're using ui-grid, and not 2.x of ng-grid?

Correct, UI-Grid. I see. Let me try and I will update you. PS. Why not use Glyphicons for icons?

@TomZilla1 we just wanted to use the smallest subset we could so people didn't have to include a huge font in their app for icons that we weren't using.
There are plans to add shims for bootstrap, font-awesome, etc.

Resolution provided, no update for 3 weeks, assuming problem is resolved.


Automatic Inlining of Fonts breaks in Angular 11

🐞 bug report
Is this a regression?

Yes, the previous version in which this bug was not present was: 10
Description
This update to Angular 11 prevents our fonts from loading when linked from (fonts.google.com)

How can I turn off this feature?
Why is this enabled by default?
This seems like an unnecessary optimization for those who are using service worker cache.

in my index.html I have the following
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500|Roboto+Mono:400,500|Material+Icons&display=swap" rel="stylesheet"/>

That link goes to the following url
Which appears to be converted into the following when built for production:
<style type="text/css">
@font-face {
    font-family: "Roboto Mono";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhLq3-cXbKD.woff2)
      format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
      U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
      U+FEFF, U+FFFD;
  }
  .material-icons {
    font-family: "Material Icons";
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: "liga";
    -webkit-font-smoothing: antialiased;
  }
</style>

Missing are the @font-face for Roboto and Material Icons.
Unclear how these are being evaluated but used you should also consider CSS custom variable assignments such as:
:root{
  --icon-font-family:'Material Icons';
}
.icon{
  font-family:var(--icon-font-family);
}

🔬 Minimal Reproduction
see above
🌍  Your Environment
Angular Version:

Angular CLI: 11.0.0
Node: 14.5.0
OS: darwin x64

Angular: 11.0.0
... animations, cli, common, compiler, compiler-cli, core
... elements, forms, language-service, platform-browser
... platform-browser-dynamic, router, service-worker
Ivy Workspace: Yes

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1100.0
@angular-devkit/build-angular   0.1100.0
@angular-devkit/core            11.0.0
@angular-devkit/schematics      11.0.0
@angular/cdk                    10.2.7
@angular/fire                   6.0.5
@angular/material               10.2.7
@schematics/angular             11.0.0
@schematics/update              0.1100.0
ng-packagr                      11.0.1
rxjs                            6.6.3
typescript                      4.0.5

It appears that the root problem is caused by a multiline comment in the response which is not handled properly in our minifier. I have a PR inflight to fix this https://github.com/angular/angular-cli/pull/19352.
Also, kindly find below the answer to your questions.

How can I turn off this feature?

As you mentioned, the docs for this are available https://angular.io/guide/workspace-config#optimization-and-source-map-configuration

Why is this enabled by default?

This is a critical performance optimisation. See: https://blog.angular.io/version-11-of-angular-now-available-74721b7952f7 and https://github.com/angular/angular-cli/issues/18730 for the motivation behind this feature.

This seems like an unnecessary optimization for those who are using service worker cache.

This optimization is still beneficial if you use service workers because first time visitors will not have the service worker installed.
Resources from external domains are not cached by the service-worker unless, you have configured the service worker to cache such resources, In which case you'll see the benefit of this after the 2nd visit of the application., because during the 1st visit the SW get installed, and during 2nd the requests get cached, 3rd visit serve the request from cache. None-the-less, having the CSS of fonts inlined inlined in the HTML is still be slightly more performant.

Hold up,
This should be at the developers discretion based on how they've configured their fonts, you can still reduce First Contentful Paint using font-display to achieve the same result...
https://developers.google.com/web/updates/2016/02/font-display
For example, i'm using swap

swap gives the font face a zero second block period and an infinite swap period. This means the browser draws text immediately with a fallback if the font face isn’t loaded, but swaps the font face in as soon as it loads. Similar to block, this value should only be used when rendering text in a particular font is important for the page, but rendering in any font will still get a correct message across. Logo text is a good candidate for swap since displaying a company’s name using a reasonable fallback will get the message across but you’d eventually use the official typeface.

Would also like to mention that fonts from fonts.google.com add swap by default using the &display=swap parameter
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap" rel="stylesheet">

This approach doesn’t take away the benefits of display swap. If anything it’s complimentary and users should still use display swap. Adding display swap if one of the many steps that needs to be done to achieve better FCP. Other complimentary approaches which we are currently working on, is inlining of critical CSS.
The FCP is improved even further when inlining the external CSS rule definitions because each external CSS has a performance bottle neck, because it needs to be downloaded and parsed all this while rendering is blocked.
When the external CSS is an on another domain, the bottle neck is even more because of addition DNS resolutions and connection creation which can take a couple of hundreds of milliseconds.

Seems risky to cache these at build time.
What happens if the fonts inside that url are changed or removed...
@font-face {
src: url(https://fonts.gstatic.com/s/robotomono/v12/L0x5DF4xlVMF-BfR8bXMIjhLq3-cXbKD.woff2) format("woff2");

They could change due to licensing issues or bug fixes etc


Sphere Intersection

Get the intersection with a sphere

Properties

[ ] Ray

Returns

Color
distance
normal vector

Additional notes
return <black, infinity, 0> if no intersection

Vou dale nessa


Error using a standalone script on mac

environment：
MacOS
File: EasyEDA projects（pcb.json）
python version: Python 3.9.1

Steps to reproduce and the error message:

➜InteractiveHtmlBom git:(master) sudo /usr/local/devenv/python/bin/pip3 install wxPython
WARNING: The directory '/Users/rehack/Library/Caches/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting wxPython
  Downloading wxPython-4.1.1-cp39-cp39-macosx_10_10_x86_64.whl (18.1 MB)
     |████████████████████████████████| 18.1 MB 93 kB/s
Collecting pillow
  Downloading Pillow-8.2.0-cp39-cp39-macosx_10_10_x86_64.whl (2.8 MB)
     |████████████████████████████████| 2.8 MB 80 kB/s
Collecting numpy; python_version >= "3.0"
  Downloading numpy-1.20.2-cp39-cp39-macosx_10_9_x86_64.whl (16.1 MB)
     |████████████████████████████████| 16.1 MB 149 kB/s
Collecting six
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: pillow, numpy, six, wxPython
Successfully installed numpy-1.20.2 pillow-8.2.0 six-1.15.0 wxPython-4.1.1
WARNING: You are using pip version 20.2.3; however, version 21.0.1 is available.
You should consider upgrading via the '/usr/local/devenv/python/bin/python3.9 -m pip install --upgrade pip' command.
➜  InteractiveHtmlBom git:(master) which wxPython
wxPython not found
➜  InteractiveHtmlBom git:(master) python3 generate_interactive_bom.py ~/Downloads/pcb.json

This program needs access to the screen. Please run with a
Framework build of python, and only when you are logged in
on the main display of your Mac.

I want to know how to fix this problem？

If you google for the error message you will find multiple suggestions on how to fix the issue. Easiest one to try is running pythonw instead of python
Another thing you can try if you don't need a configuration dialog is disabling gui by defining INTERACTIVE_HTML_BOM_NO_DISPLAY environment variable.

Use pythonw command has  anImportError: No module named wx error
but I installed wxPython with pip and python3 venv

You have some other pythonw on path it shows python2.7 while you installed wx in python3. Run using full path to wherever your python3 installation is.

@LuvTian Was your issue resolved? I'll close this in a few days unless I hear from you.


Wishlist: example/support for redirection to online (http/https) resources

To a degree it is a reincarnated

#253

It would have been great if there was a sample Provider (and whatever it takes) for a WebDAV server which overall is a simple redirection service to some other http or https website, and assuming some default indexes (e.g. as provided by apache), so it could have config like
          "provider_mapping": {
            "/dav": HTTPRedirectionProvider("https://example.com/someprefix/"),
        },

and have /dav/path/file be redirected to https://example.com/someprefix/path/file.
Alternative possibly immediately useful example which could be sufficient to demonstrate ability to redirect, would be to redirect to S3, assuming that permissions allow for listing of the prefix to discover underlying "directories/" (there are no directories on S3 per se). S3 also has support/semantics for COPY and MOVE so there could be those implemented/supported as well, so making it not only read-only.
This would provide a good example on how to establish any other redirection service where corresponding mapping could be more involved, e.g. relying on obtaining target URLs through some API etc.

@yarikoptic - at a proof-of-concept level, I think one could override the do_GET method in wsgidav.request_server.RequestServer to do a targeted redirect based on path.  Not a great long-term solution but it'd allow you to get passed the current speedbump of redirects to see if the rest of the idea works.

@bbockelm How would one do that while using wsgidav as a library (via the normal WsgiDAVApp(config) interface) with a custom provider?

@jwodder - I don't think you can do it cleanly like that.  That's why I said the suggestion would be a proof-of-concept / not great long-term.  E.g., you'd have to reproduce the logic around here: https://github.com/mar10/wsgidav/blob/056831cb80b9cd6be4e8bd96bd231cde47ee3695/wsgidav/request_resolver.py#L222
and then adding the resolver as middleware as in here:
https://github.com/mar10/wsgidav/blob/056831cb80b9cd6be4e8bd96bd231cde47ee3695/wsgidav/default_conf.py#L61

@bbockelm @mar10 I'm interested in submitting a PR that would add support for redirects, and my main question at the moment is what sort of public API you'd like added to dav_provider.py to enable this.  I've come up with the following design:

Add a Redirect class with url: str and status_code: int (default = 302) fields
Add the following methods to DAVNonCollection:

is_redirect(self) -> bool — When this returns True, it signifies that requests to the resource should be redirected to the return value of get_redirect().

The default implementation returns self.get_redirect() is not None

get_redirect(self) -> Redirect | None

The default implementation returns None

If is_redirect() returns true, then get_content() can do anything, including erroring or returning None.  Other methods remain unaltered.

I've opted not to add these methods to _DAVResource, as allowing collections to be redirects seems like it would come with a whole bunch of implementation issues.

Thoughts?

How would you implement get_content_length(), get_content_type, get_etag, etc. in these cases?
Maybe it would be better to open a discussion and detail the user story for this.


Implement ObservabilityPolicy API

As a user of NGF
I want to configure tracing configuration for my route
So that I can collect traces for my route.
Acceptance

Tracing and be enabled and configured for a specific route.
Implementation functionality matches the enhancement proposal.
Maximum and minimum input on all settings are tested against NGINX to ensure the CRD only allows valid input.
A manual test is done to ensure that traces are sent to a collection platform when tracing is configured.

Blocked by #1827


Ensure the gem binary is installed on windows

gem has mysteriously disappeared on Windows. Our hero is venturing on to the dark paths to hunt down the missing command, and coax it lovingly in to returning to the light of a chef release.
Bug #6049 has the gory details

i swear i installed it locally and it was there...
probably should have re-enabled FIPS tests and had someone chase this down before shipping, but i was worried about fixing up other code...

This branch has passed a full CI run; ninja accepting.


OOM when traing

作者你好！实在是非常棒的工作！我在custom dataset上训练时遇到一些问题，关于显卡内存的，不知道您有一些建议吗？
具体是在单机多卡训练时，显卡占用不是很均衡，并且占用量也不是很稳定，常常是在几个epoch训练结束后，validation结束后会OOM，关于这个，您有好的建议吗？非常感谢！

Hello, thanks for your interest in our work. Here are some things that might be worth trying:

Reduce the batchsize;
Reduce the resolution of the image during training here;
The extremely large scale of Gaussians may also lead to excessive memory consumption, you can try modifying this to scale_out = torch.clamp_max(self.scale_head(x), 0.01) to constrain the scale. This strategy is used in GPS-Gaussian.

Hello, thanks for your interest in our work. Here are some things that might be worth trying:

Reduce the batchsize;
Reduce the resolution of the image during training here;
The extremely large scale of Gaussians may also lead to excessive memory consumption, you can try modifying this to scale_out = torch.clamp_max(self.scale_head(x), 0.01) to constrain the scale. This strategy is used in GPS-Gaussian.

非常感谢您的回复和建议！very insight！


Use word-wrap CSS attribute on operation values.

Operation values can be very long - in case there are no spaces (or other allowed break points), the values overflow.
We should use word-wrap: break-word property in order to fix the issue.

We should also consider splitting CSS to base.css and customization.css to make it easier to customize CSS for clients.


Links inside grid cards do not work

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
The links in the gridcards do not work...

I thought they do .... or at least they did.
📝 Steps to reproduce
Go to: https://mapdl.docs.pyansys.com/version/dev/index.html
And try to use any of the links inside the cards
💻 Which operating system are you using?
Windows
📀 Which ANSYS version are you using?
NA
🐍 Which Python version are you using?
3.9
📦 Installed packages
NA

I've seen this behavior before too... Don't know if we can control it though.

@Revathyvenugopal162 we most likely need your expertise on this 😄

It seems the links get "hidden" behind the gridcard clicking feature.

It should work, i can investigate on this

As discussed in a private meeting, we can play with JS to inspect any "sd-card" object and apply any required modifications. This is not ideal, but there is no other option with the current status of Sphinx Design.

If it's not ideal I don't know if we should do it honestly. I'm fine with the current behavior, to be clear.

Maybe we could discourage having links inside of the cards, @RobPasMue.

Maybe we could discourage having links inside of the cards, @RobPasMue.

Agreed yeah - that might be the best =)

Can we subclass the directive?
I think we might...
Anyway, it is not priority.

I would wonder what UX's perspective is on this.
Having links inside an already-clickable element seems like an anti-pattern to me, but I might well be wrong on that.

Loool... we just need to remove the linking so it works as expected:
.. added link to the box
    .. grid-item-card:: :fa:`book` Learn how to use PyMAPDL
        :link: ref_learning
        :link-type: ref

        Check our :ref:`ref_learning` section.
        It is recommended you follow the
        :ref:`ref_pymapdl_course` course.

.. not linking the box
    .. grid-item-card:: :fa:`terminal` Learn how to get started

        Check our :ref:`ref_getting_started` section to learn to
        :ref:`ref_using_standard_install`, :ref:`ref_pymapdl_installation`,
        and :ref:`ref_launch_pymapdl`.

I'm closing this issue.


Consider add PA28 airplane and steampunk blimp

Please consider add the APercy mod PA28 airplane and steampunk blimp
https://content.minetest.net/packages/apercy/steampunk_blimp/
https://content.minetest.net/packages/apercy/pa28/
Best Regards,

Great ones! I'll do my best to include in the next server update!

Available for testing on jupiter.ronoaldo.dev.br:30000 - development server.


Remove Unit

The argument is that Unit is a confusing type for users that are not used to void-as-a-type languages, and seeing as void is not typed in C#, we shouldn't invent a type just because it's more functional.
Pros and cons for Unit:
Pros

Returning void makes it impossible to chain methods on missing return values.
Adds an alternative to untyped return values.

Cons

Less confusion amongst new developers.
Unneccesary clutter in the API.
Uses of method chaining on Unit could easily be refactored to a private method with 2 statements.

Unit will be deprecated in a future version 2.0.* unless we come up with more Pros.


API can be both accessed globally or from a client instance

[x] Refactor base model to a module
[x] Introduce object for holding connection and pass it to QualtricsApi automatically

This allows the client to be used either globally like:
QualtricsAPI.configure do |config|
  config.api_token = 'api_token'
end
QualtricsAPI.panels.fetch['ML_bC2c5xBz1DxyOYB'].members

or with a client like:
client = QualtricsAPI::Client.new('api_token')
client.panels.fetch['ML_bC2c5xBz1DxyOYB'].members


Reorder plugin directives to avoid warnings

http-request directives should not be placed before reqxxx directives. So, we give plugin authors the ability to prepend plugin directives if required.

@matfra I thought of doing that. In fact, there's an option in haproxy to check configs:
haproxy-synapse -c -V -f /var/run/synapse/haproxy.cfg
But even without my changes, I already see a bunch of warnings in it like this:
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_activity-feed.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_ad_backend.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_adanalytics.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_adcreative.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_adrealtime.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_bizfeed.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_generic.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_geocoder.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_itests2113.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_itests228.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_kairos.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_new-businesses.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_profilistic.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_search_indexing.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_seo_cache.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_user_engagement.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cassandra_zipkin.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cockroachdb.joiner' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'cockroachdb.main' (needs 'mode http').
[WARNING] 105/075129 (82780) : config : client regular expressions will be ignored for backend 'edgestage_apple_extlb_haproxy.ecosystem' (needs 'mode http').


doesn't work with LC_TIME=nb_NO.UTF8 ?

my LC_TIME is "nb_NO.UTF8", and $format is "%A %d. %B" and $timestamp is<PHONE_NUMBER> and strftime() gives me "torsdag 23. juni", but \PHP81_BC\strftime gives me "Thursday 23. June"
.. any idea what went wrong here? reproduce script:
<?php
require_once('vendor/autoload.php');
if(false === setlocale(LC_TIME, "nb_NO.UTF8")){
 die("error: locale nb_NO.UTF8 is not installed");
}
$stamp =<PHONE_NUMBER>;
$format = "%A %d. %B";
var_dump(\PHP81_BC\strftime($format, $stamp));
var_dump(strftime($format, $stamp));

outputs on my system (PHP7.4.29):
root@75cee9b6f638:/var/www# php test.php
string(17) "Thursday 23. June"
string(16) "torsdag 23. juni"

what went wrong here?

Composer cache may have affected you:
>composer require php81_bc/strftime
Info from https://repo.packagist.org: #StandWithUkraine
Using version ^0.5.0 for php81_bc/strftime
./composer.json has been created
Running composer update php81_bc/strftime
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking php81_bc/strftime (0.5.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing php81_bc/strftime (0.5.0): Extracting archive
Generating autoload files

>composer info php81_bc/strftime
name     : php81_bc/strftime
descrip. : Locale-formatted strftime using IntlDateFormatter (PHP 8.1 compatible)
keywords :
versions : * 0.5.0
type     : library
license  : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
homepage :
source   : [git] https://github.com/alphp/strftime.git 4c1b56eaae4bb3f02f994ba47c2e5a225378e62f
dist     : [zip] https://api.github.com/repos/alphp/strftime/zipball/4c1b56eaae4bb3f02f994ba47c2e5a225378e62f 4c1b56eaae4bb3f02f994ba47c2e5a225378e62f
path     : E:\_\kk\vendor\php81_bc\strftime
names    : php81_bc/strftime

support
issues : https://github.com/alphp/strftime/issues
source : https://github.com/alphp/strftime

autoload
files

requires
ext-intl *
php >=7.1.0

requires (dev)
phpunit/phpunit @stable

@alphp no i don't think so, here is a system that i believe has never ran composer before, and it also defaulted to 0.0.2:
hans@DESKTOP-2LHJILI:~$ php -v
PHP 7.3.7 (cli) (built: Jul 21 2020 18:15:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
hans@DESKTOP-2LHJILI:~$ composer
-bash: composer: command not found
hans@DESKTOP-2LHJILI:~$ ./co
compilecurl.php  cool.cpp
hans@DESKTOP-2LHJILI:~$ ./co^C
hans@DESKTOP-2LHJILI:~$ mkdir test
mkdir: cannot create directory ‘test’: File exists
hans@DESKTOP-2LHJILI:~$ mkdir test
mkdir: cannot create directory ‘test’: File exists
hans@DESKTOP-2LHJILI:~$ cd test
hans@DESKTOP-2LHJILI:~/test$ ls
hans@DESKTOP-2LHJILI:~/test$ composer
-bash: composer: command not found
hans@DESKTOP-2LHJILI:~/test$ php -v
PHP 7.3.7 (cli) (built: Jul 21 2020 18:15:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
hans@DESKTOP-2LHJILI:~/test$ date -u --iso-8601=s
2022-06-16T14:10:04+00:00
hans@DESKTOP-2LHJILI:~/test$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Installer verified
Downloading...

Composer (version 2.3.7) successfully installed to: /home/hans/test/composer.phar
Use it: php composer.phar

Some settings on your machine may cause stability issues with Composer.
If you encounter issues, try to change the following:

The zlib extension is not loaded, this can slow down Composer a lot.
If possible, install it or recompile php with --with-zlib

The php.ini used by your command-line PHP is: /etc/php.ini
If you can not modify the ini file, you can also run `php -d option=value` to modify ini values on the fly. You can use -d multiple times.

hans@DESKTOP-2LHJILI:~/test$ ./composer.phar --version
Composer version 2.3.7 2022-06-06 16:43:28
hans@DESKTOP-2LHJILI:~/test$ ./composer.phar require php81_bc/strftime
Info from https://repo.packagist.org: #StandWithUkraine
Using version ^0.0.2 for php81_bc/strftime
./composer.json has been created
Running composer update php81_bc/strftime
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking php81_bc/strftime (0.0.2)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Downloading php81_bc/strftime (0.0.2)
  - Installing php81_bc/strftime (0.0.2): Extracting archive
Generating autoload files

It's strange. I don't know how the composer/packagist network works, but it seems that at some point the cache is not up to date.
I have tried clearing the local cache composer clear-cache and doing require php81_bc/strftime composer has installed the correct version.

strange indeed. do you have Docker?

I don't work with docker.
I have tried on Windows and CentOS6 without problems: composer install the latest version (0.5).

2.0.1 in CentOS 6, 2.3.5 in Windows.
Can you test to run composer require php81_bc/strftime:@stable?

"composer require php81_bc/strftime:@stable" also installs 0.0.2
btw if you could install Docker on a linux system, the way to test it on Docker for Linux is:
mkdir -p testdir;
cd testdir;
echo -ne 'FROM ubuntu:20.04\nENV DEBIAN_FRONTEND'\
'=noninteractive \nRUN apt-get update -y \\\n   '\
' && apt-get install -y php-cli wget git\nRUN wg'\
'et '\''https://getcomposer.org/installer'\'' -O'\
' '\''composer-setup.php'\''\nRUN php composer-s'\
'etup.php\nRUN php -r "unlink('\''composer-setup'\
'.php'\'');"\nRUN ./composer.phar require php81_'\
'bc/strftime' > Dockerfile;
sudo docker build .;

(btw i didn't type that echo command manually, i generated it with https://3v4l.org/59Fdt )
and the output should be something like
hans@devad22:/test2$ cat Dockerfile
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y \
    && apt-get install -y php-cli wget git
RUN wget 'https://getcomposer.org/installer' -O 'composer-setup.php'
RUN php composer-setup.php
RUN php -r "unlink('composer-setup.php');"
RUN ./composer.phar require php81_bc/strftime:@stable

hans@devad22:/test2$ sudo docker build .
Sending build context to Docker daemon  2.048kB
Step 1/7 : FROM ubuntu:20.04
 ---> 20fffa419e3a
Step 2/7 : ENV DEBIAN_FRONTEND=noninteractive
 ---> Using cache
 ---> 8ab983f5c55b
Step 3/7 : RUN apt-get update -y     && apt-get install -y php-cli wget git
 ---> Using cache
 ---> 82d179789932
Step 4/7 : RUN wget 'https://getcomposer.org/installer' -O 'composer-setup.php'
 ---> Using cache
 ---> a858500fa1d1
Step 5/7 : RUN php composer-setup.php
 ---> Using cache
 ---> 9ea972d3d75e
Step 6/7 : RUN php -r "unlink('composer-setup.php');"
 ---> Using cache
 ---> c482a3f8df61
Step 7/7 : RUN ./composer.phar require php81_bc/strftime:@stable
 ---> Running in fb1d1d9cb859
./composer.json has been created
Running composer update php81_bc/strftime
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking php81_bc/strftime (0.0.2)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
    Failed to download php81_bc/strftime from dist: The zip extension and unzip/7z commands are both missing, skipping.
Your command-line PHP is using multiple ini files. Run `php --ini` to show them.
    Now trying to download from source
  - Syncing php81_bc/strftime (0.0.2) into cache
  - Installing php81_bc/strftime (0.0.2): Cloning a6b25e3e2e from cache
Generating autoload files
Removing intermediate container fb1d1d9cb859
 ---> 7a29d3e572e1
Successfully built 7a29d3e572e1

in any case, looks like a Composer bug, not an alphp/strftime bug, i've made a bugreport with Composer: https://github.com/composer/composer/issues/10884

I will leave the issue open for a while to follow up.

https://github.com/composer/composer/issues/10884#issuecomment-1162336929

Solution on your end would be to ensure intl is enabled.
https://github.com/composer/composer/pull/10896


feat(searchbar): add disabled attribute

Short description of what this resolves:
It is now possible to disable the searchbar component
Changes proposed in this pull request:

New attribute disabled on searchbar component

Ionic Version: 4.1.2
Fixes: #17921

Thank you for the PR! The code looks good! One question, why was the  ionStyle and emitStyle added? I'm guessing it was copied from another component. 🙂
I don't think we need these as they are used to pass classes up to a parent component for styling and I don't see toolbar using them. Please correct me if I'm mistaken. :grin:

Indeed, well seen 🙂
I relied on the "input" component. I thought it was used to re-type the style after a status change disabled or not.

Thank you for your changes 🙂

What are the steps to validate the feature? 🙂

@KyDenZ Sorry I still need to take another look at this. I've been back and forth on PRs and getting 4.3.0 released. I was going to run it locally and verify the UI + I need to check out the pointer events.

Moved the opacity and pointer-events up to the main searchbar so the icon will appear disabled. This looks good! Thank you!!

@liamdebeasi Could you add your stamp of approval? Ben marked off on the design.

Thank you 🙂

Thanks! :tada:


Update sorely out-of-date docs

Most of the language was taken from raven-js, where the options are identical.
cc @macqueen @mattrobenolt

This change is

Review status: 0 of 1 files reviewed at latest revision, 1 unresolved discussion.

docs/config.rst, line 42 [r2] (raw file):

        {
          release: 'staging'

should this be environment: 'staging'?

Comments from Reviewable

Reviewed 1 of 1 files at r3.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


KAFKA-13705: CoreUtils.swallow uses logging parameter instead of Logger

As described in the issue, the:

Javadoc says: The logging instance to use for logging the thrown exception.

But logging parameter it is never used.
The testing strategy used was to run the CoreUtilsTest class and all test projects classes to check if any was broken.
Committer Checklist (excluded from commit message)

[x] Verify design and implementation
[x] Verify test coverage and CI build status
[x] Verify documentation (including upgrade notes)

Hi @showuon , thanks for replying
Looks like a problem with every pull request, not related with the change I made

I'm taking a look!

Hi @showuon, I believe that is a false-positive, running the spotbugsMain from trunk I receive 6 warnings as described below: https://github.com/spotbugs/spotbugs/issues/1963
I reported a bug on spotbugs and commited the ignore file on spotbugs-exclude.xml.
I'm waiting a answer from spotbugs repo but I believe ithis s the same false-positive from others spotbugs described in the spotbugs-exclude file.

Thanks @showuon it seems these tests failed appeared on merge https://github.com/apache/kafka/pull/11830 after my investigation.
Link error with these tests: https://ci-builds.apache.org/blue/organizations/jenkins/Kafka%2Fkafka-pr/detail/PR-11830/3/tests
Existing failures - 10
Build / JDK 8 and Scala 2.12 / testSendWithInvalidCreateTime() – kafka.api.PlaintextProducerSendTest
3s
Build / JDK 8 and Scala 2.12 / testSendWithInvalidCreateTime() – kafka.api.PlaintextProducerSendTest
6s
Build / JDK 8 and Scala 2.12 / testProduceWithInvalidTimestamp() – kafka.server.ProduceRequestTest
2s
Build / JDK 8 and Scala 2.12 / testProduceWithInvalidTimestamp() – kafka.server.ProduceRequestTest
2s
Build / JDK 11 and Scala 2.13 / testSendWithInvalidCreateTime() – kafka.api.PlaintextProducerSendTest
2s
Build / JDK 11 and Scala 2.13 / testSendWithInvalidCreateTime() – kafka.api.PlaintextProducerSendTest
7s
Build / JDK 11 and Scala 2.13 / testProduceWithInvalidTimestamp() – kafka.server.ProduceRequestTest
3s
Build / JDK 11 and Scala 2.13 / testProduceWithInvalidTimestamp() – kafka.server.ProduceRequestTest
2s
Build / JDK 17 and Scala 2.13 / testSendWithInvalidCreateTime() – kafka.api.PlaintextProducerSendTest
3s
Build / JDK 17 and Scala 2.13 / testProduceWithInvalidTimestamp() – kafka.server.ProduceRequestTest
3s

Could you confirm please if was introduced by my PR or was failing before?

Yes, you're right! Those tests are introduced by other PR. However, the recent jenkins build doesn't complete successfully. I've triggered another one to check it.
https://ci-builds.apache.org/job/Kafka/job/kafka-pr/job/PR-11841/7/

Hi @showuon , thanks!!!
It seems the error is related to a failed gradle step not related to my commits.

As you can see build passes:

I Investigated and I do believe these errors are related to this line: https://github.com/apache/kafka/blob/0118330103e992253a7875a523de3526cad4a6c5/Jenkinsfile#L41
I'll try to keep investigating.. maybe this is due to failed tests? (related to my previous comment)